Commit fd251f0d9a82d38d228902a9c652b3b7679d2c9a
1 parent
aa4787e9
Fix Turkish localization. Update angular material version to 1.1.9. Fix 0 digita…
…l gauges value when no animation.
Showing
38 changed files
with
309 additions
and
114 deletions
... | ... | @@ -15,7 +15,7 @@ |
15 | 15 | "resources": [], |
16 | 16 | "templateHtml": "", |
17 | 17 | "templateCss": "#container {\n overflow: auto;\n}\n\n.tbDatasource-container {\n margin: 5px;\n padding: 8px;\n}\n\n.tbDatasource-title {\n font-size: 1.200rem;\n font-weight: 500;\n padding-bottom: 10px;\n}\n\n.tbDatasource-table {\n width: 100%;\n box-shadow: 0 0 10px #ccc;\n border-collapse: collapse;\n white-space: nowrap;\n font-size: 1.000rem;\n color: #757575;\n}\n\n.tbDatasource-table td {\n position: relative;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n padding: 0px 18px;\n box-sizing: border-box;\n}", |
18 | - "controllerScript": "self.onInit = function() {\n \n self.ctx.datasourceTitleCells = [];\n self.ctx.valueCells = [];\n self.ctx.labelCells = [];\n \n for (var i=0; i < self.ctx.datasources.length; i++) {\n var tbDatasource = self.ctx.datasources[i];\n\n var datasourceId = 'tbDatasource' + i;\n self.ctx.$container.append(\n \"<div id='\" + datasourceId +\n \"' class='tbDatasource-container'></div>\"\n );\n\n var datasourceContainer = $('#' + datasourceId,\n self.ctx.$container);\n\n datasourceContainer.append(\n \"<div class='tbDatasource-title'>\" +\n tbDatasource.name + \"</div>\"\n );\n \n var datasourceTitleCell = $('.tbDatasource-title', datasourceContainer);\n self.ctx.datasourceTitleCells.push(datasourceTitleCell);\n \n var tableId = 'table' + i;\n datasourceContainer.append(\n \"<table id='\" + tableId +\n \"' class='tbDatasource-table'><col width='30%'><col width='70%'></table>\"\n );\n var table = $('#' + tableId, self.ctx.$container);\n\n for (var a = 0; a < tbDatasource.dataKeys.length; a++) {\n var dataKey = tbDatasource.dataKeys[a];\n var labelCellId = 'labelCell' + a;\n var cellId = 'cell' + a;\n table.append(\"<tr><td id='\" + labelCellId + \"'>\" + dataKey.label +\n \"</td><td id='\" + cellId +\n \"'></td></tr>\");\n var labelCell = $('#' + labelCellId, table);\n self.ctx.labelCells.push(labelCell);\n var valueCell = $('#' + cellId, table);\n self.ctx.valueCells.push(valueCell);\n }\n } \n \n self.onResize();\n}\n\nself.onDataUpdated = function() {\n for (var i = 0; i < self.ctx.valueCells.length; i++) {\n var cellData = self.ctx.data[i];\n console.log(self.ctx); //del\n if (cellData && cellData.data && cellData.data.length > 0) {\n var tvPair = cellData.data[cellData.data.length -\n 1];\n var value = tvPair[1];\n var textValue;\n //toDo -> + IsNumber\n \n if (isNumber(value)) {\n var decimals = self.ctx.decimals;\n var units = self.ctx.units;\n if (cellData.dataKey.decimals || cellData.dataKey.decimals === 0) {\n decimals = cellData.dataKey.decimals;\n }\n if (cellData.dataKey.units) {\n units = cellData.dataKey.units;\n }\n txtValue = self.ctx.utils.formatValue(value, decimals, units, true);\n } else {\n txtValue = value;\n }\n self.ctx.valueCells[i].html(txtValue);\n }\n }\n \n function isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n}\n\nself.onResize = function() {\n var datasoirceTitleFontSize = self.ctx.height/8;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n datasoirceTitleFontSize = self.ctx.width/12;\n }\n datasoirceTitleFontSize = Math.min(datasoirceTitleFontSize, 20);\n for (var i = 0; i < self.ctx.datasourceTitleCells.length; i++) {\n self.ctx.datasourceTitleCells[i].css('font-size', datasoirceTitleFontSize+'px');\n }\n var valueFontSize = self.ctx.height/9;\n var labelFontSize = self.ctx.height/9;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n valueFontSize = self.ctx.width/15;\n labelFontSize = self.ctx.width/15;\n }\n valueFontSize = Math.min(valueFontSize, 18);\n labelFontSize = Math.min(labelFontSize, 18);\n\n for (i = 0; i < self.ctx.valueCells; i++) {\n self.ctx.valueCells[i].css('font-size', valueFontSize+'px');\n self.ctx.valueCells[i].css('height', valueFontSize*2.5+'px');\n self.ctx.valueCells[i].css('padding', '0px ' + valueFontSize + 'px');\n self.ctx.labelCells[i].css('font-size', labelFontSize+'px');\n self.ctx.labelCells[i].css('height', labelFontSize*2.5+'px');\n self.ctx.labelCells[i].css('padding', '0px ' + labelFontSize + 'px');\n } \n}\n\nself.onDestroy = function() {\n}\n", | |
18 | + "controllerScript": "self.onInit = function() {\n \n self.ctx.datasourceTitleCells = [];\n self.ctx.valueCells = [];\n self.ctx.labelCells = [];\n \n for (var i=0; i < self.ctx.datasources.length; i++) {\n var tbDatasource = self.ctx.datasources[i];\n\n var datasourceId = 'tbDatasource' + i;\n self.ctx.$container.append(\n \"<div id='\" + datasourceId +\n \"' class='tbDatasource-container'></div>\"\n );\n\n var datasourceContainer = $('#' + datasourceId,\n self.ctx.$container);\n\n datasourceContainer.append(\n \"<div class='tbDatasource-title'>\" +\n tbDatasource.name + \"</div>\"\n );\n \n var datasourceTitleCell = $('.tbDatasource-title', datasourceContainer);\n self.ctx.datasourceTitleCells.push(datasourceTitleCell);\n \n var tableId = 'table' + i;\n datasourceContainer.append(\n \"<table id='\" + tableId +\n \"' class='tbDatasource-table'><col width='30%'><col width='70%'></table>\"\n );\n var table = $('#' + tableId, self.ctx.$container);\n\n for (var a = 0; a < tbDatasource.dataKeys.length; a++) {\n var dataKey = tbDatasource.dataKeys[a];\n var labelCellId = 'labelCell' + a;\n var cellId = 'cell' + a;\n table.append(\"<tr><td id='\" + labelCellId + \"'>\" + dataKey.label +\n \"</td><td id='\" + cellId +\n \"'></td></tr>\");\n var labelCell = $('#' + labelCellId, table);\n self.ctx.labelCells.push(labelCell);\n var valueCell = $('#' + cellId, table);\n self.ctx.valueCells.push(valueCell);\n }\n } \n \n self.onResize();\n}\n\nself.onDataUpdated = function() {\n for (var i = 0; i < self.ctx.valueCells.length; i++) {\n var cellData = self.ctx.data[i];\n if (cellData && cellData.data && cellData.data.length > 0) {\n var tvPair = cellData.data[cellData.data.length -\n 1];\n var value = tvPair[1];\n var textValue;\n //toDo -> + IsNumber\n \n if (isNumber(value)) {\n var decimals = self.ctx.decimals;\n var units = self.ctx.units;\n if (cellData.dataKey.decimals || cellData.dataKey.decimals === 0) {\n decimals = cellData.dataKey.decimals;\n }\n if (cellData.dataKey.units) {\n units = cellData.dataKey.units;\n }\n txtValue = self.ctx.utils.formatValue(value, decimals, units, true);\n } else {\n txtValue = value;\n }\n self.ctx.valueCells[i].html(txtValue);\n }\n }\n \n function isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n}\n\nself.onResize = function() {\n var datasoirceTitleFontSize = self.ctx.height/8;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n datasoirceTitleFontSize = self.ctx.width/12;\n }\n datasoirceTitleFontSize = Math.min(datasoirceTitleFontSize, 20);\n for (var i = 0; i < self.ctx.datasourceTitleCells.length; i++) {\n self.ctx.datasourceTitleCells[i].css('font-size', datasoirceTitleFontSize+'px');\n }\n var valueFontSize = self.ctx.height/9;\n var labelFontSize = self.ctx.height/9;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n valueFontSize = self.ctx.width/15;\n labelFontSize = self.ctx.width/15;\n }\n valueFontSize = Math.min(valueFontSize, 18);\n labelFontSize = Math.min(labelFontSize, 18);\n\n for (i = 0; i < self.ctx.valueCells; i++) {\n self.ctx.valueCells[i].css('font-size', valueFontSize+'px');\n self.ctx.valueCells[i].css('height', valueFontSize*2.5+'px');\n self.ctx.valueCells[i].css('padding', '0px ' + valueFontSize + 'px');\n self.ctx.labelCells[i].css('font-size', labelFontSize+'px');\n self.ctx.labelCells[i].css('height', labelFontSize*2.5+'px');\n self.ctx.labelCells[i].css('padding', '0px ' + labelFontSize + 'px');\n } \n}\n\nself.onDestroy = function() {\n}\n", | |
19 | 19 | "settingsSchema": "{}", |
20 | 20 | "dataKeySettingsSchema": "{}\n", |
21 | 21 | "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{},\"title\":\"Attributes card\"}" | ... | ... |
... | ... | @@ -26,7 +26,7 @@ |
26 | 26 | "angular-gridster": "^0.13.14", |
27 | 27 | "angular-hotkeys": "^1.7.0", |
28 | 28 | "angular-jwt": "^0.1.6", |
29 | - "angular-material": "1.1.1", | |
29 | + "angular-material": "1.1.9", | |
30 | 30 | "angular-material-data-table": "^0.10.9", |
31 | 31 | "angular-material-icons": "^0.7.1", |
32 | 32 | "angular-material-expansion-panel": "^0.7.2", |
... | ... | @@ -63,7 +63,7 @@ |
63 | 63 | "leaflet-providers": "^1.1.17", |
64 | 64 | "material-ui": "^0.16.1", |
65 | 65 | "material-ui-number-input": "^5.0.16", |
66 | - "md-color-picker": "^0.2.6", | |
66 | + "md-color-picker": "0.2.6", | |
67 | 67 | "mdPickers": "git://github.com/alenaksu/mdPickers.git#0.7.5", |
68 | 68 | "moment": "^2.15.0", |
69 | 69 | "ngclipboard": "^1.1.1", | ... | ... |
... | ... | @@ -50,7 +50,7 @@ export default function AlarmRowDirective($compile, $templateCache, types, $mdDi |
50 | 50 | parent: angular.element($document[0].body), |
51 | 51 | targetEvent: $event, |
52 | 52 | fullscreen: true, |
53 | - skipHide: true, | |
53 | + multiple: true, | |
54 | 54 | onShowing: function(scope, element) { |
55 | 55 | onShowingCallback.onShowing(scope, element); |
56 | 56 | } | ... | ... |
... | ... | @@ -31,6 +31,7 @@ import 'angular-translate-interpolation-messageformat'; |
31 | 31 | import 'md-color-picker'; |
32 | 32 | import mdPickers from 'mdPickers'; |
33 | 33 | import ngSanitize from 'angular-sanitize'; |
34 | +import FBAngular from 'angular-fullscreen'; | |
34 | 35 | import vAccordion from 'v-accordion'; |
35 | 36 | import ngAnimate from 'angular-animate'; |
36 | 37 | import 'angular-websocket'; |
... | ... | @@ -65,6 +66,7 @@ import 'angular-material-expansion-panel/dist/md-expansion-panel.min.css'; |
65 | 66 | import 'ngFlowchart/dist/flowchart.css'; |
66 | 67 | import '../scss/main.scss'; |
67 | 68 | |
69 | +import thingsboardThirdpartyFix from './common/thirdparty-fix'; | |
68 | 70 | import thingsboardTranslateHandler from './locale/translate-handler'; |
69 | 71 | import thingsboardLogin from './login'; |
70 | 72 | import thingsboardDialogs from './components/datakey-config-dialog.controller'; |
... | ... | @@ -105,6 +107,7 @@ angular.module('thingsboard', [ |
105 | 107 | 'mdColorPicker', |
106 | 108 | mdPickers, |
107 | 109 | ngSanitize, |
110 | + FBAngular.name, | |
108 | 111 | vAccordion, |
109 | 112 | ngAnimate, |
110 | 113 | 'ngWebSocket', |
... | ... | @@ -118,6 +121,7 @@ angular.module('thingsboard', [ |
118 | 121 | react.name, |
119 | 122 | 'flow', |
120 | 123 | 'flowchart', |
124 | + thingsboardThirdpartyFix, | |
121 | 125 | thingsboardTranslateHandler, |
122 | 126 | thingsboardLogin, |
123 | 127 | thingsboardDialogs, | ... | ... |
... | ... | @@ -48,7 +48,7 @@ export default function AuditLogRowDirective($compile, $templateCache, types, $m |
48 | 48 | parent: angular.element($document[0].body), |
49 | 49 | targetEvent: $event, |
50 | 50 | fullscreen: true, |
51 | - skipHide: true, | |
51 | + multiple: true, | |
52 | 52 | onShowing: function(scope, element) { |
53 | 53 | onShowingCallback.onShowing(scope, element); |
54 | 54 | } | ... | ... |
ui/src/app/common/thirdparty-fix.js
0 → 100644
1 | +/* | |
2 | + * Copyright © 2016-2018 The Thingsboard Authors | |
3 | + * | |
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | + * you may not use this file except in compliance with the License. | |
6 | + * You may obtain a copy of the License at | |
7 | + * | |
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | |
9 | + * | |
10 | + * Unless required by applicable law or agreed to in writing, software | |
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | + * See the License for the specific language governing permissions and | |
14 | + * limitations under the License. | |
15 | + */ | |
16 | + | |
17 | +import tinycolor from 'tinycolor2'; | |
18 | + | |
19 | +export default angular.module('thingsboard.thirdpartyFix', []) | |
20 | + .factory('Fullscreen', Fullscreen) | |
21 | + .factory('$mdColorPicker', mdColorPicker) | |
22 | + .name; | |
23 | + | |
24 | +/*@ngInject*/ | |
25 | +function Fullscreen($document, $rootScope) { | |
26 | + | |
27 | + /* eslint-disable */ | |
28 | + | |
29 | + var document = $document[0]; | |
30 | + | |
31 | + // ensure ALLOW_KEYBOARD_INPUT is available and enabled | |
32 | + var isKeyboardAvailbleOnFullScreen = (typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element) && Element.ALLOW_KEYBOARD_INPUT; | |
33 | + | |
34 | + var emitter = $rootScope.$new(); | |
35 | + | |
36 | + // listen event on document instead of element to avoid firefox limitation | |
37 | + // see https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode | |
38 | + $document.on('fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange', function(){ | |
39 | + emitter.$emit('FBFullscreen.change', serviceInstance.isEnabled()); | |
40 | + }); | |
41 | + | |
42 | + var serviceInstance = { | |
43 | + $on: angular.bind(emitter, emitter.$on), | |
44 | + all: function() { | |
45 | + serviceInstance.enable( document.documentElement ); | |
46 | + }, | |
47 | + enable: function(element) { | |
48 | + if(element.requestFullScreen) { | |
49 | + element.requestFullScreen(); | |
50 | + } else if(element.mozRequestFullScreen) { | |
51 | + element.mozRequestFullScreen(); | |
52 | + } else if(element.webkitRequestFullscreen) { | |
53 | + // Safari temporary fix | |
54 | + //if (/Version\/[\d]{1,2}(\.[\d]{1,2}){1}(\.(\d){1,2}){0,1} Safari/.test(navigator.userAgent)) { | |
55 | + if (/Safari/.test(navigator.userAgent)) { | |
56 | + element.webkitRequestFullscreen(); | |
57 | + } else { | |
58 | + element.webkitRequestFullscreen(isKeyboardAvailbleOnFullScreen); | |
59 | + } | |
60 | + } else if (element.msRequestFullscreen) { | |
61 | + element.msRequestFullscreen(); | |
62 | + } | |
63 | + }, | |
64 | + cancel: function() { | |
65 | + if(document.cancelFullScreen) { | |
66 | + document.cancelFullScreen(); | |
67 | + } else if(document.mozCancelFullScreen) { | |
68 | + document.mozCancelFullScreen(); | |
69 | + } else if(document.webkitExitFullscreen) { | |
70 | + document.webkitExitFullscreen(); | |
71 | + } else if (document.msExitFullscreen) { | |
72 | + document.msExitFullscreen(); | |
73 | + } | |
74 | + }, | |
75 | + isEnabled: function(){ | |
76 | + var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; | |
77 | + return fullscreenElement ? true : false; | |
78 | + }, | |
79 | + toggleAll: function(){ | |
80 | + serviceInstance.isEnabled() ? serviceInstance.cancel() : serviceInstance.all(); | |
81 | + }, | |
82 | + isSupported: function(){ | |
83 | + var docElm = document.documentElement; | |
84 | + var requestFullscreen = docElm.requestFullScreen || docElm.mozRequestFullScreen || docElm.webkitRequestFullscreen || docElm.msRequestFullscreen; | |
85 | + return requestFullscreen ? true : false; | |
86 | + } | |
87 | + }; | |
88 | + | |
89 | + /* eslint-enable */ | |
90 | + | |
91 | + return serviceInstance; | |
92 | +} | |
93 | + | |
94 | +/*@ngInject*/ | |
95 | +function mdColorPicker($q, $mdDialog, mdColorPickerHistory) { | |
96 | + var dialog; | |
97 | + | |
98 | + /* eslint-disable angular/definedundefined */ | |
99 | + | |
100 | + return { | |
101 | + show: function (options) | |
102 | + { | |
103 | + if ( options === undefined ) { | |
104 | + options = {}; | |
105 | + } | |
106 | + //console.log( 'DIALOG OPTIONS', options ); | |
107 | + // Defaults | |
108 | + // Dialog Properties | |
109 | + options.hasBackdrop = options.hasBackdrop === undefined ? true : options.hasBackdrop; | |
110 | + options.clickOutsideToClose = options.clickOutsideToClose === undefined ? true : options.clickOutsideToClose; | |
111 | + options.defaultValue = options.defaultValue === undefined ? '#FFFFFF' : options.defaultValue; | |
112 | + options.focusOnOpen = options.focusOnOpen === undefined ? false : options.focusOnOpen; | |
113 | + options.preserveScope = options.preserveScope === undefined ? true : options.preserveScope; | |
114 | + if (options.skipHide !== undefined) { | |
115 | + options.multiple = options.skipHide; | |
116 | + } | |
117 | + if (options.multiple === undefined) { | |
118 | + options.multiple = true; | |
119 | + } | |
120 | + | |
121 | + // mdColorPicker Properties | |
122 | + options.mdColorAlphaChannel = options.mdColorAlphaChannel === undefined ? false : options.mdColorAlphaChannel; | |
123 | + options.mdColorSpectrum = options.mdColorSpectrum === undefined ? true : options.mdColorSpectrum; | |
124 | + options.mdColorSliders = options.mdColorSliders === undefined ? true : options.mdColorSliders; | |
125 | + options.mdColorGenericPalette = options.mdColorGenericPalette === undefined ? true : options.mdColorGenericPalette; | |
126 | + options.mdColorMaterialPalette = options.mdColorMaterialPalette === undefined ? true : options.mdColorMaterialPalette; | |
127 | + options.mdColorHistory = options.mdColorHistory === undefined ? true : options.mdColorHistory; | |
128 | + | |
129 | + | |
130 | + dialog = $mdDialog.show({ | |
131 | + templateUrl: 'mdColorPickerDialog.tpl.html', | |
132 | + hasBackdrop: options.hasBackdrop, | |
133 | + clickOutsideToClose: options.clickOutsideToClose, | |
134 | + | |
135 | + controller: ['$scope', 'options', function( $scope, options ) { | |
136 | + //console.log( "DIALOG CONTROLLER OPEN", Date.now() - dateClick ); | |
137 | + $scope.close = function close() | |
138 | + { | |
139 | + $mdDialog.cancel(); | |
140 | + }; | |
141 | + $scope.ok = function ok() | |
142 | + { | |
143 | + $mdDialog.hide( $scope.value ); | |
144 | + }; | |
145 | + $scope.hide = $scope.ok; | |
146 | + | |
147 | + | |
148 | + | |
149 | + $scope.value = options.value; | |
150 | + $scope.default = options.defaultValue; | |
151 | + $scope.random = options.random; | |
152 | + | |
153 | + $scope.mdColorAlphaChannel = options.mdColorAlphaChannel; | |
154 | + $scope.mdColorSpectrum = options.mdColorSpectrum; | |
155 | + $scope.mdColorSliders = options.mdColorSliders; | |
156 | + $scope.mdColorGenericPalette = options.mdColorGenericPalette; | |
157 | + $scope.mdColorMaterialPalette = options.mdColorMaterialPalette; | |
158 | + $scope.mdColorHistory = options.mdColorHistory; | |
159 | + $scope.mdColorDefaultTab = options.mdColorDefaultTab; | |
160 | + | |
161 | + }], | |
162 | + | |
163 | + locals: { | |
164 | + options: options, | |
165 | + }, | |
166 | + preserveScope: options.preserveScope, | |
167 | + multiple: options.multiple, | |
168 | + | |
169 | + targetEvent: options.$event, | |
170 | + focusOnOpen: options.focusOnOpen, | |
171 | + autoWrap: false, | |
172 | + onShowing: function() { | |
173 | + // console.log( "DIALOG OPEN START", Date.now() - dateClick ); | |
174 | + }, | |
175 | + onComplete: function() { | |
176 | + // console.log( "DIALOG OPEN COMPLETE", Date.now() - dateClick ); | |
177 | + } | |
178 | + }); | |
179 | + | |
180 | + dialog.then(function (value) { | |
181 | + mdColorPickerHistory.add(new tinycolor(value)); | |
182 | + }, function () { }); | |
183 | + | |
184 | + return dialog; | |
185 | + }, | |
186 | + hide: function() { | |
187 | + return dialog.hide(); | |
188 | + }, | |
189 | + cancel: function() { | |
190 | + return dialog.cancel(); | |
191 | + } | |
192 | + }; | |
193 | + | |
194 | + /* eslint-enable angular/definedundefined */ | |
195 | +} | ... | ... |
... | ... | @@ -186,7 +186,7 @@ function DatasourceEntity($compile, $templateCache, $q, $mdDialog, $window, $doc |
186 | 186 | random: tinycolor.random(), |
187 | 187 | clickOutsideToClose: false, |
188 | 188 | hasBackdrop: false, |
189 | - skipHide: true, | |
189 | + multiple: true, | |
190 | 190 | preserveScope: false, |
191 | 191 | |
192 | 192 | mdColorAlphaChannel: true, |
... | ... | @@ -220,7 +220,7 @@ function DatasourceEntity($compile, $templateCache, $q, $mdDialog, $window, $doc |
220 | 220 | parent: angular.element($document[0].body), |
221 | 221 | fullscreen: true, |
222 | 222 | targetEvent: event, |
223 | - skipHide: true, | |
223 | + multiple: true, | |
224 | 224 | onComplete: function () { |
225 | 225 | var w = angular.element($window); |
226 | 226 | w.triggerHandler('resize'); | ... | ... |
... | ... | @@ -26,7 +26,6 @@ |
26 | 26 | <section flex layout='column' layout-align="center" style="padding-left: 4px;"> |
27 | 27 | <md-chips flex ng-if="widgetType != types.widgetType.alarm.value" |
28 | 28 | id="timeseries_datakey_chips" |
29 | - ng-required="true" | |
30 | 29 | ng-model="timeseriesDataKeys" md-autocomplete-snap |
31 | 30 | md-transform-chip="transformTimeseriesDataKeyChip($chip)" |
32 | 31 | md-require-match="false"> |
... | ... | @@ -78,7 +77,6 @@ |
78 | 77 | </md-chips> |
79 | 78 | <md-chips flex ng-if="widgetType === types.widgetType.latest.value" |
80 | 79 | id="attribute_datakey_chips" |
81 | - ng-required="true" | |
82 | 80 | ng-model="attributeDataKeys" md-autocomplete-snap |
83 | 81 | md-transform-chip="transformAttributeDataKeyChip($chip)" |
84 | 82 | md-require-match="false"> | ... | ... |
... | ... | @@ -139,7 +139,7 @@ function DatasourceFunc($compile, $templateCache, $mdDialog, $window, $document, |
139 | 139 | random: tinycolor.random(), |
140 | 140 | clickOutsideToClose: false, |
141 | 141 | hasBackdrop: false, |
142 | - skipHide: true, | |
142 | + multiple: true, | |
143 | 143 | preserveScope: false, |
144 | 144 | |
145 | 145 | mdColorAlphaChannel: true, |
... | ... | @@ -173,7 +173,7 @@ function DatasourceFunc($compile, $templateCache, $mdDialog, $window, $document, |
173 | 173 | parent: angular.element($document[0].body), |
174 | 174 | fullscreen: true, |
175 | 175 | targetEvent: event, |
176 | - skipHide: true, | |
176 | + multiple: true, | |
177 | 177 | onComplete: function () { |
178 | 178 | var w = angular.element($window); |
179 | 179 | w.triggerHandler('resize'); | ... | ... |
... | ... | @@ -96,7 +96,7 @@ function JsonForm($compile, $templateCache, $mdColorPicker) { |
96 | 96 | random: tinycolor.random(), |
97 | 97 | clickOutsideToClose: false, |
98 | 98 | hasBackdrop: false, |
99 | - skipHide: true, | |
99 | + multiple: true, | |
100 | 100 | preserveScope: false, |
101 | 101 | |
102 | 102 | mdColorAlphaChannel: true, | ... | ... |
... | ... | @@ -67,7 +67,7 @@ function MaterialIconSelect($compile, $templateCache, $document, $mdDialog) { |
67 | 67 | templateUrl: materialIconsDialogTemplate, |
68 | 68 | parent: angular.element($document[0].body), |
69 | 69 | locals: {icon: scope.icon}, |
70 | - skipHide: true, | |
70 | + multiple: true, | |
71 | 71 | fullscreen: true, |
72 | 72 | targetEvent: $event |
73 | 73 | }).then(function (icon) { | ... | ... |
... | ... | @@ -164,7 +164,7 @@ function ManageWidgetActionsController($rootScope, $scope, $document, $mdDialog, |
164 | 164 | .cancel($translate.instant('action.no')) |
165 | 165 | .ok($translate.instant('action.yes')); |
166 | 166 | |
167 | - confirm._options.skipHide = true; | |
167 | + confirm._options.multiple = true; | |
168 | 168 | confirm._options.fullscreen = true; |
169 | 169 | |
170 | 170 | $mdDialog.show(confirm).then(function () { |
... | ... | @@ -212,7 +212,7 @@ function ManageWidgetActionsController($rootScope, $scope, $document, $mdDialog, |
212 | 212 | locals: {isAdd: isAdd, fetchDashboardStates: vm.fetchDashboardStates, |
213 | 213 | actionSources: availableActionSources, widgetActions: vm.widgetActions, |
214 | 214 | action: angular.copy(action)}, |
215 | - skipHide: true, | |
215 | + multiple: true, | |
216 | 216 | fullscreen: true, |
217 | 217 | targetEvent: $event |
218 | 218 | }).then(function (action) { | ... | ... |
... | ... | @@ -166,7 +166,7 @@ export default function AddWidgetController($scope, widgetService, entityService |
166 | 166 | }, |
167 | 167 | parent: angular.element($document[0].body), |
168 | 168 | fullscreen: true, |
169 | - skipHide: true, | |
169 | + multiple: true, | |
170 | 170 | targetEvent: event |
171 | 171 | }).then(function (singleEntityAlias) { |
172 | 172 | vm.dashboard.configuration.entityAliases[singleEntityAlias.id] = singleEntityAlias; | ... | ... |
... | ... | @@ -463,7 +463,7 @@ export default function DashboardController(types, utils, dashboardUtils, widget |
463 | 463 | } |
464 | 464 | }, |
465 | 465 | parent: angular.element($document[0].body), |
466 | - skipHide: true, | |
466 | + multiple: true, | |
467 | 467 | fullscreen: true, |
468 | 468 | targetEvent: $event |
469 | 469 | }).then(function (entityAliases) { |
... | ... | @@ -488,7 +488,7 @@ export default function DashboardController(types, utils, dashboardUtils, widget |
488 | 488 | gridSettings: gridSettings |
489 | 489 | }, |
490 | 490 | parent: angular.element($document[0].body), |
491 | - skipHide: true, | |
491 | + multiple: true, | |
492 | 492 | fullscreen: true, |
493 | 493 | targetEvent: $event |
494 | 494 | }).then(function (data) { |
... | ... | @@ -510,7 +510,7 @@ export default function DashboardController(types, utils, dashboardUtils, widget |
510 | 510 | layouts: angular.copy(vm.dashboard.configuration.states[vm.dashboardCtx.state].layouts) |
511 | 511 | }, |
512 | 512 | parent: angular.element($document[0].body), |
513 | - skipHide: true, | |
513 | + multiple: true, | |
514 | 514 | fullscreen: true, |
515 | 515 | targetEvent: $event |
516 | 516 | }).then(function (layouts) { |
... | ... | @@ -531,7 +531,7 @@ export default function DashboardController(types, utils, dashboardUtils, widget |
531 | 531 | states: states |
532 | 532 | }, |
533 | 533 | parent: angular.element($document[0].body), |
534 | - skipHide: true, | |
534 | + multiple: true, | |
535 | 535 | fullscreen: true, |
536 | 536 | targetEvent: $event |
537 | 537 | }).then(function (states) { |
... | ... | @@ -873,7 +873,7 @@ export default function DashboardController(types, utils, dashboardUtils, widget |
873 | 873 | templateUrl: selectTargetLayoutTemplate, |
874 | 874 | parent: angular.element($document[0].body), |
875 | 875 | fullscreen: true, |
876 | - skipHide: true, | |
876 | + multiple: true, | |
877 | 877 | targetEvent: $event |
878 | 878 | }).then( |
879 | 879 | function success(layoutId) { |
... | ... | @@ -941,7 +941,7 @@ export default function DashboardController(types, utils, dashboardUtils, widget |
941 | 941 | }, |
942 | 942 | parent: angular.element($document[0].body), |
943 | 943 | fullscreen: true, |
944 | - skipHide: true, | |
944 | + multiple: true, | |
945 | 945 | targetEvent: event, |
946 | 946 | onComplete: function () { |
947 | 947 | var w = angular.element($window); | ... | ... |
... | ... | @@ -131,7 +131,7 @@ export default function EditWidgetDirective($compile, $templateCache, types, wid |
131 | 131 | }, |
132 | 132 | parent: angular.element($document[0].body), |
133 | 133 | fullscreen: true, |
134 | - skipHide: true, | |
134 | + multiple: true, | |
135 | 135 | targetEvent: event |
136 | 136 | }).then(function (singleEntityAlias) { |
137 | 137 | scope.dashboard.configuration.entityAliases[singleEntityAlias.id] = singleEntityAlias; | ... | ... |
... | ... | @@ -51,7 +51,7 @@ export default function ManageDashboardLayoutsController($scope, $mdDialog, $doc |
51 | 51 | gridSettings: gridSettings |
52 | 52 | }, |
53 | 53 | parent: angular.element($document[0].body), |
54 | - skipHide: true, | |
54 | + multiple: true, | |
55 | 55 | fullscreen: true, |
56 | 56 | targetEvent: $event |
57 | 57 | }).then(function (data) { | ... | ... |
... | ... | @@ -111,7 +111,7 @@ export default function ManageDashboardStatesController($scope, $mdDialog, $filt |
111 | 111 | templateUrl: dashboardStateDialogTemplate, |
112 | 112 | parent: angular.element($document[0].body), |
113 | 113 | locals: {isAdd: isAdd, allStates: vm.allStates, state: angular.copy(state)}, |
114 | - skipHide: true, | |
114 | + multiple: true, | |
115 | 115 | fullscreen: true, |
116 | 116 | targetEvent: $event |
117 | 117 | }).then(function (state) { |
... | ... | @@ -163,7 +163,7 @@ export default function ManageDashboardStatesController($scope, $mdDialog, $filt |
163 | 163 | .cancel($translate.instant('action.no')) |
164 | 164 | .ok($translate.instant('action.yes')); |
165 | 165 | |
166 | - confirm._options.skipHide = true; | |
166 | + confirm._options.multiple = true; | |
167 | 167 | confirm._options.fullscreen = true; |
168 | 168 | |
169 | 169 | $mdDialog.show(confirm).then(function () { | ... | ... |
... | ... | @@ -126,7 +126,7 @@ export default function EntityAliasesController(utils, entityService, toast, $sc |
126 | 126 | }, |
127 | 127 | parent: angular.element($document[0].body), |
128 | 128 | fullscreen: true, |
129 | - skipHide: true, | |
129 | + multiple: true, | |
130 | 130 | targetEvent: $event |
131 | 131 | }).then(function (alias) { |
132 | 132 | if (isAdd) { |
... | ... | @@ -158,7 +158,7 @@ export default function EntityAliasesController(utils, entityService, toast, $sc |
158 | 158 | .ariaLabel($translate.instant('entity.unable-delete-entity-alias-title')) |
159 | 159 | .ok($translate.instant('action.close')) |
160 | 160 | .targetEvent($event); |
161 | - alert._options.skipHide = true; | |
161 | + alert._options.multiple = true; | |
162 | 162 | alert._options.fullscreen = true; |
163 | 163 | |
164 | 164 | $mdDialog.show(alert); | ... | ... |
... | ... | @@ -53,7 +53,7 @@ export default function AddWidgetToDashboardDialogController($scope, $mdDialog, |
53 | 53 | states: states |
54 | 54 | }, |
55 | 55 | fullscreen: true, |
56 | - skipHide: true, | |
56 | + multiple: true, | |
57 | 57 | targetEvent: $event |
58 | 58 | }).then( |
59 | 59 | function success(stateId) { |
... | ... | @@ -81,7 +81,7 @@ export default function AddWidgetToDashboardDialogController($scope, $mdDialog, |
81 | 81 | templateUrl: selectTargetLayoutTemplate, |
82 | 82 | parent: angular.element($document[0].body), |
83 | 83 | fullscreen: true, |
84 | - skipHide: true, | |
84 | + multiple: true, | |
85 | 85 | targetEvent: $event |
86 | 86 | }).then( |
87 | 87 | function success(layoutId) { | ... | ... |
... | ... | @@ -160,7 +160,7 @@ function RelationTableController($scope, $q, $mdDialog, $document, $translate, $ |
160 | 160 | showingCallback: onShowingCallback}, |
161 | 161 | targetEvent: $event, |
162 | 162 | fullscreen: true, |
163 | - skipHide: true, | |
163 | + multiple: true, | |
164 | 164 | onShowing: function(scope, element) { |
165 | 165 | onShowingCallback.onShowing(scope, element); |
166 | 166 | } | ... | ... |
... | ... | @@ -79,7 +79,7 @@ export default function EventRowDirective($compile, $templateCache, $mdDialog, $ |
79 | 79 | parent: angular.element($document[0].body), |
80 | 80 | fullscreen: true, |
81 | 81 | targetEvent: $event, |
82 | - skipHide: true, | |
82 | + multiple: true, | |
83 | 83 | onShowing: function(scope, element) { |
84 | 84 | onShowingCallback.onShowing(scope, element); |
85 | 85 | } | ... | ... |
... | ... | @@ -208,7 +208,7 @@ function ExtensionTableController($scope, $filter, $document, $translate, $timeo |
208 | 208 | bindToController: true, |
209 | 209 | targetEvent: $event, |
210 | 210 | fullscreen: true, |
211 | - skipHide: true | |
211 | + multiple: true | |
212 | 212 | }).then(function() { |
213 | 213 | reloadExtensions(); |
214 | 214 | }, function () { | ... | ... |
... | ... | @@ -721,7 +721,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, |
721 | 721 | } |
722 | 722 | }, |
723 | 723 | parent: angular.element($document[0].body), |
724 | - skipHide: true, | |
724 | + multiple: true, | |
725 | 725 | fullscreen: true, |
726 | 726 | targetEvent: $event |
727 | 727 | }).then(function (updatedEntityAliases) { |
... | ... | @@ -796,7 +796,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, |
796 | 796 | importFileLabel: importFileLabel |
797 | 797 | }, |
798 | 798 | parent: angular.element($document[0].body), |
799 | - skipHide: true, | |
799 | + multiple: true, | |
800 | 800 | fullscreen: true, |
801 | 801 | targetEvent: $event |
802 | 802 | }).then(function (importData) { | ... | ... |
... | ... | @@ -17,7 +17,6 @@ import './home.scss'; |
17 | 17 | |
18 | 18 | import uiRouter from 'angular-ui-router'; |
19 | 19 | import ngSanitize from 'angular-sanitize'; |
20 | -import FBAngular from 'angular-fullscreen'; | |
21 | 20 | import 'angular-breadcrumb'; |
22 | 21 | |
23 | 22 | import thingsboardMenu from '../services/menu.service'; |
... | ... | @@ -63,7 +62,6 @@ import BreadcrumbIcon from './breadcrumb-icon.filter'; |
63 | 62 | export default angular.module('thingsboard.home', [ |
64 | 63 | uiRouter, |
65 | 64 | ngSanitize, |
66 | - FBAngular.name, | |
67 | 65 | 'ncy-angular-breadcrumb', |
68 | 66 | thingsboardMenu, |
69 | 67 | thingsboardHomeLinks, | ... | ... |
ui/src/app/locale/locale.constant-tr_TR.json
renamed from
ui/src/app/locale/locale.constant-TR.json
... | ... | @@ -126,15 +126,15 @@ |
126 | 126 | "acknowledge": "Onayla", |
127 | 127 | "clear": "Temizle", |
128 | 128 | "search": "Alarm ara", |
129 | - "selected-alarms": "{ count, select, 1 {1 alarm} other {# alarm} } seçildi", | |
129 | + "selected-alarms": "{ count, plural, 1 {1 alarm} other {# alarm} } seçildi", | |
130 | 130 | "no-data": "Görüntülenecek veri bulunmuyor", |
131 | 131 | "polling-interval": "Alarm yoklama aralığı (saniye)", |
132 | 132 | "polling-interval-required": "Alarm yoklama aralığı gerekli.", |
133 | 133 | "min-polling-interval-message": "Alarm yoklama aralığı en az 1 saniye olmalıdır.", |
134 | - "aknowledge-alarms-title": "{ count, select, 1 {1 alarmı} other {# alarmı} } onayla", | |
135 | - "aknowledge-alarms-text": "{ count, select, 1 {1 alarmı} other {# alarmı} } onaylamak istediğinize emin misiniz?", | |
136 | - "clear-alarms-title": "{ count, select, 1 {1 alarmı} other {# alarmı} } temizle", | |
137 | - "clear-alarms-text": "{ count, select, 1 {1 alarmı} other {# alarmı} } temizlemek istediğinize emin misiniz?" | |
134 | + "aknowledge-alarms-title": "{ count, plural, 1 {1 alarmı} other {# alarmı} } onayla", | |
135 | + "aknowledge-alarms-text": "{ count, plural, 1 {1 alarmı} other {# alarmı} } onaylamak istediğinize emin misiniz?", | |
136 | + "clear-alarms-title": "{ count, plural, 1 {1 alarmı} other {# alarmı} } temizle", | |
137 | + "clear-alarms-text": "{ count, plural, 1 {1 alarmı} other {# alarmı} } temizlemek istediğinize emin misiniz?" | |
138 | 138 | }, |
139 | 139 | "alias": { |
140 | 140 | "add": "Kısa ad ekle", |
... | ... | @@ -212,15 +212,15 @@ |
212 | 212 | "add-asset-text": "Yeni varlık ekle", |
213 | 213 | "asset-details": "Varlık detayları", |
214 | 214 | "assign-assets": "Varlıkları ata", |
215 | - "assign-assets-text": "{ count, select, 1 {1 varlığı} other {# varlığı} } kullanıcı grubuna ata", | |
215 | + "assign-assets-text": "{ count, plural, 1 {1 varlığı} other {# varlığı} } kullanıcı grubuna ata", | |
216 | 216 | "delete-assets": "Varlıkları sil", |
217 | 217 | "unassign-assets": "Varlıkların atamalarını kaldır", |
218 | - "unassign-assets-action-title": "{ count, select, 1 {1 varlığın} other {# varlığın} } atamalarını kullanıcı grubundan kaldır", | |
218 | + "unassign-assets-action-title": "{ count, plural, 1 {1 varlığın} other {# varlığın} } atamalarını kullanıcı grubundan kaldır", | |
219 | 219 | "assign-new-asset": "Yeni varlık ata", |
220 | 220 | "delete-asset-title": "'{{assetName}}' isimli varlığı silmek istediğinize emin misiniz?", |
221 | 221 | "delete-asset-text": "UYARI: Onaylandıktan sonra varlık ve ilgili tüm veriler geri yüklenemeyecek şekilde silinecek.", |
222 | - "delete-assets-title": "{ count, select, 1 {1 varlığı} other {# varlığı} } silmek istediğinize emin misiniz?", | |
223 | - "delete-assets-action-title": "{ count, select, 1 {1 varlığı} other {# varlığı} } sil", | |
222 | + "delete-assets-title": "{ count, plural, 1 {1 varlığı} other {# varlığı} } silmek istediğinize emin misiniz?", | |
223 | + "delete-assets-action-title": "{ count, plural, 1 {1 varlığı} other {# varlığı} } sil", | |
224 | 224 | "delete-assets-text": "UYARI: Onaylandıktan sonra tüm seçili varlıklar ver ilgili tüm veriler geri yüklenemyeck şekilde silinecek.", |
225 | 225 | "make-public-asset-title": "'{{assetName}}' isimli varlığı açık hale getirmek istediğinize emin misiniz?", |
226 | 226 | "make-public-asset-text": "Onaylandıktan sonra varlık ve ilgili veriler açık hale gelecek ve başkaları tarafından erişilebilir olacaktır.", |
... | ... | @@ -229,7 +229,7 @@ |
229 | 229 | "unassign-asset-title": "'{{assetName}}' isimli varlığın atamasını kaldırmak istediğinize emin misiniz?", |
230 | 230 | "unassign-asset-text": "Onaylandıktan sonra varlığın ataması kaldırılacak ve kullanıcı grubu tarafından erişilemez olacaktır.", |
231 | 231 | "unassign-asset": "Varlık atamasını kaldır", |
232 | - "unassign-assets-title": " { count, select, 1 {1 varlık} other {# varlık} } atamasını kaldırmak istediğinize emin misiniz?", | |
232 | + "unassign-assets-title": " { count, plural, 1 {1 varlık} other {# varlık} } atamasını kaldırmak istediğinize emin misiniz?", | |
233 | 233 | "unassign-assets-text": "Onaylandıktan sonra tüm seçili varlıkların ataması kaldırılacak ve kullanıcı grubu tarafından erişilemez olacaktır.", |
234 | 234 | "copyId": "Varlık kimliğini kopyala", |
235 | 235 | "idCopiedMessage": "Varlık kimliği panoya kopyalandı", |
... | ... | @@ -252,7 +252,7 @@ |
252 | 252 | "key-required": "Öznitelik anahtarı gerekli.", |
253 | 253 | "value": "Değer", |
254 | 254 | "value-required": "Öznitelik değeri gerekli.", |
255 | - "delete-attributes-title": "Silmek istediğinize emin misiniz { count, select, 1 {1 öznitelik} other {# öznitelik} }?", | |
255 | + "delete-attributes-title": "Silmek istediğinize emin misiniz { count, plural, 1 {1 öznitelik} other {# öznitelik} }?", | |
256 | 256 | "delete-attributes-text": "UYARI: Onaylandıktan sonra tüm seçili öznitelikler kaldırılacak.", |
257 | 257 | "delete-attributes": "Öznitelikleri sil", |
258 | 258 | "enter-attribute-value": "Öznitelik değeri gir", |
... | ... | @@ -262,8 +262,8 @@ |
262 | 262 | "prev-widget": "Önceki gösterge", |
263 | 263 | "add-to-dashboard": "Kontrol paneline ekle", |
264 | 264 | "add-widget-to-dashboard": "Göstergeyi kontrol paneline ekle", |
265 | - "selected-attributes": "{ count, select, 1 {1 öznitelik} other {# öznitelik} } seçildi", | |
266 | - "selected-telemetry": "{ count, select, 1 {1 telemetri birimi} other {# telemetri birimi} } seçildi" | |
265 | + "selected-attributes": "{ count, plural, 1 {1 öznitelik} other {# öznitelik} } seçildi", | |
266 | + "selected-telemetry": "{ count, plural, 1 {1 telemetri birimi} other {# telemetri birimi} } seçildi" | |
267 | 267 | }, |
268 | 268 | "audit-log": { |
269 | 269 | "audit": "Log ve Hata Yönetimi", |
... | ... | @@ -358,8 +358,8 @@ |
358 | 358 | "customer-details": "Kullanıcı Grubu detayları", |
359 | 359 | "delete-customer-title": "'{{customerTitle}}' isimli kullanıcı grubunu silmek istediğinize emin misiniz?", |
360 | 360 | "delete-customer-text": "UYARI: Onaylandıktan sonra kullanıcı grubu ve tüm ilişkili veriler geri yüklenemeyecek şekilde silinecek.", |
361 | - "delete-customers-title": "{ count, select, 1 {1 kullanıcı grubunu} other {# kullanıcı grubunu} } silmek istediğinize emin misiniz?", | |
362 | - "delete-customers-action-title": "{ count, select, 1 {1 kullanıcı grubunu} other {# kullanıcı grubunu} } sil", | |
361 | + "delete-customers-title": "{ count, plural, 1 {1 kullanıcı grubunu} other {# kullanıcı grubunu} } silmek istediğinize emin misiniz?", | |
362 | + "delete-customers-action-title": "{ count, plural, 1 {1 kullanıcı grubunu} other {# kullanıcı grubunu} } sil", | |
363 | 363 | "delete-customers-text": "UYARI: Onaylandıktan sonra tüm seçili kullanıcı grupları ve ilişkili veriler geri yüklenemez şekilde silinecek.", |
364 | 364 | "manage-users": "Kullanıcıları yönet", |
365 | 365 | "manage-assets": "Varlıkları yönet", |
... | ... | @@ -418,20 +418,20 @@ |
418 | 418 | "add-dashboard-text": "Yeni kontrol paneli ekle", |
419 | 419 | "assign-dashboards": "Kontrol panelleri ata", |
420 | 420 | "assign-new-dashboard": "Yeni kontrol paneli ata", |
421 | - "assign-dashboards-text": "{ count, select, 1 {1 kontrol panelini} other {# kontrol panelini} } kullanıcı grubuna ata", | |
422 | - "unassign-dashboards-action-text": "Müşterilerden atama sayısı, çoğul, 1 {1 gösterge tablosu} diğer {# panolar}}", | |
421 | + "assign-dashboards-text": "{ count, plural, 1 {1 kontrol panelini} other {# kontrol panelini} } kullanıcı grubuna ata", | |
422 | + "unassign-dashboards-action-text": "Müşterilerden atama { count, plural, 1 {1 gösterge tablosu} other {# panolar}}", | |
423 | 423 | "delete-dashboards": "Kontrol panellerini sil", |
424 | 424 | "unassign-dashboards": "Kontrol panellerinden atamayı kaldır", |
425 | - "unassign-dashboards-action-title": "{ count, select, 1 {1 kontrol panelinin} other {# kontrol panelinin} } atamaları kullanıcı grubundan kaldır", | |
425 | + "unassign-dashboards-action-title": "{ count, plural, 1 {1 kontrol panelinin} other {# kontrol panelinin} } atamaları kullanıcı grubundan kaldır", | |
426 | 426 | "delete-dashboard-title": "'{{dashboardTitle}}' isimli kontrol panelini silmek istediğinize emin misiniz?", |
427 | 427 | "delete-dashboard-text": "UYARI: Onaylandıktan sonra kontrol paneli ve ilişkili verileri geri yüklenemez şekilde silinecek.", |
428 | - "delete-dashboards-title": "{ count, select, 1 {1 kontrol panelini} other {# kontrol panelini} } silmek istediğinize emin misiniz?", | |
429 | - "delete-dashboards-action-title": "{ count, select, 1 {1 kontrol panelini} other {# kontrol panelini} } sil", | |
428 | + "delete-dashboards-title": "{ count, plural, 1 {1 kontrol panelini} other {# kontrol panelini} } silmek istediğinize emin misiniz?", | |
429 | + "delete-dashboards-action-title": "{ count, plural, 1 {1 kontrol panelini} other {# kontrol panelini} } sil", | |
430 | 430 | "delete-dashboards-text": "UYARI: Onaylandıktan sonra tüm seçili kontrol panelleri ve ilişkili verileri geri yüklenemez şekilde silinecek.", |
431 | 431 | "unassign-dashboard-title": "'{{dashboardTitle}}' isimli kontrol panelindeki atamayı kaldırmak istediğinize emin misiniz?", |
432 | 432 | "unassign-dashboard-text": "Onaylandıktan sonra kontrol panelinin ataması kaldırılacak ve kullanıcı grubu tarafından erişilemez hale gelecektir.", |
433 | 433 | "unassign-dashboard": "Kontrol panelinin ataması kaldır", |
434 | - "unassign-dashboards-title": "{count, select, 1 {1 kontrol panelindeki} other {# kontrol panelindeki} } atamayı kaldırmak istediğinize emin misiniz?", | |
434 | + "unassign-dashboards-title": "{count, plural, 1 {1 kontrol panelindeki} other {# kontrol panelindeki} } atamayı kaldırmak istediğinize emin misiniz?", | |
435 | 435 | "unassign-dashboards-text": "Onaylandıktan <sonra seçili kontrol panellerinin atamaları kaldırılacak ve kullanıcı grubu tarafından erişilemez hale gelecektir.", |
436 | 436 | "public-dashboard-title": "Kontrol paneli açık hale getirildi", |
437 | 437 | "public-dashboard-text": "Kontrol paneliniz <b>{{dashboardTitle}}</b> açık hale getirildi ve bu <a href='{{publicLink}}' target='_blank'>bağlantıdan</a> erişilebilir durumda", |
... | ... | @@ -508,7 +508,7 @@ |
508 | 508 | "manage-states": "Kontrol paneli durumlarını yönet", |
509 | 509 | "states": "Kontrol paneli durumları", |
510 | 510 | "search-states": "Kontrol paneli durumu ara", |
511 | - "selected-states": "{ count, select, 1 {1 kontrol paneli durumu} other {# kontrol paneli durumu} } seçildi", | |
511 | + "selected-states": "{ count, plural, 1 {1 kontrol paneli durumu} other {# kontrol paneli durumu} } seçildi", | |
512 | 512 | "edit-state": "Kontrol paneli durumu düzenle", |
513 | 513 | "delete-state": "Kontrol paneli durumunu sil", |
514 | 514 | "add-state": "Kontrol paneli durumu ekle", |
... | ... | @@ -541,11 +541,11 @@ |
541 | 541 | "alarm": "Alarm alanları", |
542 | 542 | "timeseries-required": "Zaman serisi öğesi gerekli.", |
543 | 543 | "timeseries-or-attributes-required": "Zaman serisi/öznitelikler öğesi gerekli.", |
544 | - "maximum-timeseries-or-attributes": "Maksimum { count, select, 1 {1 zamanserisi/öznitelik kabul edilir.} other {# zamanserisi/öznitelik kabul edilir} }", | |
544 | + "maximum-timeseries-or-attributes": "Maksimum { count, plural, 1 {1 zamanserisi/öznitelik kabul edilir.} other {# zamanserisi/öznitelik kabul edilir} }", | |
545 | 545 | "alarm-fields-required": "Alarm alanları gerekli.", |
546 | 546 | "function-types": "Fonksiyon türleri", |
547 | 547 | "function-types-required": "Fonksiyon türleri gerekli.", |
548 | - "maximum-function-types": "Maksimum { count, select, 1 {1 fonksiyon türü kabul edilir.} other {# fonksiyon türü kabul edilir} }" | |
548 | + "maximum-function-types": "Maksimum { count, plural, 1 {1 fonksiyon türü kabul edilir.} other {# fonksiyon türü kabul edilir} }" | |
549 | 549 | }, |
550 | 550 | "datasource": { |
551 | 551 | "type": "Veri kaynağı türü", |
... | ... | @@ -597,11 +597,11 @@ |
597 | 597 | "manage-credentials": "Kimlik bilgilerini yönet", |
598 | 598 | "delete": "Aygıt sil", |
599 | 599 | "assign-devices": "Aygıt ata", |
600 | - "assign-devices-text": "{ count, select, 1 {1 aygıtı} other {# aygıtı} } kullanıcı grubuna ata", | |
600 | + "assign-devices-text": "{ count, plural, 1 {1 aygıtı} other {# aygıtı} } kullanıcı grubuna ata", | |
601 | 601 | "delete-devices": "Aygıtları sil", |
602 | 602 | "unassign-from-customer": "Kullanıcı Grubundan atamayı kaldır", |
603 | 603 | "unassign-devices": "Aygıtlardan atamayı kaldır", |
604 | - "unassign-devices-action-title": "{ count, select, 1 {1 aygıtın} other {# aygıtın} } atamasını kullanıcı grubundan kaldır", | |
604 | + "unassign-devices-action-title": "{ count, plural, 1 {1 aygıtın} other {# aygıtın} } atamasını kullanıcı grubundan kaldır", | |
605 | 605 | "assign-new-device": "Yeni aygıt ata", |
606 | 606 | "make-public-device-title": "'{{deviceName}}' isimli aygıtı açık hale getirmek istediğinizden emin misiniz?", |
607 | 607 | "make-public-device-text": "Onaylandıktan sonra aygıt ve verileri açık hale getirilecek ve diğerleri tarafından erişilebilir olacak.", |
... | ... | @@ -610,13 +610,13 @@ |
610 | 610 | "view-credentials": "Kimlik bilgilerini görüntüle", |
611 | 611 | "delete-device-title": "'{{deviceName}}' isimli aygıtı silmek istediğinize emin misiniz?", |
612 | 612 | "delete-device-text": "UYARI: Onaylandıktan sonra aygıt ve ilişkili verileri geri yüklenemez şekilde silinecek.", |
613 | - "delete-devices-title": "{ count, select, 1 {1 aygıtı} other {# aygıtı} } silmek istediğinize emin misiniz?", | |
614 | - "delete-devices-action-title": "{ count, select, 1 {1 aygıtı} other {# aygıtı} } sil", | |
613 | + "delete-devices-title": "{ count, plural, 1 {1 aygıtı} other {# aygıtı} } silmek istediğinize emin misiniz?", | |
614 | + "delete-devices-action-title": "{ count, plural, 1 {1 aygıtı} other {# aygıtı} } sil", | |
615 | 615 | "delete-devices-text": "UYARI: Onaylandıktan sonra tüm seçili aygıtlar ve ilişkili verileri geri yüklenemez şekilde silinecek.", |
616 | 616 | "unassign-device-title": "'{{deviceName}}' isimli aygıtın atamasını kaldırmak istediğinize emin misiniz?", |
617 | 617 | "unassign-device-text": "Onaylandıktan sonra aygıtın ataması kaldırılacak ve kullanıcı grubu tarafından erişilemez olacak.", |
618 | 618 | "unassign-device": "Aygıt atamasını kaldır", |
619 | - "unassign-devices-title": "{ count, select, 1 {1 aygıtın} other {# aygıtın} } atamasını kaldırmak istediğinize emin misiniz?", | |
619 | + "unassign-devices-title": "{ count, plural, 1 {1 aygıtın} other {# aygıtın} } atamasını kaldırmak istediğinize emin misiniz?", | |
620 | 620 | "unassign-devices-text": "Onaylandıktan sonra seçili aygıtların atamaları kaldırılacak ve kullanıcı grubu tarafından erişilemez olacak.", |
621 | 621 | "device-credentials": "Aygıt Kimlik Bilgileri", |
622 | 622 | "credentials-type": "Kimlik Bilgi Türü", |
... | ... | @@ -702,55 +702,55 @@ |
702 | 702 | "type-required": "Öğe türü gerekli.", |
703 | 703 | "type-device": "Aygıt", |
704 | 704 | "type-devices": "Aygıtlar", |
705 | - "list-of-devices": "{ count, select, 1 {Bir aygıt} other {# Aygıtın Listesi} }", | |
705 | + "list-of-devices": "{ count, plural, 1 {Bir aygıt} other {# Aygıtın Listesi} }", | |
706 | 706 | "device-name-starts-with": "İsimleri '{{prefix}}' ile başlayan aygıtlar", |
707 | 707 | "type-asset": "Varlık", |
708 | 708 | "type-assets": "Varlıklar", |
709 | - "list-of-assets": "{ count, select, 1 {Bir varlık} other {# Varlığın Listesi} }", | |
709 | + "list-of-assets": "{ count, plural, 1 {Bir varlık} other {# Varlığın Listesi} }", | |
710 | 710 | "asset-name-starts-with": "İsmi '{{prefix}}' ile başlayan varlıklar", |
711 | 711 | "type-entity-view": "Varlık Görünümü", |
712 | 712 | "type-entity-views": "Varlık Görünümleri", |
713 | - "list-of-entity-views": "{count, çoğul, 1 {Bir varlık görünümü} diğer {# varlık görüntüleme}} listesi", | |
713 | + "list-of-entity-views": "{ count, plural, 1 {Bir varlık görünümü} other {# varlık görüntüleme}} listesi", | |
714 | 714 | "entity-view-name-starts-with": "Adı {{önek}} ile başlayan varlık görünümleri", |
715 | 715 | "type-rule": "Kural", |
716 | 716 | "type-rules": "Kurallar", |
717 | - "list-of-rules": "{ count, select, 1 {Bir kural} other {# Kuralın Listesi} }", | |
717 | + "list-of-rules": "{ count, plural, 1 {Bir kural} other {# Kuralın Listesi} }", | |
718 | 718 | "rule-name-starts-with": "İsmi '{{prefix}}' ile başlayan kurallar", |
719 | 719 | "type-plugin": "Eklenti", |
720 | 720 | "type-plugins": "Eklentiler", |
721 | - "list-of-plugins": "{ count, select, 1 {Bir eklenti} other {# Eklentinin Listesi} }", | |
721 | + "list-of-plugins": "{ count, plural, 1 {Bir eklenti} other {# Eklentinin Listesi} }", | |
722 | 722 | "plugin-name-starts-with": "İsmi '{{prefix}}' ile başlayan eklentiler", |
723 | 723 | "type-tenant": "Tenant", |
724 | 724 | "type-tenants": "Tenantlar", |
725 | - "list-of-tenants": "{ count, select, 1 {Bir tenant} other {# Tenantın Listesi} }", | |
725 | + "list-of-tenants": "{ count, plural, 1 {Bir tenant} other {# Tenantın Listesi} }", | |
726 | 726 | "tenant-name-starts-with": "İsmi '{{prefix}}' ile başlayan tenantlar", |
727 | 727 | "type-customer": "Kullanıcı Grubu", |
728 | 728 | "type-customers": "Kullanıcı Grupları", |
729 | - "list-of-customers": "{ count, select, 1 {Bir Kullanıcı Grubu} other {# Kullanıcı Grupları} }", | |
729 | + "list-of-customers": "{ count, plural, 1 {Bir Kullanıcı Grubu} other {# Kullanıcı Grupları} }", | |
730 | 730 | "customer-name-starts-with": "İsmi '{{prefix}}' ile başlayan Kullanıcı Grupları", |
731 | 731 | "type-user": "Kullanıcı", |
732 | 732 | "type-users": "Kullanıcılar", |
733 | - "list-of-users": "{ count, select, 1 {Bir kullanıcı} other {# Kullanıcının Listesi} }", | |
733 | + "list-of-users": "{ count, plural, 1 {Bir kullanıcı} other {# Kullanıcının Listesi} }", | |
734 | 734 | "user-name-starts-with": "İsmi '{{prefix}}' ile başlayan kullanıcılar", |
735 | 735 | "type-dashboard": "Kontrol paneli", |
736 | 736 | "type-dashboards": "Kontrol panelleri", |
737 | - "list-of-dashboards": "{ count, select, 1 {Bir kontrol paneli} other {# Kontrol Panelinin Listesi} }", | |
737 | + "list-of-dashboards": "{ count, plural, 1 {Bir kontrol paneli} other {# Kontrol Panelinin Listesi} }", | |
738 | 738 | "dashboard-name-starts-with": "İsmi '{{prefix}}' ile başlayan kontrol panelleri", |
739 | 739 | "type-alarm": "Alarm", |
740 | 740 | "type-alarms": "Alarmlar", |
741 | - "list-of-alarms": "{ count, select, 1 {Bir alarm} other {# Alarmın Listesi} }", | |
741 | + "list-of-alarms": "{ count, plural, 1 {Bir alarm} other {# Alarmın Listesi} }", | |
742 | 742 | "alarm-name-starts-with": "İsmi '{{prefix}}' ile başlayan alarmlar", |
743 | 743 | "type-rulechain": "Kural zinciri", |
744 | 744 | "type-rulechains": "Kural zincirleri", |
745 | - "list-of-rulechains": "{count, çoğul, 1 {Bir kural zinciri} diğer {# kural zincirinin listesi}}", | |
745 | + "list-of-rulechains": "{ count, plural, 1 {Bir kural zinciri} other {# kural zincirinin listesi}}", | |
746 | 746 | "rulechain-name-starts-with": "İsimleri {{prefix}} ile başlayan kural zincirleri", |
747 | 747 | "type-rulenode": "Kural düğümü", |
748 | 748 | "type-rulenodes": "Kural düğümleri", |
749 | - "list-of-rulenodes": "{count, çoğul, 1 {Bir kural node} diğer {# kural düğümünün listesi}}", | |
749 | + "list-of-rulenodes": "{ count, plural, 1 {Bir kural node} other {# kural düğümünün listesi}}", | |
750 | 750 | "rulenode-name-starts-with": "İsimleri '{{prefix}} ile başlayan kural düğümleri", |
751 | 751 | "type-current-customer": "Mevcut Müşteri", |
752 | 752 | "search": "Öğeleri ara", |
753 | - "selected-entities": "{ count, select, 1 {1 öğe} other {# öğe} } seçildi", | |
753 | + "selected-entities": "{ count, plural, 1 {1 öğe} other {# öğe} } seçildi", | |
754 | 754 | "entity-name": "Öğe adı", |
755 | 755 | "details": "Öğe detayları", |
756 | 756 | "no-entities-prompt": "Hiçbir öğe bulunamadı", |
... | ... | @@ -792,21 +792,21 @@ |
792 | 792 | "add-entity-view-text": "Yeni varlık görünümü ekle", |
793 | 793 | "delete": "Varlık görünümünü sil", |
794 | 794 | "assign-entity-views": "Varlık görünümleri atama", |
795 | - "assign-entity-views-text": "Müşteriye {count, çoğul, 1 {1 entityView} diğer {# entityViews}} atayın ", | |
795 | + "assign-entity-views-text": "Müşteriye { count, plural, 1 {1 entityView} other {# entityViews}} atayın ", | |
796 | 796 | "delete-entity-views": "Varlık görünümlerini sil", |
797 | 797 | "unassign-from-customer": "Müşteriden atama", |
798 | 798 | "unassign-entity-views": "Varlık görünümlerini atama", |
799 | - "unassign-entity-views-action-title": "Müşteriden atama sayım, çoğul, 1 {1 entityView} diğer {# entityViews}}", | |
799 | + "unassign-entity-views-action-title": "Müşteriden atama { count, plural, 1 {1 entityView} other {# entityViews}}", | |
800 | 800 | "assign-new-entity-view": "Yeni varlık görünümü atama", |
801 | 801 | "delete-entity-view-title": "Varlık görünümünü silmek istediğinizden emin misiniz?, {{entityViewName}} '? ", |
802 | 802 | "delete-entity-view-text": "Dikkatli olun, onaylandıktan sonra varlık görünümü ve ilgili tüm veriler kurtarılamayacak.", |
803 | - "delete-entity-views-title": "{count, çoğul, 1 {1 entityView} diğer {# entityViews}} varlık görünümüne sahip olmak istediğinizden emin misiniz?", | |
804 | - "delete-entity-views-action-title": "Sil {count, çoğul, 1 {1 entityView} diğer {# entityViews}}", | |
803 | + "delete-entity-views-title": "{ count, plural, 1 {1 entityView} other {# entityViews}} varlık görünümüne sahip olmak istediğinizden emin misiniz?", | |
804 | + "delete-entity-views-action-title": "Sil { count, plural, 1 {1 entityView} other {# entityViews}}", | |
805 | 805 | "delete-entity-views-text": "Dikkatli olun, onaylandıktan sonra tüm seçilen görünümler kaldırılacak ve ilgili tüm veriler kurtarılamayacaktır.", |
806 | 806 | "unassign-entity-view-title": "Varlık görünümünün atamasını kaldırmak istediğinizden emin misiniz? {{entityViewName}} '? ", |
807 | 807 | "unassign-entity-view-text": "Onaydan sonra varlık görünümü atanmamış olacak ve müşteri tarafından erişilemeyecektir.", |
808 | 808 | "unassign-entity-view": "Varlık görünümünün atamasını kaldır", |
809 | - "unassign-entity-views-title": "Sayım, çoğul, 1 {1 entityView} diğer {# entityViews}} hesabının atamasını kaldırmak istediğinizden emin misiniz?", | |
809 | + "unassign-entity-views-title": "{ count, plural, 1 {1 entityView} other {# entityViews}} hesabının atamasını kaldırmak istediğinizden emin misiniz?", | |
810 | 810 | "unassign-entity-views-text": "Onaylandıktan sonra, seçilen tüm öğe görünümleri atamadan kaldırılacak ve müşteri tarafından erişilemeyecektir.", |
811 | 811 | "entity-view-type": "Varlık Görünümü türü", |
812 | 812 | "entity-view-type-required": "Varlık Görünümü türü gerekli.", |
... | ... | @@ -861,7 +861,7 @@ |
861 | 861 | }, |
862 | 862 | "extension": { |
863 | 863 | "extensions": "Uzantılar", |
864 | - "selected-extensions": "{count, çoğul, 1 {1 uzantı} diğer {# extensions}} seçildi", | |
864 | + "selected-extensions": "{ count, plural, 1 {1 uzantı} other {# extensions}} seçildi", | |
865 | 865 | "type": "Tür", |
866 | 866 | "key": "Anahtar", |
867 | 867 | "value": "Değer", |
... | ... | @@ -875,7 +875,7 @@ |
875 | 875 | "edit": "Uzantıyı düzenle", |
876 | 876 | "delete-extension-title": "{{ExtensionId}} uzantısını silmek istediğinizden emin misiniz? ", |
877 | 877 | "delete-extension-text": "Dikkatli olun, onaylamadan sonra uzantı ve ilgili tüm veriler kurtarılamaz.", |
878 | - "delete-extensions-title": "{Count, çoğul, 1 {1 uzantı} diğer {# extensions}} silmek istediğinizden emin misiniz?", | |
878 | + "delete-extensions-title": "{ count, plural, 1 {1 uzantı} other {# extensions}} silmek istediğinizden emin misiniz?", | |
879 | 879 | "delete-extensions-text": "Dikkatli olun, onaylandıktan sonra tüm seçilen uzantılar kaldırılacak.", |
880 | 880 | "converters": "Dönüştürücü", |
881 | 881 | "converter-id": "Dönüştürücü kimliği", |
... | ... | @@ -1026,8 +1026,8 @@ |
1026 | 1026 | "grid": { |
1027 | 1027 | "delete-item-title": "Bu öğeyi silmek istediğinizden emin misiniz?", |
1028 | 1028 | "delete-item-text": "UYARI: Onayladıktan sonra bu öğe ve ilişkili tüm verileri geri yüklenemez şekilde silinecektir.", |
1029 | - "delete-items-title": "{ count, select, 1 {1 öğeyi} other {# öğeyi} } silmek istediğinizden emin misiniz?", | |
1030 | - "delete-items-action-title": "{ count, select, 1 {1 öğeyi} other {# öğeyi} } sil", | |
1029 | + "delete-items-title": "{ count, plural, 1 {1 öğeyi} other {# öğeyi} } silmek istediğinizden emin misiniz?", | |
1030 | + "delete-items-action-title": "{ count, plural, 1 {1 öğeyi} other {# öğeyi} } sil", | |
1031 | 1031 | "delete-items-text": "UYARI: Onayladıktan sonra tüm seçili öğeler ve ilişkili tüm verileri geri yüklenemez şekilde silinecektir.", |
1032 | 1032 | "add-item-text": "Yeni öğe ekle", |
1033 | 1033 | "no-items-text": "Hiç bir öğe bulunamadı", |
... | ... | @@ -1128,7 +1128,7 @@ |
1128 | 1128 | }, |
1129 | 1129 | "from-relations": "Giden ilişkiler", |
1130 | 1130 | "to-relations": "Gelen ilişkiler", |
1131 | - "selected-relations": "{ count, select, 1 {1 ilişki} other {# ilişki} } seçildi", | |
1131 | + "selected-relations": "{ count, plural, 1 {1 ilişki} other {# ilişki} } seçildi", | |
1132 | 1132 | "type": "Tür", |
1133 | 1133 | "to-entity-type": "Hedef Öğe Türü", |
1134 | 1134 | "to-entity-name": "Hedef Öğe Adı", |
... | ... | @@ -1144,11 +1144,11 @@ |
1144 | 1144 | "edit": "İlişki düzenle", |
1145 | 1145 | "delete-to-relation-title": "'{{entityName}}' öğesine olan ilişkiyi silmek istediğinize emin misiniz?", |
1146 | 1146 | "delete-to-relation-text": "UYARI: Onaylandıktan sonra '{{entityName}}' öğesinin şimdiki öğeyle olan ilişkisi sona erecektir.", |
1147 | - "delete-to-relations-title": "{ count, select, 1 {1 ilişkiyi} other {# ilişkiyi} } silmek istediğinize emin misiniz?", | |
1147 | + "delete-to-relations-title": "{ count, plural, 1 {1 ilişkiyi} other {# ilişkiyi} } silmek istediğinize emin misiniz?", | |
1148 | 1148 | "delete-to-relations-text": "UYARI: Onaylandıktan sonra tüm seçili ilişkiler kaldırılacaktır ve ilgili öğelerin şimdiki öğeyle ilişkisi sona erecektir.", |
1149 | 1149 | "delete-from-relation-title": "'{{entityName}}' öğesinden ilişkiyi silmek istediğinize emin misiniz?", |
1150 | 1150 | "delete-from-relation-text": "UYARI: Onaylandıktan sonra şimdiki öğenin '{{entityName}}' öğesiyle ilişkisi sonlandırılacaktır.", |
1151 | - "delete-from-relations-title": "{ count, select, 1 {1 ilişkiyi} other {# ilişkiyi} } silmek istediğinize emin misiniz?", | |
1151 | + "delete-from-relations-title": "{ count, plural, 1 {1 ilişkiyi} other {# ilişkiyi} } silmek istediğinize emin misiniz?", | |
1152 | 1152 | "delete-from-relations-text": "UYARI: Onaylandıktan sonra tüm seçili ilişkiler kaldırılacak ve şimdiki öğenin ilgili tüm öğelerle ilişkisi sona erecektir.", |
1153 | 1153 | "remove-relation-filter": "İlişki filtresini kaldır", |
1154 | 1154 | "add-relation-filter": "İlişkisi ekle", |
... | ... | @@ -1171,8 +1171,8 @@ |
1171 | 1171 | "set-root-rulechain-text": "Onaydan sonra kural zinciri kökleşecek ve gelen tüm iletilerle ilgilenecek.", |
1172 | 1172 | "delete-rulechain-title": "'{{ruleName}}' isimli kuralı silmek istediğinize emin misiniz?", |
1173 | 1173 | "delete-rulechain-text": "UYARI: Onaylandıktan sonra kural ve ilişkili tüm veriler geri yüklenemez şekilde silinecektir.", |
1174 | - "delete-rulechains-title": "{ count, select, 1 {1 kuralı} other {# kuralı} } sikmek istediğinize emin misiniz?", | |
1175 | - "delete-rulechains-action-title": "{ count, select, 1 {1 kuralı} other {# kuralı} sil}", | |
1174 | + "delete-rulechains-title": "{ count, plural, 1 {1 kuralı} other {# kuralı} } sikmek istediğinize emin misiniz?", | |
1175 | + "delete-rulechains-action-title": "{ count, plural, 1 {1 kuralı} other {# kuralı} } sil", | |
1176 | 1176 | "delete-rulechains-text": "UYARI: Onaylandıktan sonra seçili tüm kurallar ve ilişkili tüm veriler geri yüklenemez şekilde silinecektir.", |
1177 | 1177 | "add-rulechain-text": "Yeni kural ekle", |
1178 | 1178 | "no-rulechains-text":"Hiçbir kural bulunamadı", |
... | ... | @@ -1270,8 +1270,8 @@ |
1270 | 1270 | "tenant-details": "Tenant detayları", |
1271 | 1271 | "delete-tenant-title": "'{{tenantTitle}}' isimli tenantı silmek istediğinize emin misiniz?", |
1272 | 1272 | "delete-tenant-text": "UYARI: Onaylandıktan sonra tenant ve ilişkili tüm veriler geri yüklenemez şekilde silinecektir.", |
1273 | - "delete-tenants-title": "{ count, select, 1 {1 tenantı} other {# tenantı} } silmek istediğinize emin misiniz?", | |
1274 | - "delete-tenants-action-title": "{ count, select, 1 {1 tenantı} other {# tenantı} } sil", | |
1273 | + "delete-tenants-title": "{ count, plural, 1 {1 tenantı} other {# tenantı} } silmek istediğinize emin misiniz?", | |
1274 | + "delete-tenants-action-title": "{ count, plural, 1 {1 tenantı} other {# tenantı} } sil", | |
1275 | 1275 | "delete-tenants-text": "UYARI: Onaylandıktan sonra seçili tüm tenantlar ve ilişkili tüm veriler geri yüklenemez şekilde silinecektir", |
1276 | 1276 | "title": "Başlık", |
1277 | 1277 | "title-required": "Başlık gerekli.", |
... | ... | @@ -1325,8 +1325,8 @@ |
1325 | 1325 | "user-details": "Kullanıcı detayları", |
1326 | 1326 | "delete-user-title": "'{{userEmail}}' kullanıcısını silmek istediğinize emin misiniz?", |
1327 | 1327 | "delete-user-text": "UYARI: Onaylandıktan sonra kullanıcı ve ilişkili tüm verileri geri yüklenemez şekilde silinecektir.", |
1328 | - "delete-users-title": "{ count, select, 1 {1 kullanıcıyı} other {# kullanıcıyı} } sikmek istediğinize emin misiniz?", | |
1329 | - "delete-users-action-title": "{ count, select, 1 {1 kullancıyı} other {# kullanıcıyı} } sil", | |
1328 | + "delete-users-title": "{ count, plural, 1 {1 kullanıcıyı} other {# kullanıcıyı} } sikmek istediğinize emin misiniz?", | |
1329 | + "delete-users-action-title": "{ count, plural, 1 {1 kullancıyı} other {# kullanıcıyı} } sil", | |
1330 | 1330 | "delete-users-text": "UYARI: Onaylandıktan sonra kullanıcı ve ilişkili tüm verileri geri yüklenemez şekilde silinecektir.", |
1331 | 1331 | "activation-email-sent-message": "Etkinleştirme e-postası başarılı bir şekilde gönderildi!", |
1332 | 1332 | "resend-activation": "Etkinleştirme e-postasını yeniden gönder", |
... | ... | @@ -1445,8 +1445,8 @@ |
1445 | 1445 | "widgets-bundle-details": "Gösterge demeti detayları", |
1446 | 1446 | "delete-widgets-bundle-title": "'{{widgetsBundleTitle}}' isimli gösterge demetini silmek istediğinize emin misiniz?", |
1447 | 1447 | "delete-widgets-bundle-text": "UYARI: Onaylandıktan sonra gösterge demeti ve ilişkili tüm veriler geri yüklenemez şekilde silinecektir.", |
1448 | - "delete-widgets-bundles-title": "{ count, select, 1 {1 gösterge demetini} other {# gösterge demetini} } silmek istediğinize emin misiniz?", | |
1449 | - "delete-widgets-bundles-action-title": "{ count, select, 1 {1 gösterge demetini} other {# gösterge demetini} } sil", | |
1448 | + "delete-widgets-bundles-title": "{ count, plural, 1 {1 gösterge demetini} other {# gösterge demetini} } silmek istediğinize emin misiniz?", | |
1449 | + "delete-widgets-bundles-action-title": "{ count, plural, 1 {1 gösterge demetini} other {# gösterge demetini} } sil", | |
1450 | 1450 | "delete-widgets-bundles-text": "UYARI: Onaylandıktan sonra seçili tüm gösterge demetleri ve ilişkili tüm veriler geri yüklenemez şekilde silinecektir.", |
1451 | 1451 | "no-widgets-bundles-matching": "'{{widgetsBundle}}' ile eşleşen gösterge demeti bulunamadı.", |
1452 | 1452 | "widgets-bundle-required": "Gösterge demeti gerekli.", |
... | ... | @@ -1482,7 +1482,7 @@ |
1482 | 1482 | "use-dashboard-timewindow": "Kontrol paneli zaman aralığı kullan", |
1483 | 1483 | "display-legend": "Lejant göster", |
1484 | 1484 | "datasources": "Veri kaynakları", |
1485 | - "maximum-datasources": "En fazla { count, select, 1 {1 veri kaynağı kullanılabilir.} other {# veri kaynağı kullanılabilir} }", | |
1485 | + "maximum-datasources": "En fazla { count, plural, 1 {1 veri kaynağı kullanılabilir.} other {# veri kaynağı kullanılabilir} }", | |
1486 | 1486 | "datasource-type": "Tür", |
1487 | 1487 | "datasource-parameters": "Parametreler", |
1488 | 1488 | "remove-datasource": "Veri kaynağını kaldır", |
... | ... | @@ -1539,7 +1539,7 @@ |
1539 | 1539 | "ru_RU": "Rusça", |
1540 | 1540 | "es_ES": "İspanyol", |
1541 | 1541 | "ja_JA": "Japonca", |
1542 | - "TR": "Türkçe" | |
1542 | + "tr_TR": "Türkçe" | |
1543 | 1543 | } |
1544 | 1544 | } |
1545 | 1545 | } |
\ No newline at end of file | ... | ... |
... | ... | @@ -121,7 +121,7 @@ export default function NodeScriptTest($q, $mdDialog, $document, ruleChainServic |
121 | 121 | onShowingCallback: onShowingCallback |
122 | 122 | }, |
123 | 123 | fullscreen: true, |
124 | - skipHide: true, | |
124 | + multiple: true, | |
125 | 125 | targetEvent: $event, |
126 | 126 | onComplete: () => { |
127 | 127 | onShowingCallback.onShowed(); | ... | ... |
... | ... | @@ -100,7 +100,7 @@ export default function AddUserController($scope, $mdDialog, $state, $stateParam |
100 | 100 | }, |
101 | 101 | parent: angular.element($document[0].body), |
102 | 102 | fullscreen: true, |
103 | - skipHide: true, | |
103 | + multiple: true, | |
104 | 104 | targetEvent: $event |
105 | 105 | }).then(function () { |
106 | 106 | deferred.resolve(); | ... | ... |
... | ... | @@ -402,7 +402,7 @@ function AlarmsTableWidgetController($element, $scope, $filter, $mdMedia, $mdDia |
402 | 402 | parent: angular.element($document[0].body), |
403 | 403 | targetEvent: $event, |
404 | 404 | fullscreen: true, |
405 | - skipHide: true, | |
405 | + multiple: true, | |
406 | 406 | onShowing: function(scope, element) { |
407 | 407 | onShowingCallback.onShowing(scope, element); |
408 | 408 | } | ... | ... |
... | ... | @@ -209,8 +209,8 @@ export default class TbCanvasDigitalGauge { |
209 | 209 | } |
210 | 210 | var value = tvPair[1]; |
211 | 211 | if(value !== this.gauge.value) { |
212 | - this.gauge.value = value; | |
213 | 212 | this.gauge._value = value; |
213 | + this.gauge.value = value; | |
214 | 214 | } else if (this.localSettings.showTimestamp && this.gauge.timestamp != timestamp) { |
215 | 215 | this.gauge.timestamp = timestamp; |
216 | 216 | } | ... | ... |