// rowCells = [group_key, answers_key, answers, view] let rowCells = []; // selectedGroupCells = [group_key, answers_key, answers] let selectedGroupCells = []; const $frmSearchSurveyCards = $('#frmSearchSurveyCards'); function selectCardBySurveyID(el) { rowCells = $(el).parent().parent().children(); $('#selected-survey').text(`${rowCells[1].innerText}: ${rowCells[2].innerText}`); selectedGroupCells[0] = rowCells[0].innerText; selectedGroupCells[1] = rowCells[1].innerText; selectedGroupCells[2] = rowCells[2].innerText; getAvailableAndAssignedSurveyCards(); $frmSearchSurveyCards.find('input').val(''); } $('#card-cat').change(function () { getAvailableAndAssignedSurveyCards(); }) $(function () { $frmSearchSurveyCards.submit(function (e) { e.preventDefault(); const form = $(this); const search = form.find('input').val(); getAvailableAndAssignedSurveyCards(search); }); }); function getAvailableAndAssignedSurveyCards(search) { search = search || ''; $('#selected-survey-wrapper').show(); $('#loading-message').show(); $('#card-tables-wrapper').hide(); let param = { answersKey: selectedGroupCells[1], cardCat: $('#card-cat').val(), search: search, } $.ajax({ method: 'post', url: '/feed/getAvailableAndAssignedSurveyCards', dataType: 'json', data: param }) .done(function (data) { $('#loading-message').hide(); $('#card-tables-wrapper').show(); let availableCards = data.result.availableCards; let assignedCards = data.result.assignedCards; createAvailableCardsTable(availableCards); createAssignedCardsTable(assignedCards); }) .fail(function (err) { $('#loading-message').hide(); $('#card-tables-wrapper').show(); console.log(err); }); } function createAvailableCardsTable(result) { $('#available-cards tbody').empty(); if (result.length === 0) { let tr = "emptyempty"; $('#available-cards tbody').append(tr); return; } for (index in result) { var id = result[index].id; var name = result[index].name; var title = result[index].title; var tr = ""; tr += `${name}
${id} - ${title}`; tr += ``; tr += ""; $('#available-cards tbody').append(tr); } } function createAssignedCardsTable(result) { $('#assigned-cards tbody').empty(); if (result.length === 0) { let tr = "emptyempty" $('#assigned-cards tbody').append(tr); return; } for (let index in result) { const id = result[index].id; const name = result[index].name; const title = result[index].title; const added = result[index].added; let tr = ""; tr += ``; tr += `${name}
${id} - ${title}`; tr += ""; $('#assigned-cards tbody').append(tr); } } function assignCard(id) { let data = {id, answersKey: selectedGroupCells[1]}; $.ajax({ method: 'post', url: '/feed/assignSurveyCard', dataType: 'json', data: data }) .done(function (res) { getAvailableAndAssignedSurveyCards(); }) .fail(function (err) { console.log(err); }); } function unassignCard(id) { let data = {id, answersKey: selectedGroupCells[1]}; $.ajax({ method: 'post', url: '/feed/unassignSurveyCard', dataType: 'json', data: data }) .done(function (res) { getAvailableAndAssignedSurveyCards(); }) .fail(function (err) { console.log(err); }); } $('#survey_filter_btn').click(function () { filterSurvey(); }) function filterSurvey() { $('#survey-loading-message').show(); $('#survey-table').hide(); let data = { groupKey: $('#groupKey').val(), answersKey: $('#answersKey').val(), answers: $('#answers').val() }; $.ajax({ method: 'post', url: '/feed/getOnboardingSurvey', dataType: 'json', data: data }) .done(function (res) { createSurveyTable(res.data.result); renderPagination(res.data.total, res.data.pageSize); $('#survey-loading-message').hide(); $('#survey-table').show(); }) .fail(function (err) { $('#survey-loading-message').hide(); $('#survey-table').show(); let errors = Object.values(err.responseJSON.errors); let message = ''; for (index in errors) { message += errors[index]; } alert(message); }); } function createSurveyTable(result) { $('#survey-table tbody').empty(); if (result.length === 0) { let tr = "emptyemptyemptyempty" $('#survey-table tbody').append(tr); return; } for (let index in result) { const id = result[index].id; const group_key = result[index].group_key; const answers_key = result[index].answers_key; const answers = result[index].answers; let tr = ""; tr += `${group_key}`; tr += `${answers_key}`; tr += `${answers}`; tr += ``; tr += ""; $('#survey-table tbody').append(tr); } bindContenteditableEvent(); } // handle edit answers column let selectedSurveyID = 0; let newAnswers = ''; let oldAnswers = ''; $('#update-answers-btn').click(function () { let data = { id: selectedSurveyID, answers: newAnswers } $.ajax({ method: 'post', url: '/feed/updateSurveyAnswers', dataType: 'json', data: data }) .done(function (res) { $('#edit-btn-wrapper').hide(); alert(res.message); }) .fail(function (err) { $('#edit-btn-wrapper').hide(); let errors = Object.values(err.responseJSON.errors); let message = ''; for (index in errors) { message += errors[index]; } alert(message); }); }); $(document).ready(function () { bindContenteditableEvent(); }) function bindContenteditableEvent() { $('#discard-change-btn').click(function () { $(`td[data-id='${selectedSurveyID}']`).text(oldAnswers); $('#edit-btn-wrapper').hide(); }); const $contenteditable = $('td[contenteditable="true"]'); $contenteditable.on('input', function (e) { showAnswersControl(e); newAnswers = e.target.innerText; }); $contenteditable.focus(function (e) { showAnswersControl(e); selectedSurveyID = e.target.getAttribute('data-id'); newAnswers = e.target.innerText; oldAnswers = e.target.innerText; }); } // if user click anywhere outside the answers content then hide the answers control window.onclick = function (e) { if (!e.target.hasAttribute('data-id') && e.target.id !== 'edit-btn-wrapper' && !e.target.classList.contains('edit-btn')) { $('#edit-btn-wrapper').hide(); } } function showAnswersControl(e) { // 15 = padding top 15px // 116 = 15px (padding right) + 101px (View column header width) let topPosition = 15 + $('#search-form').height() + e.target.offsetTop; $('#edit-btn-wrapper').css('cssText', ` display: block; top: ${topPosition}px; right: 116px; `); } // handle pagination function renderPagination(total, pageSize) { $('#survey-pagination').empty(); $('#survey-pagination').unbind('page'); $('#survey-pagination').bootpag({ total: Math.ceil(total / pageSize), page: 1, maxVisible: 5, leaps: true, firstLastUse: true, first: '←', last: '→', wrapClass: 'pagination', activeClass: 'active', disabledClass: 'disabled', nextClass: 'next', prevClass: 'prev', lastClass: 'last', firstClass: 'first' }).on("page", function(event, pageNo) { getSurvey(pageNo); }); } function getSurvey(pageNo) { $('#survey-loading-message').show(); $('#survey-table').hide(); let data = { groupKey: $('#groupKey').val(), answersKey: $('#answersKey').val(), answers: $('#answers').val(), pageNo }; $.ajax({ method: 'post', url: '/feed/getOnboardingSurvey', dataType: 'json', data: data }) .done(function (res) { createSurveyTable(res.data.result); $('#survey-loading-message').hide(); $('#survey-table').show(); }) .fail(function (err) { $('#survey-loading-message').hide(); $('#survey-table').show(); let errors = Object.values(err.responseJSON.errors); let message = ''; for (index in errors) { message += errors[index]; } alert(message); }); }