David Headrick f8df86f1b4 Refactor project structure and remove deprecated features
- 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.
2025-02-20 08:09:21 -06:00

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, " "));
}