// ddd
//Define an angular module for our app
var kuzeIsCalendarDraggble;
kuzeIsCalendarDraggble = true;
// angular modules
//$angularModules=['ngRoute','ui.bootstrap','ui.grid'];
$angularModules = ['ngRoute', 'ui.bootstrap', 'ui.grid', 'builder', 'builder.components', 'validator.rules', 'ui.calendar', 'xeditable', 'checklist-model', 'ui.bootstrap.datetimepicker', 'angucomplete-alt', 'multipleSelect','monospaced.elastic'];
var dayNames = ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'];
var monthNames = ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני",
"יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"
];
var loginNextScreen="";
(function(){Date.shortMonths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Date.longMonths=["January","February","March","April","May","June","July","August","September","October","November","December"],Date.shortDays=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Date.longDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var t={d:function(){return(this.getDate()<10?"0":"")+this.getDate()},D:function(){return Date.shortDays[this.getDay()]},j:function(){return this.getDate()},l:function(){return Date.longDays[this.getDay()]},N:function(){return 0==this.getDay()?7:this.getDay()},S:function(){return this.getDate()%10==1&&11!=this.getDate()?"st":this.getDate()%10==2&&12!=this.getDate()?"nd":this.getDate()%10==3&&13!=this.getDate()?"rd":"th"},w:function(){return this.getDay()},z:function(){var t=new Date(this.getFullYear(),0,1);return Math.ceil((this-t)/864e5)},W:function(){var t=new Date(this.valueOf()),e=(this.getDay()+6)%7;t.setDate(t.getDate()-e+3);var n=t.valueOf();return t.setMonth(0,1),4!==t.getDay()&&t.setMonth(0,1+(4-t.getDay()+7)%7),1+Math.ceil((n-t)/6048e5)},F:function(){return Date.longMonths[this.getMonth()]},m:function(){return(this.getMonth()<9?"0":"")+(this.getMonth()+1)},M:function(){return Date.shortMonths[this.getMonth()]},n:function(){return this.getMonth()+1},t:function(){var t=this.getFullYear(),e=this.getMonth()+1;return 12===e&&(t=t++,e=0),new Date(t,e,0).getDate()},L:function(){var t=this.getFullYear();return t%400==0||t%100!=0&&t%4==0},o:function(){var t=new Date(this.valueOf());return t.setDate(t.getDate()-(this.getDay()+6)%7+3),t.getFullYear()},Y:function(){return this.getFullYear()},y:function(){return(""+this.getFullYear()).substr(2)},a:function(){return this.getHours()<12?"am":"pm"},A:function(){return this.getHours()<12?"AM":"PM"},B:function(){return Math.floor(1e3*((this.getUTCHours()+1)%24+this.getUTCMinutes()/60+this.getUTCSeconds()/3600)/24)},g:function(){return this.getHours()%12||12},G:function(){return this.getHours()},h:function(){return((this.getHours()%12||12)<10?"0":"")+(this.getHours()%12||12)},H:function(){return(this.getHours()<10?"0":"")+this.getHours()},i:function(){return(this.getMinutes()<10?"0":"")+this.getMinutes()},s:function(){return(this.getSeconds()<10?"0":"")+this.getSeconds()},u:function(){var t=this.getMilliseconds();return(10>t?"00":100>t?"0":"")+t},e:function(){return/\((.*)\)/.exec((new Date).toString())[1]},I:function(){for(var t=null,e=0;12>e;++e){var n=new Date(this.getFullYear(),e,1),i=n.getTimezoneOffset();if(null===t)t=i;else{if(t>i){t=i;break}if(i>t)break}}return this.getTimezoneOffset()==t|0},O:function(){return(-this.getTimezoneOffset()<0?"-":"+")+(Math.abs(this.getTimezoneOffset()/60)<10?"0":"")+Math.floor(Math.abs(this.getTimezoneOffset()/60))+(0==Math.abs(this.getTimezoneOffset()%60)?"00":(Math.abs(this.getTimezoneOffset()%60)<10?"0":"")+Math.abs(this.getTimezoneOffset()%60))},P:function(){return(-this.getTimezoneOffset()<0?"-":"+")+(Math.abs(this.getTimezoneOffset()/60)<10?"0":"")+Math.floor(Math.abs(this.getTimezoneOffset()/60))+":"+(0==Math.abs(this.getTimezoneOffset()%60)?"00":(Math.abs(this.getTimezoneOffset()%60)<10?"0":"")+Math.abs(this.getTimezoneOffset()%60))},T:function(){return this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/,"$1")},Z:function(){return 60*-this.getTimezoneOffset()},c:function(){return this.format("Y-m-d\\TH:i:sP")},r:function(){return this.toString()},U:function(){return this.getTime()/1e3}};Date.prototype.format=function(e){var n=this;return e.replace(/(\\?)(.)/g,function(e,i,r){return""===i&&t[r]?t[r].call(n):r})}}).call(this);
function updateGlobalLanguage($scope, $newlang) {
// var gLang=gLangBase[gLangCurr];
$gLang = gLangBase[$newlang];
logDebug("gLangBase[$newlang]['title1']=" + gLangBase[$newlang]['title1']);
logDebug("langugage:" + $gLang['language']);
// logDebug("langugage dir: "+$gLang['dir']);
// logDebug("changing language to "+$newlang)
$scope.spClass = $gLang['class'];
// logDebug("is array? "+angular.isArray($gLang));
// logDebug("$gLang['dir']="+$gLang['dir']);
// logDebug("$gLang['title1']="+$gLang['title1']);
$scope.langfile = $gLang;
logDebug("is array? " + angular.isArray($scope.langfile));
logDebug("$scope.langfile=" + $scope.langfile);
logDebug("$scope.langfile['title1']=" + $scope.langfile['title1']);
$scope.testnewvar = $scope.langfile['title1'];
// $scope.message=$scope.langfile['title1'];
}
function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function calc_temp_limit_id() {
var d = new Date();
var randomlimit = d.getTime();
logDebug("calc_temp_limit_id=" + randomlimit);
return randomlimit;
}
var $gLogLevel = 'debug';
// starting
logDebug("main $gLogLevel=" + $gLogLevel);
logDebug("initialize angular");
logDebug("initializing modules " + $angularModules);
var kuzeApp = angular.module('kuzeApp', $angularModules)
//$rootScope.spClass = 'right';
kuzeRun = function() {
}
kuzeApp.run([
'$builder',
function($builder) {
logDebug("inside kuzeApp.run");
$builder.registerComponent('sampleInput', {
group: 'from html',
label: 'Sample',
description: 'From html template',
placeholder: 'placeholder',
required: false,
validationOptions: [{
label: 'none',
rule: '/.*/'
}, {
label: 'number',
rule: '[number]'
}, {
label: 'email',
rule: '[email]'
}, {
label: 'url',
rule: '[url]'
}],
templateUrl: '/angular-form-builder/example/template.html',
popoverTemplateUrl: '/angular-form-builder/example/popoverTemplate.html'
});
return $builder.registerComponent('name', {
group: 'Default',
label: 'Name',
required: false,
arrayToText: true,
template: "
",
popoverTemplate: ""
});
}
])
kuzeApp.run(function(editableOptions, editableThemes) {
logDebug("initializing xeditable editableOptions");
editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'
// editableOptions.defaults.mode = 'inline';
logDebug(editableOptions);
// editableOptions.mode = 'inline';
editableThemes.bs3.inputClass = 'input-sm';
editableThemes.bs3.buttonsClass = 'btn-sm';
});
reload_random=Math.floor(Math.random() * 10000000);
// after forms
//Define Routing for app
//Uri /AddNewOrder -> template add_order.html and Controller ClientsAddController
//Uri /ShowOrders -> template show_orders.html and Controller ClientsAddController
kuzeApp.config(['$routeProvider',
function($routeProvider) {
logDebug($routeProvider);
$routeProvider.
when('/scheduler/:event_type_id', {
templateUrl: $gTemplatePrefix + 'scheduler.php',
controller: 'schedulerController'
}).
when('/scheduleclass/:event_type_id', {
templateUrl: $gTemplatePrefix + 'end_user_schedule_class.php',
controller: 'scheduleClassController'
}).
when('/scheduler_iframev2/:event_type_id', {
templateUrl: $gTemplatePrefix + 'scheduler_iframev2.php',
controller: 'schedulerControllerv2'
}).
when('/scheduler_iframe/:event_type_id', {
templateUrl: $gTemplatePrefix + 'scheduler_iframe.php',
controller: 'schedulerController'
}).
when('/end_user_info_iframe', {
templateUrl: $gTemplatePrefix + 'end_user_info_iframe.php?random='+reload_random,
controller: 'endUserInfoControllerv2'
}).
when('/scheduleclass_iframe/:event_type_id', {
templateUrl: $gTemplatePrefix + 'end_user_schedule_class_iframe.php',
controller: 'scheduleClassController'
}).
when('/end_user_events', {
templateUrl: $gTemplatePrefix + 'end_user_events.php',
controller: 'endUserEventsController'
}).
when('/end_user_services', {
templateUrl: $gTemplatePrefix + 'end_user_services.php',
controller: 'endUserHomeController'
// controller: 'endUserServicesController'
}).
when('/end_user_info', {
templateUrl: $gTemplatePrefix + 'end_user_info.php?random='+reload_random,
controller: 'endUserInfoController'
}).
when('/forms/:url_code', {
templateUrl: $gTemplatePrefix + 'end_user_forms.php?vesion=3',
controller: 'endUserFormsController'
}).
when('/cart/:cart_hash_code', {
templateUrl: $gTemplatePrefix + 'end_user_cart.php?vesion=3',
controller: 'endUserCartController'
}).
when('/buy/:cart_hash_code', {
templateUrl: $gTemplatePrefix + 'end_user_cart.php?vesion=3',
controller: 'endUserCartController'
}).
when('/cart/', {
templateUrl: $gTemplatePrefix + 'end_user_cart.php?vesion=3',
controller: 'endUserCartController'
}).
when('/tables', {
templateUrl: $gTemplatePrefix + 'tables.php',
controller: 'tablesController'
}).
when('/end_user_private', {
templateUrl: $gTemplatePrefix + 'end_user_private.php',
controller: 'endUserPrivateController'
}).
when('/contact', {
templateUrl: $gTemplatePrefix + 'contact.php',
controller: 'contactController'
}).
when('/cc/:cancel_hash_code', {
templateUrl: $gTemplatePrefix + 'end_user_cancel.php',
controller: 'cancelController'
}).
when('/user_config', {
templateUrl: $gTemplatePrefix + 'user_config.php',
controller: 'ConfigUserController'
}).
when('/', {
templateUrl: $gTemplatePrefix + 'home.php',
controller: 'endUserHomeController'
}).
otherwise({
// redirectTo: '/'
});
}
]);
kuzeApp.factory('sharedData', function() {
var is_iframe = false;
return {
is_iframe: function() {
return is_iframe;
},
set_iframe: function(new_is_iframe) {
is_iframe = new_is_iframe;
},
};
});
kuzeApp.controller('menuController', ['$scope', '$location', function($scope, $location) {
return true;
logDebug("$scope.isCurrentPath=" + $scope.isCurrentPath);
$scope.isCurrentPath = function(path) {
return $location.path() == path;
};
}]);
kuzeApp.controller('scheduleClassController', function($scope, sharedData,$http, $routeParams, $uibModal) {
event_type_id=$routeParams.event_type_id;
sharedData.set_iframe(false);
$scope.isUserLoggedIn=0;
$scope.suggestionDate = [];
$scope.suggestionDate.date = new Date();
$scope.suggestionDate.options = {
// minDate: new Date(),
// showWeeks: true,
minView:'day',
startView: 'day'
};
var thetime = new Date();
$scope.filterAllDaysCheckbox=true;
$scope.filterDayItems = {
'ראשון': true,
'שני': true,
'שלישי': true,
'רביעי': true,
'חמישי': true,
'שישי': true,
'שבת': true
};
optionalStaffBySuggestions = function (suggestions) {
var x2 = {};
for (i = 0; i < suggestions.length; i++){
x2[suggestions[i]["instructor_id"]] = {"emp_id": suggestions[i]["instructor_id"], "emp_name":suggestions[i]["buser_first_name"]+" "+suggestions[i]["buser_last_name"]};
}
x3 = Object.values(x2);
x3.unshift({"emp_id":0, "emp_name":"כל הצוות"});
return x3;
}
$scope.filterEmployees = function (esuggest)
{
if ($scope.selected_emp_id == 0){
return esuggest;
} else {
if (esuggest.instructor_id == $scope.selected_emp_id){
return esuggest;
}
}
};
$scope.selected_emp_id = 0;
$scope.style_week = function (esuggest_new_week) // this functions creates separation style (border) between different weeks
{
// could not make this work yet
// if (esuggest_new_week)
// {
// return { 'border-top': '1px solid #C0C0C0'};
// }
}
$scope.onTimeSet = function (newDate, oldDate) {
logDebug("new date "+newDate.getTime() + " old date "+oldDate.getTime());
diff=newDate.getTime()-oldDate.getTime();
// if new date is in a different week
// we refetch suggestions for the current week
var newDateW = new Date(newDate);
var oldDateW = new Date(oldDate);
// alert(newDateW.format('W'));
// alert(oldDateW.format('W'));
if ((newDateW.format('W')!=oldDateW.format('W')) || (newDateW.format('w')==0) || (oldDateW.format('w')==0))
{
logDebug("diff is a week or more 1, refetching suggestions");
$http.get($gApiURLPrefix + "/enduser/events/suggestclass/"+event_type_id+"/0/"+newDate.getFullYear()+"/"+(newDate.getMonth()+1)+"/"+newDate.getDate()+"/"+newDate.getHours() + "/" + newDate.getMinutes() + "/0").then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.classEventsSuggested = response.data;
});
}
}
$scope.options = {
customClass: getDayClass,
minDate: new Date(),
showWeeks: true
};
$scope.dt = new Date();
function getDayClass(data) {
return '';
}
$scope.daysItems = [
{name:'ראשון'},
{name:'שני'},
{name:'שלישי'},
{name:'רביעי'},
{name:'חמישי'},
{name:'שישי'},
{name:'שבת'}
];
$scope.daysShort = [
{name:'א'},
{name:'ב'},
{name:'ג'},
{name:'ד'},
{name:'ה'},
{name:'ו'},
{name:'ש'}
];
$scope.filterAllDayItemsSet = function ()
{
$scope.filterDayItems['ראשון']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שני']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שלישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['רביעי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['חמישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שבת']=$scope.filterAllDaysCheckbox;
}
$scope.suggestFilterDays = function (esuggest)
{
// logDebug(esuggest);
if (($scope.filterDayItems[esuggest.start_format_dow]) & (($scope.suggestionDate.date.getTime()/1000)= activeDateEnd.valueOf()))
}).forEach(function (date)
{
date.selectable = false;
})
}
}
logDebug('scheduler Class Controller for event type id '+event_type_id+" "+thetime.getHours() + ":" + thetime.getMinutes() + ":" + thetime.getSeconds());
$http.get($gApiURLPrefix + "/enduser/events/suggestclass/"+event_type_id+"/0/"+thetime.getFullYear()+"/"+(thetime.getMonth()+1)+"/"+thetime.getDate()+"/"+thetime.getHours() + "/" + thetime.getMinutes() + "/0").then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.classEventsSuggested = response.data;
$scope.optionalEmployees = optionalStaffBySuggestions($scope.classEventsSuggested);
});
$http.get($gApiURLPrefix + "/enduser/event_types/"+event_type_id).then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.eventTypeDetails = response.data;
if ($scope.eventTypeDetails[0].is_class!=1)
{
alert("this module is only available for classes");
}
$scope.isUserLoggedIn=0;
if (typeof $scope.eventTypeDetails!=='undefined')
{
if (typeof $scope.eventTypeDetails[0]!=='undefined')
{
$scope.isUserLoggedIn=$scope.eventTypeDetails[0]['isUserLoggedIn'];
// alert(JSON.stringify($scope.isUserLoggedIn));
}
}
});
$scope.signUpToClass = function(selectedEvent)
{
selectedEventJSONDetails = JSON.stringify(selectedEvent, null, 4); // (Optional) beautiful indented output.
if (selectedEvent.is_already_paid==1)
{
return true;
}
if ($scope.isUserLoggedIn==0)
{
logDebug("signup to class - but first - need to login");
loginNextScreen="";
nextModal="";
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'endUserLogin.php',
controller: 'endUserLoginModal',
size: 500,
resolve: {
startDate: function() {
return 111;
},
loginNextScreen: function() {
return loginNextScreen;
},
nextModal: function() {
return nextModal;
},
needs_password: function() {
return 0;
},
return_to_cc: function() {
return 0;
},
return_to_event_register: function() {
return 1;
},
selectedEvent: function() {
return selectedEvent;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
},
total_to_pay: function(){
return 0;
},
enduser_cart: function() {
return null;
},
phone_number: function() {
return "";
}
}
});
}
else {
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'signUpToClassModal.php',
controller: 'signUpToClassModalController',
resolve: {
selectedEvent: function() {
return selectedEvent;
},
isUserLoggedIn: function() {
return $scope.isUserLoggedIn;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
}
}
});
}
}
$scope.$on("enduserReloadClassSuggestions",function(e,a)
{
logDebug("enduserReloadClassSuggestions");
$http.get($gApiURLPrefix + "/enduser/events/suggestclass/"+event_type_id+"/0/"+thetime.getFullYear()+"/"+(thetime.getMonth()+1)+"/"+thetime.getDate()+"/"+thetime.getHours() + "/" + thetime.getMinutes() + "/0").then(function(response) {
$scope.classEventsSuggested = response.data;
});
$http.get($gApiURLPrefix + "/enduser/event_types/"+event_type_id).then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.eventTypeDetails = response.data;
if ($scope.eventTypeDetails[0].is_class!=1)
{
alert("this module is only available for classes");
}
});
});
});
kuzeApp.controller('tablesController', function($scope, $uibModal, $http, $timeout)
{
logDebug("tablesController")
});
kuzeApp.controller('ConfigUserController', function($scope, $uibModal, $http, $timeout)
{
$scope.inTheMiddleOfSave=false;
logDebug("ConfigUserController");
// $scope.ajax_info="השינויים נשמרו";
getBusinessUserRelations($http,$scope,'business_user_relations',getLoggedUserInfo_success,getLoggedUserInfo_failure);
getLoggedUserInfo($http,$scope,'userProperties',getLoggedUserInfo_success,getLoggedUserInfo_failure);
function getLoggedUserInfo_success()
{
logDebug("getLoggedUserInfo_success");
$scope.userPropertiesDuplicate = JSON.parse(JSON.stringify($scope.userProperties));
}
function getLoggedUserInfo_failure()
{
logDebug("getLoggedUserInfo_failure");
}
$scope.createBusinessModal = function()
{
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'create_business_modal.php',
controller: 'create_business_modal',
size: 'l',
resolve: {
user_phone_number: function()
{
return $scope.userPropertiesDuplicate[0].phone_number;
}
}
});
modalInstance.result.then(function(result) {
$scope.inTheMiddleOfSave=false;
logDebug('smsResetPassword Modal2 dismissed at: ' + new Date());
}, function() {
$scope.inTheMiddleOfSave=false;
logDebug('modal_change_password Modal dismissed at: ' + new Date());
});
}
$scope.back = function() {
window.history.back();
};
$scope.changePasswordModal = function()
{
$scope.inTheMiddleOfSave=true;
function smsResetPassword_success()
{
logDebug("smsResetPassword_success");
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'modal_change_password.php',
controller: 'modal_change_password',
size: 'l',
resolve: {
user_phone_number: function() {
// passing original phone number
return $scope.userPropertiesDuplicate[0].phone_number;
}
}
});
modalInstance.result.then(function(result) {
$scope.inTheMiddleOfSave=false;
logDebug('smsResetPassword Modal2 finisehd result: ' + result);
$scope.ajax_info="הסיסמא עודכנה בהצלחה!";
// getLoggedUserInfo($http,$scope,'userProperties',getLoggedUserInfo_success,getLoggedUserInfo_failure);
$timeout(function()
{
$scope.ajax_info=null;
}, 2000);
logDebug('smsResetPassword Modal2 dismissed at: ' + new Date());
}, function() {
$scope.inTheMiddleOfSave=false;
logDebug('modal_change_password Modal dismissed at: ' + new Date());
});
}
changePasswordSMS($http,$scope,$scope.userPropertiesDuplicate[0].phone_number,smsResetPassword_success);
}
$scope.updateUserConfig=function()
{
$scope.inTheMiddleOfSave=true;
logDebug("updateUserConfig, inTheMiddleOfSave="+$scope.inTheMiddleOfSave);
// logDebug($scope.userPropertiesDuplicate);
// logDebug($scope.userProperties);
if (angular.equals($scope.userPropertiesDuplicate[0].phone_number,$scope.userProperties[0].phone_number))
{
logDebug("nothing changed in phone number, checking other data other data");
if (angular.equals($scope.userPropertiesDuplicate[0],$scope.userProperties[0]))
{
$scope.inTheMiddleOfSave=false;
logDebug("nothing changed in details, nothing to save");
$scope.ajax_info="לא בוצעו שינויים לשמירה...";
$timeout(function()
{
$scope.ajax_info=null;
}, 1500);
}
else
{
changeUserDetails($http,$scope,$scope.userProperties[0].first_name,$scope.userProperties[0].last_name, $scope.userProperties[0].email_address, $scope.userProperties[0].user_require_two_step,$scope.userProperties[0].accesible_mode,$scope.userProperties[0].whatsapp_desktop_app,$scope.userProperties[0].max_session_in_minutes,changeUserDetails_success, changeUserDetails_failure);
$scope.ajax_info="מעדכן שינויים...";
}
function changeUserDetails_success()
{
location.reload();
logDebug("changeUserDetails_success");
$scope.ajax_info="השינויים נשמרו בהצלחה!";
$scope.inTheMiddleOfSave=false;
$timeout(function()
{
$scope.ajax_info=null;
}, 1500);
getLoggedUserInfo($http,$scope,'userProperties',getLoggedUserInfo_success,getLoggedUserInfo_failure);
}
function changeUserDetails_failure()
{
logDebug("changeUserDetails_failure");
}
}
else
{
// update user info - after verifying password
logDebug("phone changed, checking if new phone is in descent format");
if (!checkPhoneNumber($scope.userProperties[0].phone_number))
{
$scope.ajax_info="אנא הזן מספר טלפון סלולרי תקין לקבלת הודעות מקיוז.";
$timeout(function()
{
$scope.ajax_info=null;
}, 3000);
return;
}
logDebug("phone changed, checking if new phone is not used already");
isNewPhoneUsedIfNotSendSMS($http,$scope,$scope.userProperties[0].phone_number, isNewPhoneUsed_success, isNewPhoneUsed_failure,false);
function isNewPhoneUsed_success(response)
{
logDebug("phone not used - prompting for password");
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'modal_check_password_update_config.php',
controller: 'modal_check_password_update_config',
size: 'l',
resolve: {
new_user_proerties: function() {
return $scope.userProperties[0];
}
}
});
modalInstance.result.then(function(result) {
logDebug('modal_check_password_update_config Modal finished result: ' + result);
$scope.ajax_info="השינויים נשמרו בהצלחה!";
$scope.inTheMiddleOfSave=false;
getLoggedUserInfo($http,$scope,'userProperties',getLoggedUserInfo_success,getLoggedUserInfo_failure);
$timeout(function()
{
$scope.ajax_info=null;
}, 3000);
}, function() {
$scope.inTheMiddleOfSave=false;
logDebug('modal_check_password_update_config Modal dismissed at: ' + new Date());
});
}
function isNewPhoneUsed_failure(response)
{
$scope.ajax_info=response.message;
$timeout(function()
{
$scope.ajax_info=null;
}, 2000);
}
}
};
});
kuzeApp.controller('modal_change_password', function($scope, sharedData,$uibModalInstance, user_phone_number, $http)
{
logDebug("modal_change_password controller");
$scope.phone_verification = {}; // these are the complete details for the new event //
$scope.phone_verification.phone_number=user_phone_number;
sharedData.set_iframe(false);
$scope.phone_verification.sms_error="";
$scope.close = function() {
$uibModalInstance.close('dismiss');
};
$scope.changePassword = function()
{
changePassword($http,$scope,$scope.phone_verification.user_password,$scope.phone_verification.user_password2,$scope.phone_verification.verification_code, changePassword_success, changePassword_failure,false);
$scope.ajax_error="";
function changePassword_success()
{
logDebug("changePassword_success");
status="fffff";
// alert('הסיסמא עודכנה בהצלחה');
$uibModalInstance.close(true);
}
function changePassword_failure(response)
{
logDebug("changePassword_failure "+response.message);
$scope.ajax_error=response.message;
}
}
});
kuzeApp.controller('modal_check_password_update_config', function($scope,sharedData, $timeout, $uibModalInstance, new_user_proerties, $http)
{
$scope.new_user_proerties=new_user_proerties;
logDebug("modal_check_password_update_config controller");
sharedData.set_iframe(false);
// $scope.phone_verification = {}; // these are the complete details for the new event //
// $scope.phone_verification.phone_number=new_user_proerties.phone_number;
$scope.close = function() {
$uibModalInstance.close('dismiss');
};
$scope.changePhoneNumber = function()
{
changeUserDetailsVerify($http,$scope,$scope.new_user_proerties.phone_number,$scope.new_user_proerties.first_name,$scope.new_user_proerties.last_name, $scope.new_user_proerties.email_address,$scope.verify_user_password,$scope.phone_verification,changeUserDetailsVerify_success, changeUserDetailsVerify_failure,false);
function changeUserDetailsVerify_success()
{
logDebug("changeUserDetailsVerify_success");
// alert('השינויים עודכנו בהצלחה');
$uibModalInstance.close(true);
}
function changeUserDetailsVerify_failure(response)
{
logDebug("changeUserDetailsVerify_failure "+response.message);
$scope.ajax_error=response.message+".";
$timeout(function()
{
$scope.ajax_error=null;
}, 4000);
}
}
});
kuzeApp.controller('schedulerController', function($scope,sharedData, $http, $routeParams, $uibModal) {
event_type_id=$routeParams.event_type_id;
sharedData.set_iframe(false);
// all these are relate to the calendar - begin
$scope.isUserLoggedIn=0;
$scope.suggestionDate = [];
$scope.suggestionDate.date = new Date();
$scope.suggestionDate.options = {
// minDate: new Date(),
// showWeeks: true,
minView:'day',
startView: 'day'
};
var thetime = new Date();
$scope.filterAllDaysCheckbox=true;
$scope.filterDayItems = {
'ראשון': true,
'שני': true,
'שלישי': true,
'רביעי': true,
'חמישי': true,
'שישי': true,
'שבת': true
};
$scope.onTimeSet = function (newDate, oldDate) {
logDebug("new date "+newDate.getTime() + " old date "+oldDate.getTime());
diff=newDate.getTime()-oldDate.getTime();
// if new date is in a different week
// we refetch suggestions for the current week
var newDateW = new Date(newDate);
var oldDateW = new Date(oldDate);
// alert(newDateW.format('W'));
// alert(oldDateW.format('W'));
// if (newDateW.format('W')!=oldDateW.format('W'))
if ((newDateW.format('W')!=oldDateW.format('W')) || (newDateW.format('w')==0) || (oldDateW.format('w')==0))
{
logDebug("diff is a week or more 2, refetching suggestions");
$http.get($gApiURLPrefix + "/enduser/events/suggest/"+event_type_id+"/0/"+newDate.getFullYear()+"/"+(newDate.getMonth()+1)+"/"+newDate.getDate()+"/"+newDate.getHours() + "/" + newDate.getMinutes()).then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.eventsSuggested = response.data;
$scope.optionalEmployees = optionalStaffBySuggestions($scope.eventsSuggested);
});
}
}
optionalStaffBySuggestions = function (suggestions) {
var x2 = {};
for (i = 0; i < suggestions.length; i++){
x2[suggestions[i]["emp_id"]] = {"emp_id": suggestions[i]["emp_id"], "emp_name":suggestions[i]["emp_name"]};
}
x3 = Object.values(x2);
x3.unshift({"emp_id":0, "emp_name":"כל הצוות"});
return x3;
}
$scope.filterEmployees = function (esuggest)
{
if ($scope.selected_emp_id == 0){
return esuggest;
} else {
if (esuggest.emp_id == $scope.selected_emp_id){
return esuggest;
}
}
};
$scope.selected_emp_id = 0;
$scope.$on("enduserReloadEventSuggestions",function(e,a)
{ // to event
logDebug('schedulerController for event type id '+event_type_id+" "+thetime.getHours() + ":" + thetime.getMinutes() + ":" + thetime.getSeconds());
$http.get($gApiURLPrefix + "/enduser/events/suggest/"+event_type_id+"/0/"+thetime.getFullYear()+"/"+(thetime.getMonth()+1)+"/"+thetime.getDate()+"/"+thetime.getHours() + "/" + thetime.getMinutes()).then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.eventsSuggested = response.data;
$scope.optionalEmployees = optionalStaffBySuggestions($scope.eventsSuggested);
});
});
$scope.style_week = function (esuggest_new_week) // this functions creates separation style (border) between different weeks
{
// could not make this work yet
// if (esuggest_new_week)
// {
// return { 'border-top': '1px solid #C0C0C0'};
// }
}
$scope.options = {
customClass: getDayClass,
minDate: new Date(),
showWeeks: true
};
$scope.dt = new Date();
function getDayClass(data) {
return '';
}
$scope.daysItems = [
{name:'ראשון'},
{name:'שני'},
{name:'שלישי'},
{name:'רביעי'},
{name:'חמישי'},
{name:'שישי'},
{name:'שבת'}
];
$scope.daysShort = [
{name:'א'},
{name:'ב'},
{name:'ג'},
{name:'ד'},
{name:'ה'},
{name:'ו'},
{name:'ש'}
];
$scope.filterAllDayItemsSet = function ()
{
$scope.filterDayItems['ראשון']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שני']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שלישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['רביעי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['חמישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שבת']=$scope.filterAllDaysCheckbox;
}
$scope.suggestFilterDays = function (esuggest)
{
// logDebug(esuggest);
if (($scope.filterDayItems[esuggest.start_format_dow]) & (($scope.suggestionDate.date.getTime()/1000)= activeDateEnd.valueOf()))
}).forEach(function (date)
{
date.selectable = false;
})
}
}
});
kuzeApp.controller('schedulerControllerv2', function($scope, $http, $routeParams, $uibModal,sharedData,$window) {
event_type_id=$routeParams.event_type_id;
sharedData.set_iframe(true);
// all these are relate to the calendar - begin
$scope.isUserLoggedIn=0;
$scope.suggestionDate = [];
$scope.suggestionDate.date = new Date();
$scope.suggestionDate.options = {
// minDate: new Date(),
// showWeeks: true,
minView:'day',
startView: 'day'
};
var thetime = new Date();
$scope.filterAllDaysCheckbox=true;
$scope.filterDayItems = {
'ראשון': true,
'שני': true,
'שלישי': true,
'רביעי': true,
'חמישי': true,
'שישי': true,
'שבת': true
};
$scope.onTimeSet = function (newDate, oldDate) {
logDebug("new date "+newDate.getTime() + " old date "+oldDate.getTime());
diff=newDate.getTime()-oldDate.getTime();
// if new date is in a different week
// we refetch suggestions for the current week
var newDateW = new Date(newDate);
var oldDateW = new Date(oldDate);
// alert(newDateW.format('W'));
// alert(oldDateW.format('W'));
// if (newDateW.format('W')!=oldDateW.format('W'))
if ((newDateW.format('W')!=oldDateW.format('W')) || (newDateW.format('w')==0) || (oldDateW.format('w')==0))
{
logDebug("diff is a week or more 2, refetching suggestions");
$http.get($gApiURLPrefix + "/enduser/events/suggest_iframe/"+event_type_id+"/0/"+newDate.getFullYear()+"/"+(newDate.getMonth()+1)+"/"+newDate.getDate()+"/"+newDate.getHours() + "/" + newDate.getMinutes()).then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.eventsSuggested = response.data;
$scope.optionalEmployees = optionalStaffBySuggestions($scope.eventsSuggested);
});
}
}
optionalStaffBySuggestions = function (suggestions) {
var x2 = {};
for (i = 0; i < suggestions.length; i++){
x2[suggestions[i]["emp_id"]] = {"emp_id": suggestions[i]["emp_id"], "emp_name":suggestions[i]["emp_name"]};
}
x3 = Object.values(x2);
x3.unshift({"emp_id":0, "emp_name":"כל הצוות"});
return x3;
}
$scope.filterEmployees = function (esuggest)
{
if ($scope.selected_emp_id == 0){
return esuggest;
} else {
if (esuggest.emp_id == $scope.selected_emp_id){
return esuggest;
}
}
};
$scope.selected_emp_id = 0;
$scope.$on("reload_data",function(e,a)
{ // to event
logDebug('reload_data for event type id '+event_type_id+" "+thetime.getHours() + ":" + thetime.getMinutes() + ":" + thetime.getSeconds());
$http.get($gApiURLPrefix + "/enduser/events/suggest_iframe/"+event_type_id+"/0/"+thetime.getFullYear()+"/"+(thetime.getMonth()+1)+"/"+thetime.getDate()+"/"+thetime.getHours() + "/" + thetime.getMinutes()).then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.eventsSuggested = response.data;
$scope.optionalEmployees = optionalStaffBySuggestions($scope.eventsSuggested);
});
$http.get($gApiURLPrefix + "/enduser/event_types/"+event_type_id).then(function(response) {
// $scope.myData = response.data;
// logDebug("gridoptions="+$scope.gridOptions);
$scope.eventTypeDetails = response.data;
if (typeof $scope.eventTypeDetails!=='undefined')
{
if (typeof $scope.eventTypeDetails[0]!=='undefined')
{
$scope.isUserLoggedIn=$scope.eventTypeDetails[0]['isUserLoggedIn'];
// alert(JSON.stringify($scope.isUserLoggedIn));
}
}
});
});
$scope.style_week = function (esuggest_new_week) // this functions creates separation style (border) between different weeks
{
// could not make this work yet
// if (esuggest_new_week)
// {
// return { 'border-top': '1px solid #C0C0C0'};
// }
}
$scope.options = {
customClass: getDayClass,
minDate: new Date(),
showWeeks: true
};
$scope.dt = new Date();
function getDayClass(data) {
return '';
}
$scope.daysItems = [
{name:'ראשון'},
{name:'שני'},
{name:'שלישי'},
{name:'רביעי'},
{name:'חמישי'},
{name:'שישי'},
{name:'שבת'}
];
$scope.daysShort = [
{name:'א'},
{name:'ב'},
{name:'ג'},
{name:'ד'},
{name:'ה'},
{name:'ו'},
{name:'ש'}
];
$scope.filterAllDayItemsSet = function ()
{
$scope.filterDayItems['ראשון']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שני']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שלישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['רביעי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['חמישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שישי']=$scope.filterAllDaysCheckbox;
$scope.filterDayItems['שבת']=$scope.filterAllDaysCheckbox;
}
$scope.suggestFilterDays = function (esuggest)
{
// logDebug(esuggest);
if (($scope.filterDayItems[esuggest.start_format_dow]) & (($scope.suggestionDate.date.getTime()/1000)= activeDateEnd.valueOf()))
}).forEach(function (date)
{
date.selectable = false;
})
}
}
});
kuzeApp.controller('contactController', function($scope, $http) {
logDebug('contactController');
});
kuzeApp.controller('signUpToEventModalController', function($scope, sharedData, $uibModal, $sce, $route,$rootScope, $uibModalInstance, $location, selectedEvent, eventTypeDetails, isUserLoggedIn,$http,$window) {
$scope.selectedEvent = selectedEvent;
$scope.eventTypeDetails = eventTypeDetails;
$scope.isUserLoggedIn=isUserLoggedIn;
// alert(sharedData.is_iframe());
$scope.business_takanon = $sce.trustAsHtml(eventTypeDetails[0].business_takanon);
$scope.selectedEvent.user_signed_takanon=$scope.eventTypeDetails[0].user_signed_takanon;
selectedDateStart = new Date($scope.selectedEvent.start_time);
logError("scope.selectedEvent.start_time 2=" + $scope.selectedEvent.start_time);
logDebug("selectedDateStart=" + selectedDateStart);
// fixing timezone
var selectedDateStart = new Date(selectedDateStart.getTime() + selectedDateStart.getTimezoneOffset() * 60000);
$scope.selectedEvent.txtstartDay = selectedDateStart.getDate();
$scope.selectedEvent.txtstartMonth = 1 + selectedDateStart.getMonth();
$scope.selectedEvent.txtstartMonth = monthNames[$scope.selectedEvent.txtstartMonth - 1];
$scope.selectedEvent.txtstartYear = selectedDateStart.getFullYear();
$scope.selectedEvent.eventtype = $scope.eventTypeDetails[0];
$scope.selectedEvent.requires_payment = $scope.eventTypeDetails[0].requires_payment;
$scope.selectedEvent.requires_payment_amount = $scope.eventTypeDetails[0].requires_payment_amount;
logDebug('signUpToEventModalController '+ JSON.stringify($scope.selectedEvent, null, 4) + JSON.stringify($scope.eventTypeDetails, null, 4));
$scope.okLimitationModal = function() {
if (sharedData.is_iframe())
{
// iframe
logDebug("reloading data iframe");
$rootScope.$broadcast('reload_data'); // pass object in {} if you wanna to pass anything
$uibModalInstance.close('');
}
else
{
logDebug("no iframe enduserReloadEventSuggestions");
$rootScope.$broadcast('enduserReloadEventSuggestions'); // pass object in {} if you wanna to pass anything
$uibModalInstance.close('');
}
};
$scope.inprogress=false;
$scope.endUserCreateEvent = function()
{
$scope.inprogress=true;
logDebug("function: endUserCreateEvent");
$http({
method: 'POST',
url: '/api/enduser/events/create',
data: $scope.selectedEvent,
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
$scope.inprogress=false;
logDebug(data);
if (!data.success) {
logDebug("error creating event " + data.message);
alert(data.message);
// $scope.phone_verification.sms_error = data.Message;
} else {
logDebug("success 1");
if ($scope.eventTypeDetails[0].requires_payment==1)
{
logDebug("requires payment 1 - data.enduser_cart="+JSON.stringify(data.enduser_cart));
$uibModalInstance.close('');
// requires payment
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'end_user_pay_cc.php',
controller: 'end_user_pay_cc_controller',
size: 500,
resolve:
{
total_to_pay: function() {
return data.json.events_paid_amount;
},
prepaid_amount: function() {
return data.json.requires_payment_amount;
},
first_name: function() {
return data.json.user_first_name;
},
last_name: function() {
return data.json.user_last_name;
},
phone_number: function() {
return data.json.user_phone_number;
},
lock_minutes: function() {
return data.json.lock_minutes;
},
enduser_cart: function() {
return data.json;
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
});
}
else
{
// doesnt require payment
// $location.path("/end_user_events");
$uibModalInstance.close('');
// logDebug("broadcasting enduserReloadEventSuggestions");
// $rootScope.$broadcast('enduserReloadEventSuggestions'); // pass object in {} if you wanna to pass anything
// go to user page to see event
if (sharedData.is_iframe())
{
window.location="/v2/#/end_user_info_iframe";
}
else
{
$location.path('/end_user_info');
}
$route.reload();
}
}
});
};
});
kuzeApp.controller('signUpToClassModalController', function($rootScope, $uibModal, $sce,$scope, $uibModalInstance, $location, isUserLoggedIn,selectedEvent, eventTypeDetails,$http) {
$scope.selectedEvent = selectedEvent;
$scope.eventTypeDetails = eventTypeDetails;
$scope.isUserLoggedIn=isUserLoggedIn;
$scope.business_takanon = $sce.trustAsHtml(eventTypeDetails[0].business_takanon);
logError("scope.selectedEvent.start_time 1=" + $scope.selectedEvent.start_time);
selectedDateStart = new Date(($scope.selectedEvent.start_time).replace(/ /g,"T"));
logDebug("selectedDateStart=" + selectedDateStart);
// fixing timezone
var selectedDateStart = new Date(selectedDateStart.getTime() + selectedDateStart.getTimezoneOffset() * 60000);
$scope.selectedEvent.txtstartDay = selectedDateStart.getDate();
$scope.selectedEvent.txtstartMonth = 1 + selectedDateStart.getMonth();
$scope.selectedEvent.txtstartMonth = monthNames[$scope.selectedEvent.txtstartMonth - 1];
$scope.selectedEvent.txtstartYear = selectedDateStart.getFullYear();
// $scope.selectedEvent.eventtype = $scope.eventTypeDetails[0];
$scope.selectedEvent.user_signed_takanon=$scope.eventTypeDetails[0].user_signed_takanon;
// logDebug('signUpToClassModalController '+ JSON.stringify($scope.selectedEvent, null, 4) + JSON.stringify($scope.eventTypeDetails, null, 4));
logDebug('signUpToClassModalController '+ JSON.stringify($scope.selectedEvent, null, 4) );
logDebug('signUpToClassModalController '+ JSON.stringify($scope.eventTypeDetails, null, 4) );
$scope.selectedEvent.requires_payment = $scope.eventTypeDetails[0].requires_payment;
$scope.selectedEvent.requires_payment_amount = $scope.eventTypeDetails[0].requires_payment_amount;
$scope.cancel = function() {
logDebug("cancel");
$rootScope.$broadcast('enduserReloadClassSuggestions'); // pass object in {} if you wanna to pass anything
$uibModalInstance.close('');
};
$scope.inprogress=false;
$scope.endUserClassCancel = function()
{
$scope.inprogress=true;
cancelClassSubscribe($http,$scope,$scope.selectedEvent.event_id,$scope.selectedEvent,cancelClassSubscribe_success);
function cancelClassSubscribe_success()
{
$scope.inprogress=false;
logDebug("success cancelClassSubscribe");
$uibModalInstance.close('');
logDebug("broadcasting enduserReloadClassSuggestions");
$rootScope.$broadcast('enduserReloadClassSuggestions'); // pass object in {} if you wanna to pass anything
$rootScope.$broadcast('enduserReloadEndUserInfo'); // pass object in {} if you wanna to pass anything
}
};
$scope.endUserClassJoingWaiting = function()
{
$scope.inprogress=true;
subscribeClassWaiting($http,$scope,$scope.selectedEvent.event_id,$scope.selectedEvent,subscribeClassWaiting_success);
function subscribeClassWaiting_success()
{
$scope.inprogress=false;
logDebug("success subscribeClassWaiting");
$uibModalInstance.close('');
logDebug("broadcasting enduserReloadClassSuggestions");
$rootScope.$broadcast('enduserReloadClassSuggestions'); // pass object in {} if you wanna to pass anything
}
};
$scope.endUserClassJoin = function()
{
$scope.inprogress=true;
$http({
method: 'POST',
url: '/api/enduser/class/signup/'+$scope.selectedEvent.event_id,
data: $scope.selectedEvent,
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
logDebug(data);
$scope.inprogress=false;
if (!data.success) {
logDebug("error signing up to class " + data.message);
alert(data.message);
// $scope.phone_verification.sms_error = data.Message;
} else {
// success !!
if ($scope.eventTypeDetails[0].requires_payment==0)
// doesnt require payment
{
logDebug("success 2");
// $location.path("/end_user_events");
// location.reload();
$uibModalInstance.close('');
logDebug("broadcasting enduserReloadClassSuggestions");
$rootScope.$broadcast('enduserReloadClassSuggestions'); // pass object in {} if you wanna to pass anything
}
else
{
logDebug("requires payment 2 - data.enduser_cart="+JSON.stringify(data.enduser_cart));
logDebug("requires payment 2 - data.json="+JSON.stringify(data.json));
$uibModalInstance.close('');
// requires payment
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'end_user_pay_cc.php',
controller: 'end_user_pay_cc_controller',
size: 500,
resolve:
{
total_to_pay: function() {
return data.json.events_paid_amount;
},
prepaid_amount: function() {
return data.json.requires_payment_amount;
},
first_name: function() {
return data.json.user_first_name;
},
last_name: function() {
return data.json.user_last_name;
},
phone_number: function() {
return data.json.user_phone_number;
},
lock_minutes: function() {
return data.json.lock_minutes;
},
enduser_cart: function() {
return data.json;
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
});
}
}
});
};
});
kuzeApp.controller('endUserLoginModal', function($scope, return_to_event_register, selectedEvent,eventTypeDetails,enduser_cart,phone_number, $uibModal,$timeout,needs_password, return_to_cc, total_to_pay, $uibModalInstance, $location, $http, startDate, uiCalendarConfig) {
$scope.step2registerShow = false;
$scope.step1sendcodeShow = true;
$scope.step4SMSPassResetShow = false;
$scope.needs_password=needs_password;
$scope.return_to_cc=return_to_cc;
$scope.total_to_pay=total_to_pay;
$scope.enduser_cart=enduser_cart;
$scope.return_to_event_register=return_to_event_register;
$scope.selectedEvent=selectedEvent;
$scope.eventTypeDetails=eventTypeDetails;
// logDebug("eventTypeDetails="+JSON.stringify($scope.eventTypeDetails));
// logDebug("eventTypeDetails is_class="+JSON.stringify($scope.eventTypeDetails[0]['is_class']));
$scope.phone_verification = {}; // these are the complete details for the new event //
$scope.phone_verification.phone_number=phone_number;
logDebug('endUserLoginModal, needs_password='+needs_password+", phone_number="+$scope.phone_verification.phone_number);
$scope.cancel = function() {
$uibModalInstance.close('');
};
$scope.endUserLoginStep = "phoneVerifyStep1";
logDebug("function: test1 $scope.phone_verification.phone_number="+$scope.phone_verification.phone_number);
$scope.enduser_login_two_step_resend_sms=function()
{
logDebug("function: enduser_login_two_step_resend_sms");
$scope.step2registerShow = false;
$scope.two_step_login=0;
$scope.step1sendcodeShow = true;
$scope.step4SMSPassResetShow = false;
$scope.endUserLoginStep = "phoneVerifyStep1";
$scope.SubmitEndUserLogin();
}
$scope.SubmitEndUserLogin = function()
{
$scope.ajax_in_progress=true;
logDebug("function: SubmitEndUserLogin, $scope.endUserLoginStep="+$scope.endUserLoginStep);
logDebug("function: test4 $scope.phone_verification.phone_number="+$scope.phone_verification.phone_number);
if ($scope.endUserLoginStep == "phoneVerifyStep1") {
$scope.phoneVerifyStep1();
} else if ($scope.endUserLoginStep == "registerEndUser") {
$scope.registerEndUser();
} else if ($scope.endUserLoginStep == "loginEndUser") {
$scope.loginEndUser();
} else if ($scope.endUserLoginStep == "loginEndUserAndChangePassword") {
$scope.loginEndUserAndChangePassword();
}
logDebug("end of SubmitEndUserLogin");
return false;
}
// function for reseting password for existing user
// using sms verification
// first sending a new sms code, and then verifying it
// and "forcing" the user to enter a new password
$scope.SMSPassReset = function ()
{
$scope.phone_verification.checkexists = false;
$scope.phone_verification.sendsms = false;
$http({
method: 'POST',
url: '/api/enduser/phone_verification/change_password_login',
data: $scope.phone_verification,
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
logDebug(data);
if ((!data.success) || (data.success=="false")) {
logDebug("error " + data.message);
$scope.phone_verification.sms_error = data.Message;
} else {
logDebug("success 3");
$scope.endUserLoginStep = "loginEndUserAndChangePassword";
$scope.phone_verification.sms_error = "";
$scope.step1sendcodeShow = false;
$scope.step2registerShow = false;
$scope.step4SMSPassResetShow = true;
$scope.step3loginShow = false;
// $scope.phone_verification.sms_error = "הזן קוד זיהוי שנשלח אליך בסמס";
}
});
}
$scope.sms_two_step_login = function ()
{
$scope.phone_verification.checkexists = false;
$scope.phone_verification.sendsms = false;
$http({
method: 'POST',
url: '/api/enduser/phone_verification/two_step_login',
data: $scope.phone_verification,
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
logDebug(data);
if ((!data.success) || (data.success=="false")) {
logDebug("error " + data.message);
$scope.phone_verification.sms_error = data.Message;
} else {
logDebug("success 3");
$scope.endUserLoginStep = "loginEndUserAndChangePassword";
$scope.phone_verification.sms_error = "";
$scope.step1sendcodeShow = false;
$scope.step2registerShow = false;
$scope.step4SMSPassResetShow = true;
$scope.step3loginShow = false;
// $scope.phone_verification.sms_error = "הזן קוד זיהוי שנשלח אליך בסמס";
}
});
}
$scope.registerEndUser = function() {
$scope.ajax_in_progress=true;
logDebug("registerEndUser");
$scope.phone_verification.needs_password=0;
$http({
method: 'POST',
url: '/api/enduser/create',
data: $scope.phone_verification, // pass in data as strings
// data : $.param($scope.formData), // pass in data as strings JQUERY
// data : 'first_name=' + $scope.formData.first_name + '&last_name=' + $scope.formData.last_name, // WORKING
// data : { first_name: "hardfirst", last_name: "hardlast" },
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
$scope.ajax_in_progress=false;
logDebug(data);
if (!data.success) {
logDebug("error " + data.message);
$scope.phone_verification.sms_error = data.message;
// if not successful, bind errors to error variables
// $scope.errorName = data.errors.name;
// $scope.errorSuperhero = data.errors.superheroAlias;
} else
{
logDebug("success 4");
user_first_name=data.user_first_name;
user_last_name=data.user_last_name;
user_phone_number=data.user_phone_number;
if ($scope.return_to_event_register==1)
{
setTimeout(function(){ $uibModalInstance.close(''); }, 300);
// return to register class/event after login - for iframe
// hagai_iframe
// for class:
if ($scope.eventTypeDetails[0]['is_class']==1)
{
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'signUpToClassModal.php',
controller: 'signUpToClassModalController',
resolve: {
selectedEvent: function() {
return selectedEvent;
},
isUserLoggedIn: function() {
return $scope.isUserLoggedIn;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
}
}
});
}
// for event:
else
{
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'signUpToEventModal.php',
controller: 'signUpToEventModalController',
resolve: {
selectedEvent: function() {
return selectedEvent;
},
isUserLoggedIn: function() {
return $scope.isUserLoggedIn;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
}
}
});
}
}
else if (return_to_cc==0)
{
logDebug("enduserlogin return_to_cc=0");
$location.path(loginNextScreen);
location.reload();
}
else {
setTimeout(function(){ $uibModalInstance.close(''); }, 300);
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'end_user_pay_cc.php',
controller: 'end_user_pay_cc_controller',
size: 500,
resolve: {
total_to_pay: function() {
return $scope.total_to_pay;
},
prepaid_amount: function() {
return 0;
},
first_name: function() {
return user_first_name;
},
last_name: function() {
return user_last_name;
},
phone_number: function() {
return user_phone_number;
} ,
lock_minutes: function() {
return 0;
},
enduser_cart: function() {
return $scope.enduser_cart;
} }
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
location.reload();
});
}
}
});
}
$scope.loginEndUserAndChangePassword = function()
{
logDebug("loginEndUserAndChangePassword");
$http({
method: 'POST',
url: '/api/enduser/changepasswordlogin',
data: $scope.phone_verification, // pass in data as strings
// data : $.param($scope.formData), // pass in data as strings JQUERY
// data : 'first_name=' + $scope.formData.first_name + '&last_name=' + $scope.formData.last_name, // WORKING
// data : { first_name: "hardfirst", last_name: "hardlast" },
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
$scope.ajax_in_progress=false;
logDebug(data);
if (!data.success) {
logDebug("error " + data.message);
$scope.phone_verification.sms_error = data.message;
if (data.message=="password_safe")
{
window.location.href = '/password_update.php';
}
} else {
logDebug("success 5");
user_first_name=data.user_first_name;
user_last_name=data.user_last_name;
user_phone_number=data.user_phone_number;
// if (return_to_cc==0)
if ($scope.return_to_event_register==1)
{
setTimeout(function(){ $uibModalInstance.close(''); }, 300);
// return to register class/event after login - for iframe
// hagai_iframe
// for class:
if ($scope.eventTypeDetails[0]['is_class']==1)
{
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'signUpToClassModal.php',
controller: 'signUpToClassModalController',
resolve: {
selectedEvent: function() {
return selectedEvent;
},
isUserLoggedIn: function() {
return $scope.isUserLoggedIn;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
}
}
});
}
// for event:
else
{
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'signUpToEventModal.php',
controller: 'signUpToEventModalController',
resolve: {
selectedEvent: function() {
return selectedEvent;
},
isUserLoggedIn: function() {
return $scope.isUserLoggedIn;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
}
}
});
}
}
else if (true)
{
location.reload();
}
else {
setTimeout(function(){ $uibModalInstance.close(''); }, 300);
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'end_user_pay_cc.php',
controller: 'end_user_pay_cc_controller',
size: 500,
resolve: {
total_to_pay: function() {
return $scope.total_to_pay;
},
first_name: function() {
return user_first_name;
},
prepaid_amount: function() {
return 0;
},
last_name: function() {
return user_last_name;
},
phone_number: function() {
return user_phone_number;
} ,
lock_minutes: function() {
return 0;
},
enduser_cart: function() {
return $scope.enduser_cart;
} }
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
location.reload();
});
}
}
});
}
$scope.two_step_login=false;
$scope.save_two_step_login_cookie=false;
$scope.loginEndUser = function()
{
$scope.phone_verification.sms_error = "";
$scope.phone_verification.two_step_login = $scope.two_step_login;
$scope.phone_verification.save_two_step_login_cookie=$scope.save_two_step_login_cookie;
$scope.ajax_in_progress=true;
logDebug("loginEndUser");
$http({
method: 'POST',
url: '/api/enduser/login',
data: $scope.phone_verification, // pass in data as strings
// data : $.param($scope.formData), // pass in data as strings JQUERY
// data : 'first_name=' + $scope.formData.first_name + '&last_name=' + $scope.formData.last_name, // WORKING
// data : { first_name: "hardfirst", last_name: "hardlast" },
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
$scope.ajax_in_progress=false;
logDebug(data);
if (!data.success) {
if (data.two_step_login)
{
$scope.two_step_login=true;
}
else {
// $scope.two_step_login=false;
}
$scope.phone_verification.sms_error = data.message;
logDebug("loginEndUser error " + data.message+" two_step_login="+$scope.two_step_login);
// if not successful, bind errors to error variables
// $scope.errorName = data.errors.name;
// $scope.errorSuperhero = data.errors.superheroAlias;
} else {
logDebug("loginEndUser success 6 data=");
user_first_name=data.user_first_name;
user_last_name=data.user_last_name;
user_phone_number=data.user_phone_number;
if ($scope.return_to_event_register==1)
{
setTimeout(function(){ $uibModalInstance.close(''); }, 300);
// return to register class/event after login - for iframe
// hagai_iframe
// for class:
if ($scope.eventTypeDetails[0]['is_class']==1)
{
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'signUpToClassModal.php',
controller: 'signUpToClassModalController',
resolve: {
selectedEvent: function() {
return selectedEvent;
},
isUserLoggedIn: function() {
return $scope.isUserLoggedIn;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
}
}
});
}
// for event:
else
{
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'signUpToEventModal.php',
controller: 'signUpToEventModalController',
resolve: {
selectedEvent: function() {
return selectedEvent;
},
isUserLoggedIn: function() {
return $scope.isUserLoggedIn;
},
eventTypeDetails: function() {
return $scope.eventTypeDetails;
}
}
});
}
}
else if (return_to_cc==0)
{
$scope.ajax_in_progress=true;
$location.path(loginNextScreen);
location.reload();
}
else {
setTimeout(function(){ $uibModalInstance.close(''); }, 300);
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'end_user_pay_cc.php',
controller: 'end_user_pay_cc_controller',
size: 500,
resolve: {
total_to_pay: function() {
return $scope.total_to_pay;
},
prepaid_amount: function() {
return 0;
},
first_name: function() {
return user_first_name;
},
last_name: function() {
return user_last_name;
},
phone_number: function() {
return user_phone_number;
},
lock_minutes: function() {
return 0;
},
enduser_cart: function() {
return $scope.enduser_cart;
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
location.reload();
});
}
}
});
}
$scope.phoneVerifyStep1 = function() {
logDebug("function: test3 $scope.phone_verification.phone_number="+$scope.phone_verification.phone_number);
logDebug("function: phoneVerifyStep1");
logDebug("function: phoneVerifyStep1 ,$scope.phone_verification.phone_number="+$scope.phone_verification.phone_number);
$scope.phone_verification.checkexists = true;
$scope.phone_verification.sendsms = false;
logDebug(JSON.stringify($scope.phone_verification) + " ffffffffffff");
logDebug($scope.phone_verification.phone_number+ "= $scope.phone_verification.phone_number");
$scope.phone_verification.phone_number=stripValues($scope.phone_verification.phone_number);
function stripValues(txt)
{
txt = txt.replace(/[^0-9]/g,'');
return txt;
}
if (!validatePhone($scope.phone_verification.phone_number))
{
$scope.ajax_in_progress=false;
$scope.phone_verification.sms_error = "אנא הזמן מספר סלולרי תקין בעל 10 ספרות";
$timeout(function()
{
$scope.phone_verification.sms_error=null;
}, 2000);
return false;
}
$http({
method: 'POST',
url: '/api/enduser/phone_verification/signup_end_user',
data: $scope.phone_verification,
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
$scope.ajax_in_progress=false;
logDebug(data);
if ((!data.success) || (data.success=="false")) {
logDebug("error " + data.message);
// $scope.phone_verification.sms_error = "אנא הזמן מספר סלולרי תקין בעל 10 ספרות";
$scope.phone_verification.sms_error = data.message;
$timeout(function()
{
$scope.phone_verification.sms_error=null;
}, 2000);
// if not successful, bind errors to error variables
// $scope.errorName = data.errors.name;
// $scope.errorSuperhero = data.errors.superheroAlias;
} else if (data.alreadyexists) {
// has password or not?
logDebug("data.has_password="+data.has_password);
$scope.needs_password=data.has_password;
if (data.has_password==1)
{
// has password
$scope.step1sendcodeShow = false;
$scope.step3loginShow = true;
$scope.endUserLoginStep = "loginEndUser"
}
else {
// doesnt have password - sms only
logDebug("success 12");
// $scope.SMSPassReset();
$scope.sms_two_step_login();
}
} else {
logDebug("success 14");
// $scope.phone_verification.sms_error = data.Message;
// $scope.phone_verification.sms_error = "הזן קוד זיהוי שנשלח אליך בסמס";
$scope.step2registerShow = true;
$scope.step1sendcodeShow = false;
$scope.endUserLoginStep = "registerEndUser"
// if successful, bind success message to message
// $scope.message = data.message;
// $uibModalInstance.dismiss('added');
}
});
};
logDebug("function: test2 $scope.phone_verification.phone_number="+$scope.phone_verification.phone_number);
});
kuzeApp.controller('endUserServicesController', function($scope, $http, $uibModal) {
});
kuzeApp.controller('endUserFormsController', function($scope,$routeParams, $timeout, $http, $uibModal) {
document.title="טופס";
logDebug("endUserFormsController");
$scope.given_business_user_id=0;
$scope.cart_hash_code=0;
$scope.formFinished=false;
$scope.page_type="form";
$scope.url_code=$routeParams.url_code;
$scope.formCheckLogin=function()
{
if ($scope.kuzeForm.logged_in)
{
logDebug("formCheckLogin is logged in");
return true;
}
document.activeElement.blur();
logDebug("formCheckLogin");
// not logged in
{
logDebug("not logged in, loading endUserLoginModal");
loginNextScreen="";
nextModal="";
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'endUserLogin.php',
controller: 'endUserLoginModal',
size: 500,
resolve: {
startDate: function() {
return 111;
},
loginNextScreen: function() {
return 0;
},
nextModal: function() {
return 0;
},
needs_password: function() {
return 0;
},
return_to_cc: function() {
return 0;
},
return_to_event_register: function() {
return 0;
},
selectedEvent: function() {
return 0;
},
eventTypeDetails: function() {
return 0;
},
total_to_pay: function(){
return 0;
},
enduser_cart: function() {
return null;
},
phone_number: function() {
return "";
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
});
return false;
}
}
// first checking if user is logged in
// if (is_empty($routeParams.cart_hash_code))
// {
// logDebug("endUserFormsController no cart_hash_code");
// }
// else
// {
// $scope.cart_hash_code=$routeParams.cart_hash_code;
// logDebug("endUserFormsController cart_hash_code="+$routeParams.cart_hash_code);
// }
// if (is_empty($routeParams.event_hash_code))
// {
// $scope.event_hash_code="0";
// logDebug("endUserFormsController no cart_hash_code");
// }
// else
// {
// $scope.event_hash_code=$routeParams.event_hash_code;
// logDebug("endUserFormsController event_hash_code="+$routeParams.cart_hash_code);
// }
// form_business_user_id=$routeParams.business_user_id;
getEndUserForm($http,$scope,'kuzeForm',$scope.url_code,getEndUserForm_callback,getEndUserForm_callback);
function getEndUserForm_callback(response)
{
logDebug("getEndUserForm_callback response="+response);
document.title = response.json.form_name;
}
$scope.calculateCheckbox=function(field)
{
field.field_value="";
init=true;
logDebug("calculateCheckbox "+JSON.stringify(field));
field.how_many_checked=0;
for (var i = 0; i < field.field_lov.length; i++)
{
if (field.field_lov[i].checked)
{
field.how_many_checked++;
if (init)
{
field.field_value=field.field_lov[i].value;
init=false;
}
else {
field.field_value=field.field_value+","+field.field_lov[i].value;
}
}
}
}
$scope.formErrorMessage="";
$scope.submitForm=function()
{
$scope.kuzeForm.url_code=$scope.url_code;
if (!$scope.formCheckLogin())
{
return false;
}
submitEndUserForm($http,$scope,$scope.kuzeForm,submitEndUserForm_success,submitEndUserForm_failure);
function submitEndUserForm_success(response)
{
// alert($scope.kuzeForm.finish_message);
$scope.formFinished=true;
// end_user_info
}
function submitEndUserForm_failure(response)
{
if (response.errcode==901)
{
$scope.formErrorMessage=response.message;
}
else
{
$scope.formErrorMessage=response.message;
}
$timeout(function()
{
$scope.formErrorMessage="";
}, 2500);
}
}
});
kuzeApp.directive('elastic', [
'$timeout',
function($timeout) {
return {
restrict: 'A',
link: function($scope, element) {
$scope.initialHeight = $scope.initialHeight || element[0].style.height;
var resize = function() {
element[0].style.height = $scope.initialHeight;
element[0].style.height = "" + element[0].scrollHeight + "px";
};
element.on("input change", resize);
// element.on("input change", resize);
$timeout(resize, 0);
}
};
}
]);
kuzeApp.controller('endUserCartController', function($scope,$routeParams, $timeout, $http, $uibModal) {
logDebug("endUserCartController");
$scope.given_business_user_id=0;
$scope.cart_hash_code=0;
$scope.page_type="cart";
logDebug("checking if URL is with /buy/ url="+window.location.href);
if(window.location.href.indexOf("/buy/") > -1)
{
logDebug("URL is with google_auth");
$scope.page_type="buy";
}
// first checking if user is logged in
if (is_empty($routeParams.cart_hash_code))
{
logDebug("endUserCartController no cart_hash_code");
}
else
{
$scope.cart_hash_code=$routeParams.cart_hash_code;
logDebug("endUserCartController cart_hash_code="+$routeParams.cart_hash_code);
}
getEndUserCart($http,$scope,'enduser_cart',$scope.cart_hash_code,$scope.page_type,getEndUserCart_callback,getEndUserCart_callback);
function getEndUserCart_callback(response)
{
logDebug("getEndUserCart_callback response="+response);
$scope.recalculate_cart();
}
$scope.recalculate_cart = function()
{
logDebug("function: recalculate_cart");
$scope.enduser_cart.total_to_pay=0;
for(var i = 0; i < $scope.enduser_cart.events_paid.length; i++)
{
if ($scope.enduser_cart.events_paid[i].should_be_paid==1)
{
$scope.enduser_cart.total_to_pay=parseFloat($scope.enduser_cart.total_to_pay+parseFloat($scope.enduser_cart.events_paid[i].full_payment_amount));
}
}
for(var i = 0; i < $scope.enduser_cart.packages_paid.length; i++)
{
if ($scope.enduser_cart.packages_paid[i].should_be_paid==1)
{
$scope.enduser_cart.total_to_pay=parseFloat($scope.enduser_cart.total_to_pay+parseFloat($scope.enduser_cart.packages_paid[i].full_payment_amount));
}
}
logDebug("function: recalculate_cart scope.enduser_cart.total_to_pay="+$scope.enduser_cart.total_to_pay);
$scope.enduser_cart.total_to_pay=$scope.enduser_cart.total_to_pay.toFixed(2);
}
$scope.payCart=function()
{
if ($scope.enduser_cart.user_not_related!=0)
{
return;
}
logDebug("payCart");
logDebug("checking that payment is ok");
jsalert=1;
logDebug("checking that payment is ok result");
if ($scope.enduser_cart.logged_in)
{
logDebug("logged in, loading end_user_pay_cc_controller 1 "+ JSON.stringify($scope.enduser_cart.user_first_name));
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'end_user_pay_cc.php',
controller: 'end_user_pay_cc_controller',
size: 500,
resolve:
{
total_to_pay: function() {
return $scope.enduser_cart.total_to_pay;
},
prepaid_amount: function() {
return 0;
},
first_name: function() {
return $scope.enduser_cart.user_first_name;
},
last_name: function() {
return $scope.enduser_cart.user_last_name;
},
phone_number: function() {
return $scope.enduser_cart.user_phone_number;
},
lock_minutes: function() {
return 0;
},
enduser_cart: function() {
return $scope.enduser_cart;
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
});
}
else
{
logDebug("not logged in, loading endUserLoginModal");
loginNextScreen="";
nextModal="";
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'endUserLogin.php',
controller: 'endUserLoginModal',
size: 500,
resolve: {
startDate: function() {
return 111;
},
loginNextScreen: function() {
return loginNextScreen;
},
nextModal: function() {
return nextModal;
},
needs_password: function() {
return 0;
},
return_to_cc: function() {
return 1;
},
return_to_event_register: function() {
return 0;
},
selectedEvent: function() {
return 0;
},
eventTypeDetails: function() {
return 0;
},
total_to_pay: function(){
return $scope.enduser_cart.total_to_pay;
},
enduser_cart: function() {
return $scope.enduser_cart;
},
phone_number: function() {
return $scope.enduser_cart.buser_phone_number;
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
});
}
}
});
kuzeApp.controller('end_user_pay_cc_controller', function($scope, $location,$route, enduser_cart, $sce, $interval,$timeout, first_name, prepaid_amount,last_name, phone_number,lock_minutes,total_to_pay, $rootScope, $uibModalInstance, $http,sharedData)
{
logDebug("end_user_pay_cc_controller controller, phone_number="+phone_number+", total_to_pay="+total_to_pay);
$scope.enduser_cart=enduser_cart;
if (prepaid_amount>0)
{
total_to_pay=prepaid_amount;
}
$scope.total_debt=total_to_pay;
total_debt=total_to_pay;
// alert('prepaid_amount='+prepaid_amount);
$scope.credit_card_info={};
$scope.credit_card_info.sum=total_debt;
$scope.credit_card_info.first_name=first_name;
$scope.credit_card_info.last_name=last_name;
$scope.credit_card_info.phone=phone_number;
// $scope.credit_card_info.invoice_name=first_name+" "+last_name;
$scope.credit_card_info.invoice_name=enduser_cart.user_invoice_name;
$scope.credit_card_info.different_invoice_details=0;
$scope.credit_card_info.phone=$scope.credit_card_info.phone.replace(/\D/g,'');
$scope.timer=false;
if (lock_minutes>0)
{
$scope.timer=true;
}
logDebug("$scope.timer="+$scope.timer);
logDebug("lock_minutes="+lock_minutes);
// $scope.credit_card_info.total_debt_sys_business_payment_ids=sys_business_payments.total_debt_sys_business_payment_ids;
$scope.credit_card_info.description="תשלום חודשי - ניהול יומן קיוז";
// $scope.credit_card_info.company_number=businessConfig.company_number;
// $scope.credit_card_info.phone=(businessConfig.business_phone_number);
// $scope.credit_card_info.business_email=businessConfig.business_email;
$scope.credit_card_info.company_number="";
$scope.credit_card_info.business_email="";
// $scope.credit_card_info.different_invoice_details=0;
$scope.ajax_error="";
$scope.firstStage=true;
$scope.hidetimer=false;
is_it_paid=false;
var oneTimer=false;
if ($scope.timer)
{
$scope.timerdisplayer = lock_minutes+":00";
var grace_timer=false;
oneTimer = $interval(function()
{
temptemp=$scope.timerdisplayer;
var timer = temptemp.split(':');
//by parsing integer, I avoid all extra string processing
var minutes = parseInt(timer[0], 10);
var seconds = parseInt(timer[1], 10);
--seconds;
minutes = (seconds < 0) ? --minutes : minutes;
if (minutes < 0)
{
// cancel clock timer
if (oneTimer!=false)
{
$interval.cancel(oneTimer);
logDebug("cancel oneTimer");
}
// give another 10 seconds to complete process after timer ends...
$timeout(function()
{
$scope.timerdisplayer = '00:00';
$scope.handle_timeout_cc();
}, 10000);
}
else
{
seconds = (seconds < 0) ? 59 : seconds;
seconds = (seconds < 10) ? '0' + seconds : seconds;
//minutes = (minutes < 10) ? minutes : minutes;
// $('.countdown').html(minutes + ':' + seconds);
$scope.timerdisplayer = minutes + ':' + seconds;
// logDebug($scope.timerdisplayer+"seconds="+minutes + ':' + seconds);
}
}, 1000);
}
$scope.handle_timeout_cc=function()
{
$scope.hidetimer=true;
// if (grace_timer!=false)
// {
// $interval.cancel(grace_timer);
// }
if (is_it_paid==true)
{
return;
}
logDebug("close everything");
if (document.getElementById("holds-the-iframe_pelecard"))
{
document.getElementById("holds-the-iframe_pelecard").style.display = "none";
}
if (document.getElementById("holds-the-iframe"))
{
document.getElementById("holds-the-iframe").style.display = "none";
}
if (document.getElementById("payment-info-message"))
{
document.getElementById("payment-info-message").style.display = "none";
}
document.getElementById('tryagain').style.display='none';
$scope.firstStage=false;
$scope.hidetimer=true;
$timeout(function()
{
document.getElementById("time-up-div").style.display = "block";
}, 500);
}
// payments - start
getHowManyPaymentsAllowed($http,$scope,$scope.total_debt,'how_many_cc_payments_allowed',getHowManyPaymentsAllowed_finished);
function getHowManyPaymentsAllowed_finished()
{
logDebug('getHowManyPaymentsAllowed_finished');
$scope.credit_card_num_of_payments_select =
[
{name: '1',value: '1'}
];
for (var i = 2; i <= $scope.how_many_cc_payments_allowed; i++)
{
$scope.credit_card_num_of_payments_select.push({name: i,value: i});
}
$scope.credit_card_num_of_payments = $scope.credit_card_num_of_payments_select[0].name;
}
// payments - end
$scope.closeModal = function()
{
// $location.path(loginNextScreen);
// if iframe - dont refresh
if (sharedData.is_iframe())
{
// iframe
$rootScope.$broadcast('reload_data'); // pass object in {} if you wanna to pass anything
}
else
{
location.reload();
}
$uibModalInstance.close('');
};
$scope.backtoUserInfo = function()
{
$uibModalInstance.close('');
// $location.path('/end_user_info');
public_site_open=1;
if (public_site_open==1)
{
if (sharedData.is_iframe())
{
window.location="/v2/#/end_user_info_iframe";
}
else
{
$location.path('/end_user_info');
}
}
$route.reload();
}
$scope.meshulam_payment_method="cc";
$scope.setMeshulamPaymentMethod = function(pagecode)
{
$scope.meshulam_payment_method=pagecode;
}
$scope.getCreditcardurl2023 = function()
{
$scope.getCreditcardurl($scope.meshulam_payment_method);
}
$scope.getCreditcardurl = function(pagecode)
{
$scope.credit_card_info.client_email=$scope.enduser_cart.buser_email;
$scope.credit_card_info.phone=$scope.credit_card_info.phone.replace(/\D/g,'');
$scope.firstStage=true;
$scope.ajax_error="";
document.getElementById('backbutton').disabled = true;
if (isNaN($scope.credit_card_info.phone))
{
$scope.ajax_error="שגיאה 1: אנא הזינו מספר טלפון תקין";
return false;
}
if (($scope.credit_card_info.phone)<99999)
{
$scope.ajax_error="שגיאה 2: אנא הזינו מספר טלפון תקין";
return false;
}
if ($scope.credit_card_info.phone.length!=10)
{
$scope.ajax_error="נא להזין מספר טלפון תקין בן 10 ספרות";
return false;
}
if (is_empty($scope.credit_card_info.first_name))
{
$scope.ajax_error="שגיאה: אנא הזינו שם פרטי";
return false;
}
if (is_empty($scope.credit_card_info.last_name))
{
$scope.ajax_error="שגיאה: אנא הזינו שם משפחה";
return false;
}
if (($scope.credit_card_info.client_email) && !validateEmail($scope.credit_card_info.client_email))
{
$scope.ajax_error="אנא הזינו כתובת אימייל תקינה לשליחת החשבונית.";
return false;
}
if ($scope.credit_card_info.different_invoice_details==1)
{
if (isNaN($scope.credit_card_info.company_number))
{
$scope.ajax_error="שגיאה: אנא הזינו מספר עוסק מורשה/חברה לחשבונית";
return false;
}
if (($scope.credit_card_info.company_number)<999999)
{
$scope.ajax_error="שגיאה: אנא הזינו מספר עוסק מורשה/חברה תקין";
return false;
}
if (is_empty($scope.credit_card_info.invoice_name))
{
$scope.ajax_error="אנא הזינו עבור מי החשבונית";
return false;
}
}
$scope.enduser_cart['how_many_cc_payments_allowed']=$scope.credit_card_num_of_payments;
$scope.enduser_cart['credit_card_info']=$scope.credit_card_info;
$scope.enduser_cart['pagecode']=pagecode;
getCreditcardurlUser($http, $scope, $scope.enduser_cart, getCreditcardurl_success, getCreditcardurl_failure);
}
function getCreditcardurl_success(response)
{
logError('getCreditcardurl_success response='+response);
logError('getCreditcardurl_success response.json='+response.json);
logError('getCreditcardurl_success response.success='+response.success);
$scope.firstStage=false;
if (document.getElementById('tryagain'))
{
document.getElementById('tryagain').style.display='none';
document.getElementById('tryagain').disabled = false;
}
if (document.getElementById('backbutton'))
{
document.getElementById('backbutton').disabled = false;
}
goto_url=response.json;
logDebug('getCreditcardurl_success goto_url='+goto_url);
if (goto_url.includes("pelecard"))
{
$scope.creditcardurl_pelecard = $sce.trustAsResourceUrl(goto_url);
}
else
{
$scope.creditcardurl = $sce.trustAsResourceUrl(goto_url);
}
}
function getCreditcardurl_failure(response)
{
$scope.ajax_error=response.message;
$timeout(function()
{
$scope.ajax_error=null;
}, 2500);
document.getElementById('backbutton').disabled = false;
document.getElementById('tryagain').disabled = false;
}
});
kuzeApp.controller('endUserInfoController', function($scope, $timeout, $http, $uibModal) {
getEndUserEvents($http,$scope,'user_events');
getEndUserInfo($http,$scope,'formUpdateClientAngular');
getEndUserPayments($http,$scope,'currentClientPayments');
getEndUserPaymentsDocs($http,$scope,'currentClientPaymentsDocs');
$scope.endUserLogin = function(selectedEvent) {
logDebug(selectedEvent);
if (selectedEvent==null)
{
loginNextScreen="/";
}
else if (selectedEvent.event_type_id>0)
{
if (selectedEvent.is_class==0)
{
loginNextScreen="/scheduler/"+selectedEvent.event_type_id;
}
else
{
loginNextScreen="/scheduleclass/"+selectedEvent.event_type_id;
}
}
else
{
loginNextScreen="/";
}
logDebug("loginNextScreen="+loginNextScreen);
loginNextScreen="";
nextModal="";
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'endUserLogin.php',
controller: 'endUserLoginModal',
size: 500,
resolve: {
startDate: function() {
return 111;
},
loginNextScreen: function() {
return loginNextScreen;
},
nextModal: function() {
return nextModal;
},
needs_password: function() {
return 0;
},
return_to_cc: function() {
return 0;
},
return_to_event_register: function() {
return 0;
},
selectedEvent: function() {
return 0;
},
eventTypeDetails: function() {
return 0;
},
total_to_pay: function(){
return 0;
},
enduser_cart: function() {
return null;
},
phone_number: function() {
return "";
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
});
};
$http.get($gApiURLPrefix + "/enduser/packages/user").then(function(response) {
logDebug("response.data="+JSON.stringify(response.data));
if (response.data.Error!=true)
{
$scope.user_packages = response.data.json.jsonrows;
$scope.has_packages = response.data.json.has_packages;
$scope.has_products = response.data.json.has_products;
}
});
// $http.get($gApiURLPrefix + "/enduser/payments/user").then(function(response) {
// if (response)
// {
// $scope.user_payments = response.data;
// }
// });
$scope.$on("enduserReloadEndUserInfo",function(e,a)
{
logDebug("enduserReloadEndUserInfo");
getEndUserEvents($http,$scope,'user_events');
});
// filtering events for end user (not showing canceled)
$scope.showAllEvents=false;
$scope.canceledFilter = function(event)
{
// logDebug("canceledFilter");
// TODO - in future add button to show cancelation
if ($scope.showAllEvents)
{
return true;
}
if ((event.is_confirmed == 1) || (event.event_user_status_id == 2 ) || (event.event_user_status_id == 3 ) || (event.is_final_status == 1) || ((event.is_waiting_list == 1) && (event.is_canceled == 0)))
{
if ( (event.event_user_status_id == 13 ) || (event.event_user_status_id == 14 ) )
{
return false; // dont show client_canceled_waiting_list and admin_canceled_waiting_list
}
return true;
}
else
{
return false;
}
}
});
kuzeApp.controller('endUserInfoControllerv2', function($scope, $timeout, $http, $uibModal) {
getEndUserEvents($http,$scope,'user_events');
getEndUserInfo($http,$scope,'formUpdateClientAngular');
getEndUserPayments($http,$scope,'currentClientPayments');
getEndUserPaymentsDocs($http,$scope,'currentClientPaymentsDocs');
$http.get($gApiURLPrefix + "/enduser/packages/user").then(function(response) {
logDebug("response.data="+JSON.stringify(response.data));
if (response.data.Error!=true)
{
$scope.user_packages = response.data.json.jsonrows;
$scope.has_packages = response.data.json.has_packages;
$scope.has_products = response.data.json.has_products;
}
});
$scope.$on("enduserReloadEndUserInfo",function(e,a)
{
logDebug("enduserReloadEndUserInfo");
getEndUserEvents($http,$scope,'user_events');
});
// filtering events for end user (not showing canceled)
$scope.showAllEvents=false;
$scope.canceledFilter = function(event)
{
// logDebug("canceledFilter");
// TODO - in future add button to show cancelation
if ($scope.showAllEvents)
{
return true;
}
if ((event.is_confirmed == 1) || (event.event_user_status_id == 2 ) || (event.event_user_status_id == 3 ) || (event.is_final_status == 1) || ((event.is_waiting_list == 1) && (event.is_canceled == 0)))
{
if ( (event.event_user_status_id == 13 ) || (event.event_user_status_id == 14 ) )
{
return false; // dont show client_canceled_waiting_list and admin_canceled_waiting_list
}
return true;
}
else
{
return false;
}
}
});
kuzeApp.controller('endUserPrivateController', function($scope, $http, $uibModal) {
// $http.get($gApiURLPrefix + "/enduser/events").then(function(response) {
// $scope.user_events = response.data;
// // user_events.start_time =
// // pipi = createFromMysql($scope.user_events[0]);
// // logDebug('xxx'+pipi.getFullYear());
// });
});
kuzeApp.controller('endUserEventsController', function($scope, $http, $uibModal) {
$http.get($gApiURLPrefix + "/enduser/events").then(function(response) {
$scope.user_events = response.data;
// user_events.start_time =
// pipi = createFromMysql($scope.user_events[0]);
// logDebug('xxx'+pipi.getFullYear());
});
// $scope.endUserLogin = function(event_type_id) {
// loginNextScreen="/???/"+event_type_id;
// logDebug("loginNextScreen="+loginNextScreen);
// var modalInstance = $uibModal.open({
// animation: false,
// templateUrl: $gTemplatePrefix + 'endUserLogin.php',
// controller: 'endUserLoginModal',
// size: 500,
// resolve: {
// startDate: function() {
// return 111;
// }
// }
// });
//
// modalInstance.result.then(function(selectedItem) {
// $scope.selected = selectedItem;
// }, function() {
// logDebug('Modal dismissed at: ' + new Date());
// });
// };
});
// Need to distinguish between end user (client) and business owner.
// currently calls only end user
kuzeApp.controller('endUserHomeController', function($scope, $window, $http, $uibModal, $location) {
logDebug("endUserHomeController");
// for client home page:
// (1) Event Types (not classes): enduser/user_sched_event_types
$http.get($gApiURLPrefix + "/enduser/user_sched_event_types").then(function(response) {
$scope.event_types = response.data;
});
// (2) repeating events (classes only): enduser/public_repeating_events
$http.get($gApiURLPrefix + "/enduser/public_repeating_events").then(function(response) {
$scope.public_repeating_events = response.data;
$scope.dayNames=dayNames;
});
// (3) public events: enduser/public_events
$http.get($gApiURLPrefix + "/enduser/public_events").then(function(response) {
$scope.public_events = response.data;
});
$scope.confirmEmplyeeEndUser = function(business_user_id,secret_key,business_id)
{
logDebug("function: confirmEmplyeeEndUser");
// alert(business_user_id+" key "+$scope.secret_key);
if (secret_key.toString().length!=4)
{
alert('קוד אישור חייב להיות בן 4 ספרות');
return;
}
confirmUserEmployee($http,$scope,business_id,business_user_id, secret_key.toString(),confirmUserEmployee_success,confirmUserEmployee_failure);
function confirmUserEmployee_success()
{
logDebug("confirmUserEmployee success");
// $location.path('/change-scope.php?buid='+business_user_id);
$window.location.assign('/change-scope.php?buid='+business_user_id);
}
function confirmUserEmployee_failure(response)
{
alert(response.message);
}
}
$scope.navigate = function (url)
{
$location.path(url);
}
$scope.endUserLogin = function(selectedEvent) {
logDebug(selectedEvent);
if (selectedEvent==null)
{
loginNextScreen="/";
}
else if (selectedEvent.event_type_id>0)
{
if (selectedEvent.is_class==0)
{
loginNextScreen="/scheduler/"+selectedEvent.event_type_id;
}
else
{
loginNextScreen="/scheduleclass/"+selectedEvent.event_type_id;
}
}
else
{
loginNextScreen="/";
}
logDebug("loginNextScreen="+loginNextScreen);
loginNextScreen="";
nextModal="";
var modalInstance = $uibModal.open({
animation: false,
templateUrl: $gTemplatePrefix + 'endUserLogin.php',
controller: 'endUserLoginModal',
size: 500,
resolve: {
startDate: function() {
return 111;
},
loginNextScreen: function() {
return loginNextScreen;
},
nextModal: function() {
return nextModal;
},
needs_password: function() {
return 0;
},
return_to_cc: function() {
return 0;
},
return_to_event_register: function() {
return 0;
},
selectedEvent: function() {
return 0;
},
eventTypeDetails: function() {
return 0;
},
total_to_pay: function(){
return 0;
},
enduser_cart: function() {
return null;
},
phone_number: function() {
return "";
}
}
});
modalInstance.result.then(function(selectedItem) {
$scope.selected = selectedItem;
}, function() {
logDebug('Modal dismissed at: ' + new Date());
});
};
});
// events verification cancel/approve
kuzeApp.controller('cancelController', function($scope, $window, $routeParams, $http, $uibModal, $location)
{
logDebug("cancelController "+$routeParams.cancel_hash_code);
$scope.time_in_hours_for_late_cancellation = 24;
$scope.cancel_hash_code=$routeParams.cancel_hash_code;
$scope.date = new Date();
getEventCancelHashStatus($http,$scope,$routeParams.cancel_hash_code,'hash_status', getEventCancelHashStatus_success);
function getEventCancelHashStatus_success(){
var start_time_object = new Date($scope.hash_status.start_time.replace(/-/g, "/"));
$scope.time_diff = (start_time_object.getTime() - $scope.date.getTime() ) / (1000 * 3600);
$scope.is_late_cancellation = $scope.time_diff < $scope.time_in_hours_for_late_cancellation;
}
$scope.confirmEvent = function()
{
logDebug("confirmEvent");
confirmEvent($http,$scope,$routeParams.cancel_hash_code,confirmEvent_success);
function confirmEvent_success()
{
logDebug("success confirmEvent_success");
getEventCancelHashStatus($http,$scope,$routeParams.cancel_hash_code,'hash_status');
}
}
$scope.cancelEvent = function()
{
logDebug("abortEvent");
cancelEvent($http,$scope,$routeParams.cancel_hash_code,cancelEvent_success);
function cancelEvent_success()
{
logDebug("success confirmEvent_success");
getEventCancelHashStatus($http,$scope,$routeParams.cancel_hash_code,'hash_status');
}
}
});
// angular filter for events before/after today
kuzeApp.filter('beforeNow', function() {
// Create the return function and set the required parameter name to **input**
return function(input) {
var out = [];
// Using the angular.forEach method, go through the array of data and perform the operation of figuring out if the language is statically or dynamically typed.
var browser_epoch = (new Date).getTime();
angular.forEach(input, function(event)
{
// logDebug("filtering, event.event_user_status_id="+event.event_user_status_id);
if (event.start_epoch <= (browser_epoch/1000))
{
out.push(event)
}
})
return out;
}
});
kuzeApp.filter('afterNow', function() {
// Create the return function and set the required parameter name to **input**
return function(input) {
var out = [];
// Using the angular.forEach method, go through the array of data and perform the operation of figuring out if the language is statically or dynamically typed.
var browser_epoch = (new Date).getTime();
// logDebug("ffff"+input);
angular.forEach(input, function(event)
{
// logDebug("filtering, event.event_user_status_id="+event.event_user_status_id);
if (event.start_epoch > (browser_epoch/1000))
{
out.push(event)
}
})
return out;
}
});
kuzeApp.filter('should_be_displayed', function() {
// Create the return function and set the required parameter name to **input**
return function(input) {
var out = [];
// Using the angular.forEach method, go through the array of data and perform the operation of figuring out if the language is statically or dynamically typed.
angular.forEach(input, function(event)
{
// logDebug("filtering, event.event_user_status_id="+event.event_user_status_id);
if (event.should_be_displayed==1)
{
out.push(event)
}
})
return out;
}
});
kuzeApp.controller('create_business_modal', function($scope, $uibModalInstance, user_phone_number, $http)
{
logDebug("create_business_modal controller");
$scope.new_business={};
$scope.close = function() {
$uibModalInstance.close('dismiss');
};
$scope.createBusiness = function()
{
createBusiness($http,$scope,$scope.new_business, createBusiness_success, createBusiness_failure);
$scope.ajax_error="";
function createBusiness_success(response)
{
logDebug("createBusiness_success");
business_user_id=response.json;
$refresh_url="/change-scope.php?buid="+business_user_id;
window.location.href=$refresh_url;
}
function createBusiness_failure(response)
{
logDebug("createBusiness_failure "+response.message);
$scope.ajax_error=response.message;
}
}
});
kuzeApp.controller('kuzeController', function($scope, $http, $location) {
// main kuze controller
// MUST SET LANGUAGE BEFORE ANY OTHER OPERATION !!!
updateGlobalLanguage($scope, $gDefaultLang);
// MUST SET LANGUAGE BEFORE ANY OTHER OPERATION !!!
logDebug("** KuzeController **");
$scope.showClientsColumns = [{
field: 'user_id',
name: $scope.langfile['show_all_clients_userid']
}, {
field: 'buser_first_name',
name: $scope.langfile['show_all_clients_first_name']
}, {
field: 'buser_last_name',
name: $scope.langfile['show_all_clients_last_name']
}, {
field: 'role_name',
name: $scope.langfile['show_all_clients_approved']
}];
$scope.gridClientClick = function(row) {
//logDebug(row);
var row_userid = row.entity.user_id;
logDebug("selected row user_id =" + row_userid);
$location.path('/business_clients/' + row_userid);
};
$scope.showClientsGridOptions = {
enableFiltering: false,
enableSorting: true,
columnDefs: $scope.showClientsColumns,
rowTemplate: '/public/components/clients-grid-row.html',
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
$scope.gridApi.grid.registerRowsProcessor($scope.singleFilter, 200);
},
};
$scope.isActive = function(viewLocation) {
logDebug("viewLocation = " + viewLocation);
var active = (viewLocation === $location.path());
return active;
};
$scope.filter = function() {
logDebug("single filter");
$scope.gridApi.grid.refresh();
if ($scope.filter.Value != "") {
$scope.filter.buttonValue = "'" + $scope.filter.Value + "'";
} else {
$scope.filter.buttonValue = "";
}
};
$scope.singleFilter = function(renderableRows) {
var matcher = new RegExp($scope.filter.Value);
logDebug("scope=" + $scope);
logDebug("scope.filter.Value=" + $scope.filter.Value);
if (($scope.filter.Value == null) || ($scope.filter.Value == "")) {
logDebug("empty filter");
return renderableRows;
}
renderableRows.forEach(function(row) {
// logDebug("row="+row);
row.visible = false;
var $currFirstName = row.entity['first_name'];
var $currLastName = row.entity['last_name'];
logDebug("currFirstName=" + $currFirstName);
if ($currFirstName != null) {
if ($currFirstName.indexOf($scope.filter.Value) > -1) {
row.visible = true;
}
} else // row is null
{
row.visible = false;
}
if ($currLastName != null) {
if ($currLastName.indexOf($scope.filter.Value) > -1) {
row.visible = true;
}
} else // row is null
{
row.visible = false;
}
});
return renderableRows;
};
// important!! initializing angular forms as arrays
$scope.formAddClientAngular = {};
$scope.formUpdateClientAngular = {};
logDebug("location=" + $location);
logDebug($location);
$scope.changeLang = function($newlang) {
logDebug($newlang);
//$scope.spClass = 'right';
updateGlobalLanguage($scope, $newlang)
}
$scope.addNewClient = function() {
$location.path('/business_clients/add');
}
$scope.deleteClient = function(client_id) {
logDebug("delete client " + client_id);
logDebug("first_name=" + $scope.formAddClientAngular.first_name);
$http({
method: 'POST',
url: '/api/admin/clients/delete/' + client_id,
data: $scope.formAddClientAngular, // pass in data as strings
// data : $.param($scope.formData), // pass in data as strings JQUERY
// data : 'first_name=' + $scope.formData.first_name + '&last_name=' + $scope.formData.last_name, // WORKING
// data : { first_name: "hardfirst", last_name: "hardlast" },
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).success(function(data) {
logDebug(data);
if (data.Error) {
logDebug("error");
// if not successful, bind errors to error variables
// $scope.errorName = data.errors.name;
// $scope.errorSuperhero = data.errors.superheroAlias;
} else {
logDebug("success 16");
// if successful, bind success message to message
// $scope.message = data.message;
$location.path('/business_clients');
}
});
}
});
function logDebug($str) {
// writeLog($str, "debug")
}
function logError($str) {
writeLog($str, "error")
}
function writeLog($str, $loglevel) {
// logDebug("curr="+$loglevel);
// var $gLogLevel;
// logDebug("global="+$gLogLevel);
if ($gLogLevel == "debug") {
console.log(getDateTime() + " - " + $str);
} else if ($gLogLevel == "error") {
if ($loglevel == "err") {
console.log(getDateTime() + " - " + $str);
}
}
}
function getDateTime() {
var date = new Date();
var hour = date.getHours();
hour = (hour < 10 ? "0" : "") + hour;
var min = date.getMinutes();
min = (min < 10 ? "0" : "") + min;
var sec = date.getSeconds();
sec = (sec < 10 ? "0" : "") + sec;
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" : "") + month;
var day = date.getDate();
day = (day < 10 ? "0" : "") + day;
return year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec;
}
kuzeApp.filter('remove_decimal_zero', function()
{
return function(input)
{
// logDebug("remove_decimal_zero input="+input);
if (input==null)
{
logDebug("remove_decimal_zero return empty1");
return "";
}
if (input==0)
{
logDebug("remove_decimal_zero return empty2");
return 0;
}
if (input=="")
{
logDebug("remove_decimal_zero return empty3");
return "";
}
input = parseFloat(input);
input = input.toFixed(input % 1 === 0 ? 0 : 2);
return input.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
});
function copyElementText(name)
{
/* Get the text field */
var copyText = document.getElementById(name);
/* Select the text field */
copyText.select();
/* Copy the text inside the text field */
document.execCommand("copy");
/* Alert the copied text */
alert("Copied the text: " + copyText.value);
return copyText.value;
}