angular-masterrow
Version:
The plugin necessary to use MasterRow tool in AngularJS.
1 lines • 1.39 kB
JavaScript
angular.module("angular-masterrow",[]).directive("masterrow",function(){return{restrict:"E",link:function(n,r){n.uniqueID="mrContainer_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1),r[0].id=n.uniqueID,void 0!=n.mrOptions?(n.masterrowOptions=n.mrOptions,n.masterrowOptions.containerId=n.uniqueID):n.masterrowOptions={containerId:n.uniqueID,filters:n.mrFilters,pagination:n.mrPagination,detailing:n.mrDetailing,personalization:n.mrPersonalization,rowAction:n.mrRowAction,sorting:n.mrSorting,exporting:n.mrExporting,toProcessData:n.mrToProcessData};var t=new MasterRow(n.masterrowOptions),o=function(){t.pageLoadEventCheck()};t.toProcessData(n.masterrowOptions.toProcessData),n.$on("executeFunctionHandler",function(){t.toProcessData()}),n.$on("$locationChangeSuccess",function(){o()}),n.$on("$routeChangeSuccess",function(){o()}),n.$on("$stateChangeSuccess",function(){o()}),n.$on("clearFiltersHandler",function(){t.clearFilters()}),n.$on("$destroy",function(){n.masterrowOptions={},t.end()})},template:"<div></div>",scope:{mrFilters:"=",mrPagination:"=",mrDetailing:"=",mrToProcessData:"=",mrPersonalization:"=",mrRowAction:"=",mrSorting:"=",mrExporting:"=",mrOptions:"="}}}).factory("angularMasterrowService",["$rootScope",function(n){return{executeProcess:function(){n.$broadcast("executeFunctionHandler")},clearFilters:function(){n.$broadcast("clearFiltersHandler")}}}]);