cronapp-framework-mobile-js
Version:
Javascript library for CronApp's projects
1 lines • 11.4 kB
JavaScript
app,angular.module("custom.controllers",[]),app.controller("LoginController",["$scope","$http","$location","$rootScope","$window","$state","$translate","Notification","ReportService","$ionicLoading","$timeout","$stateParams","$ionicModal","$cookies","SyncService",function(e,o,t,n,r,i,a,s,c,l,p,u,d,g,f){n.refreshToken=window.refreshToken,app.registerEventsCronapi(e,a,d,l),n.http=o,n.$http=o,e.Notification=s,e.params=u,n.getReport=function(e,o,t){c.openReport(e,o,t)};let h=t.search();for(let o in h)h.hasOwnProperty(o)&&(e.params[o]=h[o]);for(let o in app.userEvents)app.userEvents.hasOwnProperty(o)&&(e[o]=app.userEvents[o].bind(e));function m(t){var n={};t&&!window.isUsingCookie()&&(n["X-AUTH-TOKEN"]=t),o({method:"GET",url:window.hostApp+"me",headers:n}).then(w).catch((()=>{e.cronapi.screen.hide()}))}async function w(o,t,n,r){e.cronapi.screen.hide(),o=getRequestData(o),"undefined"!=typeof Storage&&(window.isUsingCookie()&&delete o.token,localStorage.setItem("_u",JSON.stringify(o))),await e.gotoHome(),e.blockly&&e.blockly.events&&e.blockly.events.onLogin&&e.blockly.events.onLogin instanceof Function&&e.blockly.events.onLogin()}function v(o,t,n,r){let i;e.cronapi.screen.hide(),i=null!==o&&o.message?"string"==typeof o.message?o.message:JSON.parse(o.message).exception:"string"==typeof o?o:a.instant("General.ErrorNotSpecified"),s.error(i)}e.redirectToLogin=function(){localStorage.setItem("redir_mob",!0),e.cronapi.social.ssoLogin()},e.biometricAuthentication=()=>"true"==String((document.querySelector('meta[name="biometric-authentication"]')||{}).content),e.gotoHome=async()=>{try{e.cronapi.blockly.js.blockly.auth.Home.change&&await this.cronapi.client("blockly.js.blockly.auth.Home.change").run()}catch(o){e.cronapi.screen.changeView("#/app/logged/home",[])}},e.autoLogin=function(){const t=localStorage.getItem("_u");t&&JSON.parse(t).token&&(e.biometricAuthentication()?document.addEventListener("deviceready",(()=>{window.Fingerprint&&window.Fingerprint.isAvailable((t=>{window.Fingerprint.show((()=>{window.refreshToken(s,o,(()=>e.gotoHome()),(()=>localStorage.removeItem("_u")))}),(t=>{"biometric_success"===t?window.refreshToken(s,o,(()=>e.gotoHome()),(()=>localStorage.removeItem("_u"))):v({message:t.message})}))}),(e=>{console.error("Biometric Authentication is not available in this device")}))}),!1):window.refreshToken(s,o,(function(){e.gotoHome()}),(function(){localStorage.removeItem("_u")})))},e.autoLogin(),e.user={username:"",password:""},e.message={},e.login=function(t,n){e.cronapi.screen.showLoading(),e.message.error=void 0;let r={username:t||e.user.username,password:n||e.user.password},i={"Content-Type":"application/x-www-form-urlencoded"};window.hostApp?o({method:"POST",url:window.hostApp+(window.isUsingCookie()?"login":"auth"),data:$.param(r),headers:i}).success((e=>{window.isUsingCookie()?m():m(e.access_token)})).error(v):s.error("HostApp is required!")},e.loginWithToken=function(e){m(e)},n.infiniteReached=function(){};try{let o=$controller("AfterLoginController",{$scope:e});app.copyContext(o,this,"AfterLoginController")}catch(e){}p((function(){e.blockly&&e.blockly.events&&e.blockly.events.afterLoginRender&&e.blockly.events.afterLoginRender instanceof Function&&e.blockly.events.afterLoginRender()}))}]),app.controller("HomeController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$stateParams","$location","$controller","UploadService","ReportService","SyncService",function(e,o,t,n,r,i,a,s,c,l,p,u,d,g,f,h){app.registerEventsCronapi(e,i,c,l),t.http=o,t.Notification=a,t.UploadService=g,e.params=p,t.getReport=function(e,o,t){f.openReport(e,o,t)};let m=u.search();for(let o in m)m.hasOwnProperty(o)&&(e.params[o]=m[o]);for(let o in app.userEvents)app.userEvents.hasOwnProperty(o)&&(e[o]=app.userEvents[o].bind(e));t.session=localStorage._u?JSON.parse(localStorage._u):null,t.session?t.session.token&&window.refreshToken(a,o,(function(){}),t.logout):e.ignoreAuth||("undefined"!=typeof Storage&&sessionStorage.removeItem("_u"),n.go("login"));try{var $=d("AfterHomeController",{$scope:e});app.copyContext($,this,"AfterHomeController")}catch(e){}r((function(){e.blockly&&e.blockly.events&&e.blockly.events.afterHomeRender&&e.blockly.events.afterHomeRender instanceof Function&&e.blockly.events.afterHomeRender()}))}]),app.controller("PublicController",["$controller","$scope",function(e,o){o.ignoreAuth=!0,angular.extend(this,e("HomeController",{$scope:o}))}]),app.controller("SignupController",["$scope","$translate","$ionicModal","$ionicLoading",function(e,o,t,n){app.registerEventsCronapi(e,o,t,n),e.Notification=Notification,e.cronapi.screen.changeValueOfField("vars.signupEmail",""),e.cronapi.screen.changeValueOfField("vars.signupUsername",""),e.cronapi.screen.changeValueOfField("vars.signupPassword",""),e.cronapi.screen.changeValueOfField("vars.signupConfirmPassword","")}]),app.controller("SignupController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService",function(e,o,t,n,r,i,a,s,c,l,p,u){app.registerEventsCronapi(e,a,s,c),i.http=r,i.Notification=t,e.params=o,i.$http=r,i.UploadService=p,e.listCanSwipe=!0;for(let o in app.userEvents)e[o]=app.userEvents[o].bind(e);e.cronapi.screen.changeValueOfField("vars.signupEmail",""),e.cronapi.screen.changeValueOfField("vars.signupUsername",""),e.cronapi.screen.changeValueOfField("vars.signupPassword",""),e.cronapi.screen.changeValueOfField("vars.signupConfirmPassword","")}]),app.controller("ResetPasswordController",["$scope","$state","$http","Notification","$translate",function(e,o,t,n,r){e.resetPasswordWithOTP=function(e){if(!(e&&e.otp&&e.newPassword&&e.newPasswordConfirmation))return void n.error(r.instant("AllFieldsRequired"));const i=e.otp.replaceAll(" ",""),a=e.newPassword,s=e.newPasswordConfirmation,c=localStorage.getItem("otpToken");c?window.hostApp&&a===s?t({method:"POST",url:window.hostApp+"auth/confirm-reset-password",data:$.param({password:a,otp:i}),headers:{"Content-Type":"application/x-www-form-urlencoded","X-AUTH-TOKEN":c}}).success((t=>{e.otp="",e.newPassword="",e.passwordConfirmation="",o.go("login").then((()=>{n.info(r.instant("ResetPasswordSuccess"))}))})).error((e=>{n.error(e.message),console.error(e)})):n.error(r.instant("ResetPasswordDoesNotMatch")):n.error(r.instant("OTPInvalid"))}}]),app.controller("MenuController",["$scope","$http","$rootScope","$state","$timeout","$translate","Notification","$ionicHistory","$ionicModal","$ionicLoading","$cookies",function(e,o,t,n,r,i,a,s,c,l,p){app.registerEventsCronapi(e,i,c,l),t.http=o,e.Notification=a,e.isExtendedFromPublic||(e.folder="logged");for(let o in app.userEvents)e[o]=app.userEvents[o].bind(e);e.ignoreAuth||(e.openChangePassword=function(){e.modal.modelEl?e.modal.show():o({url:"views/logged/_changepassword.view.html"}).then((function(o){e.modal=c.fromTemplate($(o.data).last().text(),{scope:e,animation:"slide-in-up"}),e.modal.show()}))},e.closeChangePassword=function(){e.modal.hide()},t.logout=function(){const n=o=>{t.session={},p.remove("_u",{path:"/"}),"undefined"!=typeof Storage&&localStorage.removeItem("_u"),e.cronapi.util.changeViewLogout()};o({method:"GET",url:window.hostApp+"logout",headers:{"Content-Type":"application/json"}}).success(n).error(n)}),e.http({method:"GET",url:"views/"+e.folder+"/menu.view.html"}).then((function(o){$(o.data).find("ion-nav-bar").length>0?(e.isOldMenu=!0,$(document).find("ion-header-bar").length>0&&$(document).find("ion-nav-bar").show()):e.isOldMenu=!1}))}]),app.controller("PublicMenuController",["$controller","$scope",function(e,o){o.folder="public",o.isExtendedFromPublic=!0,angular.extend(this,e("MenuController",{$scope:o}))}]),app.controller("chatController",["$scope","$state","$ionicPopup","$ionicScrollDelegate","$timeout","$interval","$ionicModal","$translate","$rootScope","$http","Notification",function(e,o,t,n,r,i,a,s,c,l,p){app.registerEventsCronapi(e,s,a,$ionicLoading),c.http=l,e.Notification=p;for(let o in app.userEvents)e[o]=app.userEvents[o].bind(e);JSON.parse(localStorage._u).user.username;let u,d,g,f=n.$getByHandle("userMessageScroll");e.enter=function(){r((function(){u=document.body.querySelector(".homeView .bar-footer"),d=document.body.querySelector(".homeView .scroll-content"),g=angular.element(u.querySelector("textarea"))}),0)},e.isEnter=function(e){13===e.keyCode&&r((function(){e.stopPropagation(),$("#sendButton").trigger("click")}),0)},e.refreshScroll=function(o,t){r((function(){o=o||e.scrollDown,f.resize(),o&&f.scrollBottom(!0),e.checkScroll()}),t||1e3)},e.scrollDown=!0,e.checkScroll=function(){return r((function(){let o=f.getScrollPosition().top,t=f.getScrollView().__maxScrollTop;e.scrollDown=o>=t,e.$apply()}),0),!0}}]),app.controller("PageController",["$scope","$stateParams","Notification","$location","$http","$rootScope","$translate","$ionicModal","$ionicLoading","$timeout","UploadService","ReportService","SyncService",function(e,o,t,n,r,i,a,s,c,l,p,u,d){app.registerEventsCronapi(e,a,s,c),i.http=r,i.Notification=t,e.params=o,i.$http=r,i.UploadService=p,e.listCanSwipe=!0,i.getReport=function(e,o,t){u.openReport(e,o,t)};let g=n.search();for(let o in g)g.hasOwnProperty(o)&&(e.params[o]=g[o]);if(i.session=void 0!==localStorage.getItem("_u")?JSON.parse(localStorage.getItem("_u")):null,e.registerComponentScripts=function(){$(".carousel-indicators li").on("click",(function(){let e="#"+$(this).parent().parent().parent().attr("id"),o=$(e+" .carousel-indicators li").index(this);$(e+" #carousel-example-generic").carousel(o)}))},e.registerComponentScripts(),e.isOldMenu){let o=e.params.name||"home";e.http({method:"GET",url:"views/logged/"+o+".view.html"}).then((function(e){$(e.data).find("ion-header-bar").length>0?$(document).find("ion-nav-bar").hide():$(document).find("ion-header-bar").length>0&&$(document).find("ion-nav-bar").show()}))}try{let o=$controller("AfterPageController",{$scope:e});app.copyContext(o,this,"AfterPageController")}catch(e){}l((function(){e.blockly&&e.blockly.events&&e.blockly.events.afterPageRender&&e.blockly.events.afterPageRender instanceof Function&&e.blockly.events.afterPageRender()}))}]),app.controller("InitialController",["$scope","$stateParams","$http","Notification","$location","$rootScope","$translate","$ionicModal","$ionicLoading","$ionicPlatform","$controller","$timeout","UploadService","$ionicHistory",function(e,o,t,n,r,i,a,s,c,l,p,u,d,g){l.registerBackButtonAction((function(e){let o=g.viewHistory();o.histories&&o.histories&&Object.keys(o.histories).length&&("app.home"===o.currentView.stateName?(e.preventDefault(),e.stopPropagation(),navigator.app.exitApp()):window.history.back())}),101),app.registerEventsCronapi(e,a,s,c),i.http=t,i.Notification=n,i.UploadService=d,e.params=o,e.$http=t;let f=r.search();for(let o in f)f.hasOwnProperty(o)&&(e.params[o]=f[o]);e.blockly.js.blockly.auth.Home.change();try{let o=p("AfterHomeController",{$scope:e});app.copyContext(o,this,"AfterHomeController")}catch(e){}u((function(){e.blockly&&e.blockly.events&&e.blockly.events.afterHomeRender&&e.blockly.events.afterHomeRender instanceof Function&&e.blockly.events.afterHomeRender()}))}]),window.safeApply=function(e){let o=this.$root.$$phase;"$apply"===o||"$digest"===o?e&&"function"==typeof e&&e():this.$apply(e)};