$(document).on('turbolinks:load', function() { if ($('body.admins-competitions-index-page').length > 0) { $('.modal.admin-upload-file-modal').on('upload:success', function(e, data){ var $imageElement = $('.competition-image-' + data.source_id); $imageElement.attr('src', data.url); $imageElement.show(); $imageElement.next().html('重新上传'); }); } $(".admin-competition-list-form").on("change", '.competitions-hot-select', function () { var s_value = $(this).get(0).checked ? 1 : 0; var json = {}; json["hot"] = s_value; $.ajax({ url: "/admins/competitions/hot_setting", type: "POST", dataType:'json', data: json, success: function(){ $.notify({ message: '操作成功' }); } }); }); // ============== 新增竞赛 =============== var $modal = $('.modal.admin-create-competition-modal'); var $form = $modal.find('form.admin-create-competition-form'); var $competitionNameInput = $form.find('input[name="competition_name"]'); $form.validate({ errorElement: 'span', errorClass: 'danger text-danger', rules: { competition_name: { required: true } } }); // modal ready fire $modal.on('show.bs.modal', function () { $competitionNameInput.val(''); }); $modal.on('click', '.submit-btn', function(){ $form.find('.error').html(''); if ($form.valid()) { var url = $form.data('url'); $.ajax({ method: 'POST', dataType: 'json', url: url, data: $form.serialize(), success: function(){ $.notify({ message: '创建成功' }); $modal.modal('hide'); setTimeout(function(){ window.location.reload(); }, 500); }, error: function(res){ var data = res.responseJSON; $form.find('.error').html(data.message); } }); } }); // 导入学生 var $importScoreModal = $('.modal.admin-import-competition-score-modal'); var $importScoreForm = $importScoreModal.find('form.admin-import-competition-score-form'); var $competitionIdInput = $importScoreForm.find('input[name="competition_id"]'); $importScoreModal.on('show.bs.modal', function(event){ resetFileInputFunc($importScoreModal.find('.upload-file-input')); $importScoreModal.find('.file-names').html('选择文件'); $importScoreModal.find('.upload-file-input').trigger('click'); var $link = $(event.relatedTarget); var competitionId = $link.data('competition-id'); $competitionIdInput.val(competitionId); }); $importScoreModal.on('change', '.upload-file-input', function(e){ var file = $(this)[0].files[0]; $importScoreModal.find('.file-names').html(file ? file.name : '请选择文件'); }); var importUserFormValid = function(){ if($importScoreForm.find('input[name="file"]').val() == undefined || $importScoreForm.find('input[name="file"]').val().length == 0){ $importScoreForm.find('.error').html('请选择文件'); return false; } return true; }; var buildResultMessage = function(data){ var messageHtml = "
导入结果:成功" + data.success + "条,失败"+ data.fail.length + "条
"; if(data.fail.length > 0){ messageHtml += ''; data.fail.forEach(function(item){ messageHtml += ''; }); messageHtml += '
数据失败原因
' + item.data + '' + item.message + '
' } return messageHtml; }; $importScoreModal.on('click', '.submit-btn', function(){ $importScoreForm.find('.error').html(''); if (importUserFormValid()) { $('body').mLoading({ text: '正在导入...' }); $.ajax({ method: 'POST', dataType: 'json', url: '/admins/import_competition_scores', data: new FormData($importScoreForm[0]), processData: false, contentType: false, success: function(data){ $('body').mLoading('destroy'); $importScoreModal.modal('hide'); showMessageModal(buildResultMessage(data), function(){ window.location.reload(); }); }, error: function(res){ $('body').mLoading('destroy'); var data = res.responseJSON; $importScoreForm.find('.error').html(data.message); } }); } }); });