v1.0.3.2
This commit is contained in:
@@ -1,83 +0,0 @@
|
||||
/*
|
||||
* Admin - User page scripts.
|
||||
*/
|
||||
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
"use strict";
|
||||
let cs = sax.codeSelection = sax.codeSelection || { fn: {}, $dlg: {}, codeIdPrefix: 'Code_' };
|
||||
|
||||
//--------------------------------------------------------------
|
||||
/*
|
||||
* Code selection config:
|
||||
* - caption - dialog title.
|
||||
* - width: preferred dialog width (default: 400).
|
||||
* - height: preferred dialog height (default: 400).
|
||||
* - showFilter: whether to display filter control(s).
|
||||
* - filterLabel: filter code field caption.
|
||||
* - maxItems: maximum number of available items to list.
|
||||
* - codes - list of {code,desc,comment} objects
|
||||
* - selectedCodes - list of codes.
|
||||
* - fnCallback - method to call on completion to store codes taking list of selected codes as parameter.
|
||||
*/
|
||||
cs.fn.openCodeSelection = function (cfg)
|
||||
{
|
||||
sax.debug('openCodeSelection', cfg);
|
||||
cs.fn.init();
|
||||
cs.cfg = cfg;
|
||||
cs.selectedCodes = cfg.selectedCodes || [];
|
||||
cs.fn.displayCodes(cfg.codes);
|
||||
sax.openDialog(cs.$dlg.dialog('option', { title: cfg.caption || 'Select Codes' }), cs.cfg.width || 400, cs.cfg.height || 400);
|
||||
}
|
||||
cs.fn.displayCodes = function (codes)
|
||||
{
|
||||
let $codesAvail = $('.sax-codeSelection-codes.AvailableCodes').empty();
|
||||
let $codesSelec = $('.sax-codeSelection-codes.SelectedCodes').empty();
|
||||
let $codeTmpl = $('.sax-panel-item-template .sax-panel-item.Code');
|
||||
for (let codeIdx = 0; codeIdx < codes.length; codeIdx++)
|
||||
{
|
||||
let code = codes[codeIdx];
|
||||
let selected = cs.selectedCodes.indexOf(code.code) >= 0;
|
||||
let $code = $codeTmpl.clone();
|
||||
$($code).prop('id', cs.codeIdPrefix + code.code).attr('aria-code', code.code).on('click', function () { cs.fn.onClickCode(code.code); }).on('dblclick', function () { cs.fn.onDblClickCode(code.code); }).find('.CodeDesc').text(code.desc).end();
|
||||
if (selected) $codesSelec.append($code);
|
||||
else $codesAvail.append($code);
|
||||
}
|
||||
}
|
||||
cs.fn.onClickCode = function (code)
|
||||
{
|
||||
$('.sax-panel-item.Code').removeClass('sel');
|
||||
$('.sax-panel-item.Code[aria-code="' + code + '"]').addClass('sel');
|
||||
}
|
||||
cs.fn.onDblClickCode = function (code)
|
||||
{
|
||||
let codeIdx = cs.selectedCodes.indexOf(code);
|
||||
//sax.debug('onDblClickCode', code, codeIdx);
|
||||
if (codeIdx >= 0) cs.selectedCodes.splice(codeIdx, 1); else cs.selectedCodes.push(code)
|
||||
cs.fn.displayCodes(cs.cfg.codes)
|
||||
$('.sax-panel-item.Code[aria-code="' + code + '"]').addClass('sel');
|
||||
}
|
||||
cs.fn.storeCodeSelection = function ()
|
||||
{
|
||||
//sax.debug('storeCodeSelection', cs.cfg, cs.selectedCodes);
|
||||
|
||||
if (cs.cfg.fnCallback) cs.cfg.fnCallback(cs.selectedCodes);
|
||||
|
||||
cs.$dlg.dialog('close');
|
||||
delete cs.cfg;
|
||||
delete cs.selectedCodes;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
cs.fn.init = function ()
|
||||
{
|
||||
if (!cs.$dlg) return;
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { cs.fn.storeCodeSelection(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
cs.$dlg = $('#dlgCodeSelection').dialog(opt);
|
||||
}
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
/* The End */
|
||||
@@ -31,6 +31,10 @@
|
||||
{
|
||||
return sax.isNumeric(value) ? parseInt(value, 10) : defaultValue || 0;
|
||||
}
|
||||
sax.escapeRegExp = function (val)
|
||||
{
|
||||
return (val || '').replace(/[[{}()*+?^$|\]\.\\]/g, "\\$&");
|
||||
}
|
||||
sax.debug = sax.debugMode ? win.console.log.bind(win.console) : function () { };
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -56,6 +60,12 @@
|
||||
return index % 2 == 1 ? "other" : "";
|
||||
});
|
||||
}
|
||||
sax.populateSelectCodeDesc = function ($sel, values)
|
||||
{
|
||||
$sel = $($sel).empty();
|
||||
for (const value of values)
|
||||
$sel.append($('<option>').prop('value', value.code).text(value.desc));
|
||||
}
|
||||
sax.checkTextAreaMaxLength = function (ctrl, len)
|
||||
{
|
||||
if (ctrl == null || ctrl.value == null) return;
|
||||
@@ -460,6 +470,7 @@
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
//--------------------------------------------------------------
|
||||
(function ()
|
||||
{
|
||||
if (typeof Object.defineProperty === 'function')
|
||||
|
||||
@@ -1,147 +1,223 @@
|
||||
/*
|
||||
* Admin - Organisation page scripts.
|
||||
*/
|
||||
"use strict";
|
||||
sax.itemIdPrefix = 'Itm_';
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshResults = function (delay)
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Organisation/Ajax/GetList', formId: 'frmOrganisationFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty();
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.Organisation', $results);
|
||||
if (!response.success) return;
|
||||
// Items.
|
||||
var items = response.organisations;
|
||||
if (!items.length)
|
||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||
{
|
||||
let item = items[itemIdx];
|
||||
let $item = $templ.clone();
|
||||
sax.populateItem($item, item);
|
||||
$items.append($item);
|
||||
}
|
||||
$items.fadeIn(50);
|
||||
}
|
||||
sax.populateItem = function ($item, item)
|
||||
{
|
||||
if (!item) return;
|
||||
$item.prop('id', sax.itemIdPrefix + item.id);
|
||||
$('.OrganisationName', $item).text(item.name);
|
||||
$('.OrganisationType', $item).text(item.typeDesc);
|
||||
$('.OrganisationCategory', $item).text(item.categoryDesc);
|
||||
$('.OrganisationMemberCount', $item).on('click', function () { sax.onClickMemberCount(item.id); }).find('.MemberCount').text(item.memberCount);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
}
|
||||
"use strict";
|
||||
sax.itemIdPrefix = 'Itm_';
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.createItem = function ()
|
||||
{
|
||||
$('.OrganisationId,input[type="text"],textarea,select', sax.$frm.organisation).val('');
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.organisation.dialog('option', 'title', sax.dlg.title.createOrganisation);
|
||||
sax.openDialog(sax.$dlg.organisation, 600, 600);
|
||||
}
|
||||
sax.doCreateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.OrganisationId', sax.$frm.organisationId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Organisation/Ajax/GetItem', formId: 'frmOrganisationId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
//sax.debug('onUpdateItem', response);
|
||||
let $frm = sax.$frm.organisation;
|
||||
$('.OrganisationId,input[type="text"],textarea,select', $frm).val('');
|
||||
if (!response.success) return;
|
||||
let item = response.organisation;
|
||||
$('.OrganisationId', $frm).val(item.id);
|
||||
$('.OrganisationName', $frm).val(item.name);
|
||||
$('.OrganisationType', $frm).val(item.typeCode);
|
||||
$('.OrganisationCategory', $frm).val(item.categoryCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.organisation.dialog('option', 'title', sax.dlg.title.updateOrganisation);
|
||||
sax.openDialog(sax.$dlg.organisation, 600, 600);
|
||||
}
|
||||
sax.doUpdateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Organisation/Ajax/StoreItem', formId: 'frmOrganisation', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
//sax.debug('onStoreItem', response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.$dlg.organisation.dialog('close');
|
||||
|
||||
var item = response.organisation;
|
||||
var $item = $('#' + sax.itemIdPrefix + item.id);
|
||||
if (!$item.length)
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshResults = function (delay)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
$item = $('.sax-panel-item-template .sax-panel-item.Organisation', $results).clone();
|
||||
$('.sax-panel-item-list', $results).prepend($item).show();
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Organisation/Ajax/GetList', formId: 'frmOrganisationFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty();
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.Organisation', $results);
|
||||
if (!response.success) return;
|
||||
// Reference data - Statuses.
|
||||
if (response.defaultStatusCode) sax.data.defaultStatusCode = response.defaultStatusCode;
|
||||
if (response.statuses)
|
||||
sax.populateSelectCodeDesc('#cbOrganisationStatus', response.statuses);
|
||||
// Items.
|
||||
var items = response.organisations;
|
||||
if (!items.length)
|
||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||
{
|
||||
let item = items[itemIdx];
|
||||
let $item = $templ.clone();
|
||||
sax.populateItem($item, item);
|
||||
$items.append($item);
|
||||
}
|
||||
$items.fadeIn(50);
|
||||
}
|
||||
sax.populateItem = function ($item, item)
|
||||
{
|
||||
if (!item) return;
|
||||
$item.prop('id', sax.itemIdPrefix + item.id);
|
||||
$('.OrganisationName', $item).text(item.name);
|
||||
$('.OrganisationType', $item).text(item.typeDesc);
|
||||
$('.OrganisationCategory', $item).text(item.categoryDesc);
|
||||
$('.OrganisationRegion', $item).text(item.regionName);
|
||||
$('.OrganisationSport', $item).text(item.sportName);
|
||||
$('.OrganisationMemberCount', $item).on('click', function () { sax.onClickMemberCount(item.id); }).find('.MemberCount').text(item.memberCount);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
}
|
||||
sax.populateItem($item, item)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.onClickMemberCount = function (id)
|
||||
{
|
||||
if (!(id * 1)) return;
|
||||
sax.doPleaseWait();
|
||||
let $frm = $('#frmOrganisationId');
|
||||
$('.OrganisationId',$frm).val(id);
|
||||
$frm.prop('action', sax.url.base + 'Organisation/Members').submit();
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
sax.selectRegion = function ()
|
||||
{
|
||||
if (!sax.data.regions)
|
||||
{
|
||||
let handleRegionsResponse = function (response)
|
||||
{
|
||||
if (response && response.success && response.regions)
|
||||
sax.data.regions = response.regions;
|
||||
sax.showSelectRegion();
|
||||
}
|
||||
sax.ajaxRegions = sax.ajaxRegions || { url: sax.url.base + 'Region/Ajax/GetList', formId: 'frmNavigate', callbackFn: handleRegionsResponse };
|
||||
sax.doAjaxRequest(sax.ajaxRegions, 50);
|
||||
}
|
||||
else sax.showSelectRegion();
|
||||
}
|
||||
sax.showSelectRegion = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectRegion, items: sax.data.regions, fnCallback: sax.onRegionSelected });
|
||||
}
|
||||
sax.onRegionSelected = function (rgn)
|
||||
{
|
||||
sax.debug('onRegionSelected', rgn);
|
||||
let $frm = sax.$frm.organisation;
|
||||
$('.OrganisationRegionId', $frm).val(rgn.id);
|
||||
$('.OrganisationRegionCaption', $frm).val(rgn.name);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$('.sax-panel-filter .sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-panel-filter .sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input').on('keydown', function () { sax.clearControlError(this); });
|
||||
//--------------------------------------------------------------
|
||||
sax.selectSport = function ()
|
||||
{
|
||||
if (!sax.data.sports)
|
||||
{
|
||||
let handleSportsResponse = function (response)
|
||||
{
|
||||
if (response && response.success && response.sports)
|
||||
sax.data.sports = response.sports;
|
||||
sax.showSelectSport();
|
||||
}
|
||||
sax.ajaxSports = sax.ajaxSports || { url: sax.url.base + 'Sport/Ajax/GetList', formId: 'frmNavigate', callbackFn: handleSportsResponse };
|
||||
sax.doAjaxRequest(sax.ajaxSports, 50);
|
||||
}
|
||||
else sax.showSelectSport();
|
||||
}
|
||||
sax.showSelectSport = function ()
|
||||
{
|
||||
sax.data.selectItem.fn.selectItem({ caption: sax.dlg.title.selectSport, items: sax.data.sports, fnCallback: sax.onSportSelected });
|
||||
}
|
||||
sax.onSportSelected = function (rgn)
|
||||
{
|
||||
sax.debug('onSportSelected', rgn);
|
||||
let $frm = sax.$frm.organisation;
|
||||
$('.OrganisationSportId', $frm).val(rgn.id);
|
||||
$('.OrganisationSportCaption', $frm).val(rgn.name);
|
||||
}
|
||||
|
||||
sax.$frm.organisationId = $('#frmOrganisationId');
|
||||
sax.$frm.organisation = $('#frmOrganisation');
|
||||
//--------------------------------------------------------------
|
||||
sax.createItem = function ()
|
||||
{
|
||||
let $frm = sax.$frm.organisation;
|
||||
$('.OrganisationId,.OrganisationRegionId,.OrganisationSportId,input[type="text"],textarea,select', $frm).val('');
|
||||
$('.OrganisationStatus', $frm).val(sax.data.defaultStatusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.organisation.dialog('option', 'title', sax.dlg.title.createOrganisation);
|
||||
sax.openDialog(sax.$dlg.organisation, 600, 600);
|
||||
}
|
||||
sax.doCreateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.organisation = $('#dlgOrganisation').dialog(opt);
|
||||
//--------------------------------------------------------------
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.OrganisationId', sax.$frm.organisationId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Organisation/Ajax/GetItem', formId: 'frmOrganisationId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
//sax.debug('onUpdateItem', response);
|
||||
let $frm = sax.$frm.organisation;
|
||||
$('.OrganisationId,input[type="text"],textarea,select', $frm).val('');
|
||||
if (!response.success) return;
|
||||
let item = response.organisation;
|
||||
$('.OrganisationId', $frm).val(item.id);
|
||||
$('.OrganisationName', $frm).val(item.name);
|
||||
$('.OrganisationType', $frm).val(item.typeCode);
|
||||
$('.OrganisationCategory', $frm).val(item.categoryCode);
|
||||
$('.OrganisationRegionId', $frm).val(item.regionId);
|
||||
$('.OrganisationRegionCaption', $frm).val(item.regionName);
|
||||
$('.OrganisationSportId', $frm).val(item.sportId);
|
||||
$('.OrganisationSportCaption', $frm).val(item.sportName);
|
||||
$('.OrganisationStatus', $frm).val(item.statusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.organisation.dialog('option', 'title', sax.dlg.title.updateOrganisation);
|
||||
sax.openDialog(sax.$dlg.organisation, 600, 600);
|
||||
}
|
||||
sax.doUpdateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
setTimeout(sax.refreshResults, 250);
|
||||
});
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Organisation/Ajax/StoreItem', formId: 'frmOrganisation', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
//sax.debug('onStoreItem', response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.$dlg.organisation.dialog('close');
|
||||
|
||||
//--------------------------------------------------------------
|
||||
var item = response.organisation;
|
||||
var $item = $('#' + sax.itemIdPrefix + item.id);
|
||||
if (!$item.length)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
$item = $('.sax-panel-item-template .sax-panel-item.Organisation', $results).clone();
|
||||
$('.sax-panel-item-list', $results).prepend($item).show();
|
||||
}
|
||||
sax.populateItem($item, item)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.onClickMemberCount = function (id)
|
||||
{
|
||||
if (!(id * 1)) return;
|
||||
sax.doPleaseWait();
|
||||
let $frm = $('#frmOrganisationId');
|
||||
$('.OrganisationId', $frm).val(id);
|
||||
$frm.prop('action', sax.url.base + 'Organisation/Members').submit();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$('.sax-panel-filter .sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-panel-filter .sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input').on('input', function () { sax.clearControlError(this); });
|
||||
|
||||
sax.$frm.filter = $('#frmOrganisationFilter');
|
||||
$('.FilterOrganisation', sax.$frm.filter).on('input', function () { sax.refreshResults(250); });
|
||||
sax.$frm.organisationId = $('#frmOrganisationId');
|
||||
sax.$frm.organisation = $('#frmOrganisation');
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.organisation = $('#dlgOrganisation').dialog(opt);
|
||||
|
||||
setTimeout(sax.refreshResults, 250);
|
||||
});
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
/* The End */
|
||||
@@ -30,9 +30,13 @@
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.Member', $results);
|
||||
if (!response.success) return;
|
||||
// Reference data.
|
||||
// Reference data - roles.
|
||||
if (response.memberRoles && response.memberRoles.length)
|
||||
sax.data.memberRoles = response.memberRoles;
|
||||
// Reference data - Statuses.
|
||||
if (response.defaultStatusCode) sax.data.defaultStatusCode = response.defaultStatusCode;
|
||||
if (response.statuses)
|
||||
sax.populateSelectCodeDesc('#cbMemberStatus', response.statuses);
|
||||
// Items.
|
||||
var items = response.members;
|
||||
if (!items.length)
|
||||
@@ -60,7 +64,7 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.selectOrganisation = function ()
|
||||
{
|
||||
sax.debug('sax.selectOrganisation');
|
||||
//sax.debug('sax.selectOrganisation');
|
||||
sax.organisationSelection.fn.openDialog({ caption: sax.dlg.title.selectOrganisation, fnCallback: sax.onOrganisationSelected });
|
||||
}
|
||||
sax.onOrganisationSelected = function (id, name)
|
||||
@@ -71,6 +75,22 @@
|
||||
sax.refreshResults(50);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.onChangeEmail = function ()
|
||||
{
|
||||
let $frm = sax.$frm.member;
|
||||
let $mbrName = $('.MemberUserName', $frm);
|
||||
$('#frmUserEmail .UserEmailAddress').val($('.MemberUserEmailAddress', $frm).val());
|
||||
$mbrName.val('');
|
||||
let fn = function (response)
|
||||
{
|
||||
if (!response || !response.success || !response.user) return;
|
||||
$mbrName.val(response.user.displayName);
|
||||
}
|
||||
sax.ajaxUserByEmail = sax.ajaxUserByEmail || { url: sax.url.base + 'User/Ajax/GetUserByEmail', formId: 'frmUserEmail', callbackFn: fn };
|
||||
sax.doAjaxRequest(sax.ajaxUserByEmail, 100);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// Member Roles.
|
||||
sax.selectMemberRoles = function ()
|
||||
@@ -79,7 +99,7 @@
|
||||
sax.selectMemberRoleConfig = sax.selectMemberRoleConfig || { caption: sax.dlg.title.selectMemberRoles, width: 520, fnCallback: sax.updateMemberRoles };
|
||||
sax.selectMemberRoleConfig.codes = sax.data.memberRoles;
|
||||
sax.selectMemberRoleConfig.selectedCodes = sax.member.roleCodes || [];
|
||||
sax.codeSelection.fn.openCodeSelection(sax.selectMemberRoleConfig);
|
||||
sax.selectCode.fn.openSelectCode(sax.selectMemberRoleConfig);
|
||||
}
|
||||
sax.updateMemberRoles = function (memberRoleCodes)
|
||||
{
|
||||
@@ -108,6 +128,7 @@
|
||||
$('.UserOrganisationId,.MemberRoleCodes,input[type="text"],textarea,select', $frm).val('');
|
||||
$('.MemberOrganisationId', $frm).val($('#frmMemberFilter #ifFilterOrganisationId').val());
|
||||
$('.MemberUserEmailAddress', $frm).prop('readonly', false);
|
||||
$('.MemberStatus', $frm).val(sax.data.defaultStatusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.member = { roleCodes: [] };
|
||||
sax.$dlg.member.dialog('option', 'title', sax.dlg.title.createMember);
|
||||
@@ -138,6 +159,7 @@
|
||||
$('.MemberUserName', $frm).val(item.displayName).prop('readonly', true);
|
||||
$('.MemberRoleCodes', $frm).val(item.roleCodes);
|
||||
$('#ifMemberRoles').val(sax.getSelectedMemberRoleDescs().join('\n'));
|
||||
$('.MemberStatus', $frm).val(item.statusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.member.dialog('option', 'title', sax.dlg.title.updateMember);
|
||||
sax.openDialog(sax.$dlg.member, 600, 600);
|
||||
@@ -171,21 +193,16 @@
|
||||
sax.populateItem($item, item)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.onClickMemberCount = function (id)
|
||||
{
|
||||
sax.debug('onClickMemberCount', id);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$('.sax-panel-filter .sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-panel-filter .sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input').on('keydown', function () { sax.clearControlError(this); });
|
||||
$('.sax-input').on('input', function () { sax.clearControlError(this); });
|
||||
|
||||
sax.$frm.memberId = $('#frmMemberId');
|
||||
sax.$frm.member = $('#frmMember');
|
||||
$('#ifMemberUserEmailAddress', sax.$frm.member).on('change', function () { sax.onChangeEmail(); });
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
{
|
||||
//sax.debug('os.doRefreshResults', response);
|
||||
if (!response.success) return;
|
||||
let $results = $('.sax-selection-results.Organisations').empty().hide();
|
||||
let $tmpl = $('.sax-panel-item-template .sax-panel-item.Organisation');
|
||||
let $results = $('.sax-selection-results.Organisations', os.$dlg).empty().hide();
|
||||
let $tmpl = $('.sax-panel-item-template .sax-panel-item.Organisation', os.$dlg);
|
||||
let items = response.organisations;
|
||||
if (items)
|
||||
{
|
||||
@@ -51,10 +51,10 @@
|
||||
{
|
||||
//sax.debug('onClickOrganisation', item);
|
||||
os.data.item = item;
|
||||
$('.sax-panel-item.Organisation').removeClass('sel');
|
||||
$('.sax-panel-item.Organisation#' + os.itemIdPrefix + item.id).addClass('sel');
|
||||
$('.sax-panel-item.Organisation', os.$dlg).removeClass('sel');
|
||||
$('.sax-panel-item.Organisation#' + os.itemIdPrefix + item.id, os.$dlg).addClass('sel');
|
||||
}
|
||||
os.fn.onDblClickOrganisation= function (item)
|
||||
os.fn.onDblClickOrganisation = function (item)
|
||||
{
|
||||
//sax.debug('onDblClickCode', item);
|
||||
os.data.item = item;
|
||||
@@ -62,7 +62,7 @@
|
||||
}
|
||||
os.fn.confirmSelection = function ()
|
||||
{
|
||||
//sax.debug('storeCodeSelection', os.data.item);
|
||||
//sax.debug('confirmSelection', os.data.item);
|
||||
if (!os.data.item) return;
|
||||
if (os.cfg.fnCallback) os.cfg.fnCallback(os.data.item.id, os.data.item.name);
|
||||
os.$dlg.dialog('close');
|
||||
@@ -79,6 +79,8 @@
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { os.fn.confirmSelection(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
os.$dlg = $('#dlgOrganisationSelection').dialog(opt);
|
||||
|
||||
$('.sax-input.FilterOrganisation', os.$dlg).on('input', function () { sax.organisationSelection.fn.refreshOrganisations(250); });
|
||||
}
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
@@ -1,137 +1,151 @@
|
||||
/*
|
||||
* Admin - Region page scripts.
|
||||
*/
|
||||
"use strict";
|
||||
sax.itemIdPrefix = 'Itm_';
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshResults = function (delay)
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Region/Ajax/GetList', formId: 'frmRegionFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty();
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.Region', $results);
|
||||
if (!response.success) return;
|
||||
// Items.
|
||||
var items = response.regions;
|
||||
if (!items.length)
|
||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||
{
|
||||
let item = items[itemIdx];
|
||||
let $item = $templ.clone();
|
||||
sax.populateItem($item, item);
|
||||
$items.append($item);
|
||||
}
|
||||
$items.fadeIn(50);
|
||||
}
|
||||
sax.populateItem = function ($item, item)
|
||||
{
|
||||
if (!item) return;
|
||||
$item.prop('id', sax.itemIdPrefix + item.id);
|
||||
$('.RegionName', $item).text(item.name);
|
||||
$('.RegionCountryIso2Code', $item).text(item.countryIso2Code);
|
||||
$('.RegionTypeDesc', $item).text(item.regionTypeDesc);
|
||||
$('.RegionParentName', $item).text(item.parentName);
|
||||
$('.RegionStatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
}
|
||||
"use strict";
|
||||
sax.itemIdPrefix = 'Itm_';
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.createItem = function ()
|
||||
{
|
||||
$('.RegionId,input[type="text"],textarea,select', sax.$frm.region).val('');
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.region.dialog('option', 'title', sax.dlg.title.createRegion);
|
||||
sax.openDialog(sax.$dlg.region, 600, 600);
|
||||
}
|
||||
sax.doCreateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.RegionId', sax.$frm.regionId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Region/Ajax/GetItem', formId: 'frmRegionId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
//sax.debug('onUpdateItem', response);
|
||||
let $frm = sax.$frm.region;
|
||||
$('.RegionId,input[type="text"],textarea,select', $frm).val('');
|
||||
if (!response.success) return;
|
||||
let item = response.region;
|
||||
$('.RegionId', $frm).val(item.id);
|
||||
$('.RegionType', $frm).val(item.regionTypeCode);
|
||||
$('.RegionCountryIso2Code', $frm).val(item.countryIso2Code);
|
||||
$('.RegionName', $frm).val(item.name);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.region.dialog('option', 'title', sax.dlg.title.updateRegion);
|
||||
sax.openDialog(sax.$dlg.region, 600, 600);
|
||||
}
|
||||
sax.doUpdateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Region/Ajax/StoreItem', formId: 'frmRegion', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
//sax.debug('onStoreItem', response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.$dlg.region.dialog('close');
|
||||
|
||||
var item = response.region;
|
||||
var $item = $('#' + sax.itemIdPrefix + item.id);
|
||||
if (!$item.length)
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshResults = function (delay)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
$item = $('.sax-panel-item-template .sax-panel-item.Region', $results).clone();
|
||||
$('.sax-panel-item-list', $results).prepend($item).show();
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Region/Ajax/GetList', formId: 'frmRegionFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty();
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.Region', $results);
|
||||
if (!response.success) return;
|
||||
// Reference data - Statuses.
|
||||
if (response.defaultStatusCode) sax.data.defaultStatusCode = response.defaultStatusCode;
|
||||
if (response.statuses)
|
||||
sax.populateSelectCodeDesc('#cbRegionStatus', response.statuses);
|
||||
// Items.
|
||||
var items = response.regions;
|
||||
if (!items.length)
|
||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||
{
|
||||
let item = items[itemIdx];
|
||||
let $item = $templ.clone();
|
||||
sax.populateItem($item, item);
|
||||
$items.append($item);
|
||||
}
|
||||
$items.fadeIn(50);
|
||||
}
|
||||
sax.populateItem = function ($item, item)
|
||||
{
|
||||
if (!item) return;
|
||||
$item.prop('id', sax.itemIdPrefix + item.id);
|
||||
$('.RegionName', $item).text(item.name);
|
||||
$('.RegionCountryIso2Code', $item).text(item.countryIso2Code);
|
||||
$('.RegionTypeDesc', $item).text(item.regionTypeDesc);
|
||||
$('.RegionParentName', $item).text(item.parentName);
|
||||
$('.RegionStatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
}
|
||||
sax.populateItem($item, item)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$('.sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input').on('keydown', function () { sax.clearControlError(this); });
|
||||
//--------------------------------------------------------------
|
||||
sax.createItem = function ()
|
||||
{
|
||||
let $frm = sax.$frm.region;
|
||||
$('.RegionId,input[type="text"],textarea,select', $frm).val('');
|
||||
$('.RegionStatus', $frm).val(sax.data.defaultStatusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.region.dialog('option', 'title', sax.dlg.title.createRegion);
|
||||
sax.openDialog(sax.$dlg.region, 600, 600);
|
||||
}
|
||||
sax.doCreateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
sax.$frm.regionId = $('#frmRegionId');
|
||||
sax.$frm.region = $('#frmRegion');
|
||||
//--------------------------------------------------------------
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.RegionId', sax.$frm.regionId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Region/Ajax/GetItem', formId: 'frmRegionId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
//sax.debug('onUpdateItem', response);
|
||||
let $frm = sax.$frm.region;
|
||||
$('.RegionId,input[type="text"],textarea,select', $frm).val('');
|
||||
if (!response.success) return;
|
||||
let item = response.region;
|
||||
$('.RegionId', $frm).val(item.id);
|
||||
$('.RegionType', $frm).val(item.regionTypeCode);
|
||||
$('.RegionCountryIso2Code', $frm).val(item.countryIso2Code);
|
||||
$('.RegionName', $frm).val(item.name);
|
||||
$('.RegionStatus', $frm).val(item.statusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.region.dialog('option', 'title', sax.dlg.title.updateRegion);
|
||||
sax.openDialog(sax.$dlg.region, 600, 600);
|
||||
}
|
||||
sax.doUpdateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.region = $('#dlgRegion').dialog(opt);
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Region/Ajax/StoreItem', formId: 'frmRegion', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
//sax.debug('onStoreItem', response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.$dlg.region.dialog('close');
|
||||
|
||||
setTimeout(sax.refreshResults, 250);
|
||||
});
|
||||
var item = response.region;
|
||||
var $item = $('#' + sax.itemIdPrefix + item.id);
|
||||
if (!$item.length)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
$item = $('.sax-panel-item-template .sax-panel-item.Region', $results).clone();
|
||||
$('.sax-panel-item-list', $results).prepend($item).show();
|
||||
}
|
||||
sax.populateItem($item, item)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$('.sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input').on('input', function () { sax.clearControlError(this); });
|
||||
|
||||
sax.$frm.filter = $('#frmRegionFilter');
|
||||
$('.FilterRegion', sax.$frm.filter).on('input', function () { sax.refreshResults(250); });
|
||||
sax.$frm.regionId = $('#frmRegionId');
|
||||
sax.$frm.region = $('#frmRegion');
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.region = $('#dlgRegion').dialog(opt);
|
||||
|
||||
setTimeout(sax.refreshResults, 250);
|
||||
});
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
/* The End */
|
||||
@@ -1,84 +1,89 @@
|
||||
/*
|
||||
* Admin - Security page scripts.
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.doSignin = function ()
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxSignin = sax.ajaxSignin || { url: sax.url.base + 'Security/Ajax/Signin', formId: 'frmSignIn', callbackFn: sax.onSignin };
|
||||
sax.doAjaxRequest(sax.ajaxSignin, 50);
|
||||
}
|
||||
sax.onSignin = function (response)
|
||||
{
|
||||
sax.debug(response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.goToPage('');
|
||||
}
|
||||
"use strict";
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.doScorePassword = function ()
|
||||
{
|
||||
sax.ajaxScorePassword = sax.ajaxScorePassword || { url: sax.url.base + 'Security/Ajax/ScorePassword', formId: 'frmChangePassword', callbackFn: sax.onScorePassword, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajaxScorePassword, 250);
|
||||
}
|
||||
sax.onScorePassword = function (response)
|
||||
{
|
||||
var score = (response || {}).score || 0;
|
||||
sax.$prgPasswordStrength.progressbar("option", "value", score).removeClass('amber green').addClass(score > 3 ? 'green' : score > 2 ? 'amber' : '');
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.doChangePassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxChangePassword = sax.ajaxChangePassword || { url: sax.url.base + 'Security/Ajax/StorePassword', formId: 'frmChangePassword', callbackFn: sax.onChangePassword };
|
||||
sax.doAjaxRequest(sax.ajaxChangePassword, 50);
|
||||
}
|
||||
sax.onChangePassword = function (response)
|
||||
{
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
if ($('#ifRpe').length)
|
||||
sax.goToPage('Security/Signin');
|
||||
else sax.goToPage('');
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.doRequestPassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxRequestPassword = sax.ajaxRequestPassword || { url: sax.url.base + 'Security/Ajax/RequestNewPassword', formId: 'frmRequestPassword', callbackFn: sax.onRequestPassword };
|
||||
sax.doAjaxRequest(sax.ajaxRequestPassword, 50);
|
||||
}
|
||||
sax.onRequestPassword = function (response)
|
||||
{
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
var gotoSigninPage = function ()
|
||||
//--------------------------------------------------------------
|
||||
sax.doSignin = function ()
|
||||
{
|
||||
sax.goToPage('Security/Signin');
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxSignin = sax.ajaxSignin || { url: sax.url.base + 'Security/Ajax/Signin', formId: 'frmSignIn', callbackFn: sax.onSignin };
|
||||
sax.doAjaxRequest(sax.ajaxSignin, 50);
|
||||
}
|
||||
sax.onSignin = function (response)
|
||||
{
|
||||
sax.debug(response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.goToPage('');
|
||||
}
|
||||
if (response.successMsg)
|
||||
sax.doAlert($('.sax-page-caption').text(), response.successMsg, gotoSigninPage);
|
||||
else gotoSigninPage();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$(':input:enabled:visible:first').focus();
|
||||
$('#ifEmailAddress,#ifPasswordCurrent,#ifPassword,#ifPasswordConfirm').on('keydown', function () { sax.clearControlError(this); });
|
||||
$('#frmChangePassword #ifPassword').on('keyup', sax.doScorePassword);
|
||||
sax.$prgPasswordStrength = $('#frmChangePassword #prgPasswordStrength').progressbar({ 'max': 5 });
|
||||
$('#ifEmailAddress,#ifPassword', $('#frmSignIn')).on('keypress', function (e) { if (e.which == 13) sax.doSignin(); });
|
||||
$('#frmSignIn #pbSignIn').on('click', function () { sax.doSignin(); });
|
||||
$('#ifPasswordCurrent,#ifPassword,#ifPasswordConfirm', $('#frmChangePassword')).on('keypress', function (e) { if (e.which == 13) sax.doChangePassword(); });
|
||||
$('#frmChangePassword #pbChangePassword').on('click', function () { sax.doChangePassword(); });
|
||||
$('#ifEmailAddress', $('#frmRequestPassword')).on('keypress', function (e) { if (e.which == 13) sax.doRequestPassword(); });
|
||||
$('#frmRequestPassword #pbRequestPassword').on('click', function () { sax.doRequestPassword(); });
|
||||
});
|
||||
//--------------------------------------------------------------
|
||||
sax.doScorePassword = function ()
|
||||
{
|
||||
sax.ajaxScorePassword = sax.ajaxScorePassword || { url: sax.url.base + 'Security/Ajax/ScorePassword', formId: 'frmChangePassword', callbackFn: sax.onScorePassword, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajaxScorePassword, 250);
|
||||
}
|
||||
sax.onScorePassword = function (response)
|
||||
{
|
||||
var score = (response || {}).score || 0;
|
||||
sax.$prgPasswordStrength.progressbar("option", "value", score).removeClass('amber green').addClass(score > 3 ? 'green' : score > 2 ? 'amber' : '');
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
//--------------------------------------------------------------
|
||||
sax.doChangePassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxChangePassword = sax.ajaxChangePassword || { url: sax.url.base + 'Security/Ajax/StorePassword', formId: 'frmChangePassword', callbackFn: sax.onChangePassword };
|
||||
sax.doAjaxRequest(sax.ajaxChangePassword, 50);
|
||||
}
|
||||
sax.onChangePassword = function (response)
|
||||
{
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
if ($('#ifRpe').length)
|
||||
sax.goToPage('Security/Signin');
|
||||
else sax.goToPage('');
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.doRequestPassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxRequestPassword = sax.ajaxRequestPassword || { url: sax.url.base + 'Security/Ajax/RequestNewPassword', formId: 'frmRequestPassword', callbackFn: sax.onRequestPassword };
|
||||
sax.doAjaxRequest(sax.ajaxRequestPassword, 50);
|
||||
}
|
||||
sax.onRequestPassword = function (response)
|
||||
{
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
var gotoSigninPage = function ()
|
||||
{
|
||||
sax.goToPage('Security/Signin');
|
||||
}
|
||||
if (response.successMsg)
|
||||
sax.doAlert($('.sax-page-caption').text(), response.successMsg, gotoSigninPage);
|
||||
else gotoSigninPage();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$(':input:enabled:visible:first').focus();
|
||||
$('#ifEmailAddress,#ifPasswordCurrent,#ifPassword,#ifPasswordConfirm').on('input', function () { sax.clearControlError(this); });
|
||||
$('#frmChangePassword #ifPassword').on('keyup', sax.doScorePassword);
|
||||
sax.$prgPasswordStrength = $('#frmChangePassword #prgPasswordStrength').progressbar({ 'max': 5 });
|
||||
$('#ifEmailAddress,#ifPassword', $('#frmSignIn')).on('keypress', function (e) { if (e.which == 13) sax.doSignin(); });
|
||||
$('#frmSignIn #pbSignIn').on('click', function () { sax.doSignin(); });
|
||||
$('#ifPasswordCurrent,#ifPassword,#ifPasswordConfirm', $('#frmChangePassword')).on('keypress', function (e) { if (e.which == 13) sax.doChangePassword(); });
|
||||
$('#frmChangePassword #pbChangePassword').on('click', function () { sax.doChangePassword(); });
|
||||
$('#ifEmailAddress', $('#frmRequestPassword')).on('keypress', function (e) { if (e.which == 13) sax.doRequestPassword(); });
|
||||
$('#frmRequestPassword #pbRequestPassword').on('click', function () { sax.doRequestPassword(); });
|
||||
});
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
/* The End */
|
||||
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
* Admin - Code selection.
|
||||
*/
|
||||
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
"use strict";
|
||||
let sc = sax.selectCode = sax.selectCode || { fn: {}, $dlg: {}, codeIdPrefix: 'Code_' };
|
||||
|
||||
//--------------------------------------------------------------
|
||||
/*
|
||||
* Code selection config:
|
||||
* - caption - dialog title.
|
||||
* - width: preferred dialog width (default: 400).
|
||||
* - height: preferred dialog height (default: 400).
|
||||
* - showFilter: whether to display filter control(s).
|
||||
* - filterLabel: filter code field caption.
|
||||
* - maxItems: maximum number of available items to list.
|
||||
* - codes - list of {code,desc,comment} objects
|
||||
* - selectedCodes - list of codes.
|
||||
* - fnCallback - method to call on completion to store codes taking list of selected codes as parameter.
|
||||
*/
|
||||
sc.fn.openSelectCode = function (cfg)
|
||||
{
|
||||
//sax.debug('openSelectCode', cfg);
|
||||
sc.fn.init();
|
||||
sc.cfg = cfg;
|
||||
sc.selectedCodes = cfg.selectedCodes || [];
|
||||
sc.fn.displayCodes(cfg.codes);
|
||||
sax.openDialog(sc.$dlg.dialog('option', { title: cfg.caption || 'Select Codes' }), sc.cfg.width || 400, sc.cfg.height || 400);
|
||||
}
|
||||
sc.fn.displayCodes = function (codes)
|
||||
{
|
||||
let $codesAvail = $('.sax-selectCode-codes.AvailableCodes').empty();
|
||||
let $codesSelec = $('.sax-selectCode-codes.SelectedCodes').empty();
|
||||
let $codeTmpl = $('.sax-panel-item-template .sax-panel-item.Code');
|
||||
for (let codeIdx = 0; codeIdx < codes.length; codeIdx++)
|
||||
{
|
||||
let code = codes[codeIdx];
|
||||
let selected = sc.selectedCodes.indexOf(code.code) >= 0;
|
||||
let $code = $codeTmpl.clone();
|
||||
$($code).prop('id', sc.codeIdPrefix + code.code).attr('aria-code', code.code).on('click', function () { sc.fn.onClickCode(code.code); }).on('dblclick', function () { sc.fn.onDblClickCode(code.code); }).find('.CodeDesc').text(code.desc).end();
|
||||
if (selected) $codesSelec.append($code);
|
||||
else $codesAvail.append($code);
|
||||
}
|
||||
}
|
||||
sc.fn.onClickCode = function (code)
|
||||
{
|
||||
$('.sax-panel-item.Code').removeClass('sel');
|
||||
$('.sax-panel-item.Code[aria-code="' + code + '"]').addClass('sel');
|
||||
}
|
||||
sc.fn.onDblClickCode = function (code)
|
||||
{
|
||||
let codeIdx = sc.selectedCodes.indexOf(code);
|
||||
//sax.debug('onDblClickCode', code, codeIdx);
|
||||
if (codeIdx >= 0) sc.selectedCodes.splice(codeIdx, 1); else sc.selectedCodes.push(code)
|
||||
sc.fn.displayCodes(sc.cfg.codes)
|
||||
$('.sax-panel-item.Code[aria-code="' + code + '"]').addClass('sel');
|
||||
}
|
||||
sc.fn.onClickSelect = function ()
|
||||
{
|
||||
let codes = [];
|
||||
$('.sax-selectCode-codes.AvailableCodes .sax-panel-item.Code.sel').each(function (idx, el)
|
||||
{
|
||||
let code = $(el).attr('aria-code');
|
||||
if (code)
|
||||
{
|
||||
codes.push(code);
|
||||
sc.selectedCodes.push(code);
|
||||
};
|
||||
});
|
||||
sc.fn.displayCodes(sc.cfg.codes)
|
||||
for (const code of codes)
|
||||
$('.sax-panel-item.Code[aria-code="' + code + '"]').addClass('sel');
|
||||
}
|
||||
sc.fn.onClickRemove = function ()
|
||||
{
|
||||
let codes = [];
|
||||
$('.sax-selectCode-codes.SelectedCodes .sax-panel-item.Code.sel').each(function (idx, el)
|
||||
{
|
||||
let code = $(el).attr('aria-code');
|
||||
if (code)
|
||||
{
|
||||
let codeIdx = sc.selectedCodes.indexOf(code);
|
||||
if (codeIdx >= 0)
|
||||
{
|
||||
codes.push(code);
|
||||
sc.selectedCodes.splice(codeIdx, 1);
|
||||
}
|
||||
};
|
||||
});
|
||||
sc.fn.displayCodes(sc.cfg.codes)
|
||||
for (const code of codes)
|
||||
$('.sax-panel-item.Code[aria-code="' + code + '"]').addClass('sel');
|
||||
}
|
||||
sc.fn.storeSelectCode = function ()
|
||||
{
|
||||
//sax.debug('storeSelectCode', sc.cfg, sc.selectedCodes);
|
||||
if (sc.cfg.fnCallback) sc.cfg.fnCallback(sc.selectedCodes);
|
||||
sc.$dlg.dialog('close');
|
||||
delete sc.cfg;
|
||||
delete sc.selectedCodes;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sc.fn.init = function ()
|
||||
{
|
||||
if (!sc.$dlg) return;
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sc.fn.storeSelectCode(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sc.$dlg = $('#dlgSelectCode').dialog(opt);
|
||||
$('.sax-button.Select', sc.$dlg).on('click', function () { sc.fn.onClickSelect(); });
|
||||
$('.sax-button.Remove', sc.$dlg).on('click', function () { sc.fn.onClickRemove(); });
|
||||
}
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
/* The End */
|
||||
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
* Admin - Item selection.
|
||||
*/
|
||||
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
"use strict";
|
||||
let si = sax.data.selectItem = sax.data.selectItem || { items: {}, fn: {}, $dlg: {}, itemIdPrefix: 'Itm_' };
|
||||
|
||||
//--------------------------------------------------------------
|
||||
/*
|
||||
* Item selection config:
|
||||
* - caption - dialog title.
|
||||
* - items - list of objects: { id, name }
|
||||
* - itemId - currently selected item.
|
||||
* - fnCallback - method to call on completion to store selected item.
|
||||
*/
|
||||
si.fn.selectItem = function (cfg)
|
||||
{
|
||||
si.fn.init();
|
||||
si.cfg = cfg;
|
||||
si.itemId = cfg.itemId;
|
||||
si.fn.showSelectItem();
|
||||
}
|
||||
si.fn.showSelectItem = function ()
|
||||
{
|
||||
$('.SelectedItemName', si.$dlg).text(si.fn.getItemName(si.itemId));
|
||||
$('#ifItemFilter', si.$dlg).val('');
|
||||
si.fn.displayItems();
|
||||
sax.openDialog(si.$dlg.dialog('option', { title: si.cfg.caption || 'Select Item' }), 400, 600);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
si.fn.compareItems = function (a, b)
|
||||
{
|
||||
var comparison = a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
||||
if (comparison === 0)
|
||||
return a.name.localeCompare(b.name);
|
||||
return comparison;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
si.fn.displayItems = function ()
|
||||
{
|
||||
let filter = $('#ifItemFilter', si.$dlg).val();
|
||||
let reFilter = new RegExp(sax.escapeRegExp((filter || '').trim()), 'i');
|
||||
let $itemsAvail = $('.sax-selectItem-items.AvailableItems').empty();
|
||||
let $itemTmpl = $('.sax-panel-item-template .sax-panel-item.Item');
|
||||
let items = [...si.cfg.items];
|
||||
items.sort(si.fn.compareItems);
|
||||
for (let rgnIdx = 0; rgnIdx < items.length; rgnIdx++)
|
||||
{
|
||||
let item = items[rgnIdx];
|
||||
let id = item.id;
|
||||
if (filter && !item.name.match(reFilter)) continue;
|
||||
let $item = $itemTmpl.clone();
|
||||
$item.prop('id', si.itemIdPrefix + id).on('click', function () { si.fn.onClickItem(id); }).on('dblclick', function () { si.fn.onDblClickItem(id); }).find('.ItemName').text(item.name).end();
|
||||
if (id == si.itemId) $item.addClass('sel');
|
||||
$itemsAvail.append($item);
|
||||
}
|
||||
}
|
||||
si.fn.getItem = function (id)
|
||||
{
|
||||
for (let rgnIdx = 0; rgnIdx < si.cfg.items.length; rgnIdx++)
|
||||
{
|
||||
let item = si.cfg.items[rgnIdx];
|
||||
if (item.id == id) return item;
|
||||
}
|
||||
}
|
||||
si.fn.getItemName = function (id)
|
||||
{
|
||||
let item = si.fn.getItem(id);
|
||||
return item ? item.name : '';
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
si.fn.onClickItem = function (id)
|
||||
{
|
||||
$('.SelectedItemName', si.$dlg).text(si.fn.getItemName(si.itemId = id));
|
||||
$('.sax-panel-item.Item').removeClass('sel');
|
||||
$('.sax-panel-item.Item#' + si.itemIdPrefix + id).addClass('sel');
|
||||
}
|
||||
si.fn.onDblClickItem = function (id)
|
||||
{
|
||||
si.itemId = id;
|
||||
si.fn.storeSelectItem();
|
||||
}
|
||||
si.fn.storeSelectItem = function ()
|
||||
{
|
||||
if (!si.itemId) return;
|
||||
let item = si.fn.getItem(si.itemId);
|
||||
if (!item) return;
|
||||
if (si.cfg.fnCallback) si.cfg.fnCallback(item);
|
||||
si.$dlg.dialog('close');
|
||||
si.fn.cleanUp();
|
||||
}
|
||||
si.fn.cleanUp = function ()
|
||||
{
|
||||
delete si.cfg;
|
||||
delete si.itemId;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
si.fn.onDlgSize = function ()
|
||||
{
|
||||
let $pnl = $('.sax-selectItem-items.AvailableItems');
|
||||
$pnl.outerHeight(Math.floor(si.$dlg.innerHeight() - $pnl.position().top - ($pnl.outerHeight(true) - $pnl.innerHeight())));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
si.fn.init = function ()
|
||||
{
|
||||
if (!si.$dlg) return;
|
||||
var opt = sax.dlgOpts();
|
||||
opt.open = function (evt, ui) { si.fn.onDlgSize(); };
|
||||
opt.resize = function (evt, ui) { si.fn.onDlgSize(); };
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { si.fn.storeSelectItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { si.fn.cleanUp(); $(this).dialog('close'); };
|
||||
si.$dlg = $('#dlgSelectItem').dialog(opt);
|
||||
}
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
/* The End */
|
||||
@@ -1,136 +1,146 @@
|
||||
/*
|
||||
* Admin - Sport page scripts.
|
||||
*/
|
||||
"use strict";
|
||||
sax.itemIdPrefix = 'Itm_';
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshResults = function (delay)
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Sport/Ajax/GetList', formId: 'frmSportFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty();
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.Sport', $results);
|
||||
if (!response.success) return;
|
||||
// Items.
|
||||
var items = response.sports;
|
||||
if (!items.length)
|
||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||
{
|
||||
let item = items[itemIdx];
|
||||
let $item = $templ.clone();
|
||||
sax.populateItem($item, item);
|
||||
$items.append($item);
|
||||
}
|
||||
$items.fadeIn(50);
|
||||
}
|
||||
sax.populateItem = function ($item, item)
|
||||
{
|
||||
if (!item) return;
|
||||
$item.prop('id', sax.itemIdPrefix + item.id);
|
||||
$('.SportName', $item).text(item.name);
|
||||
$('.SportType', $item).text(item.typeDesc);
|
||||
$('.SportCategory', $item).text(item.categoryDesc);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
}
|
||||
"use strict";
|
||||
sax.itemIdPrefix = 'Itm_';
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.createItem = function ()
|
||||
{
|
||||
$('.SportId,input[type="text"],textarea,select', sax.$frm.sport).val('');
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.sport.dialog('option', 'title', sax.dlg.title.createSport);
|
||||
sax.openDialog(sax.$dlg.sport, 600, 600);
|
||||
}
|
||||
sax.doCreateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.SportId', sax.$frm.sportId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Sport/Ajax/GetItem', formId: 'frmSportId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
//sax.debug('onUpdateItem', response);
|
||||
let $frm = sax.$frm.sport;
|
||||
$('.SportId,input[type="text"],textarea,select', $frm).val('');
|
||||
if (!response.success) return;
|
||||
let item = response.sport;
|
||||
$('.SportId', $frm).val(item.id);
|
||||
$('.SportName', $frm).val(item.name);
|
||||
$('.SportType', $frm).val(item.typeCode);
|
||||
$('.SportCategory', $frm).val(item.categoryCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.sport.dialog('option', 'title', sax.dlg.title.updateSport);
|
||||
sax.openDialog(sax.$dlg.sport, 600, 600);
|
||||
}
|
||||
sax.doUpdateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Sport/Ajax/StoreItem', formId: 'frmSport', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
//sax.debug('onStoreItem', response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.$dlg.sport.dialog('close');
|
||||
|
||||
var item = response.sport;
|
||||
var $item = $('#' + sax.itemIdPrefix + item.id);
|
||||
if (!$item.length)
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshResults = function (delay)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
$item = $('.sax-panel-item-template .sax-panel-item.Sport', $results).clone();
|
||||
$('.sax-panel-item-list', $results).prepend($item).show();
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Sport/Ajax/GetList', formId: 'frmSportFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty();
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.Sport', $results);
|
||||
if (!response.success) return;
|
||||
// Reference data - Statuses.
|
||||
if (response.defaultStatusCode) sax.data.defaultStatusCode = response.defaultStatusCode;
|
||||
if (response.statuses)
|
||||
sax.populateSelectCodeDesc('#cbSportStatus', response.statuses);
|
||||
// Items.
|
||||
var items = response.sports;
|
||||
if (!items.length)
|
||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||
{
|
||||
let item = items[itemIdx];
|
||||
let $item = $templ.clone();
|
||||
sax.populateItem($item, item);
|
||||
$items.append($item);
|
||||
}
|
||||
$items.fadeIn(50);
|
||||
}
|
||||
sax.populateItem = function ($item, item)
|
||||
{
|
||||
if (!item) return;
|
||||
$item.prop('id', sax.itemIdPrefix + item.id);
|
||||
$('.SportName', $item).text(item.name);
|
||||
$('.StatusDesc', $item).text(item.statusDesc);
|
||||
$('.sax-action.sax-item-update', $item).off('click').on('click', function () { sax.updateItem(item.id) })
|
||||
}
|
||||
sax.populateItem($item, item)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$('.sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input').on('keydown', function () { sax.clearControlError(this); });
|
||||
//--------------------------------------------------------------
|
||||
sax.createItem = function ()
|
||||
{
|
||||
let $frm = sax.$frm.sport;
|
||||
$('.SportId,input[type="text"],textarea,select', $frm).val('');
|
||||
$('.SportStatus', $frm).val(sax.data.defaultStatusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.sport.dialog('option', 'title', sax.dlg.title.createSport);
|
||||
sax.openDialog(sax.$dlg.sport, 600, 600);
|
||||
}
|
||||
sax.doCreateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
sax.$frm.sportId = $('#frmSportId');
|
||||
sax.$frm.sport = $('#frmSport');
|
||||
//--------------------------------------------------------------
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.SportId', sax.$frm.sportId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Sport/Ajax/GetItem', formId: 'frmSportId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
//sax.debug('onUpdateItem', response);
|
||||
let $frm = sax.$frm.sport;
|
||||
$('.SportId,input[type="text"],textarea,select', $frm).val('');
|
||||
if (!response.success) return;
|
||||
let item = response.sport;
|
||||
$('.SportId', $frm).val(item.id);
|
||||
$('.SportName', $frm).val(item.name);
|
||||
$('.SportStatus', $frm).val(item.statusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.$dlg.sport.dialog('option', 'title', sax.dlg.title.updateSport);
|
||||
sax.openDialog(sax.$dlg.sport, 600, 600);
|
||||
}
|
||||
sax.doUpdateItem = function ()
|
||||
{
|
||||
sax.storeItem();
|
||||
}
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.sport = $('#dlgSport').dialog(opt);
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Sport/Ajax/StoreItem', formId: 'frmSport', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
//sax.debug('onStoreItem', response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.$dlg.sport.dialog('close');
|
||||
|
||||
setTimeout(sax.refreshResults, 250);
|
||||
});
|
||||
var item = response.sport;
|
||||
var $item = $('#' + sax.itemIdPrefix + item.id);
|
||||
if (!$item.length)
|
||||
{
|
||||
var $results = $('.sax-panel-results');
|
||||
$item = $('.sax-panel-item-template .sax-panel-item.Sport', $results).clone();
|
||||
$('.sax-panel-item-list', $results).prepend($item).show();
|
||||
}
|
||||
sax.populateItem($item, item)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
$('.sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input').on('input', function () { sax.clearControlError(this); });
|
||||
|
||||
sax.$frm.filter = $('#frmSportFilter');
|
||||
$('.FilterSport', sax.$frm.filter).on('input', function () { sax.refreshResults(250); });
|
||||
sax.$frm.sportId = $('#frmSportId');
|
||||
sax.$frm.sport = $('#frmSport');
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.sport = $('#dlgSport').dialog(opt);
|
||||
|
||||
setTimeout(sax.refreshResults, 250);
|
||||
});
|
||||
|
||||
}(window, window.document));
|
||||
|
||||
/* The End */
|
||||
@@ -31,9 +31,13 @@
|
||||
var $items = $('.sax-panel-item-list', $results).hide().empty();
|
||||
var $templ = $('.sax-panel-item-template .sax-panel-item.User', $results);
|
||||
if (!response.success) return;
|
||||
// Reference data.
|
||||
// Reference data - Roles.
|
||||
if (response.userRoles && response.userRoles.length)
|
||||
sax.data.userRoles = response.userRoles;
|
||||
// Reference data - Statuses.
|
||||
if (response.defaultStatusCode) sax.data.defaultStatusCode = response.defaultStatusCode;
|
||||
if (response.statuses)
|
||||
sax.populateSelectCodeDesc('#cbUserStatus', response.statuses);
|
||||
// Items.
|
||||
var items = response.users;
|
||||
if (!items.length)
|
||||
@@ -72,7 +76,7 @@
|
||||
sax.selectUserRoleConfig = sax.selectUserRoleConfig || { caption: sax.dlg.title.selectUserRoles, width: 520, fnCallback: sax.updateUserRoles };
|
||||
sax.selectUserRoleConfig.codes = sax.data.userRoles;
|
||||
sax.selectUserRoleConfig.selectedCodes = sax.userAccount.userRoleCodes || [];
|
||||
sax.codeSelection.fn.openCodeSelection(sax.selectUserRoleConfig);
|
||||
sax.selectCode.fn.openSelectCode(sax.selectUserRoleConfig);
|
||||
}
|
||||
sax.updateUserRoles = function (userRoleCodes)
|
||||
{
|
||||
@@ -97,7 +101,9 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.createItem = function ()
|
||||
{
|
||||
$('.UserAccountId,.UserRoleCodes,input[type="text"],textarea,select', sax.$frm.user).val('');
|
||||
let $frm = sax.$frm.user;
|
||||
$('.UserAccountId,.UserRoleCodes,input[type="text"],textarea,select', $frm).val('');
|
||||
$('.UserStatus', $frm).val(sax.data.defaultStatusCode);
|
||||
sax.clearControlErrors();
|
||||
sax.userAccount = { userRoleCodes: [] };
|
||||
sax.$dlg.user.dialog('option', 'title', sax.dlg.title.createUser);
|
||||
@@ -130,6 +136,7 @@
|
||||
$('.UserLastName', $frm).val(item.lastName);
|
||||
$('.UserRoles', $frm).val(sax.getSelectedUserRoleDescs().join('\n'));
|
||||
$('#ifUserRoleCodes').val(item.userRoleCodes.join(sax.data.userRoleCodeDelim));
|
||||
$('.UserStatus', $frm).val(item.statusCode);
|
||||
sax.$dlg.user.dialog('option', 'title', sax.dlg.title.updateUser);
|
||||
sax.openDialog(sax.$dlg.user, 600, 600);
|
||||
}
|
||||
@@ -167,8 +174,11 @@
|
||||
{
|
||||
$('.sax-action.sax-item-create').on('click', function () { sax.createItem(); });
|
||||
$('.sax-action.sax-results-refresh').on('click', function () { sax.refreshResults(); });
|
||||
$('.sax-input,.sax-select').on('keydown click', function () { sax.clearControlError(this); });
|
||||
$('.sax-input').on('input', function () { sax.clearControlError(this); });
|
||||
$('.sax-select').on('click', function () { sax.clearControlError(this); });
|
||||
|
||||
sax.$frm.filter = $('#frmUserFilter');
|
||||
$('.FilterUser', sax.$frm.filter).on('input', function () { sax.refreshResults(250); });
|
||||
sax.$frm.userId = $('#frmUserId');
|
||||
sax.$frm.user = $('#frmUser');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user