Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
var self    = this;
var model   = self.ractive;

model.observe('points.*.view points.*.query', function(nVal,oVal,kPath){
   var pathToPoint  = kPath.substring(0, kPath.lastIndexOf('.'));
   var point        = model.get(pathToPoint);
   
   if (point) {
        if (kPath.indexOf('query') != -1) {
            var nQuery  = model.get('getUpdatedQueryStringForItem').call(model, point);
                
            if (!nQuery || !nQuery.length)
                return;
            
            finstack.eval(nQuery).then(function(data) {
                if (data && data.result && !data.result.isErrorGrid) {
                    point.chartConfig.dataProvider  = data.result.toObj();
                    model.get('updateChartForElementIdWithConfig').call(model, point.amId, point.chartConfig);
                } else {
                    console.log(data);
                }

            }, function(err) {
                console.error(err);
            });
        } else if (point && point.view == 'amChart') {
            model.get('updateChartForElementIdWithConfig').call(model, point.amId, point.chartConfig);
        }
    }
   
});

model.on('unrender', function() {
    model.get('updatePoll').call(model, true);
});


model.on('foldUpdate', function(event) {
    var point   = model.get(event.resolve());
    var fVal    = event.node.value;
    
    model.set(event.resolve()+ '.fold', fVal);
    model.get('updatePoll').call(model);
    
    if (fVal != 'live') {
        var q = 'readById(' +point.pointId+ ').hisRead(' +point.range+ ').foldCol("v0",'+point.fold+')';
        console.log("Setting out...", q);
        finstack.eval(q).then(function(data) {
            model.set(event.resolve()+ '.mainValue', fin.Data.PointUtil.GetPrettyValue(point.original,data.result.toObj(false,false,true)));
        }, function(err) {
            console.log(err);
        });
    }
});


this.ractive.on("calendar", function(event){
    var point   = self.ractive.get(event.resolve());
    var model   = self.ractive;
    
    top.app.ShowCalendar(true,function(calEvent){
        var date = top.app.Utils.DateRangeToAxonDate(calEvent.range, calEvent.mode);
        model.set(event.resolve()+ '.range', date);//.then(function() {
            
     if (point.fold != 'live') {
        var q = 'readById(' +point.pointId+ ').hisRead(' +point.range+ ').foldCol("v0",'+point.fold+')';
        console.log("Setting out...", q);
        finstack.eval(q).then(function(data) {
            model.set(event.resolve()+ '.mainValue', fin.Data.PointUtil.GetPrettyValue(point.original,data.result.toObj(false,false,true)));
        }, function(err) {
            console.log(err);
        });
            
    }
    }, {periods:true});
});



//  Init Data

self.ractive.set({points: [{
            mainIcon: "sm-oil",
            iconColor: "#3488b2",
            mainText: "Main Water",
            mainValue: "150L",
            btIcon: "icon-clockwise",
            btIconText: "Refresh",
            mainText2: "Rain Water",
            mainValue2: "50L",
            view: 'icon',
            range:"Date"
        },{
            mainIcon: "icon-location",
            iconColor: "red",
            mainText: "Revenue",
            mainValue: "37%",
            btIcon: "icon-calendar",
            btIconText: "Last Day",
            view: 'waterdrop',
            fillColor:"orange",
            svgBackColor:"#d2d2d2",
            fillValue:37,
            myStart:"Select",
            myEnd:"Date"
        },{
            mainIcon: "icon-graph-line",
            iconColor: "#b083e0",
            mainText: "Errors",
            mainValue: "23",
            btIcon: "icon-menu",
            btIconText: "Menu",
            view: 'amChart',
            amId: top.app.Utils.GetPseudoId(),
            range:"today()",
            fold:"avg",
            chartConfig: {
                theme: "light",
                type: "serial",
                dataProvider: [{
                    country: "USA",
                    year2004: 3.5,
                    year2005: 4.2
                }, {
                    country: "UK",
                    year2004: 1.7,
                    year2005: 3.1
                }, {
                    country: "Canada",
                    year2004: 2.8,
                    year2005: 2.9
                }, {
                    country: "Japan",
                    year2004: 2.6,
                    year2005: 2.3
                }, {
                    country: "France",
                    year2004: 1.4,
                    year2005: 2.1
                }, {
                    country: "Brazil",
                    year2004: 2.6,
                    year2005: 4.9
                }],
                valueAxes: [{
                    unit: "%",
                    position: "left",
                    title: "GDP growth rate",
                }],
                startDuration: 1,
                graphs: [{
                    balloonText: "GDP grow in [[category]] (2004): <b>[[value]]</b>",
                    fillAlphas: 0.9,
                    lineAlpha: 0.2,
                    title: "2004",
                    type: "column",
                    valueField: "year2004"
                }, {
                    balloonText: "GDP grow in [[category]] (2005): <b>[[value]]</b>",
                    fillAlphas: 0.9,
                    lineAlpha: 0.2,
                    title: "2005",
                    type: "column",
                    clustered:false,
                    columnWidth:0.5,
                    valueField: "year2005"
                }],
                plotAreaFillAlphas: 0.1,
                categoryField: "country",
                categoryAxis: {
                    gridPosition: "start"
                },
                export: {
                	enabled: true
                 }
            }
        }]
});

...