<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Pop up window (face plate)]]></title><description><![CDATA[<p dir="auto">In old Siemens Desigo we called it Genie and superGenie while in PLC they call it face plate. The face plate is a pop up window that embodied the override command, Alarm status, acknowledgment and rest, and possible some setpoint if the devices under monitor has multiple aggregates. Once you click outside of the floating face plate it will close automatically. In this way we able to hide the details to make the graphics neat and clean and once needed can be expose by the user by clicking the graphic item in the GUI screen.  Hope this be consider in the next release of Mango Automation.</p>
]]></description><link>https://forum.mango-os.com/topic/3720/pop-up-window-face-plate</link><generator>RSS for Node</generator><lastBuildDate>Sun, 14 Jun 2026 04:51:53 GMT</lastBuildDate><atom:link href="https://forum.mango-os.com/topic/3720.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Aug 2018 12:46:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pop up window (face plate) on Mon, 20 May 2019 16:19:14 GMT]]></title><description><![CDATA[<p dir="auto">For anyone that finds this thread, you can create a dialog window in Mango 3.6 very easily -</p>
<pre><code>&lt;ma-button label="Show dialog" ng-click="showDialog = {}"&gt;&lt;/ma-button&gt;

&lt;ma-dialog show-dialog="showDialog"&gt;
    &lt;div&gt;This is the dialog content&lt;/div&gt;
&lt;/ma-dialog&gt;
</code></pre>
]]></description><link>https://forum.mango-os.com/post/22201</link><guid isPermaLink="true">https://forum.mango-os.com/post/22201</guid><dc:creator><![CDATA[Jared Wiltshire]]></dc:creator><pubDate>Mon, 20 May 2019 16:19:14 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Wed, 05 Sep 2018 16:22:52 GMT]]></title><description><![CDATA[<p dir="auto">Ahh, thanks. I wasn't sure if you could specify where the userModule.js was other than from the public store. I would rather use the overrides directory(s) for my code so I will change the path. I had tried to use this directory before but didn't get the path from the ui quite right.</p>
<p dir="auto">I like the way you segment your code. I have been working with a few MVC frameworks over the years as it fits well with the way I code. Sometimes can be fun trying to trace through code but the modularity is great.</p>
<p dir="auto">I saw your segments for interfacing with the json store and data points. Those are my next stop in this trip. :)</p>
<p dir="auto">Ian</p>
]]></description><link>https://forum.mango-os.com/post/19756</link><guid isPermaLink="true">https://forum.mango-os.com/post/19756</guid><dc:creator><![CDATA[iperry]]></dc:creator><pubDate>Wed, 05 Sep 2018 16:22:52 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Wed, 05 Sep 2018 00:28:40 GMT]]></title><description><![CDATA[<p dir="auto">So sorry Ian, didn't mean to perplex you.<br />
I store all of my files in /opt/mango/overrides/web/modules/mangoUI/web/dev directories.<br />
<img src="https://camo.nodebb.org/2003696af34c79b9dd68ce514eb45d7ef5592656?url=https%3A%2F%2Fi.imgur.com%2FICyTqAA.png" alt="0_1536107492653_afcae342-46ab-4138-9e67-6038b10693e4-image.png" class=" img-fluid img-markdown" /><br />
This way I don't need to concern myself with changes or being overwritten with mango updates.</p>
<p dir="auto">So by this I mean userModule.js is<br />
/opt/mango/overrides/web/modules/mangoUI/web/dev/userModule.js</p>
<p dir="auto">the modalDemo.html:<br />
/opt/mango/overrides/web/modules/mangoUI/web/dev/views/modalDemo.html</p>
<p dir="auto">and the settingsModal.js file is in<br />
/opt/mango/overrides/web/modules/mangoUI/web/dev/components/settingsModal.js</p>
<p dir="auto">The reason I do this is to better segment my code. You can put it all in one directory if you'd rather, but as I have done a lot of MVC programming in my PHP days I'm used to separating my model, controller and views for consistency.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/iperry" aria-label="Profile: iperry">@<bdi>iperry</bdi></a> said in <a href="/post/19743">Pop up window (face plate)</a>:</p>
<blockquote>
<p dir="auto">Now to play around with retrieving and saving data to a data point or JSON store.</p>
</blockquote>
<p dir="auto">If you look under the settingsModal.js I've done some code for you to do that.<br />
Just add a button to the view and call the method with <code>$ctrl.saveToStore( )</code> or for a virtual point,<br />
make sure you simply set your virtual point in the savePoint attribute and call the. <code>$ctrl.saveToPoint()</code> method.</p>
<p dir="auto">Hmm, should remove that (data) argument for the JSON store method...</p>
<p dir="auto">Anyway! Once you've got that saving we can look at loading the data and re-populating your fields.</p>
]]></description><link>https://forum.mango-os.com/post/19744</link><guid isPermaLink="true">https://forum.mango-os.com/post/19744</guid><dc:creator><![CDATA[MattFox]]></dc:creator><pubDate>Wed, 05 Sep 2018 00:28:40 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Tue, 04 Sep 2018 23:03:26 GMT]]></title><description><![CDATA[<p dir="auto">Thanks Matt, I was able to get your example working. Now to play around with retrieving and saving data to a data point or JSON store.</p>
<p dir="auto">One thing that confused me was the folder structure that was required. I followed the (Jared's) tutorial that you linked which created the userModule.js in /rest/v2/file-stores/public/userModule.js. You mentioned that within this directory I need to create:<br />
/components/settingsModal.js<br />
/views/modalDemo.html</p>
<p dir="auto">Also, you mentioned creating these directories and files under: /mango/overrides/web/modules/mangoUI/web/dev/</p>
<p dir="auto">It seemed odd that the files would (appear to) be duplicated in these 2 locations.</p>
<p dir="auto">What I found to work was that the settingsModal.js was located in:<br />
/rest/v2/file-stores/public/components/settingsModal.js (based on the path defined in the userModal.js)<br />
and the modalDemo.html was located in:<br />
/mango/overrides/web/modules/mangoUI/web/dev/views/modalDemo.html (based on the path defined in settingsModal.js)</p>
<p dir="auto">Is this correct? It would seem to be bit of a maintenance pain to have the files located in different contexts.</p>
<p dir="auto">This example was great. Thanks again</p>
<p dir="auto">Ian</p>
]]></description><link>https://forum.mango-os.com/post/19743</link><guid isPermaLink="true">https://forum.mango-os.com/post/19743</guid><dc:creator><![CDATA[iperry]]></dc:creator><pubDate>Tue, 04 Sep 2018 23:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Tue, 04 Sep 2018 03:54:02 GMT]]></title><description><![CDATA[<p dir="auto">Well if there is nothing being printed in the console, that's a sign of something working....<br />
Do note that console.log() outputs as an informative text. If you're using chrome, ensure under the console for default levels that it's ticked:<br />
<img src="https://camo.nodebb.org/e3cb7a645c5713c87d88737d40f4fac7c8ed1092?url=https%3A%2F%2Fi.imgur.com%2F6eAPCBl.png" alt="0_1536033304366_69b04a4b-7b42-4aae-95a8-6b49c32ada99-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Secondly, check on the page you have myComponent on and check the console there to ensure there is not some silly form of a clash etc...</p>
<p dir="auto">Fox</p>
]]></description><link>https://forum.mango-os.com/post/19727</link><guid isPermaLink="true">https://forum.mango-os.com/post/19727</guid><dc:creator><![CDATA[MattFox]]></dc:creator><pubDate>Tue, 04 Sep 2018 03:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Tue, 04 Sep 2018 03:42:31 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mattfox" aria-label="Profile: MattFox">@<bdi>MattFox</bdi></a>  Thanks for that tip, I edit the userModule.js like this  to add a second module. don't get any console errors.</p>
<pre><code>define(['angular', 'require','./components/settingsModal.js'], function(angular, require,settingsModal) {
    'use strict';
 var userModule = angular.module('userModule', ['maUiApp']);
try {	
	userModule.component('settingsModal', settingsModal);
    }
catch(e){console.log(e);}	

try{userModule.component('myComponent', {
    bindings: {
        name: '@?'
    },
    template: '&lt;span&gt;Hello {{$ctrl.name}}&lt;/span&gt;'
});
}
catch(e){console.log(e);}

    return userModule;
});
</code></pre>
]]></description><link>https://forum.mango-os.com/post/19726</link><guid isPermaLink="true">https://forum.mango-os.com/post/19726</guid><dc:creator><![CDATA[CraigWeb]]></dc:creator><pubDate>Tue, 04 Sep 2018 03:42:31 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Mon, 03 Sep 2018 20:30:10 GMT]]></title><description><![CDATA[<p dir="auto">Thanks regarding the typo, I'll take a look and will correct it.<br />
As for your user module. You only have one. You append all of your components and controllers to it.<br />
I use a try catch to see where it fails. if you wrap them around each module then you can successfully determine how things are failing without breaking the entire module and losing all of your components/controllers...<br />
Happy to take a look for you. Otherwise feel free to private message me, same goes for Ian and Joey.</p>
<p dir="auto">EDIT:have corrected by adding missing brace</p>
]]></description><link>https://forum.mango-os.com/post/19724</link><guid isPermaLink="true">https://forum.mango-os.com/post/19724</guid><dc:creator><![CDATA[MattFox]]></dc:creator><pubDate>Mon, 03 Sep 2018 20:30:10 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Mon, 03 Sep 2018 13:25:31 GMT]]></title><description><![CDATA[<p dir="auto">For anyone following this thread:<br />
found a small typo on the useModule.js code.  The try block needs to be closed with a }.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mattfox" aria-label="Profile: MattFox">@<bdi>MattFox</bdi></a>  Thank you very much for doing this.  I've been wanting to dive into modules for sometime now but have never been able to find the time.  This will really help with the learning curve.</p>
<p dir="auto">There is just one thing that has got me here.  When I try add a 2nd userModule  my previous one disappears.  Could someone help me with how to do this correctly, it will be very much appreciated.</p>
]]></description><link>https://forum.mango-os.com/post/19723</link><guid isPermaLink="true">https://forum.mango-os.com/post/19723</guid><dc:creator><![CDATA[CraigWeb]]></dc:creator><pubDate>Mon, 03 Sep 2018 13:25:31 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Tue, 04 Sep 2018 23:54:25 GMT]]></title><description><![CDATA[<p dir="auto">OK!<br />
As a starting point to work from. I'll work with you so you learn how it all works as you go...<br />
(All code is placed in the /opt/mango/overrides/web... directories)<br />
/modules/mangoUI/web/dev/components/settingsModal.js</p>
<pre><code>define(['angular', 'require'], function(angular, require) {
'use strict';

/* Date: 1/9/18
	   Author: Matt "Fox" Fox
	   Desc: component written to launch a modal dialog with either a built in template or just spit out a list of points to save one by one.
	*/
	settingsModalController.$inject = ['$mdDialog','maJsonStore'];
		function settingsModalController ($mdDialog,maJsonStore)
		{
			var ctrl = this;
			ctrl.mdDialog = $mdDialog;
			ctrl.parsedOptions=[];
			
			ctrl.values={};
			
			this.$onInit = function()
			{
				if(this.points &amp;&amp; !angular.isArray(this.points))
				{
					console.log('Error: points field not an array of point objects');
				}
				if(this.pointOptions &amp;&amp; !angular.isArray(this.pointOptions) )
				{
					console.log('Error: points options field not an array');
				}
				ctrl.clickOffClose = ctrl.clickOffClose===true?true:false;
				
				
				
				
				
			};
			
			this.$onChanges = function(e)
			{
				console.log(e);
				checkPoints();
			}
			
			function checkPoints()
			{
				ctrl.parsedOptions=[];
				if(ctrl.points &amp;&amp; angular.isArray(ctrl.points))
				{
					if(ctrl.pointOptions &amp;&amp; angular.isArray(ctrl.pointOptions) )
					{
						var ptName,ptDesc;
						for(var i=0; i&lt;ctrl.points.length; i++)
						{
							ptName=ctrl.points[ i ].name;
							ptDesc='';
							if(ctrl.pointOptions[ i ] &amp;&amp; ctrl.pointOptions[ i ].hasOwnProperty('name') )
							{
								ptName = ctrl.pointOptions[ i ].name;
							}
							if(ctrl.pointOptions[ i ] &amp;&amp; ctrl.pointOptions[ i ].hasOwnProperty('desc') )
							{
								ptDesc = ctrl.pointOptions[ i ].desc;
							}
							ctrl.parsedOptions.push( {name:ptName,desc:ptDesc} );
						}
					}
					else
					{
						for(var i=0; i&lt;ctrl.points.length; i++)
						{
							ptName=ctrl.points[ i ].name;
							ptDesc='';
						
							ctrl.parsedOptions.push( {name:ptName,desc:ptDesc} );
						}
					}
				}
				else if(ctrl.pointOptions &amp;&amp; angular.isArray(ctrl.pointOptions) &amp;&amp; !ctrl.points )
				{	
					var ptId, ptName, ptDesc;
					for(var i=0; i&lt;ctrl.pointOptions.length; i++)
					{
						if(ctrl.pointOptions[ i ] &amp;&amp; !ctrl.pointOptions[ i ].hasOwnProperty('name') )
						{
							// ctrl.pointOptions=[];
							ctrl.parsedOptions=[];
							return;
						}
						ptId=i;
						ptDesc='';
						ptName=ctrl.pointOptions[ i ].name;
						if(ctrl.pointOptions[ i ] &amp;&amp; ctrl.pointOptions[ i ].hasOwnProperty('id') )
						{
							ptId = ctrl.pointOptions[ i ].id;
						}
						if(ctrl.pointOptions[ i ] &amp;&amp; ctrl.pointOptions[ i ].hasOwnProperty('desc') )
						{
							ptDesc = ctrl.pointOptions[ i ].desc;
						}						
						ctrl.parsedOptions.push( {id:ptId,name:ptName,desc:ptDesc} );
					}
				}
			}
			
			/* DIALOG CODE */
			ctrl.showDialogue = function(ev) {
			   // ctrl.updateModals();
			   if( ctrl.altTemplateUrl!==undefined  )
			   {
				   try
				   {
					   
					ctrl.mdDialog.show({
					  templateUrl:ctrl.altTemplateUrl, 
					  parent: angular.element(document.body),
					  targetEvent: ev,
					  clickOutsideToClose: ctrl.clickOffClose
					}).then(
						function()
						{
							console.log('function if closed/hidden manually'); 
						},
						function()
						{
							console.log('function to fire if closed from clicking outside/cancelled');
						}
					);
				   }catch(e){console.warn(e);}
			   }
			   else
			   {
				   try{
					   
					ctrl.mdDialog.show({
					  contentElement: '#settingsModal',
					  parent: angular.element(document.body),
					  targetEvent: ev,
					  clickOutsideToClose: ctrl.clickOffClose
					}).then(
						function()
						{
							console.log('function if closed manually'); 
						},
						function()
						{
							console.log('function to fire if closed from clicking outside/cancelled');
						}
					);
				   }catch(e){console.warn(e);}
				}
			};
			
			ctrl.hideDialogue = function() {
				ctrl.mdDialog.hide();
			};

			ctrl.cancel = function() {	  
				ctrl.mdDialog.cancel();
			};
			/* DIALOG CODE END*/
			
			/* JSON Store Stuff: */
			ctrl.saveToStore = function(data=null)
			{
				
				var item = maJsonStore.newItem( ctrl.jsonStore.toLowerCase() );
				item.jsonData = data===null ? ctrl.values : data;
				item.readPermission= "user";
				item.editPermission= "user"; //can change this at your leisure or we can break it out into a setting...
				
				var r = item.$save();
				
				if(r.status)
				{ 
				}
				else
				{ 
				}
			};
			
			ctrl.loadFromStore = function()
			{
				maJsonStore.get({xid: ctrl.jsonStore.toLowerCase() }).$promise.then(function(item) {
				ctrl.values = item.jsonData;
			});
			/* JSON Store Stuff END: */
			};
			
			/* Virtual Point Save stuff */
			ctrl.saveToPoint = function()
			{
				if(ctrl.savePoint===undefined)
				{
					alert('Point to save to not set as attribute!');
					return;
				}
				ctrl.savePoint.setValue( JSON.stringify(ctrl.values) );
			};	
			
			/* Virtual Point Save stuff END */
	}
		
		
		
	
	var settingsModal={
		bindings:{
			jsonStore: '&lt;?', 		//Store name to save settings to
			savePoint: '&lt;?', 		//alternatively, save my JSON to a virtual pt, MUST BE TYPE DATAPOINT...
			altTemplateUrl:'=?', 	//If we want to use the popup to show something else: use this template...
			modalTitle:'=?', 		//seemed like a good idea at the time... will only work if altTemplateUrl is empty
			clickOffClose:'=?', 	//set to true to click outside modal to shut it
			pointOptions:'&lt;?', 	//Alternate names for points,  (object array) [{id:'',name:'',desc:''}], id used for key name if using json/virtual point save
			points: '&lt;?',			 //Array of points to set individually
		},
		controller: settingsModalController,
		templateUrl:'/modules/mangoUI/web/dev/views/modalDemo.html'
	};
	
	return settingsModal;
});
</code></pre>
<p dir="auto">and the template markup to add:<br />
/modules/mangoUI/web/dev/views/modalDemo.html</p>
<pre><code> &lt;ma-button  hue="hue-2" palette="primary" label="Open Dialogue" ng-click="$ctrl.showDialogue()" raised="true"&gt;&lt;/ma-button&gt;
 &lt;div ng-if="!$ctrl.altTemplateUrl" style="visibility: hidden"&gt;
    &lt;div class="md-dialog-container" id="settingsModal"&gt;
      &lt;md-dialog layout-padding&gt;
			&lt;md-dialog-actions&gt;&lt;md-button ng-if="!$ctrl.clickOffClose" ng-click="$ctrl.cancel()" class="md-primary"&gt;x&lt;/md-button&gt;&lt;/md-dialog-actions&gt;
 &lt;div ng-if="!$ctrl.points &amp;&amp; !$ctrl.parsedOptions"&gt;
		Custom markup needed!
		&lt;/div&gt;
		 
       &lt;h1 ng-if="$ctrl.modalTitle!==undefined"&gt;{{$ctrl.modalTitle}}&lt;/h1&gt; &lt;small ng-if="$ctrl.clickOffClose"&gt;Click outside dialogue to close&lt;/small&gt;
		
		&lt;div ng-if="$ctrl.points"&gt;
		&lt;md-input-container ng-repeat="(index,point) in $ctrl.points" style="display:block;width:100%;"&gt;
	   {{$ctrl.parsedOptions[index].name}}
			&lt;br/&gt;	
	   {{$ctrl.parsedOptions[index].desc}}
			&lt;br/&gt;	
			
		&lt;span style="display:inline-block;"&gt;Current Value: &lt;ma-point-value style="display:inline-block;" point="point" &gt;&lt;/ma-point-value&gt;&lt;/span&gt;
		 &lt;ma-set-point-value  point="point" show-button="true"&gt;&lt;/ma-set-point-value&gt; 
		&lt;/md-input-container&gt;
		&lt;/div&gt;
		&lt;div ng-if="!$ctrl.points &amp;&amp; $ctrl.parsedOptions.length&gt;0"&gt;
			&lt;md-input-container ng-repeat="input in $ctrl.parsedOptions"&gt;
			{{input.name}}&lt;br/&gt;{{input.desc}}
			&lt;input ng-model="$ctrl.values[ input.id ]"/&gt;
			&lt;/md-input-container&gt;
		&lt;/div&gt;
		
      &lt;/md-dialog&gt;
    &lt;/div&gt;
  &lt;/div&gt;
</code></pre>
<p dir="auto">More than happy to help you work through this (it will be a bit of a crash course)<br />
I've not added the buttons on the template for saving using a virtual point or JSON store, but that can be added quite easily.<br />
Basically you can generate a popup which will populate with inputs that can be named, given an ID and a description if necessary.  This can also be used to override point names to more 'user friendly' equivalents for your users if they're filling out items in the dialogue box.</p>
<p dir="auto">inside the userModule.js directory (assuming that's the name of the file you've followed from Jared's tutorial) you'll want this structure:</p>
<p dir="auto">/userModule.js<br />
/components/settingsModal.js<br />
/views/modalDemo.html</p>
<p dir="auto">and inside userModule.js you'll want this:</p>
<pre><code>define(['angular', 'require','./components/settingsModal.js'], function(angular, require,settingsModal) {
    'use strict';
 var userModule = angular.module('userModule', ['maUiApp']);
try {	
	userModule.component('settingsModal', settingsModal);
}
catch(e){console.log(e);}	
    return userModule;
});
</code></pre>
<p dir="auto">Markup in the dashboard page builder will be:</p>
<pre><code>&lt;settings-modal point-options="[{id:'test',name:'input 1',desc:'input test 1'},{id:'test2',name:'input 2',desc:'input test 2'}]" points="vp" click-off-close="true"&gt;&lt;/settings-modal&gt;
</code></pre>
<p dir="auto">See if you can get the popup showing for you first. I'm using 3.4.1 so I'm not completely sure if this will be affected in your version of mangoUI...</p>
<p dir="auto">Fox</p>
<p dir="auto">EDIT: sorry I'll be sure to add some more code comments later...<br />
New Edit: added data to save to store as an optional argument</p>
]]></description><link>https://forum.mango-os.com/post/19718</link><guid isPermaLink="true">https://forum.mango-os.com/post/19718</guid><dc:creator><![CDATA[MattFox]]></dc:creator><pubDate>Tue, 04 Sep 2018 23:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Thu, 30 Aug 2018 19:07:33 GMT]]></title><description><![CDATA[<p dir="auto">Thanks, that would be great. Don't go to too much trouble on it. :)</p>
]]></description><link>https://forum.mango-os.com/post/19703</link><guid isPermaLink="true">https://forum.mango-os.com/post/19703</guid><dc:creator><![CDATA[iperry]]></dc:creator><pubDate>Thu, 30 Aug 2018 19:07:33 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Thu, 30 Aug 2018 17:44:57 GMT]]></title><description><![CDATA[<p dir="auto">Sure happy to. I won't be near a computer today due to having to work off site. I will however quite happily smack out tomorrow for you both. If that's ok.<br />
Thanks for giving me your requirements Ian, I'll whack it out fairly quickly.</p>
<p dir="auto">Fox</p>
]]></description><link>https://forum.mango-os.com/post/19692</link><guid isPermaLink="true">https://forum.mango-os.com/post/19692</guid><dc:creator><![CDATA[MattFox]]></dc:creator><pubDate>Thu, 30 Aug 2018 17:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Thu, 30 Aug 2018 17:28:30 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/mattfox" aria-label="Profile: MattFox">@<bdi>MattFox</bdi></a></p>
<p dir="auto">Are you still able to post a sample of a modal popup? I was able to get the user module example created and working but I have yet been able to find an example of a modal that seems to fit within the framework.</p>
<p dir="auto">The intention of the modal is to allow users to add information about a sensor, such as GPS coordinates, add alarm setpoints, calibration values, etc. This data would then be saved to either a (virtual) data point or the JSON store.</p>
<p dir="auto">Thanks<br />
Ian</p>
]]></description><link>https://forum.mango-os.com/post/19691</link><guid isPermaLink="true">https://forum.mango-os.com/post/19691</guid><dc:creator><![CDATA[iperry]]></dc:creator><pubDate>Thu, 30 Aug 2018 17:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Sun, 26 Aug 2018 19:57:16 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/joey-uson" aria-label="Profile: joey-uson">@<bdi>joey-uson</bdi></a><br />
So from what I'm seeing here, it's a static one off popup for setting a point's value between a min and max limit.<br />
This can be implemented either with a dropdown select or a range slider (this is assuming all values are numeric) a point to set this value to, and a toggled point for stating whether you are running manually or not. At least with a dropdown, you can set all possible values (but then this starts getting messy if you need a range).<br />
The other is to check what is inputted into your set value box on change and ensure it is numerical and between the ranges set for your min and max.<br />
Does this sound about right?<br />
I was thinking of something generic for you. You insert the points you want to set as parameters and it spits them out into a separate template you have in your overrides folder.<br />
So in total, 2 datapoints, and min and max attributes on a per point basis. let me know if i'm missing anything (ie the min and max are also configured by a point)</p>
]]></description><link>https://forum.mango-os.com/post/19644</link><guid isPermaLink="true">https://forum.mango-os.com/post/19644</guid><dc:creator><![CDATA[MattFox]]></dc:creator><pubDate>Sun, 26 Aug 2018 19:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Sun, 26 Aug 2018 12:04:39 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/mattfox" aria-label="Profile: mattfox">@<bdi>mattfox</bdi></a> ,</p>
<p dir="auto">Actually I'm studying right now  AngularJS and starting to understand the Model,View and Controller . Most of the time I learn by inspecting the code and running it to see the results. What actually the face plate has are as follows:</p>
<ol>
<li>Setpoint, 2 Minimum Limit, 3. Maximum Limit (limits are used for setting the low and/or high limit alarm), 4. Override bits (set to manual or Automatic mode). Basically all those points can be define as virtual points so it practically take the points after selecting the data source.</li>
</ol>
<p dir="auto">Hope you could share the pop up panel and I'll try to work on it.</p>
<p dir="auto">Thanks</p>
<p dir="auto">Joey</p>
]]></description><link>https://forum.mango-os.com/post/19642</link><guid isPermaLink="true">https://forum.mango-os.com/post/19642</guid><dc:creator><![CDATA[Joey Uson]]></dc:creator><pubDate>Sun, 26 Aug 2018 12:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Mon, 20 Aug 2018 00:46:33 GMT]]></title><description><![CDATA[<p dir="auto">What you all are not pointing out to Joey is that he needs to write a controller to handle all of the actions required. Simply pointing to a resource is useless if they are not familiar with programming in AngularJS and javascript.<br />
Joey if you are comfortable with the idea of custom code used to extend your system, I will provide you with what you need to do. Although you will need to understand how a component functions with the view and neec to know what variables you need to update/set for your page.<br />
Start here to see if you can make this work - if successful i'll fill out the blanks for you to make a reasonably generic popup panel<br />
<a href="https://help.infiniteautomation.com/getting-started-with-a-user-module/" rel="nofollow ugc">https://help.infiniteautomation.com/getting-started-with-a-user-module/</a></p>
<p dir="auto">We can make it look pretty after that.</p>
]]></description><link>https://forum.mango-os.com/post/19593</link><guid isPermaLink="true">https://forum.mango-os.com/post/19593</guid><dc:creator><![CDATA[MattFox]]></dc:creator><pubDate>Mon, 20 Aug 2018 00:46:33 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Sun, 19 Aug 2018 13:01:10 GMT]]></title><description><![CDATA[<p dir="auto">I believe the easiest way for you will be to use a <code>&lt;md-tooltip &gt;***put the markup that you want to see in here ***&lt;/md-tooltip&gt;</code> on the element that you want to have the pop up.  As you get more comfortable with angularJS.  You'l see that the best way forward is to make your own modules "reusable graphic libraries".  Although mango does not come with all the pre-made libraries that Siemans has.  It is far more customisable.</p>
]]></description><link>https://forum.mango-os.com/post/19592</link><guid isPermaLink="true">https://forum.mango-os.com/post/19592</guid><dc:creator><![CDATA[CraigWeb]]></dc:creator><pubDate>Sun, 19 Aug 2018 13:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Sun, 19 Aug 2018 11:12:22 GMT]]></title><description><![CDATA[<p dir="auto">Not to say something but the link has the source code of all the dialogs if you click on top right corner of each example md-card. To make it more dynamic you should program it with Angular components/directives.</p>
]]></description><link>https://forum.mango-os.com/post/19590</link><guid isPermaLink="true">https://forum.mango-os.com/post/19590</guid><dc:creator><![CDATA[ThomasEinasto]]></dc:creator><pubDate>Sun, 19 Aug 2018 11:12:22 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Sun, 19 Aug 2018 10:56:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/thomaseinasto" aria-label="Profile: thomaseinasto">@<bdi>thomaseinasto</bdi></a></p>
<p dir="auto">Yeah I think this is the right solution, unfortunately I come from Siemens Automation background and need to study the AngularJS as you mention in your comment., If you could share a simple example would be great.</p>
]]></description><link>https://forum.mango-os.com/post/19589</link><guid isPermaLink="true">https://forum.mango-os.com/post/19589</guid><dc:creator><![CDATA[Joey Uson]]></dc:creator><pubDate>Sun, 19 Aug 2018 10:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to Pop up window (face plate) on Thu, 16 Aug 2018 15:07:47 GMT]]></title><description><![CDATA[<p dir="auto">If I understand it correctly you would like to create some dialog window where you can override some settings or set some point values and then if user clicks outside of the window the window will close automatically.</p>
<p dir="auto">I would use md-dialog for something like that which Mango has...<br />
<a href="https://material.angularjs.org/latest/demo/dialog" rel="nofollow ugc">https://material.angularjs.org/latest/demo/dialog</a></p>
<p dir="auto">This however needs programming to be customized to your needs.</p>
<p dir="auto">Thomas</p>
]]></description><link>https://forum.mango-os.com/post/19548</link><guid isPermaLink="true">https://forum.mango-os.com/post/19548</guid><dc:creator><![CDATA[ThomasEinasto]]></dc:creator><pubDate>Thu, 16 Aug 2018 15:07:47 GMT</pubDate></item></channel></rss>