From 7581da6e2b3cff265b8c8d7714f623eeaf6a80e4 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 4 Feb 2020 11:02:03 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=8A=80=E6=9C=AF=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5html+js+css?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modals/admin-edit-repertoire-modal.js | 31 +++++++++ .../javascripts/admins/repertoires/index.js | 65 +++++++++++++++++++ .../admins/repertoires_controller.rb | 21 ++++++ app/views/admins/repertoires/destroy.js.erb | 2 + app/views/admins/repertoires/index.html.erb | 4 +- .../shared/_create_repertoire_modal.html.erb | 28 ++++++++ app/views/admins/repertoires/update.js.erb | 2 + 7 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 app/assets/javascripts/admins/modals/admin-edit-repertoire-modal.js create mode 100644 app/assets/javascripts/admins/repertoires/index.js create mode 100644 app/views/admins/repertoires/destroy.js.erb create mode 100644 app/views/admins/repertoires/update.js.erb diff --git a/app/assets/javascripts/admins/modals/admin-edit-repertoire-modal.js b/app/assets/javascripts/admins/modals/admin-edit-repertoire-modal.js new file mode 100644 index 000000000..f316c70b9 --- /dev/null +++ b/app/assets/javascripts/admins/modals/admin-edit-repertoire-modal.js @@ -0,0 +1,31 @@ +$(document).on('turbolinks:load', function() { + $('.admin-modal-container').on('show.bs.modal', '.modal.admin-edit-repertoire-modal', function(){ + var $modal = $('.modal.admin-edit-repertoire-modal'); + var $form = $modal.find('form.admin-edit-repertoire-form'); + + $form.validate({ + errorElement: 'span', + errorClass: 'danger text-danger', + rules: { + 'repertoire[name]': { + required: true, + maxlength: 20 + } + } + }); + + $modal.on('click', '.submit-btn', function(){ + $form.find('.error').html(''); + var url = $form.attr('action'); + + if ($form.valid()) { + $.ajax({ + method: 'PATCH', + dataType: 'script', + url: url, + data: $form.serialize() + }); + } + }); + }); +}); \ No newline at end of file diff --git a/app/assets/javascripts/admins/repertoires/index.js b/app/assets/javascripts/admins/repertoires/index.js new file mode 100644 index 000000000..4c4990a75 --- /dev/null +++ b/app/assets/javascripts/admins/repertoires/index.js @@ -0,0 +1,65 @@ +$(document).on('turbolinks:load', function() { + if ($('body.admins-repertoires-index-page').length > 0) { + + // ============== 新建 =============== + var $modal = $('.modal.admin-create-repertoire-modal'); + var $form = $modal.find('form.admin-create-repertoire-form'); + var $nameInput = $form.find('input[name="name"]'); + + $form.validate({ + errorElement: 'span', + errorClass: 'danger text-danger', + rules: { + name: { + required: true + } + } + }); + + // modal ready fire + $modal.on('show.bs.modal', function () { + $nameInput.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); + } + }); + } + }); + + $(".repertoire-list-container").on("change", '.repertoire-source-form', function () { + var s_id = $(this).attr("data-id"); + var s_value = $(this).val(); + var s_name = $(this).attr("name"); + var json = {}; + json[s_name] = s_value; + $.ajax({ + url: "/admins/repertoires/" + s_id, + type: "PUT", + dataType:'script', + data: json + }); + }); + } +}); \ No newline at end of file diff --git a/app/controllers/admins/repertoires_controller.rb b/app/controllers/admins/repertoires_controller.rb index 19cd31f98..3ac6960e3 100644 --- a/app/controllers/admins/repertoires_controller.rb +++ b/app/controllers/admins/repertoires_controller.rb @@ -8,6 +8,27 @@ class Admins::RepertoiresController < Admins::BaseController @repertoire = current_repertoire end + def update + Rails.logger.info("#################--------") + if params[:repertoire] && params[:repertoire][:name].present? + name = params[:repertoire][:name].to_s.strip + current_repertoire.update_attributes!(name: name) + end + @repertoires = Repertoire.all + end + + def create + name = params[:name].to_s.strip + return render_error('名称重复') if Repertoire.where(name: name).exists? + Repertoire.create!(name: name) + render_ok + end + + def destroy + @repertoire_id = params[:id] + current_repertoire.destroy! + end + private def current_repertoire @_current_repertoire = Repertoire.find params[:id] diff --git a/app/views/admins/repertoires/destroy.js.erb b/app/views/admins/repertoires/destroy.js.erb new file mode 100644 index 000000000..1190f64f0 --- /dev/null +++ b/app/views/admins/repertoires/destroy.js.erb @@ -0,0 +1,2 @@ +$.notify({ message: '删除成功' }); +$(".discipline-item-<%= @repertoire_id %>").remove(); \ No newline at end of file diff --git a/app/views/admins/repertoires/index.html.erb b/app/views/admins/repertoires/index.html.erb index 23b06cc1e..58a8017c8 100644 --- a/app/views/admins/repertoires/index.html.erb +++ b/app/views/admins/repertoires/index.html.erb @@ -4,11 +4,11 @@