/// /// // import moment = require("moment"); var DoctorSchedule; (function (DoctorSchedule_1) { var recalculateDate = function (dateSpec, action) { dateSpec = parseDate(dateSpec); dateSpec.push((new Date).getFullYear()); dateSpec = dateSpec.reverse(); dateSpec[1]--; var momentDate = moment(dateSpec); momentDate[action](7, 'days'); return momentDate.format('DD.MM'); }; var parseDate = function (string) { return string.split('.').map(function (data) { return parseInt(data); }); }; var getDateColumn = function (row) { return row.find('td:first-child'); }; var nextDate = function (prev, next) { getRows(next).each(function (index) { var date = getDateColumn($(this)).html(); getDateColumn($(this)).html(recalculateDate(date, 'add')); }); setButtonsText(prev, next, 'add'); }; var prevDate = function (prev, next) { getRows(next).each(function (index) { var date = getDateColumn($(this)).html(); getDateColumn($(this)).html(recalculateDate(date, 'subtract')); }); setButtonsText(prev, next, 'subtract'); }; var setButtonsText = function (prev, next, action) { setButtonDate(prev, action); setButtonDate(next, action); }; var setButtonDate = function (button, action) { var dates = button.html().trim().split(' – '); console.log(dates); button.html(recalculateDate(dates[0], action) + ' – ' + recalculateDate(dates[1], action)); }; var getRows = function (element) { return element.parent().find('tr'); }; var DoctorSchedule = (function () { function DoctorSchedule(prevBtn, nextBtn) { var next = nextDate.bind(this); var prev = prevDate.bind(this); prevBtn.on('click', function (e) { e.preventDefault(); prev(prevBtn, nextBtn); }); nextBtn.on('click', function (e) { e.preventDefault(); next(prevBtn, nextBtn); }); } return DoctorSchedule; }()); function init($prevBtn, $nextBtn) { return new DoctorSchedule($prevBtn, $nextBtn); } DoctorSchedule_1.init = init; })(DoctorSchedule || (DoctorSchedule = {}));