Skip to content

Commit a4a3668

Browse files
committed
feat: category 套用
1 parent ce6ed77 commit a4a3668

13 files changed

+105
-115
lines changed

app/helpers/admin_helper.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,14 @@ def render_admin_pagination(collection)
106106
render partial: 'admin/base/pagination', as: :collection, object: collection
107107
end
108108

109-
def render_admin_data_table(data: nil, bordered: true, striped: true, hover: true, &block)
109+
def render_admin_data_table(data: nil, total: nil, bordered: true, striped: true, hover: true, &block)
110110
locals = {
111111
body: capture(&block),
112112
data: data,
113113
bordered: bordered,
114114
striped: striped,
115-
hover: hover
115+
hover: hover,
116+
total: total
116117
}
117118
render partial: 'admin/base/data_table', locals: locals
118119
end
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.row
22
.col-sm-4
33
.dataTables_info
4-
= "Total: #{collection.total_count}"
4+
= "Total: #{collection.try(:total_count) || collection.size}"
55
.col-sm-8.pull-right
66
.dataTables_paginate.paging_simple_numbers
7-
= paginate collection, theme: :admin
7+
= paginate collection, theme: :admin if collection.respond_to?(:total_count)
+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
= link_to "Show", admin_category_path(category), class: "btn btn-large"
2-
= link_to "Revisions", revisions_admin_category_path(category), class: "btn btn-large"
3-
= link_to "Edit", edit_admin_category_path(category, redirect_to: url_for(request.params)), class: "btn btn-large btn-success"
4-
= link_to "Delete", admin_category_path(category, redirect_to: ENV['HTTP_REFERER'] || admin_categories_path), class: "btn btn-large btn-danger", method: :delete, "data-confirm" => "Delete?"
1+
- append_page_button 'Show', admin_category_path(category)
2+
- append_page_button 'Revisions', revisions_admin_category_path(category)
3+
- append_page_button 'Edit', edit_admin_category_path(category, redirect_to: url_for(request.params)), class: 'btn-success'
4+
- append_page_button 'Delete', admin_category_path(category, redirect_to: ENV['HTTP_REFERER'] || admin_categories_path), class: 'btn-danger', method: :delete, 'data-confirm' => 'Delete?'
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
= search_form_for @q, :builder => SimpleForm::FormBuilder, html: { class: "form-horizontal" }, wrapper: :admin, defaults: { required: false } do |f|
2-
= f.input :name_cont, label: "name contains"
3-
= f.input :delete_state, label: "delete state", as: :select, collection: collection_for_delete_state, include_blank: "Without deleted"
4-
= f.input :tagged, label: "tagged with", as: :select, collection: collection_for_tags, input_html: { "data-select" => true, multiple: true }
1+
= admin_search_form_for @q, nil do |f|
2+
= f.input :name_cont, label: 'name contains'
3+
= f.input :delete_state, label: 'delete state', as: :select, collection: collection_for_delete_state, include_blank: 'Without deleted'
4+
= f.input :tagged, label: 'tagged with', as: :select, collection: collection_for_tags, input_html: { 'data-select' => true, multiple: true }
55
- if Rails.env.development?
6-
= f.input :created_at_eq, as: :string, input_html: { name: "", value: @q.result.to_sql }, label: "debug sql"
6+
= f.input :created_at_eq, as: :string, input_html: { name: '', value: @q.result.to_sql }, label: 'debug sql'
77
.form-actions
8-
= f.submit "Search", class: "btn btn-primary"
8+
= f.submit_cancel 'Search'
+2-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
= f.input :name
2-
= f.input :tag_list, label: "Tags", as: :string, input_html: { "data-select" => "tags", "data-tags" => collection_for_tags.to_json }
3-
.form-actions
4-
= f.submit class: "btn btn-primary"
2+
= f.input :tag_list, label: 'Tags', as: :string, input_html: { 'data-select' => 'tags', 'data-tags' => collection_for_tags.to_json }
3+
= f.submit_cancel cancel: admin_categories_path
+4-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
- content_for :btns do
2-
= render partial: "btns", object: @category, as: :category
1+
= render partial: 'btns', object: @category, as: :category
32

4-
= admin_widget_box "Edit Category" do
5-
= simple_form_for @category, as: :category, wrapper: :admin do |f|
6-
= render partial: "form", object: f, as: :f
3+
= admin_widget_box 'Edit Category' do
4+
= admin_form_for @category, as: :category do |f|
5+
= render partial: 'form', object: f, as: :f
+31-34
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
1-
= admin_widget_box "Filtering" do
2-
= render partial: "filtering", as: :q, object: @q
3-
= admin_widget_box "Categories" do
4-
.dataTables_wrapper
5-
div
6-
.dataTables_length
7-
= link_to "New Category", new_admin_category_path, class: "btn btn-primary btn-mini"
8-
table.table.table-bordered.table-striped.table-hover
9-
thead
1+
- append_page_button 'New Category', new_admin_category_path, class: 'btn-primary'
2+
3+
= admin_widget_box 'Filtering' do
4+
= render partial: 'filtering', as: :q, object: @q
5+
6+
= admin_widget_box 'Categories' do
7+
= render_admin_data_table(data: @categories) do
8+
thead
9+
tr
10+
th= '#'
11+
th= 'Name'
12+
th= 'Sort'
13+
th= 'Sorting'
14+
th= 'actions'
15+
tbody
16+
- @categories.each do |category|
1017
tr
11-
th= "#"
12-
th= "Name"
13-
th= "Sort"
14-
th= "Sorting"
15-
th= "actions"
16-
tbody
17-
- @categories.each do |category|
18-
tr
19-
td= category.id
20-
td= category.name
21-
td= category.sort
22-
td
23-
- unless category.deleted?
24-
= render_admin_sorting_buttons(category)
25-
td
26-
- if category.deleted?
27-
= link_to "restore", restore_admin_category_path(category), class: "btn btn-mini btn-danger", method: :post, "data-confirm" => "Restore?"
28-
- else
29-
= link_to "show", admin_category_path(category), class: "btn btn-mini"
30-
|  
31-
= link_to "edit", edit_admin_category_path(category), class: "btn btn-mini btn-success"
32-
|  
33-
= link_to "delete", admin_category_path(category), class: "btn btn-mini btn-danger", method: :delete, "data-confirm" => "Delete?"
34-
.ui-toolbar.ui-widget-header
35-
= paginate @categories, theme: :admin
18+
td= category.id
19+
td= category.name
20+
td= category.sort
21+
td
22+
- unless category.deleted?
23+
= render_admin_sorting_buttons(category)
24+
td
25+
- if category.deleted?
26+
= link_to 'restore', restore_admin_category_path(category), method: :post, 'data-confirm' => 'Restore?'
27+
- else
28+
= link_to 'show', admin_category_path(category)
29+
|   |  
30+
= link_to 'edit', edit_admin_category_path(category)
31+
|   |  
32+
= link_to 'delete', admin_category_path(category), method: :delete, 'data-confirm' => 'Delete?'
+3-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
= admin_widget_box "New Category" do
2-
= simple_form_for @category, as: :category, wrapper: :admin do |f|
3-
= render partial: "form", object: f, as: :f
1+
= admin_widget_box 'New Category' do
2+
= admin_form_for @category, as: :category do |f|
3+
= render partial: 'form', object: f, as: :f
+17-21
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
1-
- content_for :btns do
2-
= render partial: "btns", object: @category, as: :category
1+
= render partial: 'btns', object: @category, as: :category
32

4-
= admin_widget_box "Revisions ( total results: #{@versions.size} )" do
5-
.dataTables_wrapper
6-
div
7-
.dataTables_length
8-
table.table.table-bordered.table-striped.table-hover
9-
thead
3+
= admin_widget_box "Revisions (Total versions: #{@versions.size} )" do
4+
= render_admin_data_table(data: @versions) do
5+
thead
6+
tr
7+
th= 'Event'
8+
th= 'When'
9+
th= 'Who'
10+
th= 'What'
11+
tbody
12+
- @versions.reverse.each do |version|
1013
tr
11-
th= "Event"
12-
th= "When"
13-
th= "Who"
14-
th= "What"
15-
tbody
16-
- @versions.reverse.each do |version|
17-
tr
18-
td= version.event
19-
td= version.created_at
20-
td= User.find(version.whodunnit).name rescue version.whodunnit
21-
td
22-
- convert_changes_string(version.object_changes).each do |column, diffs|
23-
.diff= "#{column}: #{diffs[0].nil? ? "NULL" : diffs[0]} -> #{diffs[1].nil? ? "NULL" : diffs[1]}"
14+
td= version.event
15+
td= version.created_at
16+
td= User&.find_by(id: version.whodunnit)&.name
17+
td
18+
- convert_changes_string(version.object_changes).each do |column, diffs|
19+
.diff= "#{column}: #{diffs[0].nil? ? "NULL" : diffs[0]} -> #{diffs[1].nil? ? "NULL" : diffs[1]}"
+17-19
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
- content_for :btns do
2-
= render partial: "btns", object: @category, as: :category
1+
= render partial: 'btns', object: @category, as: :category
32
= admin_widget_box "Category ##{@category.id}" do
4-
table.table.table-bordered.table-striped.table-hover
5-
tbody
6-
tr
7-
td= "ID"
8-
td= @category.id
9-
tr
10-
td= "Name"
11-
td= @category.name
12-
tr
13-
td= "Sort"
14-
td= @category.sort
15-
tr
16-
td= "created at"
17-
td= @category.created_at
18-
tr
19-
td= "updated at"
20-
td= @category.updated_at
3+
= render_admin_data_table(bordered: false) do
4+
tr
5+
th ID
6+
td= @category.id
7+
tr
8+
th Name
9+
td= @category.name
10+
tr
11+
th Sort
12+
td= @category.sort
13+
tr
14+
th Created at
15+
td= @category.created_at
16+
tr
17+
th Updated at
18+
td= @category.updated_at
+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
= admin_search_form_for @q, nil do |f|
2-
= f.input :has_avatar, as: :switch, label: "has avatar"
3-
= f.input :name_cont, label: "name contains"
4-
= f.input :email_cont, label: "email contains"
2+
= f.input :has_avatar, as: :switch, label: 'has avatar'
3+
= f.input :name_cont, label: 'name contains'
4+
= f.input :email_cont, label: 'email contains'
55
- if Rails.env.development?
6-
= f.input :created_at_eq, as: :string, input_html: { name: "", value: @q.result.to_sql }, label: "debug sql"
6+
= f.input :created_at_eq, as: :string, input_html: { name: '', value: @q.result.to_sql }, label: 'debug sql'
77
= f.submit_cancel 'Search'

app/views/admin/users/index.html.slim

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
- append_page_button('Export', url_for(request.params.merge(format: :csv)))
22
- append_page_button('New User', new_admin_user_path)
33

4-
= admin_widget_box "Filtering" do
5-
= render partial: "filtering", as: :q, object: @q
4+
= admin_widget_box 'Filtering' do
5+
= render partial: 'filtering', as: :q, object: @q
66

7-
= admin_widget_box "Users" do
7+
= admin_widget_box 'Users' do
88
= render_admin_data_table(data: @users) do
99
thead
1010
tr
11-
th= "#"
12-
th= "Name"
13-
th= "Email"
14-
th= "Confirmed"
15-
th= "actions"
11+
th= '#'
12+
th= 'Name'
13+
th= 'Email'
14+
th= 'Confirmed'
15+
th= 'actions'
1616
tbody
1717
- @users.each do |user|
1818
tr class="pointer #{cycle('odd', 'even')}"
1919
td= user.id
2020
td= user.name
2121
td= user.email
2222
td
23-
= "Y" if user.try(:confirmed?)
23+
= 'Y' if user.try(:confirmed?)
2424
td
2525
= link_to 'Show', admin_user_path(user)
2626
|   |  

app/views/admin/users/new.html.slim

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
= admin_widget_box "New User" do
2-
= admin_form_for @user, as: :user, wrapper: :admin do |f|
3-
= render partial: "form", object: f, as: :f
1+
= admin_widget_box 'New User' do
2+
= admin_form_for @user, as: :user do |f|
3+
= render partial: 'form', object: f, as: :f

0 commit comments

Comments
 (0)