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 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