// selectedBlog = [id, blog_id, description, status] const selectedBlog = []; // Current state let currentPageNo = 1; let currentPageSize = 10; const filterParams = { blog_id: 0, description: '', status: -1 }; $('#add-form').submit(function(e){ e.preventDefault(); const inputs = $('#add-form input, #add-form select'); const data = {}; inputs.each(function() { data[this.name] = $(this).val(); }); $.ajax({ method: 'post', url: '/blog_app_articles/store', dataType: 'json', data: data, success: function(res) { loadPage(filterParams); alert(res.message); }, error: function(err) { alertErr(err.responseJSON.errors); } }); }); $('#update-form').submit(function(e){ e.preventDefault(); const inputs = $('#update-form input, #update-form select'); const data = {}; inputs.each(function() { data[this.name] = $(this).val(); }); $.ajax({ method: 'post', url: '/blog_app_articles/update', dataType: 'json', data: data, success: function(res) { loadPage(filterParams); alert(res.message); }, error: function(err) { alertErr(err.responseJSON.errors); } }); }); $('#filter-form').submit(function(e){ e.preventDefault(); const inputs = $('#filter-form input, #filter-form select'); inputs.each(function() { filterParams[this.name] = $(this).val(); }); // Set pageNo back to 1 when filter blogs currentPageNo = 1; loadPage(filterParams); }); function deleteBlog(el) { const r = confirm('Are you sure?'); if(r === false) { return; } const data = { id: $(el).data('id') }; $.ajax({ method: 'post', url: '/blog_app_articles/delete', dataType: 'json', data: data, success: function(res) { loadPage(filterParams); }, error: function(err) { alertErr(err.responseJSON.errors); } }); } function bindRowSelectEvent() { $('#blog-table tr').click(function(e) { if($(e.target)[0].tagName.toLowerCase() === 'button' || !$(e.target).parent().data('id')) { return; } $('#add-form-wrapper').hide(); $('#update-form-wrapper').show(); selectedBlog[0] = $(this).data('id'); selectedBlog[1] = $(this).find('td').eq(0).text(); selectedBlog[2] = $(this).find('td').eq(1).text(); selectedBlog[3] = $(this).find('td').eq(2).data('status'); const inputs = $('#update-form input, #update-form select'); $.each(selectedBlog, function(index, value) { $(inputs[index]).val(value); }); }); } function showAddForm() { $('#add-form-wrapper').show(); $('#update-form-wrapper').hide(); } function loadPage(params = null) { $('#blog-table').hide(); $('#blog-table-loading').show(); const data = { pageNo: currentPageNo, pageSize: currentPageSize }; if(params) { data.params = params; } $.ajax({ method: 'post', url: '/blog_app_articles/getBlogs', dataType: 'json', data: data, success: function(res) { $('#blog-table').show(); $('#blog-table-loading').hide(); if (res.result.length === 0 && res.pageNo > 0) { currentPageNo--; return loadPage(filterParams); } renderBlogTable(res.result); renderPagination(res.total, res.pageSize, res.pageNo + 1); }, error: function(err) { $('#blog-table').show(); $('#blog-table-loading').hide(); alertErr(err.responseJSON.errors); } }); } function getBlogs(params = null, pageNo = 1, pageSize = 10) { $('#blog-table').hide(); $('#blog-table-loading').show(); const data = { params, pageNo, pageSize }; $.ajax({ method: 'post', url: '/blog_app_articles/getBlogs', dataType: 'json', data: data, success: function(res) { $('#blog-table').show(); $('#blog-table-loading').hide(); renderBlogTable(res.result); }, error: function(err) { $('#blog-table').show(); $('#blog-table-loading').hide(); alertErr(err.responseJSON.errors); } }); } function renderBlogTable(result) { $('#blog-table tbody').empty(); if (result.length === 0) { const tr = "