/* * Admin - Affiliate page scripts. */ (function (win, doc, undef) { "use strict"; sbm.itemIdPrefix = 'Itm_'; var $results; //-------------------------------------------------------------- sbm.refreshResults = function (delay) { if (!sbm.awaitingRefreshResponse) { var $items = $('.sbm-panel-item-list', $results).fadeOut(200).empty(); var $msgs = $('.sbm-panel-messages', $results).hide().empty().append($('
' + sbm.msg.dataQuerying + '
')).fadeIn(200); } sbm.ajax.refreshResults = sbm.ajax.refreshResults || { url: sbm.url.base + 'Contact/Ajax/List', formId: 'frmAffiliateFilter', callbackFn: sbm.doRefreshResults }; sbm.doAjaxRequest(sbm.ajax.refreshResults, delay || 50); sbm.awaitingRefreshResponse = true; } sbm.getItemTemplate = function () { return $('.sbm-panel-item-template .sbm-panel-item.Affiliate', $results); } sbm.getDropdownItemTemplate = function () { return $('.sbm-panel-item-template .sbm-dropdown-menu.Affiliate li.sbm-dropdown-item', $results); } sbm.doRefreshResults = function (response) { sbm.debug('doRefreshResults', response); delete sbm.awaitingRefreshResponse; sbm.refreshControlValues(response.controlValues); var $msgs = $('.sbm-panel-messages', $results).hide().empty(); var $items = $('.sbm-panel-item-list', $results).hide().empty(); var $tmpl = sbm.getItemTemplate(); sbm.refreshPaging(response, '#frmAffiliateFilter', sbm.refreshResults); if (!response.success) return; // Reference data - Statuses. if (response.defaultStatusCode) sbm.data.defaultStatusCode = response.defaultStatusCode; if (response.statuses) sbm.populateSelectCodeDesc('#cbAffiliateStatus', response.statuses); // Items. var items = response.affiliates; if (!items.length) return $msgs.append($('
' + sbm.msg.dataNoneFound + '
')).fadeIn(500); for (let itemIdx = 0; itemIdx < items.length; itemIdx++) { let item = items[itemIdx]; let $item = $tmpl.clone(); sbm.populateItem($item, item); $items.append($item); } $items.fadeIn(50); } sbm.populateItem = function ($item, item) { if (!item) return; $item.prop('id', sbm.itemIdPrefix + item.id); $('.AffiliateName', $item).text(item.displayName); $('.AffiliateType', $item).text(item.typeDesc); $('.AffiliateAssociationCount', $item).on('click', function () { sbm.onClickAssociationCount(item.id); }).find('.AssociationCount').text(item.associationCount); $('.StatusDesc', $item).text(item.statusDesc).addClass('sbm-status-' + item.statusCode.toLowerCase()); $('.sbm-caption .sbm-action').toggleClass('sbm-action', !item.deleted); if (!item.deleted) { let $mnu = $('ul.sbm-dropdown-menu', $item); $mnu.append(sbm.getDropdownItemTemplate().clone().find('div.sbm-label').text(sbm.lbl.edit).end().on('click', function () { sbm.updateItem(item.id) })); if (item.awaiting) $mnu.append(sbm.getDropdownItemTemplate().clone().find('div.sbm-label').text(sbm.lbl.activate).end().on('click', function () { sbm.activateItem(item.id) })); $('.sbm-header .sbm-action.sbm-item-update', $item).off('click').on('click', function () { sbm.updateItem(item.id) }); $item.off('dblclick').on('dblclick', function () { sbm.updateItem(item.id) }); } $('.sbm-burger', $item).toggle(!!$('.sbm-burger .sbm-dropdown-menu .sbm-dropdown-item', $item).length); $('.sbm-panel-messages', $results).hide().empty(); return $item; } //-------------------------------------------------------------- sbm.createItem = function () { let $frm = sbm.$frm.affiliate; $('.AffiliateId,input[type="text"],textarea,select', $frm).val(''); $('.AffiliateStatus', $frm).val(sbm.data.defaultStatusCode); sbm.clearControlErrors(); sbm.$dlg.affiliate.dialog('option', 'title', sbm.dlg.title.createAffiliate); sbm.openDialog(sbm.$dlg.affiliate, 600, 600); } sbm.doCreateItem = function () { sbm.storeItem(); } //-------------------------------------------------------------- sbm.updateItem = function (id) { $('.AffiliateId', sbm.$frm.affiliateId).val(id); sbm.ajax.updateItem = sbm.ajax.updateItem || { url: sbm.url.base + 'Contact/Ajax/GetItem', formId: 'frmAffiliateId', callbackFn: sbm.onUpdateItem }; sbm.doAjaxRequest(sbm.ajax.updateItem, 50); } sbm.onUpdateItem = function (response) { //sbm.debug('onUpdateItem', response); let $frm = sbm.$frm.affiliate; $('.AffiliateId,input[type="text"],textarea,select', $frm).val(''); if (!response.success) return; let item = response.affiliate; $('.AffiliateId', $frm).val(item.id); $('.AffiliateType', $frm).val(item.typeCode); $('.AffiliateName', $frm).val(item.name); $('.AffiliateNotes', $frm).val(item.notes); $('.AffiliateStatus', $frm).val(item.statusCode); sbm.clearControlErrors(); sbm.$dlg.affiliate.dialog('option', 'title', sbm.dlg.title.updateAffiliate); sbm.openDialog(sbm.$dlg.affiliate, 600, 600); } sbm.doUpdateItem = function () { sbm.storeItem(); } //-------------------------------------------------------------- sbm.storeItem = function () { sbm.ajax.storeItem = sbm.ajax.storeItem || { url: sbm.url.base + 'Contact/Ajax/StoreItem', formId: 'frmAffiliate', callbackFn: sbm.onStoreItem }; sbm.doAjaxRequest(sbm.ajax.storeItem, 50); } sbm.onStoreItem = function (response) { //sbm.debug('onStoreItem', response); sbm.refreshControlValues(response.controlValues); if (!response.success) return; sbm.$dlg.affiliate.dialog('close'); var item = response.affiliate; var $item = $('#' + sbm.itemIdPrefix + item.id); if (!$item.length) { $item = $('.sbm-panel-item-template .sbm-panel-item.Affiliate', $results).clone(); $('.sbm-panel-item-list', $results).prepend($item).show(); } $item.replaceWith(sbm.populateItem(sbm.getItemTemplate(), item)); } //-------------------------------------------------------------- sbm.onClickAssociationCount = function (id) { if (!(id * 1)) return; sbm.doPleaseWait(); let $frm = $('#frmAffiliateId'); $('.AffiliateId', $frm).val(id); $frm.prop('action', sbm.url.base + 'Association').submit(); } //-------------------------------------------------------------- $(function () { $('.sbm-panel-filter .sbm-action.sbm-item-create').on('click', function () { sbm.createItem(); }); $('.sbm-panel-filter .sbm-action.sbm-results-refresh').on('click', function () { sbm.refreshResults(); }); $('.sbm-input, .sbm-textarea').on('input', function () { sbm.clearControlError(this); }); $('.sbm-select').on('change', function () { sbm.clearControlError(this); }); sbm.$frm.filter = $('#frmAffiliateFilter'); $('.FilterAffiliate', sbm.$frm.filter).on('input', function () { sbm.refreshResults(250); }); $('.FilterAffiliateCategory,.FilterAffiliateStatusCategory', sbm.$frm.filter).on('change', function () { sbm.refreshResults(50); }); sbm.$frm.affiliateId = $('#frmAffiliateId'); sbm.$frm.affiliate = $('#frmAffiliate'); $results = $('.sbm-panel-results'); var opt = sbm.dlgOpts(); opt.buttons[sbm.dlg.btn.ok] = function () { sbm.doCreateItem(); }; opt.buttons[sbm.dlg.btn.cancel] = function () { $(this).dialog('close'); }; sbm.$dlg.affiliate = $('#dlgAffiliate').dialog(opt); setTimeout(sbm.refreshResults, 250); }); }(window, window.document)); /* The End */