164 lines
7.2 KiB
JavaScript
164 lines
7.2 KiB
JavaScript
/*
|
|
* Account page scripts.
|
|
*/
|
|
|
|
(function (win, doc, undef)
|
|
{
|
|
"use strict";
|
|
let se = sax.sportExperience = { fn: {}, $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');
|
|
sax.ajax.sportExperiences = sax.ajax.sportExperiences || { url: sax.url.base + 'UserSport/Ajax/GetExperienceList', formId: frm.prop('id'), callbackFn: se.fn.handleSportExperiencesResponse };
|
|
sax.doAjaxRequest(sax.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(item.idx);
|
|
//sax.debug(item, $item);
|
|
$('.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.getItemId = function (idx)
|
|
{
|
|
return 'SptExp_' + idx;
|
|
}
|
|
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().prop('id', se.fn.getItemId(idx));
|
|
}
|
|
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);
|
|
}
|
|
se.fn.updateSportExperience = function (item, $item)
|
|
{
|
|
//sax.debug('updateSportExperience', item);
|
|
let frm = se.$frm.sportExpId;
|
|
$('.UserSportExperienceId', se.$frm.sportExpId).val(item.id);
|
|
sax.ajax.sportExp = sax.ajax.sportExp || { url: sax.url.base + 'UserSport/Ajax/GetExperience', formId: frm.prop('id'), callbackFn: se.fn.doUpdateSportExperience };
|
|
sax.doAjaxRequest(sax.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.openDialog(se.$dlg.sportExp, 560, 600);
|
|
}
|
|
se.fn.storeSportExperience = function ()
|
|
{
|
|
//sax.debug('storeSportExperience');
|
|
let frm = se.$frm.sportExp;
|
|
sax.ajax.storeSportExp = sax.ajax.storeSportExp || { url: sax.url.base + 'UserSport/Ajax/StoreExperience', formId: frm.prop('id'), callbackFn: se.fn.onStoreSportExperience };
|
|
sax.doAjaxRequest(sax.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);
|
|
sax.initCalendars('#dlgSportExperience .sax-calendar', { changeMonth: true, changeYear: true, yearRange: '-99:+00' });
|
|
se.$dpPeriodFrom = $('#dlgSportExperience .sax-calendar.ExperiencePeriodFrom');
|
|
se.$dpPeriodTo = $('#dlgSportExperience .sax-calendar.ExperiencePeriodTo');
|
|
se.$dpPeriodFrom.datepicker({ onSelect: function () { $(this).change(); } });
|
|
sax.allowClearCalendar('#dlgSportExperience .sax-calendar.ExperiencePeriodTo');
|
|
|
|
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.sportExpId = $('#frmSportExperienceId');
|
|
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); });
|
|
});
|
|
|
|
//--------------------------------------------------------------
|
|
|
|
}(window, window.document));
|
|
|
|
/* The End */ |