• Thomas Einasto136

    Hi @MattFox !

    Sorry for replying so late but I went with your suggestion on doing some programming for achieving the results which I need.

    I was pleased to see your requests / posts on the forum which pointed me to right directions while customizing for new directives.

    Mainly where @jared-wiltshire said in future defining of usermodule required scripts/functions help:

    https://github.com/infiniteautomation/ma-dashboards/blob/3.3.x/UI/web/ngMango/directives/PointValueController.js

    Which helped my a lot for customizing Mangos own directives in the future as for 3.3.x all the directives and components are in AMD/Require style which usermodules use.

    If someone have not noticed then this should be number one place to go to see how @Jared-Wiltshire has done the directives. https://github.com/infiniteautomation/ma-dashboards/blob/3.3.x/UI/web/ngMango/

    I'll put out the customized directive and component if someone wants to use prezooming, start-end date of the zoom for further data analysis.

    https://pastebin.com/8h4MV8B1

    I changed the dateformats from original as ngMango own directive uses other services etc.

    Function pointValueToString was taken from https://github.com/infiniteautomation/ma-dashboards/blob/3.3.x/UI/web/ngMango/services/Util.js

    Added bindings:

    End - takes timestamp of zoom end
    hours - takes a number of hours and then uses moment for subtracting the hours from end zoom.
    selected - Object output binding

    • selected.start >> zoomed chart start date
    • selected.end >> zoomed chart end date

    Example usage:

    <my-custom-mango-chart id="8ec0e029-4b0b-4f53-aa0d-6c25b4ds22sssdsdbfa991" style="position: absolute; left: 1058px; top: 1022px; width: 798px; height: 500px;"  series-1-values="tank1Values" series-1-point="tank1" series-1-type="line" series-1-color="blue" legend="true" balloon="true" cursor-sync-id="graphs" series-1-graph-options="{id:'graph-id-2'}" end="start2.time" hours="6" options="{ zoomOutText: '',chartScrollbar:{graph:'graph-id-2' }}">
    </my-custom-mango-chart>
    

    These dates can be used as variables for ma-point-statistics directive to get current selection statistics for example.

    As Angular is still quite hard I'll keep learnin and askin. But as @Jared-Wiltshire and all of you in IAS staff are publishing all online it is relatively easier to customize and learn.

    Huge thanks and cheers!

    Thomas

    posted in How-To read more
  • Thomas Einasto136

    Hi @benaznbe!

    As @phildunlap suggested, you should take a look at that forum thread on how to create your own customized module.

    You can see that you are limited for 10 series by using mangos own component.

    In mango 3.x you can access user module page in Administration -> UI settings. Scroll down until you find Miscellaneous settings. There you can find User module URL. Click on the paperclip and click + sign on top right corner.

    ref: https://help.infiniteautomation.com/getting-started-with-a-user-module/

    The following is taken from this forum post https://forum.infiniteautomation.com/topic/2862/bar-chart-category-as-x-axis/15 .

    Thank @Jared-Wiltshire for input.

    Create filename usermodule.js. Add following to there.

    define(['angular', 'require', 'amcharts/serial'], function(angular, require, AmCharts) {
    'use strict';
    
    var userModule = angular.module('userModule', ['maUiApp']);
    userModule.component('categoryXAxis', {
        bindings: {
            values: '<?',
        },
        controller: ['$scope', '$element', function($scope, $element) {
            const options = {
              "type": "serial",
              "theme": "light",
              "addClassNames": true,
              "marginRight": 70,
              "dataProvider": [],
              "valueAxes": [{
                "axisAlpha": 0,
                "position": "left",
                "title": "Level"
              }],
              "startDuration": 1,
              "graphs": [{
                "balloonText": "<b>[[category]]: [[value]]</b>",
                "fillColorsField": "color",
                "fillAlphas": 0.9,
                "lineAlpha": 0.2,
                "type": "column",
                "valueField": "level"
              }],
              "chartCursor": {
                "categoryBalloonEnabled": false,
                "cursorAlpha": 0,
                "zoomable": false
              },
              "categoryField": "INVxx",
              "categoryAxis": {
                "gridPosition": "start",
                "labelRotation": 45
              },
                "titles": [{
                 "text": "Production Chart"
             }]
            };
            
            const chart = AmCharts.makeChart($element[0], options);
    
            $scope.$watch('$ctrl.values', () => {
                chart.dataProvider = this.values;
                chart.validateData();
            }, true);
        }]
    });
    
    return userModule;
    
    }); // define
    
    
    userModule.component('categoryXAxis', {
    

    categoryXAxis string is defining the brackets of HTML. You can rename it as you like.

              "categoryField": "INVxx",
    

    Declares the variable name in an values array which describes labels of columns.

                "valueField": "level"
    

    Declares the variable in an values array which describes the value of the point.

    For making it dynamic and live

            $scope.$watch('$ctrl.values', () => {
                chart.dataProvider = this.values;
                chart.validateData();
            }, true);
    

    This looks at values variable change. see ref: https://www.sitepoint.com/mastering-watch-angularjs/

    For more customization see amCharts own documentation which @Jared-Wiltshire and @phildunlap promote all the time on the forums and in Mango. It has all the documentation for them.

    ref: https://www.amcharts.com/demos/simple-column-chart/

    Now press OK on the opened modal and press SAVE on top left corner of the UI Settings page.

    You have now created your own component called categoryXAxis.

    How can you use it on your own page?

    As @phildunlap said you probably do not need to use statistics to get last values of your points.

    <ma-get-point-value> 
    

    already does it for you

    So for your page I eliminated the statistics to make it more shorter. It is below

    <md-whiteframe id="graph2" align="center" style="position: absolute; left: 24px; top: 240px; width: 900px; height: 280px; background-color: rgb(255, 255, 255); border: 1px solid rgb(169, 169, 169); font-size: 20px; font-weight: bolder; color: rgb(1, 1, 1);">Production Chart
            <div style="display:none;" ng-init="myPreset='DAY_SO_FAR'"></div>
                <div ng-init="myInterval='1 minutes'"></div>
                <ma-date-range-picker style="display:none;" update-interval="{{myInterval}}" preset="{{myPreset}}" to="to" from="from"></ma-date-range-picker>
                <div id="14145" style="display:none;width: 500px; height: 35px; position: absolute; left: 800px; top: 700px;" layout="row">
                    <md-input-container flex=""> 
                    <label>From date</label>
                        <ma-date-picker format="DD-MM-YYYY" mode="both" ng-model="from"></ma-date-picker>
                        </md-input-container>
                        <md-input-container flex="">
                        <label>To date</label>
                        <ma-date-picker format="DD-MM-YYYY" mode="both" ng-model="to"></ma-date-picker>
                        </md-input-container>
        </div>
        
        <ma-get-point-value point-xid="INV01.DailyEnergy" point="point1"></ma-get-point-value>
        <ma-get-point-value point-xid="INV02.DailyEnergy" point="point2"></ma-get-point-value>
        <ma-get-point-value point-xid="INV03.DailyEnergy" point="point3"></ma-get-point-value>
        <ma-get-point-value point-xid="INV04.DailyEnergy" point="point4"></ma-get-point-value>
        <ma-get-point-value point-xid="INV05.DailyEnergy" point="point5"></ma-get-point-value>
        <ma-get-point-value point-xid="INV06.DailyEnergy" point="point6"></ma-get-point-value>
        <ma-get-point-value point-xid="INV07.DailyEnergy" point="point7"></ma-get-point-value>
        <ma-get-point-value point-xid="INV08.DailyEnergy" point="point8"></ma-get-point-value>
        <ma-get-point-value point-xid="INV09.DailyEnergy" point="point9"></ma-get-point-value>
        <ma-get-point-value point-xid="INV10.DailyEnergy" point="point10"></ma-get-point-value>
        <ma-get-point-value point-xid="INV11.DailyEnergy" point="point11"></ma-get-point-value>
        <ma-get-point-value point-xid="INV12.DailyEnergy" point="point12"></ma-get-point-value>
        <ma-get-point-value point-xid="INV13.DailyEnergy" point="point13"></ma-get-point-value>
        <ma-get-point-value point-xid="INV14.DailyEnergy" point="point14"></ma-get-point-value>
        <ma-get-point-value point-xid="INV15.DailyEnergy" point="point15"></ma-get-point-value>
        <ma-get-point-value point-xid="INV16.DailyEnergy" point="point16"></ma-get-point-value>
        <ma-get-point-value point-xid="INV17.DailyEnergy" point="point17"></ma-get-point-value>
        <ma-get-point-value point-xid="INV18.DailyEnergy" point="point18"></ma-get-point-value>
       
       <category-x-axis class="amchart"
       values="[{INVxx: point1.name, level: point1.value,color:'blue'}, 
                {INVxx: point2.name, level: point2.value,color:'red'}, 
                {INVxx: point3.name, level: point3.value,color:'green'}, 
                {INVxx: point4.name, level: point4.value,color:'gray'}, 
                {INVxx: point5.name, level: point5.value,color:'brown'}, 
                {INVxx: point6.name, level: point6.value,color:'orange'}, 
                {INVxx: point7.name, level: point7.value,color:'yellow'}, 
                {INVxx: point8.name, level: point8.value,color:'purple'}, 
                {INVxx: point9.name, level: point9.value,color:'blue'}, 
                {INVxx: point10.name, level: point10.value,color:'blue'} , 
                {INVxx: point11.name, level: point11.value,color:'blue'} , 
                {INVxx: point12.name, level: point12.value,color:'blue'} , 
                {INVxx: point13.name, level: point13.value,color:'blue'} , 
                {INVxx: point14.name, level: point14.value,color:'blue'} , 
                {INVxx: point15.name, level: point15.value,color:'blue'} , 
                {INVxx: point16.name, level: point16.value,color:'blue'} , 
                {INVxx: point17.name, level: point17.value,color:'blue'} , 
                {INVxx: point18.name, level: point18.value,color:'blue'}]">
       </category-x-axis>
       
        </md-whiteframe>
    

    ref: https://forum.infiniteautomation.com/topic/3503/how-to-chart-with-data-points-in-the-x-axis-instead-of-time

    I wish you good luck in all.

    Thomas

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • Thomas Einasto136

    Actually I am trying to achieve a page where the user after he opens up the page is zoomed and will stay zoomed for a 12 hour period even though the whole period might have been 18 hours.

    The user can see the whole graph on the chartScrollbar as I have defined the graph to there with assigned ID but only the 12 hour selected part is important for further things.

    We can also say that the prezoom is a selection of 12 hour period of a 18 hour graph.

    I also will add to the options

    chartCursor:{zoomable:false},
    

    So that the user cannot change the zoom of the current selection.

    posted in How-To read more
  • Thomas Einasto136

    Hi!

    I am playing around with the latest mango and with AmCharts. I would like to do prezoom of the rendered chart but I am failing with it. Have tried multiple ways with declaring indexes, categoryvalues or dates. If used with dates chart fails to render and console points that the variable is not date object, i.e.

    TypeError: Cannot read property 'getTime' of undefined
    

    Code while the upper error.

    <ma-now output="now"></ma-now>
    
    <ma-calc input="now | maMoment:'subtract':12:'hours'" output="from"></ma-calc>
    
    <ma-get-point-value point-xid="dptest1" point="point1"></ma-get-point-value>
    <ma-get-point-value point-xid="dptest2" point="point2"></ma-get-point-value>
    
    <ma-point-values point="point1" values="point1Values" from="dateBar.from" to="dateBar.to">
    </ma-point-values>
    
    <ma-serial-chart style="height: 300px; width: 100%" series-1-values="point1Values" series-1-point="point1" series-1-type="line" series-1-color="blue" legend="true" balloon="true" on-chart-init="$chart.zoomToDates(from, now)" series-1-graph-options="{id:'graph-id'}" options="{ zoomOutOnDataUpdate:false, valueAxes:[{minimum:0, axisColor:point1Color, color:point1Color}, {axisColor:point2Color, color:point2Color}],chartScrollbar:{autoGridCount: true,resizeEnabled:false,scrollbarHeight: 50, graph:'graph-id' }}">
    </ma-serial-chart>
    

    Can somebody please advice how to use

    on-chart-init="$chart.zoomToDates()"
    

    Or some otherway to create specific prezoom after first rendering.

    Thanks,
    Thomas

    posted in How-To read more
  • Thomas Einasto136

    Hi Phil,

    Thanks for pointing me to the right direction. By changing logging type mango started logging backdated values nicely.

    Many thanks!

    Thomas

    posted in User help read more
  • Thomas Einasto136

    Dear community,

    I am having trouble saving historic data to the mango database using scripting data source.

    I have written a simple script which refreshes my defined modbus datapoint (120 register bulk in UTF-16) and then by decoding the register data saves it to the mango database on specific points at specific time.

    ( Actually right now we want to use mango as a testing system for our own new device as it is much more convienient to use Mango for testing and we have an upcoming project where this functionality would come handy for us to use mango as a system to get datalogger data from the device and then downloading it by using mango).

    If I activate my script I can see that it is working correctly as it should, i.e while validating the script while it has been activated i can see validation response below

    1527013950000
    Setting point TEMPERATUREMEM to 25.093955078125 @22/05/2018 21:32:30
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:32:30
    Setting point CO2MEM to 397.0 @22/05/2018 21:32:30
    1527013960000
    Setting point TEMPERATUREMEM to 25.126130371093744 @22/05/2018 21:32:40
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:32:40
    Setting point CO2MEM to 397.0 @22/05/2018 21:32:40
    1527013970000
    Setting point TEMPERATUREMEM to 25.104680175781247 @22/05/2018 21:32:50
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:32:50
    Setting point CO2MEM to 397.0 @22/05/2018 21:32:50
    1527013980000
    Setting point TEMPERATUREMEM to 25.093955078125 @22/05/2018 21:33:00
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:33:00
    Setting point CO2MEM to 396.0 @22/05/2018 21:33:00
    1527013990000
    Setting point TEMPERATUREMEM to 25.08322998046875 @22/05/2018 21:33:10
    Setting point HUMIDITYMEM to 30.12518310546875 @22/05/2018 21:33:10
    Setting point CO2MEM to 396.0 @22/05/2018 21:33:10
    OOOH OKAYY
    1527014000000
    Setting point TEMPERATUREMEM to 25.05105468749999 @22/05/2018 21:33:20
    Setting point HUMIDITYMEM to 30.163330078125 @22/05/2018 21:33:20
    Setting point CO2MEM to 396.0 @22/05/2018 21:33:20
    1527014010000
    Setting point TEMPERATUREMEM to 25.061779785156254 @22/05/2018 21:33:30
    Setting point HUMIDITYMEM to 30.163330078125 @22/05/2018 21:33:30
    Setting point CO2MEM to 396.0 @22/05/2018 21:33:30
    1527014020000
    Setting point TEMPERATUREMEM to 25.061779785156254 @22/05/2018 21:33:40
    Setting point HUMIDITYMEM to 30.20147705078125 @22/05/2018 21:33:40
    Setting point CO2MEM to 396.0 @22/05/2018 21:33:40
    1527014030000
    Setting point TEMPERATUREMEM to 25.093955078125 @22/05/2018 21:33:50
    Setting point HUMIDITYMEM to 30.163330078125 @22/05/2018 21:33:50
    Setting point CO2MEM to 396.0 @22/05/2018 21:33:50
    1527014040000
    Setting point TEMPERATUREMEM to 25.126130371093744 @22/05/2018 21:34:00
    Setting point HUMIDITYMEM to 30.12518310546875 @22/05/2018 21:34:00
    Setting point CO2MEM to 396.0 @22/05/2018 21:34:00
    1527014050000
    Setting point TEMPERATUREMEM to 25.104680175781247 @22/05/2018 21:34:10
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:34:10
    Setting point CO2MEM to 397.0 @22/05/2018 21:34:10
    1527014060000
    Setting point TEMPERATUREMEM to 25.136855468749992 @22/05/2018 21:34:20
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:34:20
    Setting point CO2MEM to 397.0 @22/05/2018 21:34:20
    1527014070000
    Setting point TEMPERATUREMEM to 25.126130371093744 @22/05/2018 21:34:30
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:34:30
    Setting point CO2MEM to 397.0 @22/05/2018 21:34:30
    1527014080000
    Setting point TEMPERATUREMEM to 25.115405273437496 @22/05/2018 21:34:40
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:34:40
    Setting point CO2MEM to 397.0 @22/05/2018 21:34:40
    1527014090000
    Setting point TEMPERATUREMEM to 25.08322998046875 @22/05/2018 21:34:50
    Setting point HUMIDITYMEM to 30.07940673828125 @22/05/2018 21:34:50
    Setting point CO2MEM to 397.0 @22/05/2018 21:34:50
    

    This ensures that the script is working correctly and saves the read data from the device as I have saved the data on the datalogger every 10 seconds..., time is correct and point value is correct but in reality Mango does not save the historic data to the database and only saves the first sequence of the scripting sequence, and that is also not quite saved as it should.

    This is seen on the datapoint page as we can see that the scripted values do not appear in the datapoint but they should if take the validation into account.

    The number on top of the setting point is the epoch for the date i am using for set point function, i.e.

    pointname.set(value,epoch);
    

    Can someone help me by pointing me to the right direction on what may be wrong ?

    Mango core: 3.2.2+20171009170034

    Thanks,
    Thomas

    posted in User help read more
  • Thomas Einasto136

    Hi Dan,

    I did it by looking the PID of java, as Mango is a java application in the linux env.

    I made a bash program like that:

    #!/bin/bash
    
    if pgrep "java" > /dev/null
    then
    exit 0
    else
    sh /opt/mango/bin/ma.sh start > /dev/null
    exit 1
    fi
    
    

    And put this into a crontab like every x minutes which will check if the java application has crashed or not. If it has then it restarts the mango instance. You can put a reboot command after else so that it will reboot instead of relaunching the application.

    Thomas

    posted in Mango Automation read more
  • Thomas Einasto136

    Hi Phillip,

    To your question about the multiple date-time-pickers: Yes you can in my opinion.

    You can program different objects(watchlists) to behave accordingly to the programmed variables(from1 / from 2 / from(x) | to1 / to2 / to(x) ) like you guessed.

    Each Watchlist will work accordingly to their pointed from/to variables.

    On to your second question I would suggest that a good place to look at is MangoV3 dashboard module examples to get the basic things about the dashboard module works.

    I assume that you are filtering points from the point list which you have created in the datapoints list. Am I on the right idea?

    I would suggest to make things more easier and to use a little bit more code by using Mango specific tags to make things easier for you to program the page and etc as too much filtering on a single tag may lead to problems which might lead into some unwanted results.

    I would agree that this is much more comfortable as you can bulk the points in the list but I am on the thought that you should bring out specific points out seperately if they have one purpose. Someone from Mango will be more educated to talk about this as I have not used this feature(filtering/datapoint listing) so much and this is just my opinon.

    If so then you can use more simple methods on how to accomplish the same principles on hiding / showing the elements on the page.

    To use <div> tag with ng-show on <ma-point-value> here are examples by using <ma-get-point-value> tag with point-xid (which I think is more easier and understandable) and some more.

    <!--  First bring the point to the dashboard -->
    <ma-get-point-value point-xid="your wanted point XID" point="myPoint"></ma-get-point-value>
    
    <!--  Tag used to represent the point in ng-show will be 'myPoint.value' -->
    
    <!--  Now create the div -->
    
    <!--  This is the most understandable how ng-show works. If value equals false then div is shown else not. -->
    <div id="createddiv" ng-show="myPoint.value === false">
    
    <!-- To show point value -->
    The point value equals {{myPoint.value}} .
    
    <!-- To show the object of myPoint (Everything related to myPoint) -->
    The point object equals {{myPoint}} .
    </div>
    
    <!--  And vice-versa -->
    <div id="createddiv" ng-show="myPoint.value === true">
    
    <!-- To show point value -->
    The point value equals {{myPoint.value}} .
    
    <!-- To show the object of myPoint (Everything related to myPoint) -->
    The point object equals {{myPoint}} .
    </div>
    
    <!--  You can also shorten the ng-show by just leaving the value, this means that if value equals true then the div is shown. This is how AngularJS documentation shows how to use ng-show. -->
    <div id="createddiv" ng-show="myPoint.value">
    
    <!-- To show point value -->
    The point value equals {{myPoint.value}} .
    
    <!-- To show the object of myPoint (Everything related to myPoint) -->
    The point object equals {{myPoint | json}} .
    </div>
    
    <!--  You can also shorten the ng-show by just leaving the value and putting ! infront of the variable, this means that if value equals false then the div is shown. This is how AngularJS documentation shows how to use ng-show. -->
    
    <div id="createddiv" ng-show="!myPoint.value">
    
    <!-- To show point value -->
    The point value equals {{myPoint.value}} .
    
    <!-- To show the object of myPoint (Everything related to myPoint) -->
    The point object equals {{myPoint | json}} .
    </div>
    
    
    <!-- You can also create page specific variable which work inside the dashboard to not use binary values within Mango. This variable will be user controlled in their browser. -->
    
    <!-- First lets use the Material Design switch object embedded into Mango. (You can add ng-init="divenabler=true" into the tag to initialize the point with true.) -->
    
     <md-switch ng-model="divenabler" ng-init="divenabler=true" ng-model-options="{getterSetter:true}">
            Is div enabled? : {{ divenabler }}
        </md-switch>
    
    <!-- You can also play with the text -->
    
    <p ng-show="divenabler"> Div is Visible</p>
    <p ng-show="!divenabler"> Div is Hidden</p>
    
    <!--  Now create a similar div but use the previously modeled point in md-switch to show/hide the div -->
    
    <div id="createddiv"  ng-show="divenabler">
    <!-- To show point value from <ma-get-point-value> tag -->
    The point value equals {{myPoint.value}} .
    <!-- To show the object of myPoint (Everything related to myPoint) -->
    The point object equals {{myPoint | json}} .
    </div>
    
    
    <!-- You can also initialize a point with a value which controls ng-show -->
    <div id="createddiv" ng-init="divenablerinit = true" ng-show="divenablerinit">
    <!-- To show point value from <ma-get-point-value> tag -->
    The point value equals {{myPoint.value}} .
    <!-- To show the object of myPoint (Everything related to myPoint) -->
    The point object equals {{myPoint | json}} .
    </div>
    
    

    I hope this helps. I strongly suggest you on looking into the example pages in the dashboard module as all written is stated there also and explained more throughly.

    Thomas

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • Thomas Einasto136

    Hi!

    As for the OS, Mango has been updated to the latest (free version) and chrome version is 60.

    I have been playing around with new mango and noticed some strange behaviour in the dashboard module.

    Some backstory:
    I have created a user with a new permissions tag 'demouser', added read-only data point permissions in legacy so that the user with this tag can read the points as it was previously in Mango 2.x. This works fine so I can be sure that the tag 'demouser' is working in Mango as intended because datapoint permissions are working fine.
    0_1507100480576_97ea2a27-ad59-400e-8162-c45df61fe660-image.png

    While building new pages within the new UI module, (I read somewhere in the forums that you suggested to use them instead of admin page template to keep mango up to date) I have noticed a problem with edit menu section.

    I changed the 'UI — Menu & toolbar' permissions so that the tag 'demouser' can also use this path as seen in the screenshot below. My guess is that this is a directive so that I could use the new date toolbar and the left menu within the new UI for the user. Correct me if I am wrong as I have not gone through the videos.

    0_1507099029459_585415e0-5d2d-44d4-83c4-6ebb52adb0b9-image.png

    So I went on to create a new folder within the new UI folder. Created a new folder within it. Lets call it 'DemoFolder' also adding a permission 'demouser' so that the user could see the folder in the menu.

    0_1507099509029_a9251169-8509-43af-b0f0-c56e8565fa36-image.png

    Also pressing save within the Edit Menu page to save the folder for the module.

    Now I have created a custom page and I will add this to the demo folder with also permission 'demouser'. like this: 0_1507099689946_68b6698f-2e1f-4f88-b019-27583e9da885-image.png

    After clicking save and saving also the hierarchy within the edit menu page I should see the new folder/page if I log in with the demouser as I can see the page poppin up for the admin user. But instead by logging into demouser I cannot see the page.

    Also by looking into console i can see that the permissions are not set for the demouser. note: 0_1507099938344_cb0d05d3-7359-4aab-ac51-cc40d6398cd0-image.png

    I cant seem to grasp what is the problem here as all the settings are set. I tried using the 'user' tag for the permissions and this works fine without problems and the permissions are working as intended. My question is why does mango not like new permissions tags for the new UI.

    Also worth noting as I was building the pages I noticed that sometimes my page / folder just disappeared from the module after saving the hierarchy. After several times I was losing my mind because I was sure that I did not delete it.

    After little testing I can say that I can reproduce this 100 %. Just add a new page/ folder and start clicking on the save button in the 'Edit Menu' page. This will reproduce the disappearance after several clicks. Sometimes it happens just by saving once. I guess after saving, it has not loaded the current saved pages and will save the usual pages and that triggers deletion of your page as Mango has not loaded them for the current save.

    Thomas,

    posted in Dashboard Designer & Custom AngularJS Pages read more
  • Thomas Einasto136

    Hi Phil,

    Sorry but I have already finished with my project and set it up for my client after I noticed the upgrade.

    I will try it on my next upcoming project.

    I guess if you have fixed it then its okay, I was just bringing it out as I noticed it was behaving strangely.

    Thomas

    posted in Mango feedback read more