- Updated README.md to include "Project Structure" section. - Removed WeatherForecastController.cs and WeatherForecast.cs. - Simplified Surge365.MassEmailReact.Server.csproj. - Updated solution file to reflect new project references. - Refactored jquery.ss.dbmanager-1.0.js and jquery.usahaulers.global.js. - Modified logging functionalities in jquery.usahaulers.logging-1.0.js. - Set up constants from environment variables in constants.js and constants.ts. - Introduced new classes in Surge365.MassEmailReact.Application, Domain, and Infrastructure. - Added UnitTest1.cs for basic unit testing structure. - Enhanced Surge365.MassEmailReact.Web.esproj with new configurations. - Expanded utility functions in ytb-massemail-.global.ts and ytb-massemail-utilities-1.0.ts.
342 lines
11 KiB
TypeScript
342 lines
11 KiB
TypeScript
//iMove utility functions
|
|
|
|
|
|
//ie is the version of IE running.
|
|
var ie = (function () {
|
|
|
|
var undef,
|
|
v = 3,
|
|
div = document.createElement('div'),
|
|
all = div.getElementsByTagName('i');
|
|
|
|
while (
|
|
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
|
|
all[0]
|
|
);
|
|
|
|
return v > 4 ? v : undef;
|
|
|
|
} ());
|
|
|
|
$(document).ajaxSend(function (event, xhr, settings) {
|
|
var authToken = $.cookie('Auth-Token');
|
|
if (authToken != null && authToken != undefined && authToken.trim().length > 0) {
|
|
xhr.setRequestHeader('Auth-Token', authToken);
|
|
}
|
|
|
|
var impersonateGuid = $.getParameterByName("impersonateid");
|
|
if (impersonateGuid != null && impersonateGuid != undefined && impersonateGuid.trim().length > 0) {
|
|
$.sessionStorage('Auth-Impersonate-Guid', impersonateGuid);
|
|
}
|
|
|
|
impersonateGuid = $.sessionStorage('Auth-Impersonate-Guid');
|
|
if (impersonateGuid != null && impersonateGuid != undefined && impersonateGuid.trim().length > 0) {
|
|
xhr.setRequestHeader('Auth-Impersonate-Guid', impersonateGuid);
|
|
}
|
|
|
|
var franchiseCode = $.sessionStorage('franchiseCode');
|
|
if (franchiseCode != null && franchiseCode != undefined && franchiseCode.trim().length > 0) {
|
|
xhr.setRequestHeader('Auth-Current-Franchise', franchiseCode);
|
|
}
|
|
});
|
|
|
|
$.webMethod = function (options) {
|
|
var settings = $.extend({
|
|
'protocol': location.protocol, //http or https
|
|
'methodPage': '', //This should be something like UserMethods
|
|
'methodName': '', //Something like Createuser
|
|
'contentType': 'application/json; charset=utf-8',
|
|
'dataType': 'json',
|
|
'async': true,
|
|
'cache': false,
|
|
timeout: 300000,
|
|
'parameters': {},
|
|
success: function (response) { },
|
|
error: function (xhr, error, error_thrown) { }
|
|
}, options);
|
|
|
|
if (settings.protocol.indexOf(':') < 0) {
|
|
settings.protocol = settings.protocol + ':';
|
|
}
|
|
|
|
var result;
|
|
var baseUrl = window.API_BASE_URL;
|
|
//var baseUrl = $("base").attr("href");
|
|
if (baseUrl === undefined || baseUrl === null || baseUrl.length === 0)
|
|
baseUrl = "";
|
|
if (baseUrl.length > 0 && baseUrl[baseUrl.length - 1] !== "/")
|
|
baseUrl = baseUrl + "/";
|
|
var url = baseUrl + settings.methodPage + (settings.methodName === undefined || settings.methodName === null || settings.methodName.length === 0 ? "" : "/" + settings.methodName);
|
|
$.ajax({
|
|
type: "POST",
|
|
url: url,
|
|
data: JSON.stringify(settings.parameters),
|
|
contentType: settings.contentType,
|
|
dataType: settings.dataType,
|
|
async: settings.async,
|
|
cache: settings.cache,
|
|
timeout: settings.timeout,
|
|
beforeSend: null,
|
|
success: function (value, textStatus, request) {
|
|
if (value.hasOwnProperty("d"))
|
|
result = $.parseJSON(value.d);
|
|
else if (typeof value === 'object')
|
|
result = value;
|
|
else
|
|
result = $.parseJSON(value);
|
|
var authToken = request.getResponseHeader('Auth-Token');
|
|
var loggedIn = $.getBoolean(request.getResponseHeader('usahl_logged_in'));
|
|
$.cookie.raw = true;
|
|
|
|
if ($.getRememberMe() === true) {
|
|
$.cookie('Auth-Token', authToken, { expires: 14, path: '/' });
|
|
$.cookie('usahl_logged_in', loggedIn, { expires: 14, path: '/' });
|
|
}
|
|
else {
|
|
$.cookie('Auth-Token', authToken, { expires: 365, path: '/' });
|
|
$.cookie('usahl_logged_in', loggedIn, { expires: 365, path: '/' });
|
|
}
|
|
if (settings.success !== undefined)
|
|
settings.success(result);
|
|
},
|
|
error: function (xhr, error, errorThrown) {
|
|
if (settings.error !== undefined)
|
|
settings.error(xhr, error, errorThrown);
|
|
}
|
|
});
|
|
}
|
|
|
|
$.webMethodAsync = async function (options) {
|
|
var settings = $.extend({
|
|
'protocol': location.protocol, //http or https
|
|
'methodPage': '', //This should be something like UserMethods.
|
|
'methodName': '', //Something like Createuser
|
|
'contentType': 'application/json; charset=utf-8',
|
|
'dataType': 'json',
|
|
'async': true,
|
|
'cache': false,
|
|
timeout: 300000,
|
|
'parameters': {},
|
|
success: function (response) { },
|
|
error: function (xhr, error, error_thrown) { }
|
|
}, options);
|
|
|
|
if (settings.protocol.indexOf(':') < 0) {
|
|
settings.protocol = settings.protocol + ':';
|
|
}
|
|
|
|
var result;
|
|
var baseUrl = window.API_BASE_URL;
|
|
//var baseUrl = $("base").attr("href");
|
|
if (baseUrl === undefined || baseUrl === null || baseUrl.length === 0)
|
|
baseUrl = "";
|
|
if (baseUrl.length > 0 && baseUrl[baseUrl.length - 1] !== "/")
|
|
baseUrl = baseUrl + "/";
|
|
var url = baseUrl + settings.methodPage + (settings.methodName === undefined || settings.methodName === null || settings.methodName.length === 0 ? "" : "/" + settings.methodName);
|
|
return $.ajax({
|
|
type: "POST",
|
|
url: url,
|
|
data: JSON.stringify(settings.parameters),
|
|
contentType: settings.contentType,
|
|
dataType: settings.dataType,
|
|
async: settings.async,
|
|
cache: settings.cache,
|
|
timeout: settings.timeout,
|
|
beforeSend: null,
|
|
success: function (value, textStatus, request) {
|
|
if (value.hasOwnProperty("d"))
|
|
result = $.parseJSON(value.d);
|
|
else if (typeof value === 'object')
|
|
result = value;
|
|
else
|
|
result = $.parseJSON(value);
|
|
var authToken = request.getResponseHeader('Auth-Token');
|
|
var loggedIn = $.getBoolean(request.getResponseHeader('usahl_logged_in'));
|
|
$.cookie.raw = true;
|
|
|
|
if ($.getRememberMe() === true) {
|
|
$.cookie('Auth-Token', authToken, { expires: 14, path: '/' });
|
|
$.cookie('usahl_logged_in', loggedIn, { expires: 14, path: '/' });
|
|
}
|
|
else {
|
|
$.cookie('Auth-Token', authToken, { expires: 365, path: '/' });
|
|
$.cookie('usahl_logged_in', loggedIn, { expires: 365, path: '/' });
|
|
}
|
|
if (settings.success !== undefined)
|
|
settings.success(result);
|
|
},
|
|
error: function (xhr, error, errorThrown) {
|
|
if (settings.error !== undefined)
|
|
settings.error(xhr, error, errorThrown);
|
|
}
|
|
});
|
|
}
|
|
|
|
$.getBoolean = function (variable) {
|
|
var vtype;
|
|
var toReturn;
|
|
|
|
if (variable != null) {
|
|
switch (typeof (variable)) {
|
|
case 'boolean':
|
|
vtype = "boolean";
|
|
return variable;
|
|
break;
|
|
|
|
case 'number':
|
|
vtype = "number";
|
|
if (variable == 0)
|
|
toReturn = false;
|
|
else toReturn = true;
|
|
break;
|
|
|
|
case 'string':
|
|
vtype = "string";
|
|
if (variable.toLowerCase() == "true" || variable.toLowerCase() == "yes")
|
|
toReturn = true;
|
|
else if (variable.toLowerCase() == "false" || variable.toLowerCase() == "no")
|
|
toReturn = false;
|
|
else if (variable.length > 0)
|
|
toReturn = true;
|
|
else if (variable.length == 0)
|
|
toReturn = false;
|
|
break;
|
|
|
|
}
|
|
|
|
return toReturn;
|
|
}
|
|
};
|
|
|
|
$.isLoggedIn = function () {
|
|
return $.getBoolean($.cookie('usahl_logged_in'));
|
|
}
|
|
|
|
//Send the auth-token in all ajax requests
|
|
$.ajaxSetup({
|
|
beforeSend: function (xhr, settings) {
|
|
xhr.setRequestHeader('Auth-Token', $.cookie('Auth-Token'));
|
|
}
|
|
});
|
|
|
|
$.sessionStorage = function (key, value) {
|
|
if (value === undefined) {
|
|
var val = window.sessionStorage.getItem(key);
|
|
if ((/^usahl_json/).test(val)) {
|
|
val = val.substring(11, val.length);
|
|
val = $.parseJSON(val);
|
|
}
|
|
return val;
|
|
}
|
|
else {
|
|
var val = value;
|
|
if (typeof value === 'object') {
|
|
val = "usahl_json:" + JSON.stringify(value);
|
|
}
|
|
|
|
window.sessionStorage.setItem(key, val);
|
|
}
|
|
};
|
|
|
|
$.sessionStorageClear = function () {
|
|
window.sessionStorage.clear();
|
|
};
|
|
|
|
$.sessionStorageRemove = function (key) {
|
|
window.sessionStorage.removeItem(key);
|
|
};
|
|
|
|
$.localStorage = function (key, value) {
|
|
if (value === undefined) {
|
|
var val = window.localStorage.getItem(key);
|
|
if ((/^usahl_json/).test(val)) {
|
|
val = val.substring(11, val.length);
|
|
val = $.parseJSON(val);
|
|
}
|
|
return val;
|
|
}
|
|
else {
|
|
var val = value;
|
|
if (typeof value === 'object') {
|
|
val = "usahl_json:" + JSON.stringify(value);
|
|
}
|
|
|
|
window.localStorage.setItem(key, val);
|
|
}
|
|
};
|
|
|
|
$.localStorageClear = function () {
|
|
window.localStorage.clear();
|
|
};
|
|
|
|
$.localStorageRemove = function (key) {
|
|
window.localStorage.removeItem(key);
|
|
};
|
|
|
|
$.setRememberMe = function (rememberMe) {
|
|
$.sessionStorage("usahl_remember_me", rememberMe);
|
|
}
|
|
$.getRememberMe = function () {
|
|
return true;
|
|
/*
|
|
var rememberMe = $.sessionStorage("usahl_remember_me");
|
|
if (rememberMe === undefined || rememberMe == null) {
|
|
return false;
|
|
}
|
|
|
|
return $.getBoolean(rememberMe);
|
|
*/
|
|
}
|
|
|
|
$.userHasPermission = function (permissionCode) {
|
|
var allowed = false;
|
|
var user = $.localStorage("session_currentUser");
|
|
$.each(user.Permissions, function () {
|
|
if ($.compareStrings(this.Code, permissionCode)) {
|
|
allowed = true;
|
|
}
|
|
});
|
|
return allowed;
|
|
}
|
|
|
|
$.userHasRole = function (role) {
|
|
var hasRole = false;
|
|
var user = $.localStorage("session_currentUser");
|
|
$.each(user.Roles, function () {
|
|
if ($.compareStrings(this.FriendlyName, role)) {
|
|
hasRole = true;
|
|
}
|
|
});
|
|
return hasRole;
|
|
}
|
|
|
|
$.checkForRole = function (user, role) {
|
|
var hasRole = false;
|
|
$.each(user.Roles, function () {
|
|
if ($.compareStrings(this.FriendlyName, role)) {
|
|
hasRole = true;
|
|
}
|
|
});
|
|
return hasRole;
|
|
}
|
|
|
|
$.checkForRoleCode = function (user, role) {
|
|
var hasRole = false;
|
|
$.each(user.roles, function () {
|
|
if ($.compareStrings(this.role_code, role)) {
|
|
hasRole = true;
|
|
}
|
|
});
|
|
return hasRole;
|
|
}
|
|
|
|
$.compareStrings = function (string1, string2) {
|
|
return string1.toLowerCase() === string2.toLowerCase();
|
|
}
|
|
|
|
$.getParameterByName = function (name) {
|
|
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
|
|
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
|
|
results = regex.exec(location.search);
|
|
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
|
} |