Advertisement
Guest User

Untitled

a guest
Feb 17th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 78.24 KB | None | 0 0
  1. (function(u,v,t){u.layLoadingPageSize=15;var f=angular.module("main.services",[]);f.config(["$provide","$httpProvider",function(f,l){f.factory("myHttpInterceptor",[function(){function d(d){if("unauthorized"===d.data.errorMessage||"unauthorized"===d.data.authMessage||"userDisabled"===d.statusText)"/test"!==u.location.pathname&&("userDisabled"===d.statusText&&alert("Your account has been disabled."),u.loggingOut=!0,u.location.href="/logout",u.location.hash="");else return d.data.showMessage?(alert(d.data.showMessage),
  2. {}):d}return{request:function(d){d.url&&(d.params||(d.params={}),0<=d.url.indexOf(".html")||(d.params.t=(new Date).getTime()));return d},response:d,responseError:d}}]);l.interceptors.push("myHttpInterceptor")}]);f.run(["$http","$rootScope","ConstantsService",function(f,l,d){f.get("/users/current").success(function(d){l.currentUser=d});l.numberCounterDelimiter="-"}]);f.service("Downloader",function(){function f(e,c){if(/(iP)/g.test(navigator.userAgent))return alert("Your device does not support files downloading. Please try again in desktop browser."),
  3. !1;if(l||k){var a=document.createElement("a");a.href=e;a.download!==t&&(c||(c=e.substring(e.lastIndexOf("/")+1,e.length)),a.download=c);if(document.createEvent){var b=document.createEvent("MouseEvents");b.initEvent("click",!0,!0);a.dispatchEvent(b);return!0}}else if(d){v("#pdf").remove();v("body").append("<iframe id='pdf' style='display:none;'></iframe>");document.getElementById("pdf").src=e;return}u.open(e,"_new");return!0}var l=-1<navigator.userAgent.toLowerCase().indexOf("chrome"),d=-1<navigator.userAgent.toLowerCase().indexOf("safari"),
  4. k=-1<navigator.userAgent.toLowerCase().indexOf("firefox");return{downloadByUrl:f,downloadTicketAttachments:function(d){f("/v2/tickets/"+d+"/downloadAttachments")},downloadFile:function(d){f("/file/"+d)}}});f.service("Utils",["$http","$rootScope",function(f,l){function d(b){var a=b;!a&&this.staticCopy&&(a=this);if("[object Array]"===Object.prototype.toString.call(a)){b=[];for(var c=0;c<a.length;c++)b.push(d(a[c]))}else if("[object Object]"===Object.prototype.toString.call(a))for(c in b={},a)"staticCopy"!==
  5. c&&"$$hashKey"!=c&&(b[c]=d(a[c]));else return a;return b}function k(b,a){if("[object String]"===Object.prototype.toString.call(b))return b;a=a||b;for(var h in b){var q=b[h];"[object Array]"===Object.prototype.toString.call(q)?e(q):"[object Object]"===Object.prototype.toString.call(q)&&k(q);c(a,h,q)}c(a,"staticCopy",d);return a}function e(b,a){if(a){for(var h=0;h<b.length;h++)a.push(k(b[h]));c(a,"staticCopy",d);return a}for(h=0;h<b.length;h++)b[h]=k(b[h]);c(b,"staticCopy",d);return b}function c(b,
  6. a,d){Object.defineProperty(b,a,{value:d,writable:!1,enumerable:!0,configurable:!0})}function a(b,a){for(var d=0;d<b.length;d++){var c=b[d];if(c&&(c=c.versionedId?c.versionedId.id:c.id,c===a))return d}return-1}return{customizeObj:k,customizeArray:e,defineReadOnlyProperty:c,findById:function(b,a){for(var d=0;d<b.length;d++){var c=b[d];if((c.versionedId?c.versionedId.id:c.id)===a)return c}},indexOfId:a,handleCallback:function(b,a){a&&b.then(function(b){a(b.data)},function(b){a(b.data)})},deleteById:function(b,
  7. d){var c=a(b,d);-1<c&&b.splice(c,1)},getListByUrl:function(b,a,d){var c=[];d&&(c=e(c));f.get(b).then(function(b){if(d)e(b.data,c),d(c);else for(var p=0;p<b.data.length;p++)c.push(b.data[p]);a&&a(c)},function(b){a&&a(b.data)});return c},getFormattedNumber:function(b,a){var d;if(a)for(d=""+(parseInt(b.numPart)+1);d.length<b.numPart.length;)d="0"+d;else d=b.numPart;return b.charPart?b.charPart+l.numberCounterDelimiter+d:d},getComparatorBy:function(b,a){return function(d,c){return a?c[b]-d[b]:d[b]-c[b]}},
  8. formatDate:function(b){return b.getFullYear()+"-"+(b.getMonth()+1)+"-"+b.getDate()}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("AddressesService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){return{getAllLocales:function(k){var e=d.customizeArray([]);f.get("/addresses/getAllLocales").then(function(c){d.customizeArray(c.data,e);k&&k(c.data)},function(d){k&&k(d.data)});return e}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("AssociationService",["$http","$rootScope","Utils","$filter",function(f,m,l){return{deleteAssociation:function(d,k){if(!d)throw"id is required!";var e=f({url:"/association/"+d,method:"DELETE"});l.handleCallback(e,k)}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("BillableService",["$http","$rootScope","RealTimeService","Utils","CompaniesService",function(f,m,l,d){function k(a){for(var b=0;b<a.tickets.length;b++)a.totalSum+=a.tickets[b].sum}function e(a){for(var b in a)if("staticCopy"!==b)for(var d=0;d<a[b].tickets.length;d++)a[b].totalSum||(a[b].totalSum=0),a[b].totalSum+=a[b].tickets[d].sum}function c(a){for(var b in a)if("staticCopy"!==b){a[b].lockType="NONE";for(var d=0;d<a[b].tickets.length;d++){var c=
  9. a[b].tickets[d];"NONE"===a[b].lockType&&null!=c.lockedBy?a[b].lockType="ALL":"ALL"==a[b].lockType&&null==c.lockedBy&&(a[b].lockType="NOT_ALL")}}}return{getTotalBilledAmount:function(a,b){var c=d.customizeObj({});f.get("/billable/totalBilled").then(function(h){d.customizeObj(h.data,c);l.subscribe("/billedTicketsSumAdded",a,function(b){console.log(b);"BILLED_TICKETS_SUM_ADDED"===b.action&&d.defineReadOnlyProperty(c,"value",c.value+b.data)});b&&b(h.data)},function(a){b&&b(a.data)});return c},getBillableChartData:function(a,
  10. b){var c=d.customizeArray([]);f.get("/billable/billed/lastDays").then(function(h){d.customizeArray(h.data,c);l.subscribe("/billedTicketsSumAdded",a,function(b){console.log(b);if("BILLED_TICKETS_SUM_ADDED"===b.action){var a=c[c.length-1];d.defineReadOnlyProperty(a,"sum",a.sum+b.data)}});b&&b(c)},function(a){b&&b(a.data)});return c},createInvoice:function(a,b,c,h){if(!a)throw"lockId is required!";if(!b)throw"contact is required!";if(!c)throw"address is required!";a=f.get("/invoice/create/"+a+"?&billTo="+
  11. b+"&shipTo="+c);d.handleCallback(a,h)},getActualInvoiceNumber:function(a,b){f.get("/data/actualNumber?type=INVOICE").success(function(a){b(a.number)});l.subscribe("/number?targetId=INVOICE",a,function(a){console.log(a);"NUMBER_CHANGED"===a.action&&b(d.getFormattedNumber(a.data,!0))})},search:function(a){if(!a)throw"Keyword is required!";return f.get("/billable/search?keyword="+a).then(function(a){return a.data})},getLockedTicketIds:function(a,b){},lockTicketIds:function(a,b){if(!a)throw"ticketIds is required!";
  12. var c=d.customizeObj({});f({url:"/invoice/lock",method:"POST",data:a}).then(function(a){d.customizeObj(a.data,c);b&&b(a.data)},function(a){b&&b(a.data)});return c},unlockTicketIds:function(a,b){if(!a)throw"lockId is required!";var c=f.get("/invoice/unlock/"+a);d.handleCallback(c,b)},getExistTimeByLockId:function(a,b){if(!a)throw"lockId is required!";var c=f.get("/invoice/lock/timeToUnlock/"+a);d.handleCallback(c,b)},lockTicketsByCompany:function(a,b){if(!a)throw"companyId is required!";var c=f.get("/invoice/lock/lockByCompany/"+
  13. a);d.handleCallback(c,b)},getBillablePageDto:function(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";var g=d.customizeObj({});f.get("/billable/billablePageInfo").then(function(h){d.customizeObj(h.data,g);e(g);c(g);l.subscribe("/billablePage",a,function(a){console.log(a);if("BILLABLE_EXPENSE_ADDED"==a.action){var h=a.data.companyId;g[h]||(g[h]={},g[h].tickets=[],g[h].totalSum=0,g[h].lockType="NONE");var p=d.findById(g[h].tickets,a.data.id);p||(p={},g[h].tickets.push(p));d.customizeObj(a.data,
  14. p);k(g[h]);b&&b(g)}else if("BILLABLE_EXPENSE_REMOVED"==a.action)p=g[a.data.companyId].tickets,h=d.indexOfId(p,a.data.ticketId),-1<h&&p.splice(h,1),p&&p.length&&0!==p.length?k(g[a.data.companyId]):delete g[a.data.companyId],b&&b(g);else if("TICKET_LOCKED"==a.action){for(var n=Object.keys(a.data)[0],h=0;h<a.data[n].length;h++)for(var y in g)"staticCopy"!==y&&(p=d.findById(g[y].tickets,a.data[n][h]))&&d.defineReadOnlyProperty(p,"lockedBy",n);c(g);b&&b(g)}else if("TICKET_UNLOCKED"==a.action){for(y in g)if("staticCopy"!==
  15. y)for(h=0;h<g[y].tickets.length;h++)for(p=0;p<a.data.length;p++)g[y].tickets[h].id===a.data[p]&&d.defineReadOnlyProperty(g[y].tickets[h],"lockedBy",null);c(g);b&&b(g)}});b&&b(g)});return g}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("CompaniesService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){function k(){r++;if(2===r){a=!0;for(var d=0;d<b.length;d++)b[d]()}}function e(a,b){if(!a)throw"Keyword is required!";for(var d=[],c=0;c<h.companies.length;c++){var g=h.companies[c];(b||h.currentCompany.id!==g.id)&&-1<g.name.indexOf(a)&&d.push(g)}return d}function c(d){d&&(a?d():b.push(d))}m=m.$new();var a=!1,b=[],g=[],h={companies:[],clientCompanies:[],
  16. deletedCompanies:[],currentCompany:{}},q;d.customizeObj(h);f.get("/company/clients").then(function(a){for(var b=0;b<a.data.length;b++){var c=d.customizeObj(a.data[b]);a.data[b].deletedAt?h.deletedCompanies.push(c):(h.clientCompanies.push(c),h.companies.push(c))}k()},function(a){console.error(a);throw"Cannot initialize CompaniesService!";});f.get("/company/current").then(function(a){d.customizeObj(a.data,h.currentCompany);h.companies.push(h.currentCompany);k()},function(a){console.error(a);throw"Cannot initialize CompaniesService!";
  17. });var r=0;l.subscribe("/company",m,function(b){console.log(b);if(a)if("COMPANY_SAVED"==b.action){var c=d.findById(h.companies,b.data.id);if(c)d.customizeObj(b.data,c);else for(b=d.customizeObj(b.data),h.companies.push(b),h.clientCompanies.push(b),b=0;b<g.length;b++)g[b]()}else if("COMPANY_ARCHIVED"==b.action)for(h.deletedCompanies.push(d.findById(h.companies,b.data.id)),d.deleteById(h.companies,b.data.id),d.deleteById(h.clientCompanies,b.data.id),q&&"function"==typeof q&&q(b.data.id),b=0;b<g.length;b++)g[b]();
  18. else if("COMPANY_DEARCHIVED"==b.action)for(c=d.customizeObj(b.data),h.clientCompanies.push(c),h.companies.push(c),b=0;b<g.length;b++)g[b]()});return{_addInitListener:c,_addAmountChangeListener:function(a){g.push(a)},_search:e,_isInitialized:function(){return a},getCurrentCompany:function(){return h.currentCompany},getClientCompanies:function(a){c(a);return h.clientCompanies},getAllCompanies:function(){return h.companies},getOneById:function(a,b){b&&(q=b);return d.findById(h.companies,a)||d.findById(h.deletedCompanies,
  19. a)},getUnassignedCompany:function(){for(var a=0;a<h.companies.length;a++)if(h.companies[a].isDefault)return h.companies[a]},searchByAllCompanies:function(a){return e(a,!0)},searchByClientCompanies:function(a){return e(a,!1)},getClientCompaniesInfo:function(a,b){if(!a||!a.$id)throw"Second argument must be Angularjs scope!";var c=d.customizeObj({});f.get("/company/clients/info").then(function(a){d.customizeObj(a.data,c);b&&b(a.data)},function(a){b&&b(a.data)});l.subscribe("/clientCompaniesInfo",a,function(a){console.log(a);
  20. if("CLIENT_COMPANY_INFO"==a.action){a=JSON.parse(a.data);for(var b in a)d.defineReadOnlyProperty(c,b,d.customizeObj(a[b]))}else"COMPANY_ARCHIVED"==a.action&&(delete c[a.data.id],q&&"function"==typeof q&&q(a.data.id))});return c},getCompanyInfo:function(a,b,c){if(!a)throw"companyId is required!";if(!b||!b.$id)throw"Second argument must be Angularjs scope!";var g=d.customizeObj({});f.get("/company/"+a+"/info").then(function(a){d.customizeObj(a.data,g);c&&c(a.data)},function(a){c&&c(a.data)});l.subscribe("/clientCompaniesInfo",
  21. b,function(b){console.log(b);if("CLIENT_COMPANY_INFO"==b.action){b=JSON.parse(b.data);for(var c in b)c===a&&d.customizeObj(b[a],g)}});return g},archive:function(a,b){if(!a)throw"companyId is required!";f.get("/company/archive/"+a).then(function(a){b(a)},function(a){b(a)})},dearchive:function(a,b){if(!a)throw"companyId is required!";var c=f.get("/company/dearchive/"+a);d.handleCallback(c,b)},save:function(a,b){if(!a)throw"company is required!";var c="POST";a.id&&(c="PUT");c=f({url:"/company",method:c,
  22. data:a});d.handleCallback(c,b)},saveForCompanyProfile:function(a,b,c){if(!a)throw"data is required!";if(!b)throw"toUpdate is required!";b=b.toLowerCase();"addresses"===b&&(a={addresses:a});a=f({url:"/settings/companyProfile/"+b,method:"PUT",data:a});d.handleCallback(a,c)},getCompanyForSettingPage:function(a){var b={};f.get("/settings/companyProfile/").then(function(c){d.customizeObj(c.data,b);a&&a(c.data)},function(b){a&&a(b.data)});return b},getCompanyData:function(a,b,c){if(!b)throw"companyId is required!";
  23. if(!a||!a.$id)throw"Second argument must be Angularjs scope!";var g=d.customizeObj({});f.get("/company/"+b+"/data").then(function(a){d.customizeObj(a.data,g);c&&c(a.data)},function(a){c&&c(a.data)});l.subscribe("/companyDto?targetId="+b,a,function(a){console.log(a);if("COMPANY_DTO_CHANGED"==a.action){a=JSON.parse(a.data);for(var c in a)c===b&&d.customizeObj(a[b],g)}});return g},isNameUnique:function(a,b,c){if(!a)throw"name is required!";var g=d.customizeObj({});f.get("/company/isCompanyNameUnique?name="+
  24. a+"&id="+b).then(function(a){d.customizeObj(a.data,g);c&&c(a.data)},function(a){c&&c(a.data)});return g},isDomainUnique:function(a,b,c){if(!a)throw"domain is required!";var g=d.customizeObj({});f.get("/company/isCompanyDomainUnique?domain="+a+"&id="+b).then(function(a){d.customizeObj(a.data,g);c&&c(a.data)},function(a){c&&c(a.data)});return g},saveCover:function(a,b,c){if(!a)throw"croppedImage is required!";if(!b)throw"companyId is required!";a=f({url:"/company/"+b+"/cover",method:"POST",data:a});
  25. d.handleCallback(a,c)},deleteCover:function(a,b){if(!a)throw"companyId is required!";var c=f({url:"/company/"+a+"/cover",method:"DELETE"});d.handleCallback(c,b)},getCompanyContacts:function(a,b,c){if(!a||!a.$id)throw"First argument must be Angularjs scope!";if(!b)throw"Second argument must be companyId!";return d.getListByUrl("/company/"+b+"/contacts",c,function(c){l.subscribe("/companyContact",a,function(a){console.log(a);"COMPANY_CONTACT"==a.action&&(c.splice(0,c.length),d.customizeArray(a.data,
  26. c))});l.subscribe("/subscription?targetId="+b,a,function(a){console.log(a);if(a.data.contact){var b=d.findById(c,a.data.contact.id);b&&("SUBSCRIPTION_SAVED"==a.action?d.defineReadOnlyProperty(b,"subscription",d.customizeObj(a.data)):"SUBSCRIPTION_DELETED"==a.action&&delete b.subscription)}})})}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("ConstantsService",["$http",function(f){var m;f.get("/data/getConstants").then(function(f){m=f.data});return{getConstant:function(f){if(!f)return m;if(Array.isArray(f)){for(var d={},k=0;k<f.length;k++)m.hasOwnProperty(f[k])&&(d[f[k]]=m[f[k]]);return d}if(m.hasOwnProperty(f))return m[f]}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("ContactsService",["$http","$rootScope","RealTimeService","Utils","CompaniesService",function(f,m,l,d,k){return{isEmailUnique:function(e,c,a){if(!e)throw"email is required!";var b=d.customizeObj({});f.get("/contacts/isEmailUnique?email="+e+"&id="+c).then(function(c){d.customizeObj(c.data,b);a&&a(c.data)},function(b){a&&a(b.data)});return b},getSubscribedContactsOnTicket:function(e,c){if(!e||!e.$id)throw"First argument must be Angularjs scope!";
  27. var a=d.customizeArray([]);f.get("/contacts/getSubscribedContactsOnTicket/").then(function(b){d.customizeArray(b.data,a);l.subscribe("/subscription?targetId="+k.getCurrentCompany().id,e,function(b){console.log(b);if(b.data.contact){var h=d.findById(a,b.data.contact.id);h&&("SUBSCRIPTION_SAVED"==b.action?(d.defineReadOnlyProperty(h,"subscription",d.customizeObj(b.data)),c&&c()):"SUBSCRIPTION_DELETED"==b.action&&(delete h.subscription,c&&c()))}});l.subscribe("/vendorContacts",e,function(b){console.log(b);
  28. if("VENDOR_CONTACTS_SAVE"==b.action){for(var h=0;h<b.data.length;h++){var e=b.data[h],r=d.findById(a,e.id);e.subscription.ticket?r?d.customizeObj(e,r):a.push(d.customizeObj(e)):r&&d.deleteById(a,r.id)}c&&c()}else if("VENDOR_CONTACTS_DELETE"==b.action){for(h=0;h<b.data.length;h++)d.deleteById(a,b.data[h].id);c&&c()}});c&&c(b.data)},function(a){c&&c(a.data)});return a},getAllVendorsContacts:function(e,c){if(!e||!e.$id)throw"First argument must be Angularjs scope!";var a=d.customizeArray([]);f.get("/contacts/getAllVendorsContacts/").then(function(b){d.customizeArray(b.data,
  29. a);l.subscribe("/vendorContacts",e,function(b){console.log(b);if("VENDOR_CONTACTS_SAVE"==b.action){for(var h=0;h<b.data.length;h++){var e=b.data[h],r=d.findById(a,e.id);r?d.customizeObj(e,r):a.push(d.customizeObj(e))}c&&c()}else if("VENDOR_CONTACTS_DELETE"==b.action){for(h=0;h<b.data.length;h++)d.deleteById(a,b.data[h].id);c&&c()}});c&&c(b.data)},function(a){c&&c(a.data)});return a}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("DevicesService",["$http","$rootScope","RealTimeService","Utils","UsersService","Downloader","CompaniesService",function(f,m,l,d,k,e,c){function a(){for(var a in g.callbacks)if("staticCopy"!==a){var b=g.callbacks[a];b&&b.callback&&"function"===typeof b.callback&&b.callback(g.devices[b.companyId])}}function b(){for(var b in g.devices)if("staticCopy"!==b){if(0==g.devices[b].length){delete g.devices[b];delete g.deviceCounter[b];a();return}g.deviceCounter.companyId||
  30. (g.deviceCounter[b]=d.customizeObj({all:0,online:0}));d.defineReadOnlyProperty(g.deviceCounter[b],"all",g.devices[b].length);for(var c=0,y=0;y<g.devices[b].length;y++)g.devices[b][y].online&&c++;d.defineReadOnlyProperty(g.deviceCounter[b],"online",c)}a()}var g={devices:{},callbacks:{},deviceCounter:{}},h=m.$new(),q={},r={};d.customizeObj(g);c._addInitListener(function(){f.get("/devices?companyId="+c.getCurrentCompany().id).then(function(a){var c=g.devices;d.customizeObj(a.data,c);b();l.subscribe("/device",
  31. h,function(a){console.log(a);if("DEVICE_ONLINE"===a.action){for(var g in c[a.data.clientCompanyId])c[a.data.clientCompanyId][g].id===a.data.value&&d.defineReadOnlyProperty(c[a.data.clientCompanyId][g],"online",!0);b()}else if("DEVICE_OFFLINE"===a.action){for(g in c[a.data.clientCompanyId])c[a.data.clientCompanyId][g].id===a.data.value&&d.defineReadOnlyProperty(c[a.data.clientCompanyId][g],"online",!1);b()}else if("DEVICE_INSTALLED"===a.action)c[a.data.clientCompanyId]?c[a.data.clientCompanyId].push(d.customizeObj(JSON.parse(a.data.value).device)):
  32. (g=a.data.clientCompanyId,c[g]=[],c[g].push(JSON.parse(a.data.value).device)),b();else if("DEVICE_UNINSTALLED"===a.action){for(g in c[a.data.clientCompanyId])c[a.data.clientCompanyId][g].id===a.data.value&&c[a.data.clientCompanyId].splice(g,1);b()}});l.subscribe("/oneTimeConnection",m,function(a){"REMOTE_CONNECTION_CLOSED"!==a.action||a.data.id||(console.log(a),m.openCreateTicketForm(a.data))})})});return{downloadAgent:function(a,b,c,d){if(!a)throw"CompanyId is required!";return f.get("/data/prepareDownloadAgent?companyId="+
  33. a+"&userName="+b+"&userPassword="+c).then(function(a){d&&d(a.data);400<=a.data.code||e.downloadByUrl(a.data.link)})},runScanDevices:function(a,b,c,g){if(!a)throw"scope is required!";if(!b)throw"CompanyId is required!";if(!c)throw"AgentId is required!";var h=d.customizeObj({});a.isScanDevicesLoad=!0;f.get("/devices/refreshNetworkScan?companyId="+b+"&agentId="+c).then(function(a){console.log(a)});f.get("/devices/networkScan?companyId="+b+"&agentId="+c).then(function(w){d.customizeObj(w.data,h);h.networkScan&&
  34. d.defineReadOnlyProperty(h,"networkScan",JSON.parse(h.networkScan));l.subscribe("/netScan",a,function(w){console.log(w);if("NETWORK_SCAN"===w.action)f.get("/devices/networkScan?companyId="+b+"&agentId="+c).then(function(b){d.customizeObj(b.data,h);d.defineReadOnlyProperty(h,"networkScan",JSON.parse(h.networkScan));"Finished"===w.data&&(a.isScanDevicesLoad=!1)});else if("REMOTE_INSTALL"===w.action){var e=d.findById(h.networkScan.devices,w.data.netScanId);if(!e)for(var k in h.networkScan.devices)h.networkScan.devices[k].deviceId===
  35. w.data.deviceId&&(e=h.networkScan.devices[k]);e&&("MANAGED"===w.data.status?d.defineReadOnlyProperty(e,"agentStatus","managed"):"INSTALLED"===w.data.status?d.defineReadOnlyProperty(e,"agentStatus","installed"):"ERROR"===w.data.status?d.defineReadOnlyProperty(e,"agentStatus","error"):"LOGIN_ERROR"===w.data.status?d.defineReadOnlyProperty(e,"agentStatus","login error"):"UNKNOWN"===w.data.status?d.defineReadOnlyProperty(e,"agentStatus","unknown"):"INIT"===w.data.status?d.defineReadOnlyProperty(e,"agentStatus",
  36. "init"):"IN_PROGRESS"===w.data.status&&d.defineReadOnlyProperty(e,"agentStatus","inProgress"),d.defineReadOnlyProperty(e,"message",w.data.content));(e=q[w.data.netScanId]||q[w.data.deviceId])&&"function"===typeof e&&e();(e=r[w.data.netScanId]||r[w.data.deviceId])&&"function"===typeof e&&e()}g&&g(w.data)});g&&g()},function(a){g&&g()});return h},getDevicesCount:function(a,b){if(!a)throw"scope is required!";g.callbacks[a.$id]={companyId:c.getCurrentCompany().id,callback:b};g.devices&&b&&b(g.devices);
  37. return g.deviceCounter},getAgentsByCompany:function(a,b,c){if(!a)throw"scope is required!";if(!b)throw"CompanyId is required!";c&&(g.callbacks[a.$id]={companyId:b,callback:c});g.devices[b]&&c&&c(g.devices[b]);return g.devices[b]},isCompanyHasUserNameAndPass:function(a,b){if(!a)throw"CompanyId is required!";f.get("/devices/isCompanyHasUserNameAndPass?companyId="+a).then(function(a){b&&b(a.data);return a.data})},sendInstallAgentRequest:function(a,b,c,d){if(!a)throw"CompanyId is required!";if(!b)throw"agentId is required!";
  38. if(!c)throw"agentId is required!";Array.isArray(c)||(c=[c]);if(d&&"function"===typeof d)for(var g in c)q[c[g]]=d;f({url:"/devices/sendInstallAgentRequest?companyId="+a+"&agentId="+b,method:"POST",data:c})},sendUninstallAgentRequest:function(a,b,c,d){if(!a)throw"CompanyId is required!";if(!b)throw"agentId is required!";if(!c)throw"agentId is required!";Array.isArray(c)||(c=[c]);if(d&&"function"===typeof d)for(var g in c)r[c[g]]=d;f({url:"/devices/sendUninstallAgentRequest?companyId="+a+"&agentId="+
  39. b,method:"POST",data:c})},createOneTimeRemoteSession:function(a){f.get("/remote/createOneTimeRemoteSession").then(function(b){a&&a(b.data)},function(b){a&&a(b.data)})},getRemoteSessions:function(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";return d.getListByUrl("/remote/getRemoteSessions",b,function(b){l.subscribe("/oneTimeConnection",a,function(a){console.log(a);if("ONE_TIME_CONNECTION_CLOSED"!==a.action||a.data.id)if("ONE_TIME_DELETED"===a.action||"ONE_TIME_UNINSTALLED"===a.action)d.deleteById(b,
  40. a.data);else{var c=d.findById(b,a.data.id);c?d.customizeObj(a.data,c):b.unshift(d.customizeObj(a.data))}})})},getSessionId:function(a,b,c){if(!a)throw"remoteSessionId is required!";if(!b)throw"connectionType is required!";f.get("/devices/getSessionId?remoteSessionId="+a+"&connectionType="+b).then(function(a){c&&c(a.data)},function(a){c&&c(a.data)})},createRemoteSession:function(a,b,c,d){if(!a)throw"deviceId is required!";if(!b)throw"companyId is required!";if(!c)throw"connectionType is required!";
  41. f.get("/remote/createRemoteSession?deviceId="+a+"&connectionType="+c+"&companyId="+b).then(function(a){d&&d(a.data)},function(a){d&&d(a.data)})},deleteRemoteSession:function(a,b){if(!a)throw"ids is required!";Array.isArray(a)||(a=[a]);var c=f({url:"/remote/deleteRemoteSession",method:"POST",data:a});d.handleCallback(c,b)}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("EmailSettingsService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){return{saveNumberForm:function(k,e,c){if(!k)throw"data is required!";if(!e)throw"type is required!";k.type=e;k=f({url:"/settings/emailPages/updateNumberForm",method:"PUT",data:k});d.handleCallback(k,c)},getCompanyEmailNotification:function(k){var e={};f.get("/settings/emailPages/emailNotifications").then(function(c){d.customizeObj(c.data,e);k&&
  42. k(c.data)},function(c){k&&k(c.data)});return e},getEmailSettingPageDto:function(k,e){if(!k)throw"scope is required!";var c=d.customizeObj({});f.get("/settings/emailPages/").then(function(a){d.customizeObj(a.data,c);e&&e(a.data)},function(a){e&&e(a.data)});l.subscribe("/companyEmailNotification",k,function(a){console.log(a);"COMPANY_EMAIL_NOTIFICATION"==a.action&&d.customizeObj(a.data,c.activeAndNotDefault)});return c},getTermsAndConditions:function(k){var e={};f.get("/settings/emailPages/termsAndConditions").then(function(c){d.customizeObj(c.data,
  43. e);k&&k(c.data)},function(c){k&&k(c.data)});return e},setToDefaultTemplate:function(k,e){if(!k)throw"type is required!";var c=f({url:"/settings/emailPages/toDefaultTemplate/"+k,method:"POST"});d.handleCallback(c,e)},getTemplate:function(k,e){if(!k)throw"type is required!";var c={};f.get("/settings/emailPages/byType/"+k).then(function(a){d.customizeObj(a.data,c);e&&e(a.data)},function(a){e&&e(a.data)});return c},saveEmailTemplate:function(k,e,c){if(!k)throw"data is required!";if(!k.subject)throw"data.subject is required!";
  44. if(!k.body)throw"data.body is required!";if(!e)throw"type is required!";k=f({url:"/settings/emailPages/updateTemplate/"+e,method:"PUT",data:k});d.handleCallback(k,c)}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("FilesService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){return{create:function(d,e,c,a,b){if(!d)throw"file is required!";var g={},h=new FormData;h.append("file",d);d=new XMLHttpRequest;d.upload.addEventListener("progress",e,!1);d.addEventListener("load",function(a){a=angular.fromJson(a.currentTarget.responseText);for(var b in a)g[b]=a[b];c&&c(g)},!1);d.addEventListener("error",a,!1);d.open("POST","/file?isAvatar="+
  45. !!b);d.send(h);return g},createImageFromBase64Url:function(d,e){if(!d)throw"base64Url is required!";var c={};f({url:"/base64image",method:"POST",data:d.substring(22,d.length)}).then(function(a){for(var b in a.data)c[b]=a.data[b];e&&e(c)});return c},getMetadata:function(d,e){if(!d)throw"fileId is required!";var c={id:d};f.get("/file/"+d+"/meta").then(function(a){for(var b in a.data)c[b]=a.data[b];e&&e(c)},function(a){e&&e(a.data)});return c},remove:function(d,e){if(!d)throw"fileId is required!";f({url:"/file/"+
  46. d,method:"DELETE"}).then(function(c){e&&e(c.data)},function(c){e&&e(c.data)})},cropAvatar:function(d,e){if(!d)throw"image is required!";f({url:"/file/cropImage",method:"POST",data:d}).then(function(c){e&&e(c.data)},function(c){e&&e(c.data)})}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("ProductsService",["$http","$rootScope","RealTimeService","Utils","CompaniesService",function(f,m,l,d,k){return{search:function(d){if(!d)throw"Keyword is required!";return f.get("/products/search?keyword="+d).then(function(c){return c.data})},getFullListForAutocomplete:function(d){var c=[];f.get("/products/fullList").then(function(a){a.data.forEach(function(a){c.push(a)});d&&d()});return c},getCategories:function(e,c){if(!e||!e.$id)throw"First argument must be Angularjs scope!";
  47. return d.getListByUrl("/products/categories",c,function(a){l.subscribe("/productCategory",e,function(b){console.log(b);if("PRODUCT_CATEGORY_SAVED"==b.action){var c=d.findById(a,b.data.id);c?d.customizeObj(b.data,c):a.push(d.customizeObj(b.data))}else"PRODUCT_CATEGORY_DELETED"==b.action&&(d.deleteById(a,b.data.id),e.$broadcast("product_category_deleted",b.data))})})},saveCategory:function(e,c){if(!e)throw"category is required!";var a="/products/categories",b="POST";e.id&&(a+="/"+e.id,b="PUT");a=f({url:a,
  48. method:b,data:e});d.handleCallback(a,c)},deleteCategory:function(e,c){if(!e)throw"categoryId is required argument!";var a=f({url:"/products/categories/"+e,method:"DELETE"});d.handleCallback(a,c)},getAllByCategory:function(e,c,a,b){if(!e||!e.$id)throw"First argument must be Angularjs scope!";if(!c)throw"categoryId is required argument!";var g="/products?categoryId="+c;b&&(g="/products/full?categoryId="+c);return d.getListByUrl(g,a,function(a){l.subscribe("/product?targetId="+c,e,function(b){console.log(b);
  49. if("PRODUCT_SAVED"==b.action){var c=d.findById(a,b.data.versionedId.id);c?d.customizeObj(b.data,c):a.push(d.customizeObj(b.data))}else"PRODUCT_DELETED"==b.action&&(d.deleteById(a,b.data.versionedId.id),e.$broadcast("product_deleted",b.data))})})},saveProduct:function(e,c){if(!e)throw"product is required!";var a="POST";e.id&&(a="PUT");a=f({url:"/products",method:a,data:e});d.handleCallback(a,c)},deleteProduct:function(e,c){if(!e)throw"productId is required argument!";var a=f({url:"/products/"+e,method:"DELETE"});
  50. d.handleCallback(a,c)},isProductNameUnique:function(e,c,a,b){if(!e)throw"name is required!";if(!a)throw"vendorId is required!";var g=d.customizeObj({});f.get("/products/isProductNameUnique?name="+e+"&id="+c+"&vendorId="+a).then(function(a){d.customizeObj(a.data,g);b&&b(a.data)},function(a){b&&b(a.data)});return g},getActualCode:function(e,c){if(!e||!e.$id)throw"Second argument must be Angularjs scope!";var a=d.customizeObj({});f.get("/products/actualCode").then(function(b){d.customizeObj(b.data,a);
  51. c&&c(b.data)},function(a){c&&c(a.data)});l.subscribe("/productCode",e,function(b){console.log(b);"PRODUCT_CODE_CHANGED"===b.action&&d.defineReadOnlyProperty(a,"value",b.data)});return a}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("RealTimeService",["$http","$timeout","$rootScope",function(f,m,l){function d(){f.post("/realTime/createWatcher").success(function(c){a=c.id;if(0<b.length){for(c=0;c<b.length;c++){var d=b[c];q.subscribe(d.url,d.scope,d.callback)}b=[]}e()}).error(function(a,b,c,d){console.error("Cannot receive watcher Id !!!",a,b,c,d);throw"Cannot initialize RealTimeService";})}function k(){a=t;for(var c in h){var g=h[c];g&&!g.scope.$$destroyed&&b.push(g)}h=
  52. {};d()}function e(){0<g?m(e,300):f.post("/realTime/watch/"+a,Object.keys(h)||[],{timeout:22E5}).then(function(a){a.data||console.log("No Date in response!");console.log(a.data);if("timeout"==a.data||"destroyed"==a.data.message||205==a.status)k();else if("unauthorized"===a.data.errorMessage||"unauthorized"===a.data.authMessage||"userDisabled"===a.statusText)"userDisabled"===a.statusText&&alert("Your account has been disabled."),u.location.pathname="/logout";else{for(var b in a.data){var c=h[b];if(c&&
  53. !c.scope.$$destroyed){var d=a.data[b];if(d)for(var g=0;g<d.length;g++)c.callback(d[g])}}e()}},function(a){a&&0!==a.status?205==a.status?k():(console.log("ERRRORRR!!!!!!!!!!!!",a),m(e,300)):(console.log("ERRRORRR?????",a),m(k,1E3))})}function c(a){for(var b in h){var d=h[b];d&&!d.scope.$$destroyed&&d.callback!==c&&d.callback(a)}"COMPANY_ARCHIVED"!==a.action&&"COMPANY_DEARCHIVED"!==a.action||l.$broadcast(a.action.toLowerCase(),a.data.id)}var a,b=[{url:"/global",scope:l,callback:c}],g=0,h={};d();var q=
  54. {subscribe:function(c,d,e){a?(g++,f.get("/realTime/subscribe/"+a+c).success(function(a){g--;h[a.id]={url:c,scope:d,callback:e};d.$on("$destroy",function(){delete h[a.id]})}).error(function(a,h,q,w){g--;205==h&&(b.push({url:c,scope:d,callback:e}),k());console.error("Cannot subscribe on "+c,a,h,q,w)})):b.push({url:c,scope:d,callback:e})}};return q}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("ReceiptArchiveService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){return{getReceiptArchiveData:function(k,e){if(!k||!k.$id)throw"First argument must be Angularjs scope!";var c=d.customizeObj({list:[],companies:{}});f.get("/receiptArchive").then(function(a){d.customizeArray(a.data,c.list);c.list.forEach(function(a){var g=c.companies[a.companyId];g?g.push(a):d.defineReadOnlyProperty(c.companies,a.companyId,d.customizeArray([a]))});
  55. l.subscribe("/receiptArchive",k,function(a){console.log(a);if("RECEIPT_ARCHIVE_ADDED"===a.action){for(var g=[],h=0;h<a.data.length;h++){var e=a.data[h],k;if(e.recurringInvoice){var f=d.findById(c.list,e.recurringInvoice.id);f?(d.defineReadOnlyProperty(f,"invoicesCount",f.invoicesCount+1),d.defineReadOnlyProperty(f,"sum",f.sum+e.sum),e.date>f.date&&(d.defineReadOnlyProperty(f,"date",e.date),d.defineReadOnlyProperty(f,"paidOn",e.paidOn))):k=d.customizeObj({id:e.recurringInvoice.id,isRecurring:!0,frequency:e.recurringInvoice.frequency,
  56. number:e.recurringInvoice.number,companyId:e.company.id,date:e.date,paidOn:e.paidOn,sum:e.sum,invoicesCount:1})}else k=d.customizeObj({id:e.id,isRecurring:!1,frequency:null,number:e.number,companyId:e.company.id,date:e.date,paidOn:e.paidOn,sum:e.sum,invoicesCount:null});k&&(c.list.push(k),(e=c.companies[k.companyId])?e.push(k):d.defineReadOnlyProperty(c.companies,k.companyId,d.customizeArray([k])),0>g.indexOf(k.companyId)&&g.push(k.companyId))}c.list.sort(d.getComparatorBy("number"));g.forEach(function(a){c.companies[a].sort(d.getComparatorBy("number"))})}else if("COMPANY_ARCHIVED"===
  57. a.action){for(h=0;h<c.list.length;h++)c.list[h].companyId===a.data.id&&(c.list.splice(h,1),h--);delete c.companies[a.data.id]}});e&&e(a.data)},function(a){e&&e(a.data)});return c}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("ReceivableService",["$http","$rootScope","RealTimeService","CompaniesService","Utils","$filter",function(f,m,l,d,k){function e(c,a){if(!c)throw"invoiceIds is required!";var b=f({url:"/receivable/resend",method:"POST",data:c});k.handleCallback(b,a)}return{getReceivedPaymentsSumByCompany:function(c,a,b){if(!c)throw"companyId is required!";if(!a||!a.$id)throw"Second argument must be Angularjs scope!";var d=k.customizeObj({});f.get("/receivable/paymentSum/"+
  58. c).then(function(h){k.customizeObj(h.data,d);l.subscribe("/companyPaymentReceived?targetId="+c,a,function(a){console.log(a);"COMPANY_PAYMENT_RECEIVED"===a.action?(k.defineReadOnlyProperty(d,"value",d.value+a.data),b&&b(d)):"RECEIVED_PAYMENTS_SUM"===a.action&&k.defineReadOnlyProperty(d,"value",a.data)});b&&b(h.data)},function(a){b&&b(a.data)});return d},getReceivableGraphData:function(c,a){var b=k.customizeArray([]);f.get("/receivable/chart/lastDays").then(function(g){k.customizeArray(g.data,b);l.subscribe("/todayReceivableChartPoint?targetId="+
  59. d.getCurrentCompany().id,c,function(a){console.log(a);if("TODAY_RECEIVABLE_CHART_POINT"===a.action){var c=b[b.length-1],d=new Date(c.date),g=new Date(a.data.date);d.getFullYear()===g.getFullYear()&&d.getMonth()===g.getMonth()&&d.getDate()+1===g.getDate()?(b.push(k.customizeObj(a.data)),b.splice(0,1)):k.customizeObj(a.data,c)}});a&&a(g.data)},function(b){a&&a(b.data)});return b},getReceivableInvoicesData:function(c,a){if(!c||!c.$id)throw"First argument must be Angularjs scope!";var b=k.customizeObj({list:[],
  60. companies:{}});f.get("/receivable").then(function(d){for(var h=k.customizeArray([]),e=0;e<d.data.length;e++){var f=k.customizeObj(d.data[e]);if(f.recurringInvoice){var p=k.findById(h,f.recurringInvoice.id);p||(p=f.recurringInvoice,k.defineReadOnlyProperty(p,"isRecurring",!0),k.defineReadOnlyProperty(p,"company",f.company),k.defineReadOnlyProperty(p,"invoices",k.customizeArray([])),h.push(p));k.defineReadOnlyProperty(f,"recurringInvoice",{id:p.id,frequency:p.frequency});p.invoices.push(f)}else h.push(f)}h.sort(k.getComparatorBy("number"));
  61. for(e=0;e<h.length;e++)f=h[e],b.companies[f.company.id]||k.defineReadOnlyProperty(b.companies,f.company.id,k.customizeArray([])),b.companies[f.company.id].push(f);k.defineReadOnlyProperty(b,"list",h);l.subscribe("/receivableInvoice",c,function(a){console.log(a);if("INVOICE_SAVED"==a.action){var c=a.data,d;c.recurringInvoice?(a=k.findById(b.list,c.recurringInvoice.id),a||(a=c.recurringInvoice,a.isRecurring=!0,a.company=c.company,a.invoices=[],d=a),c.recurringInvoice={id:a.id,frequency:a.frequency},
  62. a.invoices.push(c)):d=c;d&&(d=k.customizeObj(d),b.companies[d.company.id]||k.defineReadOnlyProperty(b.companies,d.company.id,[]),b.companies[d.company.id].push(d),b.list.push(d))}else if("INVOICE_STATUS"===a.action)a.data.recurringInvoice?((c=k.findById(b.list,a.data.recurringInvoice.id))||console.error("!!!!!!!----ATEMPT TO CHANGE STATUS OF UNEXISTING RECURRING INVOICE-----!!!!!!!"),c=k.findById(c.invoices,a.data.id)):c=k.findById(b.list,a.data.id),c?k.defineReadOnlyProperty(c,"status",a.data.status):
  63. console.error("!!!!!!!----ATEMPT TO CHANGE STATUS OF UNEXISTING INVOICE-----!!!!!!!!");else if("PAYMENT_RECEIVED"===a.action)for(a=a.data,c=0;c<a.length;c++){var g=a[c],e=t;d=t;for(var h=0;h<b.list.length&&!d;h++){var f=b.list[h];if(f.isRecurring)for(var p=0;p<f.invoices.length&&!d;p++){var r=f.invoices[p];g===r.id&&(f.invoices.splice(p,1),d=r.company.id,e=f.id,0===f.invoices.length&&b.list.splice(h,1))}else g===f.id&&(b.list.splice(h,1),d=f.company.id)}d&&b.companies[d]&&(h=b.companies[d],e?(e=k.indexOfId(h,
  64. e),-1<e&&(-1<k.indexOfId(h[e].invoices,g)&&h[e].invoices.splice(e,1),0===h[e].invoices.length&&h.splice(e,1))):(g=k.indexOfId(h,g),-1<g&&h.splice(g,1)),0===h.length&&delete b.companies[d])}});a&&a(d.data)},function(b){a&&a(b.data)});return b},receivePayment:function(c,a,b){if(!c)throw"paymentMethod is required!";if(!a||0===a.length)throw"invoiceIds is required!";c=f({url:"/receivable/receivePayment",method:"POST",params:{paymentMethod:c.toUpperCase()},data:a});k.handleCallback(c,b)},resendInvoice:function(c,
  65. a){if(!c)throw"invoiceId is required!";e([c],a)},resendInvoices:e,search:function(c){if(!c)throw"Keyword is required!";return f.get("/receivable/search?keyword="+c).then(function(a){return a.data})}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("RecurringService",["$http","$rootScope","RealTimeService","CompaniesService","Utils","$filter",function(f,m,l,d,k){function e(a,b,c,d){if(!b)throw"recurringInvoiceId is required!";if(!c)throw"expense is required!";a={url:"/recurringInvoice/"+b+"/"+a,data:c};c.id?(a.method="PUT",a.url=a.url+"/"+c.id):a.method="POST";c=f(a);k.handleCallback(c,d)}function c(a,b,c){if(!a)throw"recurringInvoiceId is required!";if(!b)throw"expenseId is required!";
  66. a=f({url:"/recurringInvoice/"+a+"/expense/"+b,method:"DELETE"});k.handleCallback(a,c)}return{getRecurringGraphData:function(a,b){var c=["WEEKLY","MONTHLY","YEARLY"],d=k.customizeArray([]);f.get("/recurringInvoice/billed/lastDays").then(function(e){k.customizeArray(e.data,d);l.subscribe("/recurringChart",a,function(a){console.log(a);if("RECURRING_CHART"===a.action){for(var b=new Date(a.data.date),e=0;e<d.length;e++){var f=d[e],q=new Date(f[f.length-1].date);q.getFullYear()===b.getFullYear()&&q.getMonth()===
  67. b.getMonth()&&q.getDate()+1===b.getDate()&&(f.push(k.customizeObj({date:k.formatDate(b),sum:0})),f.splice(0,1))}b=c.indexOf(a.data.type);b=d[b];k.defineReadOnlyProperty(b[b.length-1],"sum",a.data.sum)}});b&&b(e.data)},function(a){b&&b(a.data)});return d},getRecurringCompanies:function(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";var c=[];f({url:"/recurringInvoice/total",method:"GET"}).then(function(d){k.customizeArray(d.data,c);l.subscribe("/recurringTotal",a,function(a){console.log(a);
  68. if("CLIENT_RECURRING_TOTAL"===a.action){var b=k.indexOfId(c,a.data.id);if(0===a.data.total)-1<b&&c.splice(b,1);else if(-1<b)k.customizeObj(a.data,c[b]);else{for(var b=!0,d=0;d<c.length;d++)c[d].company.id===a.data.company.id&&(c[d].id=a.data.id,c[d].total=a.data.total,c[d].invoicesCount=a.data.invoicesCount,b=!1);b&&c.push(k.customizeObj(a.data))}}});b&&b(d.data)},function(a){b&&b(a.data)});return c},getCompanyRecurringInvoices:function(a,b,c){if(!a)throw"companyId is required!";if(!b||!b.$id)throw"Second argument must be Angularjs scope!";
  69. var d=[];f.get("/recurringInvoice?companyId="+a).then(function(e){k.customizeArray(e.data,d);l.subscribe("/recurring?targetId="+a,b,function(a){console.log(a);if("RECURRING_SAVED"==a.action){var b=k.findById(d,a.data.id);b?k.customizeObj(a.data,b):d.push(k.customizeObj(a.data))}else"RECURRING_DELETE"==a.action&&(a=k.indexOfId(d,a.data.id),-1<a&&d.splice(a,1))});c&&c(e.data)},function(a){c&&c(a.data)});return d},createRecurringInvoice:function(a,b,c){if(!a)throw"recurringInvoice is required!";if(!b)throw"companyId is required!";
  70. a.company={id:b};a=f({url:"/recurringInvoice",method:"POST",data:a});k.handleCallback(a,c)},deleteRecurringInvoice:function(a,b){if(!a)throw"recurringInvoiceId is required!";var c=f({url:"/recurringInvoice/"+a,method:"DELETE"});k.handleCallback(c,b)},deleteAllRecurringInvoicesByCompany:function(a,b,c){if(!a)throw"companyId is required!";var d=f({url:"/recurringInvoice/company/"+a,method:"DELETE"});k.handleCallback(d,function(d){if(b)for(var e=0;e<b.length;e++)b[e].company.id===a&&(b.splice(e,1),e--);
  71. c&&c(d.data)})},saveRecInvProductExpense:function(a,b,c){e("productExpense",a,b,c)},saveRecInvServiceExpense:function(a,b,c){e("serviceExpense",a,b,c)},deleteProductExpenseFromRecInv:function(a,b,d){c(a,b,d)},deleteServiceExpenseFromRecInv:function(a,b,d){c(a,b,d)},search:function(a){if(!a)throw"Keyword is required!";return f.get("/recurringInvoice/search?keyword="+a).then(function(a){return a.data})},addCompany:function(a,b){if(!a)throw"recurring is required!";if(!b)throw"companyId is required!";
  72. for(var c=0;c<a.length;c++)if(a[c].company.id===b)return;a.push({company:d.getOneById(b),total:0,ticketsCount:0})}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("RightPanelService",["$http","$rootScope","RealTimeService","Utils","CompaniesService","UsersService","DevicesService",function(f,m,l,d,k,e,c){function a(){h.groupedData.splice(0,h.groupedData.length);for(var a=k.getClientCompanies(),b=0;b<a.length;b++){var d=a[b];h.groupedData.push({company:d,users:e.getAllByCompanyId(d.id),devices:c.getAgentsByCompany(g,d.id)})}}function b(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";
  73. var c=h.lists[a.$id];if(!c)throw"There is no activities list for scope "+a.$id;c.loadingInProcess?console.log("Loading tickets already in process"):(0<c.list.length&&(c.params.createdAt=c.list[c.list.length-1].createdAt),c.loadingInProcess=!0,f({method:"GET",url:"/activity/",params:c.params}).then(function(a){a&&(d.customizeArray(a.data,c.list),c.loadingInProcess=!1,b&&b(a.data));c.loadingInProcess=!1},function(a){c.loadingInProcess=!1;b&&b(a.data)}))}var g=m.$new(),h={lists:{},recentActivities:{},
  74. groupedData:[]};d.customizeObj(h);k._addAmountChangeListener(a);return{getActivities:function(a,c,e){if(!a||!a.$id)throw"First argument must be Angularjs scope!";var g=d.customizeObj([]),f=!h.lists[a.$id];h.lists[a.$id]={params:c,scope:a,list:g};b(a,function(b){f&&l.subscribe("/activity",a,function(b){console.log(b);"ACTIVITY_CREATED"==b.action&&h.lists[a.$id].list.unshift(d.customizeObj(b.data))});e&&e(b)});a.$on("$destroy",function(){delete h.lists[a.$id]});return g},getRecentActivities:function(a,
  75. b,c){if(!a||!a.$id)throw"First argument must be Angularjs scope!";b.keyword="";var e=d.customizeObj([]);h.recentActivities[a.$id]={params:b,scope:a,list:e};f({method:"GET",url:"/activity/",params:b}).then(function(a){a&&(d.customizeArray(a.data,e),c&&c(a.data))},function(a){c&&c(a.data)});l.subscribe("/activity",a,function(a){console.log(a);"ACTIVITY_CREATED"==a.action&&(e.unshift(d.customizeObj(a.data)),e.pop())});a.$on("$destroy",function(){delete h.lists[a.$id]});return e},loadMoreActivities:b,
  76. getClientCompaniesGroupedData:function(){0==h.groupedData.length&&a();return h.groupedData},getOneCompanyGroupedData:function(a){return{company:k.getOneById(a),users:e.getAllByCompanyId(a),devices:c.getAgentsByCompany(g,a)}},getCurrentUserInfo:function(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";var c=d.customizeObj({});f.get("/userInfo").then(function(a){d.customizeObj(a.data,c);b&&b(a.data)},function(a){b&&b(a.data)});l.subscribe("/rightBarUserInfo",a,function(a){console.log(a);
  77. "RB_USER_INFO"==a.action&&d.customizeObj(a.data,c)});return c},getClientCompanyInfo:function(a,b,c){if(!a||!a.$id)throw"First argument must be Angularjs scope!";if(!b)throw"companyId is required!";var e=d.customizeObj({});f.get("/companyInfo/"+b).then(function(a){d.customizeObj(a.data,e);c&&c(a.data)},function(a){c&&c(a.data)});l.subscribe("/rightBarCompanyInfo?targetId="+b,a,function(a){console.log(a);"RB_COMPANY_INFO"==a.action&&d.customizeObj(a.data,e)});return e}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("ServicesService",["$http","$rootScope","RealTimeService","Utils","CompaniesService",function(f,m,l,d,k){function e(c,a){var b=a.company.id;b===k.getCurrentCompany().id&&(b="default");c[b]||d.defineReadOnlyProperty(c,b,[]);var e=d.findById(c[b],a.id);e?d.customizeObj(a,e):c[b].push(d.customizeObj(a))}return{search:function(c){if(!c)throw"Keyword is required!";return f.get("/services/search?keyword="+c).then(function(a){return a.data})},getAllByCompany:function(c,
  78. a,b){if(!c||!c.$id)throw"First argument must be Angularjs scope!";if(!a||"[object Function]"===Object.prototype.toString.call(a))throw"companyId is required argument!";return d.getListByUrl("/services/"+a,b,function(a){})},getServicesData:function(c,a,b){function g(a){var b;a:{b=h;var c=a.versionedId.id,g;for(g in b)if("staticCopy"!=g){var f=d.findById(b[g],c);if(f){b=f;break a}}b=void 0}b?d.customizeObj(a,b):e(h,a)}if(!c||!c.$id)throw"First argument must be Angularjs scope!";var h=d.customizeObj({}),
  79. k="/services";a&&(k+="/getDefaultServices");f.get(k).then(function(a){for(var c=0;c<a.data.length;c++)e(h,a.data[c]);b&&b(a.data)},function(a){b&&b(a.data)});l.subscribe("/service",c,function(a){console.log(a);if("SERVICE_SAVED"==a.action)g(a.data);else if("SERVICE_LIST_SAVED"==a.action)for(var b=0;b<a.data.length;b++)g(a.data[b]);else if("SERVICES_MOVED"==a.action)for(b=0;b<a.data.length;b++)e(h,a.data[b]);else if("COMPANY_SERVICES_DELETED"==a.action)delete h[a.data.id];else if("SERVICES_DELETED"==
  80. a.action)for(b=0;b<a.data.length;b++){var c=a.data[b].versionedId.id,f=h,k=void 0;for(k in f){var q=d.indexOfId(f[k],c);-1<q&&f[k].splice(q,1)}}});return h},save:function(c,a){if(!c)throw"service is required!";var b="/services",e="POST";c.id&&(e="PUT",b=b+"/"+c.id);b=f({url:b,method:e,data:c});d.handleCallback(b,a)},saveList:function(c,a,b){if(!c)throw"services is required!";if(!a)throw"companyId is required!";c=f({url:"/services/saveList/"+a,method:"POST",data:{serviceDtoList:c}});d.handleCallback(c,
  81. b)},addCompanyToServiceData:function(c,a){if(!c)throw"data argument is required";if(!a)throw"companyId argument is required";c[a]||d.defineReadOnlyProperty(c,a,[])},deleteCompanyFromServiceData:function(c,a){if(0<c[a].length)throw"This action cannot be performed on company that has not empty services list! Use deleteCompany() method.";delete c[a]},deleteService:function(c,a){if(!c)throw"serviceId is required argument!";var b=f({url:"/services/"+c,method:"DELETE"});d.handleCallback(b,a)},deleteCompany:function(c,
  82. a){if(!c)throw"companyId is required argument!";var b=f({url:"/services/company/"+c,method:"DELETE"});d.handleCallback(b,a)},move:function(c,a){if(!c)throw"mapping is required argument!";var b=f({url:"/services/move",method:"POST",data:c});d.handleCallback(b,a)},getActualMapping:function(c){var a={},b;for(b in c)if("default"!=b&&"staticCopy"!=b){for(var d=[],e=c[b],f=0;f<e.length;f++)d.push(e[f].originService.versionedId.id);a[b]=d}return a},changeBillableStatus:function(c,a,b){if(!c)throw"ids is required argument!";
  83. if(a===t)throw"toBillable is required argument!";Array.isArray(c)||(c=[c]);c=f({url:"/services/changeBillableStatus?toBillable="+!!a,method:"POST",data:c});d.handleCallback(c,b)}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("StatisticsService",["$http","$rootScope","RealTimeService","Utils","CompaniesService",function(f,m,l,d,k){return{getResolvedTicketsCountByCompany:function(e,c,a){if(!e)throw"companyId is required!";if(!c||!c.$id)throw"Second argument must be Angularjs scope!";var b=d.customizeObj({});f.get("/statistic/tickets/resolvedCount/"+e).then(function(g){d.customizeObj(g.data,b);l.subscribe("/resolvedTicketsCount?targetId="+e,c,function(a){console.log(a);
  84. "RESOLVED_TICKETS_COUNT"===a.action&&d.defineReadOnlyProperty(b,"value",a.data)});a&&a(g.data)},function(b){a&&a(b.data)});return b},getTicketsResolutionTimeChartDataByCompany:function(e,c,a){if(!e)throw"companyId is required!";if(!c||!c.$id)throw"Second argument must be Angularjs scope!";var b=d.customizeObj({});f.get("/statistic/tickets/resolutionTime/"+e).then(function(g){d.customizeObj(g.data,b);l.subscribe("/ticketsResolutionTimeChart?targetId="+e,c,function(a){console.log(a);"TICKETS_RESOLUTION_TIME_CHART"===
  85. a.action&&d.customizeObj(a.data,b)});a&&a(g.data)},function(b){a&&a(b.data)});return b},getTimeBilledByCompany:function(e,c,a){if(!e)throw"companyId is required!";if(!c||!c.$id)throw"Second argument must be Angularjs scope!";var b=d.customizeObj({});f.get("/statistic/billed/time/"+e).then(function(g){d.customizeObj(g.data,b);l.subscribe("/billedTimeStatistic?targetId="+e,c,function(a){console.log(a);"BILLED_TIME_STATISTIC"===a.action&&d.defineReadOnlyProperty(b,"value",a.data)});a&&a(g.data)},function(b){a&&
  86. a(b.data)});return b},getReceivableAmountByCompany:function(e,c,a){if(!e)throw"companyId is required!";if(!c||!c.$id)throw"Second argument must be Angularjs scope!";var b=d.customizeObj({});f.get("/statistic/companies/receivable/"+e).then(function(g){d.customizeObj(g.data,b);l.subscribe("/todayReceivableChartPoint?targetId="+e,c,function(c){console.log(c);"TODAY_RECEIVABLE_CHART_POINT"===c.action&&d.defineReadOnlyProperty(b,"value",c.data.receivableLeft);a&&a(b)});a&&a(g.data)},function(b){a&&a(b.data)});
  87. return b},getContributedToEarningTopCompanies:function(e,c,a){if(!e)throw"topAmount is required!";if(!c||!c.$id)throw"Second argument must be Angularjs scope!";var b=d.customizeObj({});f.get("/statistic/companies/paymentSum/top/"+e).then(function(e){function h(a){l.subscribe("/companyPaymentReceived?targetId="+a,c,function(c){console.log(c);"COMPANY_PAYMENT_RECEIVED"===c.action&&d.defineReadOnlyProperty(b,a,(b[a]?b[a]:0)+c.data)})}for(var f in e.data)h(f);d.customizeObj(e.data,b);a&&a(e.data)},function(b){a&&
  88. a(b.data)});return b},getTopCompaniesByResolvedTickets:function(e,c,a){if(!e)throw"topAmount is required!";if(!c||!c.$id)throw"Second argument must be Angularjs scope!";var b=d.customizeObj({});f.get("/statistic/companies/resolvedTicket/top/"+e).then(function(e){function h(a){l.subscribe("/resolvedTicketsCount?targetId="+a,c,function(c){console.log(c);"RESOLVED_TICKETS_COUNT"===c.action&&d.defineReadOnlyProperty(b,a,c.data)})}for(var f in e.data)h(f);d.customizeObj(e.data,b);a&&a(e.data)},function(b){a&&
  89. a(b.data)});return b},getTotalEarningsByDays:function(e,c,a,b,g){if(!e)throw"companyId is required!";if(!c)throw"from date is required!";if(!a)throw"to date is required!";if(c.getTime()>a.getTime())throw"from date should be less that to date!";if(!b||!b.$id)throw"Angularjs scope is required!";var h=d.customizeObj({});f.get("/statistic/companies/paymentSum/receivedInterval/"+e+"?from="+d.formatDate(c)+"&to="+d.formatDate(a)).then(function(a){var c,f;for(f in a.data)c?(new Date(f)).getTime()>(new Date(c)).getTime()&&
  90. (c=f):c=f;var k=new Date(c);d.customizeObj(a.data,h);l.subscribe("/companyPaymentReceived?targetId="+e,b,function(a){console.log(a);if("COMPANY_PAYMENT_RECEIVED"===a.action){var b=new Date;k.getFullYear()===b.getFullYear()&&k.getMonth()===b.getMonth()&&k.getDate()===b.getDate()&&d.defineReadOnlyProperty(h,c,h[c]+a.data)}});g&&g(a.data)},function(a){g&&g(a.data)});return h},getTotalReceivableByDays:function(e,c,a,b,g){if(!e)throw"companyId is required!";if(!c)throw"from date is required!";if(!a)throw"to date is required!";
  91. if(c.getTime()>a.getTime())throw"from date should be less that to date!";if(!b||!b.$id)throw"Angularjs scope is required!";var h=d.customizeObj({});f.get("/statistic/companies/receivable/totalInterval/"+e+"?from="+d.formatDate(c)+"&to="+d.formatDate(a)).then(function(a){function c(a){var b=new Date;if(a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate())return!0}var f,k;for(k in a.data)f?(new Date(k)).getTime()>(new Date(f)).getTime()&&(f=k):f=k;d.customizeObj(a.data,
  92. h);c(new Date(f))&&l.subscribe("/todayReceivableChartPoint?targetId="+e,b,function(a){console.log(a);"TODAY_RECEIVABLE_CHART_POINT"===a.action&&c(new Date(a.data.date))&&d.defineReadOnlyProperty(h,f,a.data.total)});g&&g(a.data)},function(a){g&&g(a.data)});return h},getTicketsClosedByDays:function(e,c,a,b,g){if(!e)throw"companyId is required!";if(!c)throw"from date is required!";if(!a)throw"to date is required!";if(c.getTime()>a.getTime())throw"from date should be less that to date!";if(!b||!b.$id)throw"Angularjs scope is required!";
  93. var h=d.customizeObj({});f.get("/statistic/companies/resolvedTicket/interval/"+e+"?from="+d.formatDate(c)+"&to="+d.formatDate(a)).then(function(a){function c(a){var b,d;for(d in a)if("staticCopy"!=d){b=d;break}if(b){a=new Date(a[b]);for(var e in h)if("staticCopy"!==e&&(b=new Date(e),b.getFullYear()===a.getFullYear()&&b.getMonth()===a.getMonth()&&b.getDate()===a.getDate()))return e}}d.customizeObj(a.data,h);l.subscribe("/ticketResolution?targetId="+e,b,function(a){console.log(a);"TICKET_RESOLVED"===
  94. a.action?(a=c(a.data))&&d.defineReadOnlyProperty(h,a,h[a]+1):"TICKET_REOPENED"===a.action&&(a=c(a.data))&&d.defineReadOnlyProperty(h,a,h[a]-1);g&&g()});g&&g(a.data)},function(a){g&&g(a.data)});return h},getUserSubmittedTicketsByCompany:function(e,c,a){if(!e)throw"companyId is required!";if(!c||!c.$id)throw"Angularjs scope is required!";var b=d.customizeObj({});f.get("/statistic/tickets/submittedTickets/"+e).then(function(f){d.customizeObj(f.data,b);l.subscribe("/userSubmittedTicket?targetId="+e,c,
  95. function(a){console.log(a);"USER_SUBMITTED_TICKET"===a.action&&d.defineReadOnlyProperty(b,a.data,(b[a.data]||0)+1)});a&&a(f.data)},function(b){a&&a(b.data)});return b}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("SubscriptionsService",["$http","$rootScope","RealTimeService","Utils","CompaniesService",function(f,m,l,d,k){function e(c,a,b,e,h){var k=d.customizeObj({});f(c).then(function(c){for(var f=0;f<c.data.length;f++){var n=c.data[f];d.defineReadOnlyProperty(k,n.user.id,d.customizeObj(n))}l.subscribe("/subscription?targetId="+a,b,function(a){console.log(a);"SUBSCRIPTION_SAVED"==a.action?a.data.user&&(!h||-1<h.indexOf(a.data.user.id))&&d.defineReadOnlyProperty(k,
  96. a.data.user.id,d.customizeObj(a.data)):"SUBSCRIPTION_DELETED"==a.action&&delete k[a.data.user.id]});e&&e(c.data)},function(a){e&&e(a.data)});return k}return{saveUserSubscription:function(c,a){if(!c)throw"userSubscription is required argument!";var b="/subscription",e="POST";c.id&&(b+="/"+c.id,e="PUT");b=f({url:b,method:e,data:c});d.handleCallback(b,a)},deleteUserSubscription:function(c,a){if(!c)throw"userSubscriptionId is required argument!";var b=f({url:"/subscription/"+c,method:"DELETE"});d.handleCallback(b,
  97. a)},getUserSubscriptionsByCompanyId:function(c,a,b){if(!c)throw"companyId is required argument!";if(!a||!a.$id)throw"Second argument must be Angularjs scope!";return e({url:"/subscription/company/users/"+c,method:"GET"},c,a,b)},getAllClientUserSubscriptions:function(c,a){if(!c||!c.$id)throw"Second argument must be Angularjs scope!";return e({url:"/subscription/clientUsers",method:"GET"},k.getCurrentCompany().id,c,a)},getUserSubscriptionsByUserIds:function(c,a,b){if(!c||0==c.length)throw"userIds is required argument!";
  98. if(!a||!a.$id)throw"Second argument must be Angularjs scope!";Array.isArray(c)||(c=[c]);return e({url:"/subscription/users/",method:"POST",data:c},k.getCurrentCompany().id,a,b,c)}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("TaxRatesService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){return{getAllByCompany:function(f,e,c){if(!e||!e.$id)throw"First argument must be Angularjs scope!";if(!f||"[object Function]"===Object.prototype.toString.call(f))throw"companyId is required argument!";return d.getListByUrl("/taxRate/"+f,c,function(a){l.subscribe("/taxRate?targetId="+f,e,function(b){console.log(b);if("TAX_RATE_SAVE"==b.action){var c=
  99. d.findById(a,b.data.versionedId.id);c?d.customizeObj(b.data,c):a.push(d.customizeObj(b.data))}else"TAX_RATE_DELETE"==b.action&&(d.deleteById(a,b.data.versionedId.id),e.$broadcast("tax_rate_delete",b.data))})})},save:function(k,e){if(!k)throw"taxRate is required!";var c="/taxRate",a="POST";k.id&&(a="PUT",c=c+"/"+k.id);c=f({url:c,method:a,data:k});d.handleCallback(c,e)},saveList:function(k,e){if(!k)throw"taxRate is required!";var c=f({url:"/taxRate/saveList",method:"POST",data:{taxRates:k}});d.handleCallback(c,
  100. e)},deleteTaxRate:function(k,e){if(!k)throw"taxRateId is required argument!";var c=f({url:"/taxRate/"+k,method:"DELETE"});d.handleCallback(c,e)},isUniqueInCompany:function(k,e,c,a){if(!k)throw"taxRateCode is required!";if(!c)throw"companyId is required!";var b=d.customizeObj({});f.get("/taxRate/isUniqueInCompany?taxRateCode="+k+"&id="+e+"&companyId="+c).then(function(c){d.customizeObj(c.data,b);a&&a(c.data)},function(b){a&&a(b.data)});return b}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("TicketsService",["$http","$rootScope","RealTimeService","Utils","TicketTagsService","CompaniesService",function(f,m,l,d,k,e){function c(a){a=angular.extend({},a);a.filter&&(a.filter=a.filter.toUpperCase());a.priority&&(a.priority=a.priority.toUpperCase());a.status&&(a.status=a.status.toUpperCase());return a}function a(a,b){return a.createdAt-b.createdAt}function b(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";var c=x.lists[a.$id];
  101. if(!c)throw"There is no ticket list for scope "+a.$id;c.loadingInProcess?console.log("Loading tickets already in process"):(0<c.list.length?c.params.lastId=c.list[c.list.length-1].id:delete c.params.lastId,c.loadingInProcess=!0,f({method:"GET",url:"/v2/tickets",params:c.params}).then(function(e){if(e){for(var f=0;f<e.data.length;f++){var h=e.data[f];h.number="Tkt# "+h.number;h.tags&&k._makeDynamic(h.tags,a);var g=d.findById(c.list,h.id);g?d.customizeObj(h,g):c.list.push(d.customizeObj(h))}c.loadingInProcess=
  102. !1;b&&b(e.data)}c.loadingInProcess=!1},function(a){c.loadingInProcess=!1;b&&b(a.data)}))}function g(a,b,c,e){c={value:c};"[object Array]"===Object.prototype.toString.call(b)?(a="/v2/tickets/"+a,c.ids=b):a="/v2/tickets/"+b+"/"+a;b=f.put(a,c);d.handleCallback(b,e)}function h(a,b){for(var c in x.lists)for(var d=x.lists[c].list,e=0;e<d.length;e++){var f=d[e];if(f.id===a){b(f);break}}for(c in x.tickets)d=x.tickets[c].ticket,d.id===a&&b(d)}function q(a,b,c){if("USER"===c.filter){if("COMPLETED"===a.status&&
  103. "COMPLETED"!==b.status)return 1;if("COMPLETED"===b.status&&"COMPLETED"!==a.status)return-1}return z[c.filter](b)-z[c.filter](a)}function r(a){return a.assignedAt||a.createdAt}function p(a,b){return"URGENT"==b.filter&&("HIGH"!=a.priorityLevel||"COMPLETED"==a.status||"ADMIN"!==m.currentUser.role&&!a.sharedToCurrentUserAt)||"UNASSIGNED"==b.filter&&a.assignedUser&&a.assignedUser.id||"USER"==b.filter&&(!a.assignedUser||a.assignedUser.id!=m.currentUser.id)||"OPEN"==b.filter&&"COMPLETED"==a.status||"CLOSED"==
  104. b.filter&&("COMPLETED"!=a.status||"ADMIN"!==m.currentUser.role&&"SUPER_TECH_ADMIN"!==m.currentUser.role&&(!a.assignedUser||a.assignedUser.id!=m.currentUser.id))||"SHARED"==b.filter&&!a.sharedToCurrentUserAt||!("USER_SPAM"!=b.filter||a.spamReporter&&a.spamReporter.id&&m.currentUser.id==a.spamReporter.id)||"ADMIN_REPORTED_AS_SPAM"==b.filter&&(!a.spamReporter||!a.spamReporter.id||a.spamMarker&&a.spamMarker.id)||!("ADMIN_MARKED_AS_SPAM"!=b.filter||a.spamMarker&&a.spamMarker.id)||"TRASH"==b.filter&&!a.trash||
  105. "USER_SPAM"!==b.filter&&"ADMIN_REPORTED_AS_SPAM"!==b.filter&&"ADMIN_MARKED_AS_SPAM"!==b.filter&&"TRASH"!==b.filter&&(a.spamMarker&&a.spamMarker.id||a.spamReporter&&a.spamReporter.id||a.trash)||b.companyId&&b.companyId!=a.company.id||b.status&&b.status!=a.status||b.priority&&b.priority!=a.priorityLevel?!1:!0}var n="ASSIGNED_USER PRIORITY_CHANGED STATUS TRASH REPORT_AS_SPAM RESTORE_FROM_SPAM TICKET_INVOICED TICKET_SHARE MARKED_AS_SPAM".split(" "),y=0,x={lists:{},tickets:{},counts:{}};e=m.$new();l.subscribe("/tickets",
  106. e,function(a){console.log(a);a.data&&a.data.number&&(a.data.number="Tkt# "+a.data.number);if("CREATED_TICKET"===a.action){var b=d.customizeObj(a.data,{}),c;for(c in x.lists){var e=x.lists[c];if(p(a.data,e.params)){var f=d.findById(e.list,a.data.id);f?d.customizeObj(a.data,f):e.list.unshift(b)}}}else if(-1<n.indexOf(a.action)){b=d.customizeObj(a.data,{});for(c in x.lists){var e=x.lists[c],f=!1,g=d.indexOfId(e.list,b.id);if(-1<g)p(a.data,e.params)?(d.customizeObj(b,e.list[g]),f=!0):(e.list.splice(g,
  107. 1),m.$broadcast("ticket_is_not_available_anymore",{ticketId:a.data.id,ticketType:e.params.filter}));else if(p(a.data,e.params))if(0===e.list.length)e.list.push(b);else if(g=e.list[e.list.length-1],15>e.list.length||0>=q(b,g,e.params))e.list.push(b),f=!0;f&&e.list.sort(function(a,b){return q(a,b,e.params)})}for(c in x.tickets)f=x.tickets[c].ticket,f.id===b.id&&d.customizeObj(b,f)}else if("READ"===a.action)h(a.data.id,function(a){d.defineReadOnlyProperty(a,"unread",!1)});else if("TICKET_UPDATES_READ"===
  108. a.action)h(a.data.id,function(a){d.defineReadOnlyProperty(a,"hasNewUpdates",!1)});else if("TICKET_COLLAPSED"===a.action||"TICKET_DELETED"===a.action){for(c in x.lists)d.deleteById(x.lists[c].list,a.data.id);for(c in x.tickets)b=x.tickets[c],b.ticket.id===a.data.id&&(delete x.tickets[c],b.scope.$broadcast("ticket_is_not_available_anymore",{ticketId:a.data.id}))}else if("TAG_LINKED"===a.action)for(b in a.data)h(b,function(b){k._merge(b.tags,a.data[b.id])});else"COMPANY_ARCHIVED"!==a.action&&"TICKET_BILLABLE"===
  109. a.action&&h(a.data.id,function(b){d.defineReadOnlyProperty(b,"isBillable",a.data.isBillable)})});var z={URGENT:r,UNASSIGNED:function(a){return a.createdAt},USER:function(a){return a.closedAt||a.assignedAt},OPEN:function(a){return a.assignedAt},CLOSED:function(a){return a.closedAt},SHARED:function(a){return a.sharedToCurrentUserAt},ALL:r,NOT_SPAM_OR_TRASH:r,USER_SPAM:function(a){return a.reportedAsSpamAt},ADMIN_REPORTED_AS_SPAM:function(a){return a.reportedAsSpamAt},ADMIN_MARKED_AS_SPAM:function(a){return a.markedAsSpamAt},
  110. TRASH:function(a){return a.deletedAt}};return{getList:function(a,e,f){if(!a||!a.$id)throw"First argument must be Angularjs scope!";if(!e||!e.filter)throw"'filter' is mandatory parameter that must be counted in second argument";e=c(e);var h=d.customizeObj([]);x.lists[a.$id]={params:e,scope:a,list:h};b(a,f);a.$on("$destroy",function(){delete x.lists[a.$id]});return h},getCurrentlyWorkingWith:function(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";return d.getListByUrl("/v2/tickets/currentlyWorkingWith",
  111. b,function(b){l.subscribe("/tickets",a,function(a){console.log(a);"CURRENTLY_WORKING_WITH"==a.action&&(b.splice(0,b.length),d.customizeArray(a.data,b))})})},loadMore:b,search:function(a,b){if(!a||!a.filter)throw"'filter' is mandatory parameter that must be counted in first argument";if(!a.keyword)throw"'keyword' is mandatory parameter that must be counted in first argument";if(3>a.keyword.length)throw"minimal length of 'keyword' is 3 characters";a=c(a);var d=[];f({method:"GET",url:"/v2/tickets/search",
  112. params:a}).then(function(a){for(var c=0;c<a.data.length;c++)d.push(a.data[c]);b&&b(d);return d},function(a){b&&b(a)});return d},getCount:function(a,b,e){if(!b||!b.$id)throw"Second argument must be Angularjs scope!";if(!a||!a.filter)throw"'filter' is mandatory parameter that must be counted in first argument";a=c(a);var h=d.customizeObj({});f({method:"GET",url:"/v2/tickets/countByType",params:a}).then(function(a){d.customizeObj(a.data,h);e&&e(a.data)},function(a){e&&e(a.data)});l.subscribe("/ticketsCount",
  113. b,function(b){console.log(b);"TICKETS_COUNT_CHANGED"==b.action&&f({method:"GET",url:"/v2/tickets/countByType",params:a}).then(function(a){d.customizeObj(a.data,h);e&&e(a.data)},function(a){e&&e(a.data)})});return h},getCounts:function(a,b){if(!a||!a.$id)throw"Second argument must be Angularjs scope!";var c=y++,e=d.customizeObj({});x.counts[c]=e;a.$on("$destroy",function(){delete x.counts[c]});f.get("/data/getCounters").then(function(a){d.customizeObj(a.data,e);b&&b(a.data)},function(a){b&&b(a.data)});
  114. l.subscribe("/leftPanelCounts",a,function(a){console.log(a);"LEFT_PANEL_COUNTS"==a.action&&d.customizeObj(a.data,e)});return e},getCountsByTypesAndCompany:function(a,b,c,e){function h(){f({url:"/v2/tickets/counts/",data:{companyId:b,types:c},method:"POST"}).then(function(a){d.customizeObj(a.data,g);e&&e(a.data)},function(a){e&&e(a.data)})}if(!a||!a.$id)throw"Second argument must be Angularjs scope!";if(!b)throw"companyId is required!";if(!c||0==c.length)throw"ticketTypes is required!";var g=d.customizeObj({});
  115. h();l.subscribe("/ticketsCount",a,function(a){console.log(a);"TICKETS_COUNT_CHANGED"==a.action&&h()});return g},getOne:function(b,c,e,h,g){if(!b)throw"Id is mandatory argument!";if(!c)throw"ticketsType is mandatory argument!";if(!e||!e.$id)throw"Third argument must be Angularjs scope!";var q=y++,r={id:b};c="SPAM"===c.toUpperCase()?"":c.toUpperCase();var p="/v2/tickets/"+b+"?ticketsType="+c;h&&(p+="&view=extended");x.tickets[q]={ticket:r,scope:e};e.$on("$destroy",function(){delete x.tickets[q]});f.get(p).then(function(b){400!==
  116. b.data.code&&(b.data.number="Tkt# "+b.data.number,d.customizeObj(b.data,r),r.tags&&k._makeDynamic(r.tags,e),h&&r.updates.sort(a));g&&g(b.data)},function(a){g&&g(a.data)});h&&l.subscribe("/ticketUpdates?targetId="+b,e,function(b){console.log(b);if("UPDATE_SAVED"==b.action||"UPDATE_CREATED"==b.action){var e="SHARED"!==c.toUpperCase()||b.data.user.id===m.currentUser.id;if(!e)for(var f=0;f<b.data.shares.length&&!e;f++)e=(e=b.data.shares[f].user)&&e.id===m.currentUser.id;e?(f=d.findById(r.updates,b.data.id))?
  117. d.customizeObj(b.data,f):(f=d.customizeObj(b.data),r.updates.push(f)):d.deleteById(r.updates,b.data.id);r.updates.sort(a)}else"UPDATE_DELETED"==b.action&&d.deleteById(r.updates,b.data.id)});return r},changePriority:function(a,b,c){if(!a||!b)throw"ticketId and priority is required arguments!";g("priority",a,b.toUpperCase(),c)},assignTo:function(a,b,c){if(!a||!b)throw"ticketId and userId is required arguments!";g("assign",a,b,c)},changeStatus:function(a,b,c){if(!a||!b)throw"ticketId and status is required arguments!";
  118. g("status",a,b.toUpperCase(),c)},markAsSpam:function(a,b){if(!a)throw"ticketId is required arguments!";g("markAsSpam",a,!1,b)},reportAsSpam:function(a,b){if(!a)throw"ticketId is required arguments!";g("reportAsSpam",a,!1,b)},restoreFromSpam:function(a,b){if(!a)throw"ticketId is required arguments!";g("restoreFromSpam",a,!1,b)},changeTrashFlag:function(a,b,c){if(!a)throw"ticketId is required arguments!";g("trash",a,!!b,c)},deleteForever:function(a,b){if(!a)throw"ticketId is required arguments!";var c=
  119. a;"[object Array]"!==Object.prototype.toString.call(a)&&(c=[a]);c=f({url:"/v2/tickets/delete/",data:{ids:c},method:"POST"});d.handleCallback(c,b)},claimUser:function(a){f.get("/tickets/claimUser?ticketId="+a)},createTicket:function(a,b){a.priorityLevel&&(a.priorityLevel=a.priorityLevel.toUpperCase());var c=f.post("/v2/tickets",a);d.handleCallback(c,b)},getActualNumber:function(a,b){f.get("/data/actualNumber?type=TICKET").success(function(a){b(a.number)});l.subscribe("/number?targetId=TICKET",a,function(a){console.log(a);
  120. "NUMBER_CHANGED"===a.action&&b(d.getFormattedNumber(a.data,!0))})},createTicketUpdate:function(a,b,c){if(!a)throw"ticketUpdate is required arguments!";if(!a.ticket.id)throw"ticketUpdate.ticket.id is required!";if(a.id)throw"TicketUpdate must be new, without ticketUpdate.id!";if(!a.type)throw"ticketUpdate.type is required!";if(!a.note&&!a.products&&!a.services)throw"In TicketUpdate must be or note or products or services!";a=f({url:"/v2/tickets/updates",method:"POST",params:{close:!!b},data:a});d.handleCallback(a,
  121. c)},deleteTicketUpdate:function(a,b,c){a=f({url:"/v2/tickets/"+a+"/updates/"+b,method:"DELETE"});d.handleCallback(a,c)},loadRemainingTicketUpdates:function(b,c){if(!b.id||!b.updates)throw"You can load updates only for detailed ticket!";if(0==b.updates.length)throw"There is no updates";for(var e=[],h=0;h<b.updates.length;h++)e.push(b.updates[h].id);f({url:"/v2/tickets/"+b.id+"/updates/fetch",method:"POST",data:e}).then(function(e){d.customizeArray(e.data,b.updates);d.defineReadOnlyProperty(b,"unloadedUpdates",
  122. 0);b.updates.sort(a);c&&c(e.data)},function(a){c&&c(a.data)})},markUpdateAsRead:function(a,b,c){if(!a||!b)throw"ticketId and updateIds is required parameters";a=f({url:"/v2/tickets/"+a+"/updates/read",method:"POST",data:b});d.handleCallback(a,c)},updateExpenseInTicketUpdate:function(a,b){if(!a)throw"expense is required!";if(!a.ticketUpdateId)throw"ticketUpdateId is required!";if(!a.serviceExpense&&!a.productExpense)throw"serviceExpense or productExpense is required!";var c=f({url:"/v2/tickets/ticketUpdate/updateExpense",
  123. method:"PUT",data:a});d.handleCallback(c,b)}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("TicketTagsService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){function k(a,b){return b.createdAt-a.createdAt}function e(a){b=m.$new();g.tags=d.customizeArray([]);f.get("/tag").then(function(c){d.customizeArray(c.data,g.tags);g.tags&&(g.tags.sort(k),l.subscribe("/tags",b,function(a){console.log(a);if(g.tags)if("TAG_SAVED"==a.action){var b=d.findById(g.tags,a.data.id);b?d.customizeObj(a.data,b):(g.tags.unshift(d.customizeObj(a.data)),
  124. g.tags.sort(k))}else if("TAG_REMOVED"==a.action)for(b in d.deleteById(g.tags,a.data.id),g.dynamicLists)for(var c=g.dynamicLists[b],e=0;e<c.length;e++)d.deleteById(c[e],a.data.id)}),a&&a(c.data))},function(b){console.log("ERROR!!!!!",b);a&&a(b.data)})}function c(){0===g.watchers.length&&v.isEmptyObject(g.dynamicLists)&&(b.$destroy(),g.tags=t)}function a(b,c){if(!c||!c.$id)throw"First argument must be Angularjs scope!";if(g.tags){for(var f=0;f<b.length;f++)b[f]=d.findById(g.tags,b[f].id);for(;-1<(f=
  125. b.indexOf(t));)b.splice(f,1);g.addDynamicList(b,c)}else e(function(){a(b,c)})}var b,g={tags:t,watchers:[],dynamicLists:{},addWatcher:function(a){var b=this.watchers;0>b.indexOf(a.$id)&&(b.push(a.$id),a.$on("$destroy",function(){var d=b.indexOf(a.$id);b.splice(d,1);c()}))},addDynamicList:function(a,b){var d=this.dynamicLists;d[b.$id]||(d[b.$id]=[]);d[b.$id].push(a);b.$on("$destroy",function(){delete d[b.$id];c()})}};return{_makeDynamic:a,_merge:function(a,b){a.splice(0,a.length);for(var c=0;c<b.length;c++){var e=
  126. d.findById(g.tags,b[c]);e&&a.push(e)}},getList:function(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";g.tags?b&&setTimeout(function(){b(g.tags.staticCopy())},100):e(b);g.addWatcher(a);return g.tags},save:function(a,b){if(!a)throw"ticketTag is required argument!";var c="/tag",e="POST";a.id&&(c+="/"+a.id,e="PUT");c=f({url:c,method:e,data:a});d.handleCallback(c,b)},deleteTag:function(a,b){if(!a)throw"tagId is required argument!";var c=f({url:"/tag/"+a,method:"DELETE"});d.handleCallback(c,
  127. b)},link:function(a,b){if(!a)throw"linkMap is required argument!";var c=f({url:"/tag/link",method:"POST",data:a});d.handleCallback(c,b)},getTicketsCounts:function(a,b){if(!a||!a.$id)throw"First argument must be Angularjs scope!";var c=d.customizeObj({});f.get("/tag/counts").then(function(a){d.customizeObj(a.data,c);b&&b(a.data)},function(a){b&&b(a.data)});l.subscribe("/tagCounts",a,function(a){console.log(a);"TAG_COUNTS"==a.action&&d.customizeObj(a.data,c)});return c}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("UsersService",["$http","$rootScope","RealTimeService","Utils","CompaniesService",function(f,m,l,d,k){function e(a){var b=d.findById(n.users,a.id);b?(d.customizeObj(a,b),m.currentUser.id===b.id&&d.customizeObj(a,m.currentUser)):(a=d.customizeObj(a),n.users.push(a),a.company.id!==k.getCurrentCompany().id&&n.clientUsers.push(a),c(a),n.usersByCompanies[a.company.id]||(n.usersByCompanies[a.company.id]=[]),n.usersByCompanies[a.company.id].push(a))}
  128. function c(a){var b=[a.firstName,a.lastName].map(function(a){return a.charAt(0).toUpperCase()}).join("");d.defineReadOnlyProperty(a,"initials",b)}function a(){return b(m.currentUser.id)}function b(a){return d.findById(n.users,a)||d.findById(n.deleted,a)}function g(b,c,d){if(!b)throw"Keyword is required!";var e=[];d=d?n.usersByCompanies[d]||[]:n.users;for(var f=0;f<d.length;f++){var g=d[f];(c||a().company.id!==g.company.id)&&-1<(g.firstName+" "+g.lastName).toLowerCase().indexOf(b.toLowerCase())&&e.push(g)}return e}
  129. var h=m.$new(),q=[],r=!1,p=!1,n={users:[],clientUsers:[],deleted:[],usersByCompanies:{}};d.customizeObj(n);k._addInitListener(function(){p||(p=!0,f.get("/users").then(function(a){d.customizeArray(a.data,n.users);for(a=0;a<n.users.length;a++){var b=n.users[a];c(b);b.company.deletedAt||(n.usersByCompanies[b.company.id]||(n.usersByCompanies[b.company.id]=[]),n.usersByCompanies[b.company.id].push(b));var e=k.getOneById(b.company.id);b.company.id!==k.getCurrentCompany().id&&e&&!e.deletedAt?n.clientUsers.push(b):
  130. e&&e.deletedAt&&n.deleted.push(b)}r=!0;for(a=0;a<q.length;a++)q[a]();q=[]},function(a){console.error(a);throw"Cannot initialize CompaniesService!";}),l.subscribe("/user",h,function(b){console.log(b);if(r)if("USER_SAVED"==b.action)if(b.data.company.id!==a().company.id)e(b.data);else{var c=d.findById(n.usersByCompanies[b.data.company.id],b.data.id);d.customizeObj(b.data,c)}else if("USER_DELETED"==b.action)c=d.findById(n.users,b.data.id),d.deleteById(n.users,b.data.id),d.deleteById(n.clientUsers,b.data.id),
  131. c&&d.deleteById(n.usersByCompanies[c.company.id],b.data.id);else if("USER_ONLINE"==b.action)(c=d.findById(n.users,b.data.id))&&d.defineReadOnlyProperty(c,"online",!!b.data.online);else if("COMPANY_ARCHIVED"==b.action){for(c=0;c<n.users.length;c++)n.users[c].company.id===b.data.id&&(n.deleted.push(n.users[c]),n.users.splice(c,1),c--);for(c=0;c<n.clientUsers.length;c++)n.clientUsers[c].company.id===b.data.id&&(n.clientUsers.splice(c,1),c--);delete n.usersByCompanies[b.data.id]}else"USERS_DEARCHIVED"==
  132. b.action&&b.data.forEach(e)}),l.subscribe("/subscription?targetId="+k.getCurrentCompany().id,h,function(a){console.log(a);if(a.data.user){var b=d.findById(n.users,a.data.user.id);b&&("SUBSCRIPTION_SAVED"==a.action?d.defineReadOnlyProperty(b,"subscription",d.customizeObj(a.data)):"SUBSCRIPTION_DELETED"==a.action&&delete b.subscription)}}))});return{_addInitListener:function(a){if(!a)throw"callback is required!";r?a():q.push(a)},getCurrentUser:a,getAllUsers:function(){return n.users},getClientUsers:function(){return n.clientUsers},
  133. getTechUsers:function(){return n.usersByCompanies[a().company.id]||[]},getAllByCompanyId:function(a){return n.usersByCompanies[a]||[]},getOneById:b,getUserProfile:function(a){var b={};f.get("/settings/userProfile/").then(function(c){d.customizeObj(c.data,b);a&&a(c.data)},function(b){a&&a(b.data)});return b},getUnassignedUser:function(a){for(var b=0;b<n.usersByCompanies[a].length;b++)if(n.usersByCompanies[a][b].isDefault)return n.usersByCompanies[a][b]},searchByAllUsers:function(a){return g(a,!0)},
  134. searchByClientUsers:function(a){return g(a,!1)},searchByUsersFromCompany:function(a,b){return g(a,!1,b)},changeUserRole:function(a,b,c){if(!a)throw"userId is required!";if(!b)throw"roleName is required!";a=f({url:"/users/updateRole/"+a+"?role="+b.toUpperCase(),method:"PUT"});d.handleCallback(a,c)},save:function(a,b){if(!a)throw"user is required!";var c="/users",e="POST";a.id&&(e="PUT",c=c+"/"+a.id);c=f({url:c,method:e,data:a});d.handleCallback(c,b)},saveForUserProfile:function(a,b,c){if(!a)throw"data is required!";
  135. if(!b)throw"toUpdate is required!";b="/settings/userProfile/"+b.toLowerCase();a=f({url:b,method:"PUT",data:a});d.handleCallback(a,c)},deleteOrArchiveUser:function(a,b,c){if(!a)throw"ids is required!";if(b===t)throw"isArchive is required!";Array.isArray(a)||(a=[a]);a=f({url:"/users/"+!!b,method:"POST",data:a});d.handleCallback(a,c)},isEmailUnique:function(a,b,c){if(!a)throw"email is required!";var e=d.customizeObj({});f.get("/users/isEmailUnique?email="+a+"&id="+b).then(function(a){d.customizeObj(a.data,
  136. e);c&&c(a.data)},function(a){c&&c(a.data)});return e}}}])})(window,jQuery);(function(u,v,t){angular.module("main.services").factory("VendorsService",["$http","$rootScope","RealTimeService","Utils","$filter",function(f,m,l,d){return{save:function(k,e){if(!k)throw"vendor is required!";var c="POST";k.id&&(c="PUT");c=f({url:"/vendor",method:c,data:k});d.handleCallback(c,e)},getAll:function(f,e){if(!f||!f.$id)throw"First argument must be Angularjs scope!";return d.getListByUrl("/vendor",e,function(c){l.subscribe("/vendor",f,function(a){console.log(a);if("VENDOR_SAVE"==a.action){var b=
  137. d.findById(c,a.data.id);b?d.customizeObj(a.data,b):c.push(d.customizeObj(a.data))}else if("VENDOR_ARCHIVED"==a.action)d.deleteById(c,a.data.id),f.$broadcast("vendor_archived",a.data);else if("VENDOR_DEARCHIVED"==a.action)c.push(d.customizeObj(a.data)),f.$broadcast("vendor_dearchived",a.data);else if("VENDOR_PRODUCT_SAVE"==a.action){var b=d.findById(c,a.data.id),e=d.findById(b.products,a.data.products[0].versionedId.id);if(b&&e)for(a=0;b.products.length<a;a++);else b&&(b.products[b.products.length]=
  138. a.data.products[0])}else"VENDOR_PRODUCT_DELETE"==a.action&&(b=d.findById(c,a.data.id))&&d.deleteById(b.products,a.data.products[0].versionedId.id)})})},getAllForCompanyProfile:function(f,e,c){if(!f||!f.$id)throw"First argument must be Angularjs scope!";if(!e)throw"companyId is required!";return d.getListByUrl("/vendor/companyProfile/"+e,c,function(a){l.subscribe("/vendor",f,function(b){console.log(b);if("VENDOR_SAVE"==b.action){var c=d.findById(a,b.data.id);c?d.customizeObj(b.data,c):a.push(d.customizeObj(b.data))}else if("VENDOR_ARCHIVED"==
  139. b.action)d.deleteById(a,b.data.id),f.$broadcast("vendor_archived",b.data);else if("VENDOR_DEARCHIVED"==b.action)a.push(d.customizeObj(b.data)),f.$broadcast("vendor_dearchived",b.data);else if("VENDOR_PRODUCT_SAVE"==b.action){var c=d.findById(a,b.data.id),e=d.findById(c.products,b.data.products[0].versionedId.id);if(c&&e)for(b=0;c.products.length<b;b++);else c&&(c.products[c.products.length]=b.data.products[0])}else"VENDOR_PRODUCT_DELETE"==b.action&&(c=d.findById(a,b.data.id))&&d.deleteById(c.products,
  140. b.data.products[0].versionedId.id)})})},getAllForAutocomplete:function(f,e){if(!f||!f.$id)throw"First argument must be Angularjs scope!";return d.getListByUrl("/vendor/autocomplete/list",e,function(c){l.subscribe("/vendor",f,function(a){console.log(a);if("VENDOR_SAVE"==a.action){var b=d.findById(c,a.data.id);b?d.customizeObj(a.data,b):c.push(d.customizeObj(a.data))}else"VENDOR_ARCHIVED"==a.action?(d.deleteById(c,a.data.id),f.$broadcast("vendor_archived",a.data)):"VENDOR_DEARCHIVED"==a.action&&(c.push(d.customizeObj(a.data)),
  141. f.$broadcast("vendor_dearchived",a.data))})})},getAllInCompanyForAutocomplete:function(k,e){if(!k)throw"companyId is required!";var c=d.customizeArray([]);f.get("/vendor/getAll/"+k).then(function(a){d.customizeArray(a.data,c);e&&e(a.data)},function(a){e&&e(a.data)});return c},isWebsiteUnique:function(k,e,c){if(!k)throw"website is required!";var a=d.customizeObj({});f.get("/vendor/isWebsiteUnique?website="+k+"&id="+e).then(function(b){d.customizeObj(b.data,a);c&&c(b.data)},function(a){c&&c(a.data)});
  142. return a},isNameUnique:function(k,e,c){if(!k)throw"name is required!";var a=d.customizeObj({});f.get("/vendor/isNameUnique?name="+k+"&id="+e).then(function(b){d.customizeObj(b.data,a);c&&c(b.data)},function(a){c&&c(a.data)});return a},archive:function(k,e){if(!k)throw"id is required!";var c=f.get("/vendor/archive/"+k);d.handleCallback(c,e)},dearchive:function(k,e){if(!k)throw"id is required!";var c=f.get("/vendor/dearchive/"+k);d.handleCallback(c,e)},getOneById:function(k,e){if(!k)throw"vendorId is required!";
  143. var c=d.customizeObj({});f.get("/vendor/getOneById/"+k).then(function(a){d.customizeObj(a.data,c);e&&e(a.data)},function(a){e&&e(a.data)});return c},search:function(d){if(!d)throw"Keyword is required!";return f.get("/vendor/search?keyword="+d).then(function(d){return d.data})}}}])})(window,jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement