123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /**
- * Created by robin on 11/6/15.
- */
-
-
- angular.module('luticateUtils')
- .directive('luPickerTable', [
- function() {
- return {
- restrict: 'E',
- scope: {
- options: '&'
- },
- templateUrl: "/luticate/lupickertable.html",
- link: function ($scope, element, attrs) {
-
- $scope.pickerOptions = $scope.options();
- $scope.pickerOptions.luPickerTableScope = $scope;
- if ($scope.pickerOptions.pickedItems == null) {
- $scope.pickerOptions.pickedItems = [];
- }
-
- var onItemClicked = $scope.pickerOptions.onItemClicked;
- $scope.pickerOptions.onItemClicked = function(item)
- {
- if (onItemClicked != null) {
- onItemClicked(item);
- }
- $scope.pickerOptions.luBasicTableScope.toggleCheckedItem(item);
- };
- var onItemChecked = $scope.pickerOptions.onItemChecked;
- $scope.pickerOptions.onItemChecked = function(item, checked)
- {
- if (onItemChecked != null) {
- onItemChecked(item, checked);
- }
-
- var id = $scope.pickerOptions.getItemId(item);
- var it = $scope.pickerOptions.pickedItems.find(function(item)
- {
- return $scope.pickerOptions.getItemId(item) == id;
- });
- var idx = $scope.pickerOptions.pickedItems.indexOf(it);
- if (idx > -1) {
- if (!checked) {
- $scope.pickerOptions.pickedItems.splice(idx, 1);
- }
- }
- else {
- if (checked) {
- $scope.pickerOptions.pickedItems.push(item);
- }
- }
- };
- var onPageChanged = $scope.pickerOptions.onPageChanged;
- $scope.pickerOptions.onPageChanged = function()
- {
- if (onPageChanged != null) {
- onPageChanged();
- }
-
- for (var i = 0; i < $scope.pickerOptions.pickedItems.length; ++i) {
- var ii = $scope.pickerOptions.pickedItems[i];
- var iiId = $scope.pickerOptions.getItemId(ii);
- for (var j = 0; j < $scope.pickerOptions.luBasicTableScope.items.Data.length; ++j) {
- var ij = $scope.pickerOptions.luBasicTableScope.items.Data[j];
- if (iiId == $scope.pickerOptions.getItemId(ij)) {
- $scope.pickerOptions.checkedItems.push(iiId);
- }
- }
- }
- };
- $scope.pickerOptions.canCheck = function()
- {
- return true;
- };
- $scope.pickerOptions.canClick = function()
- {
- return true;
- };
-
- $scope.unPickItem = function(item)
- {
- var id = $scope.pickerOptions.getItemId(item);
- if ($scope.pickerOptions.checkedItems.find(function(it)
- {
- return it == id;
- }) != null) {
- $scope.pickerOptions.luBasicTableScope.toggleCheckedId(id, item);
- }
- else {
- $scope.pickerOptions.onItemChecked(item, false);
- }
- }
- }
- };
- }
- ]);
-
- angular.module('luticateUtils').run(['$templateCache', function($templateCache)
- {
- $templateCache.put('/luticate/lupickertable.html',
- '<div class="col-sm-3">' +
- 'Selected items:' +
- '<div ng-repeat="item in pickerOptions.pickedItems" ng-click="unPickItem(item)"' +
- 'class="col-sm-12 lu-picker-table-picked-items">' +
- '{{ pickerOptions.getItemText(item) }}' +
- '</div>' +
- '</div>' +
- '<lu-basic-table options="pickerOptions" class="col-sm-9"></lu-basic-table>');
- }]);
|