广州市综治平台后端
xusd
2025-06-07 36306491396230522fa20585c2621a7fc899849a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/* Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
/*
 * Controller for morph shape selection
 */
 
var FlowableDefineDataCtrl = [ '$rootScope', '$scope', 'dialog', '$timeout', '$translate', function($rootScope, $scope, dialog, $timeout, $translate) {
 
    $scope.definedDataItems = [];
    $scope.selectedDataItems = [];
    
    // Config for grid
    $scope.gridOptions = {
        data: 'definedDataItems',
        enableRowSelection: true,
        headerRowHeight: 28,
        multiSelect: false,
        keepLastSelected : false,
        selectedItems: $scope.selectedDataItems,
        enableHorizontalScrollbar: 0,
        enableColumnMenus: false,
        enableSorting: false,
        columnDefs: [{ field: 'name', displayName: 'Name'},
            { field: 'value', displayName: 'Value'}]
    };
    
    // Click handler for add button
    $scope.addNewDataItem = function() {
        $scope.definedDataItems.push({ name : '',
            value : ''});
    };
 
    // Click handler for remove button
    $scope.removeDataItem = function() {
        if ($scope.selectedDataItems.length > 0) {
            var index = $scope.definedDataItems.indexOf($scope.selectedDataItems[0]);
            $scope.gridOptions.selectItem(index, false);
            $scope.definedDataItems.splice(index, 1);
 
            $scope.selectedDataItems.length = 0;
            if (index < $scope.definedDataItems.length) {
                $scope.gridOptions.selectItem(index + 1, true);
            } else if ($scope.definedDataItems.length > 0) {
                $scope.gridOptions.selectItem(index - 1, true);
            }
        }
    };
 
    // Click handler for up button
    $scope.moveDataItemUp = function() {
        if ($scope.selectedParameters.length > 0) {
            var index = $scope.definedDataItems.indexOf($scope.selectedDataItems[0]);
            if (index != 0) { // If it's the first, no moving up of course
                // Reason for funny way of swapping, see https://github.com/angular-ui/ng-grid/issues/272
                var temp = $scope.definedDataItems[index];
                $scope.definedDataItems.splice(index, 1);
                $timeout(function(){
                    $scope.definedDataItems.splice(index + -1, 0, temp);
                }, 100);
 
            }
        }
    };
 
    // Click handler for down button
    $scope.moveDataItemDown = function() {
        if ($scope.selectedParameters.length > 0) {
            var index = $scope.definedDataItems.indexOf($scope.selectedDataItems[0]);
            if (index != $scope.definedDataItems.length - 1) { // If it's the last element, no moving down of course
                // Reason for funny way of swapping, see https://github.com/angular-ui/ng-grid/issues/272
                var temp = $scope.definedDataItems[index];
                $scope.definedDataItems.splice(index, 1);
                $timeout(function(){
                    $scope.definedDataItems.splice(index + 1, 0, temp);
                }, 100);
 
            }
        }
    };
    
    $scope.save = function() {
      dialog.close();
    };
 
    $scope.cancel = function() {
      dialog.close();
    };
 
    // Close button handler
    $scope.close = function() {
        dialog.close();
    };
 
}];