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 @@
- <%= javascript_void_link '新增', class: 'btn btn-primary', data: { toggle: 'modal', target: '.admin-create-repertoires-modal' } %> + <%= javascript_void_link '新增', class: 'btn btn-primary', data: { toggle: 'modal', target: '.admin-create-repertoire-modal' } %>
-
+
<%= render(partial: 'admins/repertoires/shared/list') %>
diff --git a/app/views/admins/repertoires/shared/_create_repertoire_modal.html.erb b/app/views/admins/repertoires/shared/_create_repertoire_modal.html.erb index e69de29bb..9380fb07b 100644 --- a/app/views/admins/repertoires/shared/_create_repertoire_modal.html.erb +++ b/app/views/admins/repertoires/shared/_create_repertoire_modal.html.erb @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/app/views/admins/repertoires/update.js.erb b/app/views/admins/repertoires/update.js.erb new file mode 100644 index 000000000..1d4f1fafa --- /dev/null +++ b/app/views/admins/repertoires/update.js.erb @@ -0,0 +1,2 @@ +$('.modal.admin-edit-repertoire-modal').modal("hide"); +$(".repertoire-list-container").html("<%= j(render :partial => 'admins/repertoires/shared/list') %>"); \ No newline at end of file From 2fd2a116b0f0cf0faa872cfb41c18214cbfc3be7 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 4 Feb 2020 11:06:55 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BA=BA=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/weapps/subjects/show.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/weapps/subjects/show.json.jbuilder b/app/views/weapps/subjects/show.json.jbuilder index 757257e82..c0744459b 100644 --- a/app/views/weapps/subjects/show.json.jbuilder +++ b/app/views/weapps/subjects/show.json.jbuilder @@ -2,7 +2,7 @@ json.subject do json.name @subject.name json.description @subject.description json.shixuns_count @subject.shixuns_count - json.member_count @subject.member_count + json.member_count @subject.myshixuns_count json.subject_score @subject.all_score json.learning_notes @subject.learning_notes end From 314f18a9be738964ed205e95f1b7a34a09ecc5ec Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 4 Feb 2020 11:08:41 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/weapps/subjects/index.json.jbuilder | 3 ++- app/views/weapps/subjects/show.json.jbuilder | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/weapps/subjects/index.json.jbuilder b/app/views/weapps/subjects/index.json.jbuilder index 64b18c4e9..cfdce4530 100644 --- a/app/views/weapps/subjects/index.json.jbuilder +++ b/app/views/weapps/subjects/index.json.jbuilder @@ -1,5 +1,6 @@ json.subjects @subjects do |subject| - json.(subject, :id, :excellent, :name, :stages_count, :shixuns_count, :myshixuns_count) + json.(subject, :id, :excellent, :name, :stages_count, :shixuns_count) + json.myshixuns_count subject.member_count json.image_url url_to_avatar(subject) json.allow_visit subject.status > 1 || User.current.manager_of_subject?(subject) || User.current.admin? end diff --git a/app/views/weapps/subjects/show.json.jbuilder b/app/views/weapps/subjects/show.json.jbuilder index c0744459b..757257e82 100644 --- a/app/views/weapps/subjects/show.json.jbuilder +++ b/app/views/weapps/subjects/show.json.jbuilder @@ -2,7 +2,7 @@ json.subject do json.name @subject.name json.description @subject.description json.shixuns_count @subject.shixuns_count - json.member_count @subject.myshixuns_count + json.member_count @subject.member_count json.subject_score @subject.all_score json.learning_notes @subject.learning_notes end