PageSourceSearch

https://s-iq.co/Scripts/hub-clients-clientscreen2-redesigned.min.js?date=

js s-iq.co collected 2026-09-26 00:02:43 UTC 12,174 bytes, 1 lines download raw bytes

1var saloniq=void 0!==saloniq?saloniq:{};saloniq.hub=void 0!==saloniq.hub?saloniq.hub:{},saloniq.hub.clients=void 0!==saloniq.hub.clients?saloniq.hub.clients:{},saloniq.hub.clients.init=function(e){e.objName=void 0===e.objName?"clientscreen":e.objName;saloniq.getDialogManager().createDialog({title:"CLIENT RECORDS",mountContent:function(t){return saloniq.hub.clients[e.objName]=new Vue({el:t.getElement(),template:"#template-clientscreen2-redesigned",data:{myDialog:t,options:e,ui:{merge:!0,addclient:!0,clientmode:!0},$dialog:null,dialogID:0,loading:!1,clients:[],filteredClients:[],searchTimeout:null,searchString:"",oldSearchString:"",ignoreDeposits:void 0!==e.ignoreDeposits&&e.ignoreDeposits,searchType:8,mode:e.mode,callbackFunction:function(){},showFilters:!1,showArchived:!1,homesalononly:!0,columns:{BookingAlert:!1,MembershipNumber:!1,PostCode:!1,Email:!1,BookingID:!0,Merge:!1},getClientsTimeout:null,baseClientPicked:!1,mergeClientPicked:!1,selectedClient:null},computed:{isMacApp:function(){return void 0!==saloniq.hub.globals.headerApp&&saloniq.hub.globals.headerApp.MACApp},isHubApp:function(){return void 0!==saloniq.hub.globals.headerApp&&saloniq.hub.globals.headerApp.HUBApp},todaysClientMode:function(){return"/Sundries/GetCheckedinClients"==this.options.url},windowWidth:function(){return saloniq.vueStore.windowSize.width},isMobile:function(){return this.windowWidth<=768},mobileMenu:function(){return this.windowWidth<=768},clientOptions:function(){var e=this;return{array:e.clients,fixedHeader:!0,useFilteringV2:!0,highlightRows:!0,rowFunction:function(t){e.mode>0?e.passClient(t):saloniq.hub.globals.prepareClientProfile({ClientID:t.ClientId})},columns:[{field:"BookingAlert",name:"!",width:"35px",show:e.columns.BookingAlert,processValue:function(e,t){return""!=e?'<i class="fa fa-exclamation-circle" aria-hidden="true"></i>':""},style:"color:red;font-size:1.2em;text-align:center;",tooltip:function(e){return{on:""!=e,html:'<div style="padding:10px">'+e+"</div>"}}},{field:"FirstName",name:"First name",width:"100px",filter:{type:"contains"},processValue:function(e,t){return e}},{field:"LastName",name:"Last name",width:"200px",filter:{type:"contains"},processValue:function(e,t){return e}},{field:"MembershipNumber",name:"Membership number",width:"140px",show:e.columns.MembershipNumber,filter:{type:"contains"}},{field:"PostCode",name:"Postcode",width:"70px",show:e.columns.PostCode,filter:{type:"contains"}},{field:"Phone",name:"Phone",width:"105px",filter:{type:"contains"},processValue:function(e){return e}},{field:"Email",name:"Email",show:e.columns.Email,width:"100px",filter:{type:"contains"}},{field:"LastVisitSalonName",name:"Last visited salon",show:!e.homesalononly,filter:{type:"contains"}},{field:"LastVisitDate",name:"Last visited date",width:"110px",filter:saloniq.hub.components.helperFunctions.getDateFilterOptionsComplete(e.clients,"LastVisitDate"),processValue:saloniq.hub.components.helperFunctions.processValue_Date},{field:"",name:"Future bookings",width:"115px",show:e.columns.BookingID,processValue:function(t,i){return 0===e.mode?0!=i.BookingDate?'<span class="link-editbooking" data-cid="'+i.ClientId+'" data-sid="'+i.SalonID+'" data-date="'+1e3*i.BookingDate+'">'+saloniq.getFormattedDateUTC(1e3*i.BookingDate)+"</span>":"":1===e.mode?0!=i.BookingDate?"<span>"+saloniq.getFormattedDateUTC(1e3*i.BookingDate)+"</span>":"":void 0}},{field:"",name:"Base client",width:"90px",show:e.columns.Merge&&e.ui.merge,cellClickFunction:function(){},processValue:function(t,i){return'<button class="text" onclick="saloniq.hub.clients.'+e.options.objName+".pickBaseClient('"+i.ClientId+"')\">"+(1==i.mergeValue?'<i class="fas fa-check" style="color:green"></i>':'<i class="fas fa-times" style="color:darkred"></i>')+"</button>"}},{field:"",name:"Merge client",width:"100px",show:e.columns.Merge&&e.ui.merge,cellClickFunction:function(){},processValue:function(t,i){return'<button class="text" onclick="saloniq.hub.clients.'+e.options.objName+".pickMergeClient('"+i.ClientId+"')\">"+(2==i.mergeValue?'<i class="fas fa-check" style="color:green"></i>':'<i class="fas fa-times" style="color:darkred"></i>')+"</button>"}}],default:{field:"LastName",value:2}}}},watch:{searchType:function(e){"3"==e&&(this.columns.Email=!0),this.getClients()},showArchived:function(){this.getClients()},homesalononly:function(){this.getClients()},searchString:function(){this.getClients()},columns:{handler:function(){this.saveSearchString()},deep:!0}},methods:{exportLinkApp:function(e){try{location.href="http://xamarinFeatureRequest/"+encodeURI(e)}catch(e){console.log(e)}}
1,focusInput:function(){saloniq.focusInput(this.$refs.searchinput)},merge:function(){var e=this.clients.find((function(e){return 1==e.mergeValue})).ClientId,t=this.clients.find((function(e){return 2==e.mergeValue})).ClientId;location.href="/Client/ClientMergeRedesign?bc="+e+"&c="+t},zeroMergeValues:function(e){for(var t=0;t<this.clients.length;t++)this.clients[t].mergeValue==e&&(this.clients[t].mergeValue=0)},pickBaseClient:function(e){var t=this.clients.find((function(t){return t.ClientId==e}));if(void 0!==t){var i=1!=t.mergeValue?1:0;this.baseClientPicked=!1,1==i&&(this.zeroMergeValues(1),this.baseClientPicked=!0,2==t.mergeValue&&(this.mergeClientPicked=!1)),t.mergeValue=i}},pickMergeClient:function(e){var t=this.clients.find((function(t){return t.ClientId==e}));if(void 0!==t){var i=2!=t.mergeValue?2:0;this.mergeClientPicked=!1,2==i&&(this.zeroMergeValues(2),this.mergeClientPicked=!0,1==t.mergeValue&&(this.baseClientPicked=!1)),t.mergeValue=i}},linkToBooking:function(e){window.location.href=saloniq.vueStore.globalLinks.appointmentsView+"?d="+1e3*e.BookingDate+"&s="+e.SalonID+(void 0!==e.BookingID?"&b="+e.BookingID:"")+(void 0!==e.ClientId?"&c="+e.ClientId:"")},getBookingDate:function(e){return saloniq.getFormattedDateUTC(1e3*e)},getEmailButtonHTML:function(e){if(0===this.mode){var t=e.toLowerCase();return""!=t?"refused"!=t&&"not got"!=t&&"notgot"!=t?'<span style="text-decoration: none;color: black; line-height: 2;">'+e+"</span>":e:""}return e},chooseEntry:function(e){if(this.mode>0)this.passClient(e);else{var t={ClientID:e.ClientId,mode:0,callback:"",clientrules:[],section:"",passback:null};saloniq.hub.globals.prepareClientProfile(t)}},enterClientMode:function(){saloniq.request("/Client/SetCustomerMode",{ClientID:"NEWCLIENT"},(function(e){"Success"===e.Status?window.location.href="/Client/CustomermodeRedesign?ClientId=NEWCLIENT":saloniq.hub.globals.showGenericFail(e)}),(function(){}))},findDuplicateEmails:function(){this.searchType="5",this.searchString="",this.getClients()},findDuplicateMobiles:function(){this.searchType="6",this.searchString="",this.getClients()},getDateString:function(e){var t=new Date(1e3*e),i=new Date(new Date-t),n=i.toISOString().slice(0,4)-1970,o=i.getMonth(),s=i.getDate()-1;return 0===n&&0===o&&0===s?"Today":0===n&&0===o&&1===s?"Yesterday":kendo.toString(t,"dd/MM/yyyy")+"<br /><small> ("+(n>0?n+" years, ":"")+(o>0?o+" months, ":"")+(s>0?s+" days":"")+")</small>"},filterClients:function(){var e=this;return e.filteredClients=[],void(e.filteredClients=saloniq.getDeepCopy(e.clients));if(!0===e.homesalononly)for(var t=saloniq.hub.globals.headerApp.selectedSalonID,i=0;i<e.clients.length;i++)e.clients[i].SalonID===t&&e.filteredClients.push(e.clients[i]);else e.filteredClients=saloniq.getDeepCopy(e.clients)},passClient:function(e){var t=this,i=this;this.selectedClient=e;var n=e.ClientId;if(2!=this.mode&&!1===i.ignoreDeposits&&!0===e.IsDepositRequired&&e.AccountBalance<1)saloniq.hub.globals.createSimpleDecisionDialog($("body"),"Client "+e.FirstName+" "+e.LastName+" is marked to take deposit. Would you like to take deposit now?<br><br>Take deposit (YES) or cancel (NO) ?",(function(){saloniq.hub.globals.prepareDepositScreen({mode:1,clientID:n,client:e,forcedDeposit:!0,checkoutCompleteCallback:t.forcedDepositCallback})}),(function(){}));else if(1===i.mode&&void 0!==saloniq.hub.appointmentsview){var o=saloniq.hub.globals.headerApp.doesDataSnippetExist("starttime"),s=parseInt(saloniq.hub.appointmentsview.dates.selectedDate/1e3);o&&(s=parseInt(moment.utc(1e3*parseInt(saloniq.hub.globals.headerApp.getDataFromSnippet("starttime"))).startOf("day").format("X")));var l=saloniq.hub.appointmentsview.doesClientHaveAppointmentOnDate(n,s,!0);!0===l.result?saloniq.hub.globals.createSimpleDecisionDialogWithCancel($("body"),"Client "+e.FirstName+" "+e.LastName+" already has a booking on this day.<br><br>Append new services to existing booking (YES)<br>or create a new booking (NO) ?",(function(){i.passClientFurther(n,e,l.bookingID)}),(function(){i.passClientFurther(n,e)}),(function(){})):i.passClientFurther(n,e)}else i.passClientFurther(n,e)},passClientFurther:function(e,t,i){1===this.mode?this.launchAppropriateDialog(e,t,i):2===this.mode&&(this.callbackFunction(e,t),this.myDialog.close())},launchAppropriateDialog:function(e,t,i){var n=this;null==t&&(t={LastVisitDate:0,FutureBookings:!1}),!0!==saloniq.DisplayClientDashboard||0==t.LastVisitDate&&!0!==t.FutureBookings||void 0!==window.newClient&&0!=window.newClient?(n.loading=!0,saloniq.request("/Client/getclientdetails",{DeviceAuthorized:saloniq.hub.globals.isDeviceAuthorized(),clientid:e},(function(o){n.loading=!1,"Success"===o.Status?(n.callbackFunction(e,t,i),n.myDialog.close()):saloniq.hub.globals.showGenericFail(o)}),(function(){n.loading=!1}))):saloniq.hub.globals.prepareClientDashboard({clientid:e,callback:function(){var e=saloniq.getDeepCopy(n.selectedClient);
1n.callbackFunction(e.ClientId,e,i),n.myDialog.close()}})},forcedDepositCallback:function(){var e=this;saloniq.request("/Client/getclientdetails",{DeviceAuthorized:saloniq.hub.globals.isDeviceAuthorized(),clientid:this.selectedClient.ClientId},(function(t){"Success"===t.Status?(e.selectedClient=t.Data.ClientDetails,e.passClient(e.selectedClient)):saloniq.hub.globals.showGenericFail(t)}),(function(){}))},getClients:function(){var t=this;clearTimeout(this.getClientsTimeout),t.saveSearchString(),t.saveSearchPrepopulateString(),this.getClientsTimeout=setTimeout((function(){t.searchString.length<3&&t.searchString.length>0||(t.loading=!0,saloniq.request(e.url||"/Client/GetClients",{SearchType:t.searchType,SearchString:t.searchString,Archived:t.showArchived,HomeSalonOnly:t.homesalononly,FutureBookings:t.columns.BookingID},(function(e){if("Success"===e.Status){for(var i=0;i<e.Data.Clients.length;i++)e.Data.Clients[i].mergeValue=0;t.clients=e.Data.Clients}else saloniq.hub.globals.showGenericFail(e);t.loading=!1}),(function(){})))}),500)},saveSearchString:function(){saloniq.localStorage.setItem("searchstring",JSON.stringify({ss:this.searchString,hs:this.homesalononly,columns:this.columns}))},loadSearchString:function(){var e=this,t=saloniq.localStorage.getItem("searchstring");if(null!=t&&""!=t){var i=JSON.parse(t);e.searchString=i.ss,e.homesalononly=i.hs,_.extend(e.columns,i.columns),e.saveSearchPrepopulateString()}},saveSearchPrepopulateString:function(){localStorage.setItem("searchprepopulateobject",JSON.stringify({type:["LastName","Postcode","Telephone","Email","FirstName","","","MembershipNumber","SmartSearch"][this.searchType],string:this.searchString}))},init:function(e){var t=this;t.loadSearchString(),t.options=e,t.mode=e.mode,t.ignoreDeposits=void 0!==e.ignoreDeposits&&e.ignoreDeposits,void 0!==e.callback&&("function"==typeof e.callback?t.callbackFunction=e.callback:t.callbackFunction=saloniq.getFunctionFromString(e.callback))}},beforeDestroy:function(){window.removeEventListener("resize",this.onResize)},created:function(){void 0!==this.options.ui&&_.extend(this.ui,this.options.ui)},mounted:function(){this.loadSearchString(),(this.searchString.length>=3||0==this.searchString.length)&&this.getClients(),void 0!==this.options.callback&&("function"==typeof this.options.callback?this.callbackFunction=this.options.callback:this.callbackFunction=saloniq.getFunctionFromString(this.options.callback)),this.todaysClientMode||this.focusInput()}}),saloniq.hub.clients[e.objName]},unmountContent:function(){saloniq.hub.clients[e.objName].$destroy(),delete saloniq.hub.clients[e.objName]},classes:"semifullscreen",helpid:"client-records-dialog"})};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.