diff --git a/app/controllers/admins/platform_communicates_controller.rb b/app/controllers/admins/platform_communicates_controller.rb new file mode 100644 index 00000000..33734ed9 --- /dev/null +++ b/app/controllers/admins/platform_communicates_controller.rb @@ -0,0 +1,59 @@ +class Admins::PlatformCommunicatesController < Admins::BaseController + before_action :get_communicate, only: [:edit, :update, :destroy] + def index + sort_by = PlatformCommunicate.column_names.include?(params[:sort_by]) ? params[:sort_by] : 'created_at' + sort_direction = %w(desc asc).include?(params[:sort_direction]) ? params[:sort_direction] : 'desc' + q = PlatformCommunicate.ransack(title_cont: params[:search]) + communicates = q.result(distinct: true).order("#{sort_by} #{sort_direction}") + @communicates = kaminari_paginate(communicates) + end + + def new + @communicate = PlatformCommunicate.new + end + + def create + @communicate = PlatformCommunicate.new(communicate_params) + if @communicate.save + redirect_to admins_platform_communicates_path + flash[:success] = '创建社区动态成功' + else + redirect_to admins_platform_communicates_path + flash[:danger] = "创建社区动态失败" + end + end + + def edit + + end + + def update + @communicate.attributes = communicate_params + if @communicate.save + redirect_to admins_platform_communicates_path + flash[:success] = '更新社区动态成功' + else + redirect_to admins_platform_communicates_path + flash[:danger] = '更新社区动态失败' + end + end + + def destroy + if @communicate.destroy + redirect_to admins_platform_communicates_path + flash[:success] = '删除社区动态成功' + else + redirect_to admins_platform_communicates_path + flash[:danger] = '删除社区动态失败' + end + end + + private + def get_communicate + @communicate = PlatformCommunicate.find_by_id(params[:id]) + end + + def communicate_params + params.require(:platform_communicate).permit! + end +end \ No newline at end of file diff --git a/app/controllers/admins/platform_people_controller.rb b/app/controllers/admins/platform_people_controller.rb new file mode 100644 index 00000000..00af2af0 --- /dev/null +++ b/app/controllers/admins/platform_people_controller.rb @@ -0,0 +1,59 @@ +class Admins::PlatformPeopleController < Admins::BaseController + before_action :get_person, only: [:edit, :update, :destroy] + def index + sort_by = PlatformPerson.column_names.include?(params[:sort_by]) ? params[:sort_by] : 'created_at' + sort_direction = %w(desc asc).include?(params[:sort_direction]) ? params[:sort_direction] : 'desc' + q = PlatformPerson.ransack(title_cont: params[:search]) + people = q.result(distinct: true).order("#{sort_by} #{sort_direction}") + @people = kaminari_paginate(people) + end + + def new + @person = PlatformPerson.new + end + + def create + @person = PlatformPerson.new(person_params) + if @person.save + redirect_to admins_platform_people_path + flash[:success] = '创建论坛动态成功' + else + redirect_to admins_platform_people_path + flash[:danger] = "创建论坛动态失败" + end + end + + def edit + + end + + def update + @person.attributes = person_params + if @person.save + redirect_to admins_platform_people_path + flash[:success] = '更新论坛动态成功' + else + redirect_to admins_platform_people_path + flash[:danger] = '更新论坛动态失败' + end + end + + def destroy + if @person.destroy + redirect_to admins_platform_people_path + flash[:success] = '删除论坛动态成功' + else + redirect_to admins_platform_people_path + flash[:danger] = '删除论坛动态失败' + end + end + + private + def get_person + @person = PlatformPerson.find_by_id(params[:id]) + end + + def person_params + params.require(:platform_person).permit! + end +end \ No newline at end of file diff --git a/app/views/admins/platform_communicates/_form_modal.html.erb b/app/views/admins/platform_communicates/_form_modal.html.erb new file mode 100644 index 00000000..de420006 --- /dev/null +++ b/app/views/admins/platform_communicates/_form_modal.html.erb @@ -0,0 +1,44 @@ + \ No newline at end of file diff --git a/app/views/admins/platform_communicates/_list.html.erb b/app/views/admins/platform_communicates/_list.html.erb new file mode 100644 index 00000000..aeb64ed3 --- /dev/null +++ b/app/views/admins/platform_communicates/_list.html.erb @@ -0,0 +1,33 @@ + + + + + + + + + + + + + <% if communicates.present? %> + <% communicates.each_with_index do |c, index| %> + + + + + + + + + <% end %> + <% else %> + <%= render 'admins/shared/no_data_for_table' %> + <% end %> + +
序号标题内容帖子ID标签操作
<%= list_index_no((params[:page] || 1).to_i, index) %><%= c.title %><%= c.content.truncate(50) %><%= c.fake_id %><%= c.tag_field %> + <%= link_to "编辑", edit_admins_platform_communicate_path(c), remote: true, class: "action" %> + <%= link_to "删除", admins_platform_communicate_path(c), method: :delete, data:{confirm: "确认删除的吗?"}, class: "action" %> +
+ +<%= render partial: 'admins/shared/paginate', locals: { objects: communicates } %> \ No newline at end of file diff --git a/app/views/admins/platform_communicates/edit.js.erb b/app/views/admins/platform_communicates/edit.js.erb new file mode 100644 index 00000000..b95893df --- /dev/null +++ b/app/views/admins/platform_communicates/edit.js.erb @@ -0,0 +1,2 @@ +$("#platform-communicate-modals").html("<%= j render(partial: 'admins/platform_communicates/form_modal', locals: {type: 'update'}) %>") +$(".platform-communicate-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/admins/platform_communicates/index.html.erb b/app/views/admins/platform_communicates/index.html.erb new file mode 100644 index 00000000..827b0d8d --- /dev/null +++ b/app/views/admins/platform_communicates/index.html.erb @@ -0,0 +1,18 @@ +<% define_admin_breadcrumbs do %> + <% add_admin_breadcrumb('社区动态管理') %> +<% end %> + +
+ <%= form_tag(admins_platform_communicates_path, method: :get, class: 'form-inline search-form flex-1', remote: true) do %> + <%= text_field_tag(:search, params[:search], class: 'form-control col-12 col-md-2 mr-3', placeholder: '标题检索') %> + <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> + + <% end %> + <%= link_to "新增", new_admins_platform_communicate_path, remote: true, class: "btn btn-primary pull-right", "data-disabled-with":"...新增" %> +
+ +
+ <%= render partial: 'admins/platform_communicates/list', locals: { communicates: @communicates } %> +
+
+
diff --git a/app/views/admins/platform_communicates/index.js.erb b/app/views/admins/platform_communicates/index.js.erb new file mode 100644 index 00000000..c4080dcb --- /dev/null +++ b/app/views/admins/platform_communicates/index.js.erb @@ -0,0 +1 @@ +$('.platform-communicate-list-container').html("<%= j( render partial: 'admins/platform_communicates/list', locals: { communicates: @communicates } ) %>"); \ No newline at end of file diff --git a/app/views/admins/platform_communicates/new.js.erb b/app/views/admins/platform_communicates/new.js.erb new file mode 100644 index 00000000..72c15592 --- /dev/null +++ b/app/views/admins/platform_communicates/new.js.erb @@ -0,0 +1,2 @@ +$("#platform-communicate-modals").html("<%= j render(partial: 'admins/platform_communicates/form_modal', locals: {type: 'create'}) %>") +$(".platform-communicate-change-modal").modal('show'); \ No newline at end of file diff --git a/app/views/admins/shared/_sidebar.html.erb b/app/views/admins/shared/_sidebar.html.erb index 73a0945d..0355aeee 100644 --- a/app/views/admins/shared/_sidebar.html.erb +++ b/app/views/admins/shared/_sidebar.html.erb @@ -31,7 +31,12 @@ <% end %> - +
  • + <%= sidebar_item_group('#homepage-submenu', '首页配置', icon: 'file') do %> +
  • <%= sidebar_item(admins_platform_communicates_path, '社区动态', icon: 'edit', controller: 'admins-platform_communicates') %>
  • +
  • <%= sidebar_item(admins_platform_people_path, '论坛交流人物', icon: 'user', controller: 'admins-platform_people') %>
  • + <% end %> +
  • <%= sidebar_item(admins_laboratories_path, '云上实验室', icon: 'cloud', controller: 'admins-laboratories') %>