Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

lupickertable.js 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /**
  2. * Created by robin on 11/6/15.
  3. */
  4. angular.module('luticateUtils')
  5. .directive('luPickerTable', ['dialogs', 'luticateDialogErrorHelper',
  6. function(dialogs, luticateDialogErrorHelper) {
  7. return {
  8. restrict: 'E',
  9. scope: {
  10. options: '&'
  11. },
  12. templateUrl: "views/lupickertable.html",//"/luticate/lupickertable.html",
  13. link: function ($scope, element, attrs) {
  14. $scope.pickerOptions = $scope.options();
  15. $scope.pickerOptions.luPickerTableScope = $scope;
  16. $scope.pickerOptions.pickedItems = [];
  17. var onItemClicked = $scope.pickerOptions.onItemClicked;
  18. $scope.pickerOptions.onItemClicked = function(item)
  19. {
  20. if (onItemClicked != null) {
  21. onItemClicked(item);
  22. }
  23. $scope.pickerOptions.luBasicTableScope.toggleCheckedItem(item);
  24. };
  25. var onItemChecked = $scope.pickerOptions.onItemChecked;
  26. $scope.pickerOptions.onItemChecked = function(item, checked)
  27. {
  28. if (onItemChecked != null) {
  29. onItemChecked(item, checked);
  30. }
  31. var id = $scope.pickerOptions.getItemId(item);
  32. var it = $scope.pickerOptions.pickedItems.find(function(item)
  33. {
  34. return $scope.pickerOptions.getItemId(item) == id;
  35. });
  36. var idx = $scope.pickerOptions.pickedItems.indexOf(it);
  37. if (idx > -1) {
  38. if (!checked) {
  39. $scope.pickerOptions.pickedItems.splice(idx, 1);
  40. }
  41. }
  42. else {
  43. if (checked) {
  44. $scope.pickerOptions.pickedItems.push(item);
  45. }
  46. }
  47. };
  48. var onPageChanged = $scope.pickerOptions.onPageChanged;
  49. $scope.pickerOptions.onPageChanged = function()
  50. {
  51. if (onPageChanged != null) {
  52. onPageChanged();
  53. }
  54. for (var i = 0; i < $scope.pickerOptions.pickedItems.length; ++i) {
  55. var ii = $scope.pickerOptions.pickedItems[i];
  56. var iiId = $scope.pickerOptions.getItemId(ii);
  57. for (var j = 0; j < $scope.pickerOptions.luBasicTableScope.items.Data.length; ++j) {
  58. var ij = $scope.pickerOptions.luBasicTableScope.items.Data[j];
  59. if (iiId == $scope.pickerOptions.getItemId(ij)) {
  60. $scope.pickerOptions.checkedItems.push(iiId);
  61. }
  62. }
  63. }
  64. };
  65. $scope.pickerOptions.canCheck = function()
  66. {
  67. return true;
  68. };
  69. $scope.pickerOptions.canClick = function()
  70. {
  71. return true;
  72. };
  73. }
  74. };
  75. }
  76. ]);
  77. angular.module('luticateUtils').run(['$templateCache', function($templateCache)
  78. {
  79. $templateCache.put('/luticate/lupickertable.html', '');
  80. }]);