Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. angular.module('app').controller('entityLookupModalController', entityLookupModalController);
  2.  
  3. entityLookupModalController.$inject = ['$scope', '$modalInstance', 'options'];
  4.  
  5. function entityLookupModalController($scope, $modalInstance, options) {
  6. let self = this;
  7.  
  8. self.gridOptions = {
  9. enableRowSelection: true,
  10. enableRowHeaderSelection: false,
  11. multiSelect: false,
  12. enableFiltering: true,
  13. onRegisterApi: onRegisterApi,
  14. data: getData(),
  15. rowTemplate: ` <div ng-dblclick="grid.appScope.dblclickHandler(row.entity)"
  16. ng-repeat="col in colContainer.renderedColumns track by col.colDef.name"
  17. class="ui-grid-cell" ui-grid-cell></div>`
  18. };
  19.  
  20. _.assign(self.gridOptions, _.omit(options, 'data'));
  21.  
  22. $scope.dblclickHandler = (val)=> {
  23. $modalInstance.close(val);
  24. };
  25.  
  26. self.selectedItem = null;
  27. self.ok = closeAndReturnSelectedOption;
  28. self.cancel = closeWithoutReturn;
  29.  
  30. function onRegisterApi(gridApi) {
  31. // set gridApi on scope
  32. self.gridApi = gridApi;
  33.  
  34. gridApi.selection.on.rowSelectionChanged($scope, (row) => {
  35. self.selectedItem = row.isSelected ? row.entity : null;
  36. });
  37. }
  38.  
  39. function getData() {
  40. return options.data.map((row)=> {
  41. let obj = !_.isPlainObject(row.value)
  42. ? { lookup: row.value }
  43. : row.value;
  44.  
  45. obj.key = row.id || _.uniqueId();
  46.  
  47. return obj;
  48. });
  49. }
  50.  
  51. function closeAndReturnSelectedOption() {
  52. if (self.selectedItem !== null) {
  53. $modalInstance.close(self.selectedItem);
  54. }
  55. }
  56.  
  57. function closeWithoutReturn() {
  58. $modalInstance.dismiss('cancel');
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement