3 lines
83 KiB
JavaScript
3 lines
83 KiB
JavaScript
![]() |
angular.module("FredrikSandell.worker-pool",[]).service("WorkerService",["$q",function($q){function createAngularWorkerTemplate(){var workerTemplate=["","//try {","var window = self;","self.history = {};","var Node = function() {};","var app","var localStorage = {storage: <STORAGE>, getItem: function(key) {return this.storage[key]}, setItem: function(key, value) {this.storage[key]=value}}","var document = {"," readyState: 'complete',"," cookie: '',"," querySelector: function () {},"," createElement: function () {"," return {"," pathname: '',"," setAttribute: function () {}"," };"," }","};","importScripts('<URL_TO_ANGULAR>');","<CUSTOM_DEP_INCLUDES>","angular = window.angular;","var workerApp = angular.module('WorkerApp', [<DEP_MODULES>]);","workerApp.run(['$q'<STRING_DEP_NAMES>, function ($q<DEP_NAMES>) {"," self.addEventListener('message', function(e) {"," var input = e.data;"," var output = $q.defer();"," var promise = output.promise;"," promise.then(function(success) {"," self.postMessage({event:'success', data : success});"," }, function(reason) {"," self.postMessage({event:'failure', data : reason});"," }, function(update) {"," self.postMessage({event:'update', data : update});"," });"," <WORKER_FUNCTION>;"," });"," self.postMessage({event:'initDone'});","}]);","angular.bootstrap(null, ['WorkerApp']);","//} catch(e) {self.postMessage(JSON.stringify(e));}"];return workerTemplate.join("\n")}function createIncludeStatements(listOfServiceNames){var includeString="";return angular.forEach(scriptsToLoad,function(script){includeString+="importScripts('"+script+"');"}),angular.forEach(listOfServiceNames,function(serviceName){serviceToUrlMap[serviceName]&&(includeString+="importScripts('"+serviceToUrlMap[serviceName].url+"');")}),includeString}function createModuleList(listOfServiceNames){var moduleNameList=[];return angular.forEach(listOfServiceNames,function(serviceName){serviceToUrlMap[serviceName]&&moduleNameList.push("'"+serviceToUrlMap[serviceName].moduleName+"'")}),moduleNameList.join(",")}function createDependencyMetaData(dependencyList){var dependencyServiceNames=dependencyList.filter(function(dep){return"input"!==dep&&"output"!==dep&&"$q"!==dep}),depMetaData={dependencies:dependencyServiceNames,moduleList:createModuleList(dependencyServiceNames),angularDepsAsStrings:dependencyServiceNames.length>0?","+dependencyServiceNames.map(function(dep){return"'"+dep+"'"}).join(","):"",angularDepsAsParamList:dependencyServiceNames.length>0?","+dependencyServiceNames.join(","):"",servicesIncludeStatements:createIncludeStatements(dependencyServiceNames)};return depMetaData.workerFuncParamList="input,output"+depMetaData.angularDepsAsParamList,depMetaData}function populateWorkerTemplate(workerFunc,dependencyMetaData){return workerTemplate.replace("<URL_TO_ANGULAR>",urlToAngular).replace("<CUSTOM_DEP_INCLUDES>",dependencyMetaData.servicesIncludeStatements).replace("<DEP_MODULES>",dependencyMetaData.moduleList).replace("<STRING_DEP_NAMES>",dependencyMetaData.angularDepsAsStrings).replace("<DEP_NAMES>",dependencyMetaData.angularDepsAsParamList).replace("<STORAGE>",JSON.stringify(storage)).replace("<WORKER_FUNCTION>",workerFunc.toString())}var that={},urlToAngular="http://localhost:9876/base/bower_components/angular/angular.js",serviceToUrlMap={},storage={},scriptsToLoad=[];that.setAngularUrl=function(urlToAngularJs){urlToAngular=urlToAngularJs};var workerTemplate=createAngularWorkerTemplate();that.addDependency=function(serviceName,moduleName,url){return serviceToUrlMap[serviceName]={url:url,moduleName:moduleName},that},that.includeScripts=function(url){scriptsToLoad.push(url)},that.addToLocalStorage=function(key,value){storage[key]=value};var buildAngularWorker=function(initializedWorker){var that={};return that.worker=initializedWorker,that.run=function(input){var deferred=$q.defer();return initializedWorker.addEventListener("message",function(e){var eventId=e.data.event;if("initDone"===eventId)throw"Received worker initi
|
||
|
deferrable.reject("LOGIN_LABEL_LOGIN_ERROR_MESSAGE_KEY")})}).error(function(){deferrable.reject("LOGIN_LABEL_LOGIN_ERROR_MESSAGE_KEY")}),deferrable.promise},hasAnyActiveProvider=function(providers){return _.filter(providers,function(provider){return void 0==provider.retired||"false"==provider.retired}).length>0},self=this,destroySessionFromServer=function(){return $http.delete(sessionResourcePath)},sessionCleanup=function(){delete $.cookie(Bahmni.Common.Constants.currentUser,null,{path:"/"}),delete $.cookie(Bahmni.Common.Constants.currentUser,null,{path:"/"}),delete $.cookie(Bahmni.Common.Constants.retrospectiveEntryEncounterDateCookieName,null,{path:"/"}),delete $.cookie(Bahmni.Common.Constants.grantProviderAccessDataCookieName,null,{path:"/"}),$rootScope.currentUser=void 0};this.destroy=function(){var deferrable=$q.defer();return destroySessionFromServer().then(function(){sessionCleanup(),deferrable.resolve()}),deferrable.promise},this.loginUser=function(username,password,location,otp){var deferrable=$q.defer();return createSession(username,password,otp).then(function(data){data.authenticated?($bahmniCookieStore.put(Bahmni.Common.Constants.currentUser,username,{path:"/",expires:7}),void 0!=location&&($bahmniCookieStore.remove(Bahmni.Common.Constants.locationCookieName),$bahmniCookieStore.put(Bahmni.Common.Constants.locationCookieName,{name:location.display,uuid:location.uuid},{path:"/",expires:7})),deferrable.resolve(data)):data.firstFactAuthorization?deferrable.resolve(data):deferrable.reject("LOGIN_LABEL_LOGIN_ERROR_MESSAGE_KEY")},function(errorInfo){deferrable.reject(errorInfo)}),deferrable.promise},this.get=function(){return $http.get(sessionResourcePath,{cache:!1})},this.loadCredentials=function(){var deferrable=$q.defer(),currentUser=$bahmniCookieStore.get(Bahmni.Common.Constants.currentUser);return currentUser?(userService.getUser(currentUser).then(function(data){userService.getProviderForUser(data.results[0].uuid).then(function(providers){!_.isEmpty(providers.results)&&hasAnyActiveProvider(providers.results)?($rootScope.currentUser=new Bahmni.Auth.User(data.results[0]),$rootScope.currentUser.currentLocation=$bahmniCookieStore.get(Bahmni.Common.Constants.locationCookieName).name,$rootScope.$broadcast("event:user-credentialsLoaded",data.results[0]),deferrable.resolve(data.results[0])):(self.destroy(),deferrable.reject("YOU_HAVE_NOT_BEEN_SETUP_PROVIDER"))},function(){self.destroy(),deferrable.reject("COULD_NOT_GET_PROVIDER")})},function(){self.destroy(),deferrable.reject("Could not get roles for the current user.")}),deferrable.promise):(this.destroy().finally(function(){$rootScope.$broadcast("event:auth-loginRequired"),deferrable.reject("No User in session. Please login again.")}),deferrable.promise)},this.getLoginLocationUuid=function(){return $bahmniCookieStore.get(Bahmni.Common.Constants.locationCookieName)?$bahmniCookieStore.get(Bahmni.Common.Constants.locationCookieName).uuid:null},this.changePassword=function(currentUserUuid,oldPassword,newPassword){return $http({method:"POST",url:Bahmni.Common.Constants.passwordUrl,data:{oldPassword:oldPassword,newPassword:newPassword},headers:{"Content-Type":"application/json"}})},this.loadProviders=function(userInfo){return $http.get(Bahmni.Common.Constants.providerUrl,{method:"GET",params:{user:userInfo.uuid},cache:!1}).success(function(data){var providerUuid=data.results.length>0?data.results[0].uuid:void 0;$rootScope.currentProvider={uuid:providerUuid}})}}]).factory("authenticator",["$rootScope","$q","$window","sessionService",function($rootScope,$q,$window,sessionService){var authenticateUser=function(){var defer=$q.defer(),sessionDetails=sessionService.get();return sessionDetails.then(function(response){response.data.authenticated?defer.resolve():(defer.reject("User not authenticated"),$rootScope.$broadcast("event:auth-loginRequired"))}),defer.promise};return{authenticateUser:authenticateUser}}]).directive("logOut",["sessionService","$window","configurationService","auditLogService",function(sessionService,$window,configurationService,auditLogService){return{link:f
|
||
|
return moment(dateRepresentation).isValid()?dateRepresentation?moment(dateRepresentation).format(format):null:date},formatDateWithTime:function(datetime){var dateRepresentation=isNaN(Number(datetime))?datetime:Number(datetime);return moment(dateRepresentation).isValid()?dateRepresentation?moment(dateRepresentation).format("DD MMM YY h:mm a"):null:datetime},formatDateWithoutTime:function(date){var dateRepresentation=isNaN(Number(date))?date:Number(date);return moment(dateRepresentation).isValid()?dateRepresentation?moment(dateRepresentation).format("DD MMM YY"):null:date},formatDateInStrictMode:function(date){var dateRepresentation=isNaN(Number(date))?date:Number(date);return moment(dateRepresentation,"YYYY-MM-DD",!0).isValid()?moment(dateRepresentation).format("DD MMM YY"):moment(dateRepresentation,"YYYY-MM-DDTHH:mm:ss.SSSZZ",!0).isValid()?moment(dateRepresentation).format("DD MMM YY"):date},formatTime:function(date){var dateRepresentation=isNaN(Number(date))?date:Number(date);return moment(dateRepresentation).isValid()?dateRepresentation?moment(dateRepresentation).format("h:mm a"):null:date},getDate:function(dateTime){return moment(this.parse(dateTime)).startOf("day").toDate()},parse:function(dateString){return dateString?moment(dateString).toDate():null},parseDatetime:function(dateTimeString){return dateTimeString?moment(dateTimeString):null},now:function(){return new Date},today:function(){return this.getDate(this.now())},endOfToday:function(){return moment(this.parse(this.now())).endOf("day").toDate()},getDateWithoutHours:function(dateString){return moment(dateString).toDate().setHours(0,0,0,0)},getDateTimeWithoutSeconds:function(dateString){return moment(dateString).toDate().setSeconds(0,0)},isSameDateTime:function(date1,date2){if(null==date1||null==date2)return!1;var dateOne=this.parse(date1),dateTwo=this.parse(date2);return dateOne.getTime()==dateTwo.getTime()},isBeforeDate:function(date1,date2){return moment(date1).isBefore(moment(date2))},isSameDate:function(date1,date2){if(null==date1||null==date2)return!1;var dateOne=this.parse(date1),dateTwo=this.parse(date2);return dateOne.getFullYear()===dateTwo.getFullYear()&&dateOne.getMonth()===dateTwo.getMonth()&&dateOne.getDate()===dateTwo.getDate()},diffInYearsMonthsDays:function(dateFrom,dateTo){dateFrom=this.parse(dateFrom),dateTo=this.parse(dateTo);var from={d:dateFrom.getDate(),m:dateFrom.getMonth(),y:dateFrom.getFullYear()},to={d:dateTo.getDate(),m:dateTo.getMonth(),y:dateTo.getFullYear()},age={d:0,m:0,y:0},daysFebruary=to.y%4!=0||to.y%100==0&&to.y%400!=0?28:29,daysInMonths=[31,daysFebruary,31,30,31,30,31,31,30,31,30,31];return age.y=to.y-from.y,age.m=to.m-from.m,from.m>to.m&&(age.y=age.y-1,age.m=to.m-from.m+12),age.d=to.d-from.d,from.d>to.d&&(age.m=age.m-1,from.m==to.m&&(age.y=age.y-1,age.m=age.m+12),age.d=to.d-from.d+daysInMonths[parseInt(from.m)]),{days:age.d,months:age.m,years:age.y}},convertToUnits:function(minutes){var allUnits={Years:525600,Months:43200,Weeks:10080,Days:1440,Hours:60,Minutes:1},durationRepresentation=function(value,unitName,unitValueInMinutes){return{value:value,unitName:unitName,unitValueInMinutes:unitValueInMinutes,allUnits:allUnits}};for(var unitName in allUnits){var unitValueInMinutes=allUnits[unitName];if((minutes||0!==minutes)&&minutes>=unitValueInMinutes&&minutes%unitValueInMinutes===0)return durationRepresentation(minutes/unitValueInMinutes,unitName,unitValueInMinutes)}return durationRepresentation(void 0,void 0,void 0)},getEndDateFromDuration:function(dateFrom,value,unit){dateFrom=this.parse(dateFrom);var from={h:dateFrom.getHours(),d:dateFrom.getDate(),m:dateFrom.getMonth(),y:dateFrom.getFullYear()},to=new Date(from.y,from.m,from.d,from.h);return"Months"===unit?to.setMonth(from.m+value):"Weeks"===unit?to.setDate(from.d+7*value):"Days"===unit?to.setDate(from.d+value):"Hours"===unit&&to.setHours(from.h+value),to},parseLongDateToServerFormat:function(longDate){return longDate?moment(longDate).format("YYYY-MM-DDTHH:mm:ss.SSS"):null},parseServerDateToDate:function(longDate){return longDate?moment(longDate,"YYYY-MM-DDTHH:mm:ss.SSSZZ")
|