Commit 2202ef7814294936df7e49d8fd5f46713c32638b

Authored by Igor Kulikov
Committed by GitHub
2 parents 86779276 87b23f49

Merge pull request #3277 from mp-loki/feature/sorted-metadata-keys

Display sorted metadata keys in rule nodes
@@ -150,7 +150,8 @@ function Utils($mdColorPalette, $rootScope, $window, $translate, $q, $timeout, t @@ -150,7 +150,8 @@ function Utils($mdColorPalette, $rootScope, $window, $translate, $q, $timeout, t
150 customTranslation: customTranslation, 150 customTranslation: customTranslation,
151 objToBase64: objToBase64, 151 objToBase64: objToBase64,
152 base64toObj: base64toObj, 152 base64toObj: base64toObj,
153 - loadImageAspect: loadImageAspect 153 + loadImageAspect: loadImageAspect,
  154 + sortObjectKeys: sortObjectKeys
154 } 155 }
155 156
156 return service; 157 return service;
@@ -605,4 +606,14 @@ function Utils($mdColorPalette, $rootScope, $window, $translate, $q, $timeout, t @@ -605,4 +606,14 @@ function Utils($mdColorPalette, $rootScope, $window, $translate, $q, $timeout, t
605 return deferred.promise; 606 return deferred.promise;
606 } 607 }
607 608
  609 + function sortObjectKeys(obj) {
  610 + var sortedObj = {};
  611 + var keys = Object.keys(obj).sort();
  612 + for (var i = 0; i < keys.length; i++) {
  613 + var key = keys[i];
  614 + sortedObj[key] = obj[key];
  615 + }
  616 + return sortedObj;
  617 + }
  618 +
608 } 619 }
@@ -25,7 +25,7 @@ import eventRowDebugRuleNodeTemplate from './event-row-debug-rulenode.tpl.html'; @@ -25,7 +25,7 @@ import eventRowDebugRuleNodeTemplate from './event-row-debug-rulenode.tpl.html';
25 /* eslint-enable import/no-unresolved, import/default */ 25 /* eslint-enable import/no-unresolved, import/default */
26 26
27 /*@ngInject*/ 27 /*@ngInject*/
28 -export default function EventRowDirective($compile, $templateCache, $mdDialog, $document, types) { 28 +export default function EventRowDirective($compile, $templateCache, $mdDialog, $document, types, utils) {
29 29
30 var linker = function (scope, element, attrs) { 30 var linker = function (scope, element, attrs) {
31 31
@@ -71,11 +71,18 @@ export default function EventRowDirective($compile, $templateCache, $mdDialog, $ @@ -71,11 +71,18 @@ export default function EventRowDirective($compile, $templateCache, $mdDialog, $
71 if (!contentType) { 71 if (!contentType) {
72 contentType = null; 72 contentType = null;
73 } 73 }
  74 + var sortedContent;
  75 + try {
  76 + sortedContent = angular.toJson(utils.sortObjectKeys(angular.fromJson(content)));
  77 + }
  78 + catch(err) {
  79 + sortedContent = content;
  80 + }
74 $mdDialog.show({ 81 $mdDialog.show({
75 controller: 'EventContentDialogController', 82 controller: 'EventContentDialogController',
76 controllerAs: 'vm', 83 controllerAs: 'vm',
77 templateUrl: eventErrorDialogTemplate, 84 templateUrl: eventErrorDialogTemplate,
78 - locals: {content: content, title: title, contentType: contentType, showingCallback: onShowingCallback}, 85 + locals: {content: sortedContent, title: title, contentType: contentType, showingCallback: onShowingCallback},
79 parent: angular.element($document[0].body), 86 parent: angular.element($document[0].body),
80 fullscreen: true, 87 fullscreen: true,
81 targetEvent: $event, 88 targetEvent: $event,
@@ -20,7 +20,7 @@ import nodeScriptTestTemplate from './node-script-test.tpl.html'; @@ -20,7 +20,7 @@ import nodeScriptTestTemplate from './node-script-test.tpl.html';
20 /* eslint-enable import/no-unresolved, import/default */ 20 /* eslint-enable import/no-unresolved, import/default */
21 21
22 /*@ngInject*/ 22 /*@ngInject*/
23 -export default function NodeScriptTest($q, $mdDialog, $document, ruleChainService) { 23 +export default function NodeScriptTest($q, $mdDialog, $document, ruleChainService, utils) {
24 24
25 var service = { 25 var service = {
26 testNodeScript: testNodeScript 26 testNodeScript: testNodeScript
@@ -89,6 +89,8 @@ export default function NodeScriptTest($q, $mdDialog, $document, ruleChainServic @@ -89,6 +89,8 @@ export default function NodeScriptTest($q, $mdDialog, $document, ruleChainServic
89 deviceName: "Test Device", 89 deviceName: "Test Device",
90 ts: new Date().getTime() + "" 90 ts: new Date().getTime() + ""
91 }; 91 };
  92 + } else {
  93 + metadata = utils.sortObjectKeys(metadata);
92 } 94 }
93 if (!msgType) { 95 if (!msgType) {
94 msgType = "POST_TELEMETRY_REQUEST"; 96 msgType = "POST_TELEMETRY_REQUEST";