• R
    rshah

    @jared-wiltshire said in Git Hooks:

    flex layout="column"

    That did it! Thanks!

    What did you notice that caused you to think that was the solution @Jared-Wiltshire ?

    Also thanks for your help @MattFox -- If you ever have time I'd love to send you some of our code to pick your brain on how we're handling ma-serial-chart.

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • R
    rshah

    Doesn't look like there are a ton of styles being applied to the div that would mess with anything, we used inline styles everywhere so they should have priority.
    Do you see anything that catches your eye?

    0_1528740085148_ddc9d8d9-a4da-409d-850e-3d9e20f49f47-image.png

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • R
    rshah

    Hey @MattFox / @Jared-Wiltshire / @phildunlap ,

    Wondering if you guys have run into an issue with using ng-include in a div with it changing the page size?

    I am assuming the div has a default style being applied to it which is making things larger, but I haven't been able to find anything. Screenshots below:

    Version 1 - code stored in overrides, included with ng-include in a div (as you can see, everything is larger and a scroll bar is added to the page since the content doesn't fit)

    Code:
    0_1528734086400_b5b4ea24-a1ee-4ccb-a81b-dab4dda3fd4e-image.png

    Screen:
    0_1528733961415_2018-06-11 11_14_53-Updated Waterfall Information Screen - Mango v3.png


    Version 2 - Code pasted directly into the edit pages menu, scroll bar is gone, everything fits fine:

    Code:
    0_1528734025570_d04da120-446d-4eb1-b2a7-cbd4b6ffb550-image.png

    Screen (as you can see scroll bar is gone, everything fits)
    0_1528734044649_2018-06-11 11_15_39-Updated Waterfall Information Screen - Mango v3.png

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • R
    rshah

    @leoboeng said in Point Values:

    "Values of points limited to 5001 values, please shorten the time interval or adjust the rollup interval"

    Are you trying to view these points on a chart? That's the only time I've seen this message come up.

    I do not think you are limited on the number of point values you can store (though that possibly varies based on your license?) , but you are limited on the number you can show on a chart at any given time.

    posted in User help read more
  • R
    rshah

    Thanks again @phildunlap !

    To date, we've been leaving off the <html>, <head> and <body> tags -- I assume even with using this override system we should continue to do that? Here's a sample of the entire code we have in the document (we're still working on switching over to using a watchlist to get points rather than ma-get-point-value per your suggestion):

    <!-- We only want to obtain last 12 hours of data, so use Angular Moment Library to do figure out what last 12 hours are-->
    <ma-now update-interval="1 minutes" output="to"></ma-now>
    <ma-calc input="to | maMoment:'subtract':12:'hours'" output="from"></ma-calc>
    
    <!-- Obtain all CURRENT point values -->
    
    <!-- General Booster Pump -->
    <ma-get-point-value 
        point-xid="boosterPumpsSuctionPress" 
        point="boosterPumpsSuctionPress">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPumpsSetpointPress" 
        point="boosterPumpsSetpointPress">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPumpsPowerOnStatus" 
        point="boosterPumpsPowerOnStatus">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPumpsOutputPress" 
        point="boosterPumpsOutputPress">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPumpsLowSuctionPressAlarm" 
        point="boosterPumpsLowSuctionPressAlarm">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPumpsLowPressAlarm" 
        point="boosterPumpsLowPressAlarm">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPumpsHighPressAlarm" 
        point="boosterPumpsHighPressAlarm">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPumpsGeneralAlarm" 
        point="boosterPumpsGeneralAlarm">
    </ma-get-point-value>
    
    <!-- Booster Pump 1 -->
    <ma-get-point-value 
        point-xid="boosterPump1RH" 
        point="boosterPump1RH">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump1RunStatus" 
        point="boosterPump1RunStatus">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump1ServiceStatus" 
        point="boosterPump1ServiceStatus">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump1VFDA" 
        point="boosterPump1VFDA">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump1VFDAlarm" 
        point="boosterPump1VFDAlarm">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump1VFDHz" 
        point="boosterPump1VFDHz">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump1VFDPwr" 
        point="boosterPump1VFDPwr">
    </ma-get-point-value>
    
    <!-- Booster Pump 2 -->
    <ma-get-point-value 
        point-xid="boosterPump2RH" 
        point="boosterPump2RH">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump2RunStatus" 
        point="boosterPump2RunStatus">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump2ServiceStatus" 
        point="boosterPump2ServiceStatus">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump2VFDA" 
        point="boosterPump2VFDA">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump2VFDAlarm" 
        point="boosterPump2VFDAlarm">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump2VFDHz" 
        point="boosterPump2VFDHz">
    </ma-get-point-value>
    
    <ma-get-point-value 
        point-xid="boosterPump2VFDPwr" 
        point="boosterPump2VFDPwr">
    </ma-get-point-value>
    
    <!-- Get last 12 hour of flow, suction, and output pressure data, averaged over 1 minute -->
    <ma-point-values 
        point-xid="boosterPumpsSuctionPress"
        rendered="true" 
        values="boosterPumpsSuctionPressHistorical" 
        from="from" 
        to="to" 
        rollup="AVERAGE" 
        rollup-interval="1 minutes">
    </ma-point-values> 
    
    <ma-point-values 
        point-xid="boosterPumpsOutputPress"
        rendered="true" 
        values="boosterPumpsOutputPressHistorical" 
        from="from" 
        to="to" 
        rollup="AVERAGE" 
        rollup-interval="1 minutes">
    </ma-point-values> 
    
    <ma-point-values 
        point-xid="boosterPumpsFlowRate"
        rendered="true" 
        values="boosterPumpsFlowRateHistorical" 
        from="from" 
        to="to" 
        rollup="AVERAGE" 
        rollup-interval="1 minutes">
    </ma-point-values> 
    
    <!-- Displays only if the app is still loading -->
    <div ng-if="appLoading">
        <span>App is loading..</span>
    </div>
    
    <div ng-cloak layout="column" class="centerText" flex>
        <h1 class="centerText">Cold Water Booster Pumps (Basement)</h3>
        <!-- Row 1 -->
        <div layout="row">
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        Pump System Power Status
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsPowerOnStatus.renderedValue}}
                </md-card-content>
            </md-card>
    
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        Suction Pressure
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsSuctionPress.renderedValue}}
                </md-card-content>
            </md-card>
    
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        Setpoint Pressure
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsSetpointPress.renderedValue}}
                </md-card-content>
            </md-card>
    
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        Output Pressure
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsOutputPress.renderedValue}}
                </md-card-content>
            </md-card>
        </div>
        <!-- Row 2 -->
        <div layout="row">
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        High Pressure Alarm
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsHighPressAlarm.renderedValue}}
                </md-card-content>
            </md-card>
    
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        Low Suction Pressure Alarm
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsLowSuctionPressAlarm.renderedValue}}
                </md-card-content>
            </md-card>
    
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        General Alarm
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsGeneralAlarm.renderedValue}}
                </md-card-content>
            </md-card>
    
            <md-card flex="25">
                <md-card-title>
                    <md-card-title-text>
                        Low Pressure Alarm
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="column">
                    {{boosterPumpsLowPressAlarm.renderedValue}}
                </md-card-content>
            </md-card>
        </div>
    <!-- Row 3 -->
        <div layout="row">
            <!-- PUMP 1 INFORMATION -->
            <md-card flex="50">
                <md-card-title>
                    <md-card-title-text>
                        <h2>Pump 1</h2>
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="row">
                    <md-card flex="33">
                        <md-card-title>
                            <md-card-title-text>
                                Service Status
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump1ServiceStatus.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="33">
                        <md-card-title>
                            <md-card-title-text>
                                Running Status
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump1RunStatus.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="33">
                        <md-card-title>
                            <md-card-title-text>
                                Run Hours
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump1RH.renderedValue}}
                        </md-card-content>
                    </md-card>
                </md-card-content>
                <md-card-content layout="column">
                    <h3>Variable Frequency Drive</h3>
                </md-card-content>
                <md-card-content layout="row">
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Alarm
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump1VFDAlarm.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Amps
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump1VFDA.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Frequency
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump1VFDHz.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Power
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump1VFDPwr.renderedValue}}
                        </md-card-content>
                    </md-card>
                </md-card-content>
            </md-card>
            <!-- PUMP 2 INFORMATION -->
            <md-card flex="50">
                <md-card-title>
                    <md-card-title-text>
                        <h2>Pump 2</h2>
                    </md-card-title-text>
                </md-card-title>
                <md-card-content layout="row">
                    <md-card flex="33">
                        <md-card-title>
                            <md-card-title-text>
                                Service Status
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump2ServiceStatus.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="33">
                        <md-card-title>
                            <md-card-title-text>
                                Running Status
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump2RunStatus.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="33">
                        <md-card-title>
                            <md-card-title-text>
                                Run Hours
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump2RH.renderedValue}}
                        </md-card-content>
                    </md-card>
                </md-card-content>
                <md-card-content layout="column">
                    <h3>Variable Frequency Drive</h3>
                </md-card-content>
                <md-card-content layout="row">
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Alarm
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump2VFDAlarm.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Amps
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump2VFDA.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Frequency
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump2VFDHz.renderedValue}}
                        </md-card-content>
                    </md-card>
                    <md-card flex="25">
                        <md-card-title>
                            <md-card-title-text>
                                Power
                            </md-card-title-text>
                        </md-card-title>
                        <md-card-content layout="column">
                            {{boosterPump2VFDPwr.renderedValue}}
                        </md-card-content>
                    </md-card>
                </md-card-content>
            </md-card>
        </div>
        <!-- ROW 4 -->
        <div layout="row">
            <md-card flex="100">
                <md-card-content>
                    <ma-serial-chart 
                    style="height: 490px; width: 100%" 
                    series-1-values="boosterPumpsSuctionPressHistorical"
                    series-1-title="Booster Pump - Suction Pressure" 
                    series-1-color="#FF0000" 
                    series-1-axis="left"
                    series-1-type="smoothedLine"
                    series-2-values="boosterPumpsOutputPressHistorical"
                    series-2-title="Booster Pump - Output Pressure"
                    series-2-color="#FF8700"
                    series-2-axis="left"
                    series-2-type="smoothedLine"
                    series-3-values="boosterPumpsFlowRateHistorical"
                    series-3-title="Booster Pump - Flow Rate" 
                    series-3-color="#00FFFF"
                    series-3-axis="right"
                    series-3-type="smoothedLine"
                    legend="true" 
                    options="{
                        synchronizeGrid: false,
                        valueAxes:[
                            {
                                axisColor:'#212125', 
                                color:'white', 
                                title: 'Pressure (PSIG)', 
                                titleColor: 'white',
                                fontSize: 26,
                                titleFontSize: 26,
                                minimum:30, 
                                maximum:140,
                               
                            }, 
                            {
                                axisColor:'#212125', 
                                color:'white', 
                                title: 'Flow Rate (GPM)', 
                                titleColor: 'white',
                                fontSize: 26,
                                titleFontSize: 26,
                                minimum:0, 
                                maximum:40
                            }
                        ]
                    }">
                    </ma-serial-chart>
                </md-card-content>
            </md-card>
        </div>
        <!-- END OF PAGE -->
    </div>
    <style>
        md-card-title {
            padding-top: 0px !important;
        }
        .centerText {
            text-align: center;
        }
        .firing {
            background-color: green !important;
        }
        .firingDHW {
            color: lightgreen !important;
        }
        .alarm {
            background-color: red !important;
        }
        .noAlarm {
            color: lightgreen;
            font-weight: bold;
        }
        md-card-title-text {
            font-size: 130%;
        }
        md-card-content {
            font-size: 110%;
        }
    </style>
    

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • R
    rshah

    Nginx might also do what you want and may be simpler depending on how you set it up.

    You can also pretty easily adjust headers on Nginx (if needed)
    R

    posted in User help read more
  • R
    rshah

    @phildunlap said in Git Hooks:

    The pages created on the edit-pages or in the DashboardDesigner are stored in the jsonData table. You could definitely have something fetch it from git and update the entry in the table if you're using MySQL. It would probably take some developing, though.

    Got it -- thanks!

    Would it be easier to use overrides?

    RS

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • R
    rshah

    Hi All,

    Jumping back to this -- say we do want to pull our code to Mango directly, where is the file located?

    For reference, we created our dashboards by going to the edit pages option and creating a new dashboard -- Also, the file we are working on is not a full HTML file, it doesn't have a <head> only a <body> -- so I'm not even sure if this will work.

    Is this something overrides are for? We looked into them a bit but are confused on how they exactly work.

    Thanks!

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • R
    rshah

    Not sure why @MattFox 's code doesn't work, looks like it should, but this is what we are using and it works fine, albeit with only 3 bands, though you could pretty easily add 4:

                <ma-gauge-chart
                    point="swORP"
                    start="0"
                    end="1000"
                    interval="100"
                    band-1-end="500"
                    band-1-color="red"
                    band-2-end="650"
                    band-2-color="yellow"
                    band-3-end="1000"
                    band-3-color="green"
                    value-font-size="20"
                    radius="100%"
                    value-offset="-27"
                    axis-label-font-size="17"
                    axis-thickness="0"
                    tick-interval="50"
                    arrow-inner-radius="1"
                    axis-alpha="1"
                    style="width: 100%; height: 225px">
                </ma-gauge-chart>
    

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • R
    rshah

    Hi,

    Has anyone setup their Mango instance to automatically pull from git for dashboards w/ Git's hooks or some other method?

    We'd like to do something similar to that unless there are any issues anyone has had.

    posted in Dashboard Designer & Custom AngularJS Pages read more