/* * Sport Experience scripts. */ (function (win, doc, undef) { //-------------------------------------------------------------- "use strict"; let se = sax.sportExperience = { fn: {}, ajax: {}, data: {}, $pnl: {}, $frm: {}, $dlg: {} }; //-------------------------------------------------------------- sax.showSportExperience = function (usrSpt) { //sax.debug('showSportExperience', usrSpt); $('.sax-header .SportName', se.$pnl.sportExp).text(usrSpt.sportName); $('.sax-panel-section').slideUp(750, function () { se.$pnl.sportExp.slideDown(750); }); se.$dlg.sportExp.dialog('option', { 'title': sax.lbl.sportExperience + ' - ' + usrSpt.sportName }); let frm = $('#frmProfileSportId'); $('.UserSportId', frm).val(usrSpt.id); $('.UserSportId', se.$frm.sportExp).val(usrSpt.id); se.fn.refreshResults(); } se.fn.refreshResults = function () { let frm = $('#frmProfileSportId'); se.ajax.sportExperiences = se.ajax.sportExperiences || { url: sax.url.base + 'UserSport/Ajax/GetExperienceList', formId: frm.prop('id'), callbackFn: se.fn.handleSportExperiencesResponse }; sax.doAjaxRequest(se.ajax.sportExperiences, 50); } se.fn.handleSportExperiencesResponse = function (response) { //sax.debug('handleSportExperiencesResponse', response); if (!response.success) return; let sport = response.sport; $('.sax-form-control.ExperienceSpeciality', se.$dlg.sportExp).toggle(!sport.speciality.notRelevant); $('.sax-form-control.ExperienceSpeciality .sax-label-text', se.$dlg.sportExp).text(sport.speciality.label || sax.lbl.speciality); let $results = se.$pnl.results; let $msgs = $('.sax-panel-messages', $results).empty(); let $list = $('.sax-panel-item-list', $results).hide().empty(); let items = response.experiences; se.idx = 0; for (let itemIdx = 0; itemIdx < items.length; itemIdx++) { let item = items[itemIdx]; item.idx = ++se.idx; let $item = se.fn.getItemTemplate(); $('.ExperiencePeriod', $item).text(item.period); $('.ExperienceSummary', $item).text(item.summary); $('.ExperienceTeam', $item).text(item.team); $('.ExperienceLeague', $item).text(item.league); $('.ExperienceSpeciality', $item).text(item.speciality); let $mnu = $('.sax-burger .sax-dropdown-menu', $item).empty(); $mnu.append(se.fn.getMenuOption(se.fn.getItemActionTemplate(), sax.lbl.edit, function () { se.fn.updateSportExperience(item, $item); }, 'sax-edit')); $('.sax-header .sax-caption', $item).on('click', function () { se.fn.updateSportExperience(item, $item); }); $('.sax-content', $item).on('dblclick', function () { se.fn.updateSportExperience(item, $item); }); $list.append($item); } $list.show(); } //-------------------------------------------------------------- se.fn.getItemActionTemplate = function () { return $('.sax-panel-item-template ul.sax-dropdown-menu.SportExperience li', se.$pnl.results).clone(); } se.fn.getItemTemplate = function (idx) { return $('.sax-panel-item-template .sax-panel-item.SportExperience', se.$pnl.results).clone(); } se.fn.getMenuOption = function ($opt, lbl, fn, cls) { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } //-------------------------------------------------------------- sax.addSportExperience = function () { //sax.debug('addSportExperience') se.fn.clearSportExperience(); sax.openDialog(se.$dlg.sportExp, 560, 600); } se.fn.clearSportExperience = function () { let frm = se.$frm.sportExp; $('.sax-input,.sax-textarea,.sax-select,.UserSportExperienceId,.UserSportExperienceExists', frm).val('').prop('autofocus', null); sax.clearControlErrors(frm); } se.fn.updateSportExperience = function (item, $item) { //sax.debug('updateSportExperience', item); let frm = se.$frm.sportExpId; $('.UserSportExperienceId', se.$frm.sportExpId).val(item.id); se.ajax.sportExp = se.ajax.sportExp || { url: sax.url.base + 'UserSport/Ajax/GetExperience', formId: frm.prop('id'), callbackFn: se.fn.doUpdateSportExperience }; sax.doAjaxRequest(se.ajax.sportExp, 50); } se.fn.doUpdateSportExperience = function (response) { //sax.debug('doUpdateSportExperience', response); if (!response.success) return; let item = response.experience; let frm = se.$frm.sportExp; se.fn.clearSportExperience(); $('input.UserSportExperienceId', frm).val(item.id); $('input.UserSportExperienceExists', frm).val(1); //sax.debug(Date.parse(item.periodFrom_YMD)); $('.sax-input.ExperiencePeriodFrom', frm).datepicker('setDate', new Date(item.periodFrom_YMD)); $('.sax-input.ExperiencePeriodTo', frm).datepicker('setDate', item.periodTo_YMD ? new Date(item.periodTo_YMD) : null); $('.sax-textarea.ExperienceSummary', frm).val(item.summary).prop('autofocus', true); $('.sax-input.ExperienceOrganisationName', frm).val(item.organisationName); $('.sax-input.ExperienceTeam', frm).val(item.team); $('.sax-input.ExperienceLeague', frm).val(item.league); $('.sax-input.ExperienceSpeciality', frm).val(item.speciality); $('.sax-textarea.ExperienceAwards', frm).val(item.awards); sax.openDialog(se.$dlg.sportExp, 560, 600); } //-------------------------------------------------------------- se.fn.storeSportExperience = function () { //sax.debug('storeSportExperience'); let frm = se.$frm.sportExp; se.ajax.storeSportExp = se.ajax.storeSportExp || { url: sax.url.base + 'UserSport/Ajax/StoreExperience', formId: frm.prop('id'), callbackFn: se.fn.onStoreSportExperience }; sax.doAjaxRequest(se.ajax.storeSportExp, 50); } se.fn.onStoreSportExperience = function (response) { //sax.debug('onStoreSportExperience', response); sax.refreshControlValues(response.controlValues, se.$dlg.sprExp); if (!response.success) return; se.$dlg.sportExp.dialog('close'); se.fn.refreshResults(); } sax.closeProfileSportExperience = function () { se.$pnl.sportExp.slideUp(750, function () { $('.sax-panel-section').slideDown(750); }); sax.refreshProfileSportsInfo(50); } //-------------------------------------------------------------- $(function () { se.$pnl.sportExp = $('.sax-panel.ProfileSportExperience'); se.$pnl.hdr = $('.sax-header', se.$pnl.sportExp); se.$pnl.results = $('.sax-panel-results.ProfileSportExperiences', se.$pnl.sportExp); se.$frm.sportExpId = $('#frmSportExperienceId'); var opt = sax.dlgOpts(); opt.buttons[sax.dlg.btn.ok] = function () { se.fn.storeSportExperience(); }; opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); }; se.$dlg.sportExp = $('#dlgSportExperience').dialog(opt); se.$frm.sportExp = $('#frmSportExperience', se.$dlg.sportExp); $('input,textarea', se.$frm.sportExp).on('input', function () { sax.clearControlError(this); }).on('change', function () { sax.clearControlError(this); }); $('select', se.$frm.sportExp).on('change', function () { sax.clearControlError(this); }); sax.initCalendars('#frmSportExperience .sax-calendar', { changeMonth: true, changeYear: true, yearRange: '-99:+00' }); se.$dpPeriodFrom = $('.sax-calendar.ExperiencePeriodFrom', se.$frm.sportExp); se.$dpPeriodTo = $('.sax-calendar.ExperiencePeriodTo', se.$frm.sportExp); se.$dpPeriodFrom.datepicker({ onSelect: function () { $(this).trigger('change'); } }); sax.allowClearCalendar('#frmSportExperience .sax-calendar.ExperiencePeriodTo'); }); //-------------------------------------------------------------- }(window, window.document)); /* The End */