integral 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +4 -3
- data/app/assets/javascripts/integral/backend.js +86 -2
- data/app/assets/javascripts/integral/support/character_counter.js +13 -8
- data/app/assets/javascripts/integral/support/list.coffee +1 -0
- data/app/assets/javascripts/integral/support/record_selector.coffee +2 -0
- data/app/assets/javascripts/integral/support/slug_generator.coffee +1 -0
- data/app/assets/stylesheets/integral/backend.sass +34 -23
- data/app/assets/stylesheets/integral/backend/_foundation_settings.scss +2 -2
- data/app/assets/stylesheets/integral/backend/dashboard-layout.scss +27 -63
- data/app/assets/stylesheets/integral/backend/devise.sass +2 -3
- data/app/assets/stylesheets/integral/backend/materialize-tags.sass +1 -0
- data/app/assets/stylesheets/integral/backend/modules/dropdown_pane_notifications.scss +150 -0
- data/app/assets/stylesheets/integral/backend/modules/dropdown_pane_profile.scss +59 -0
- data/app/assets/stylesheets/integral/backend/shared.sass +41 -2
- data/app/assets/stylesheets/integral/frontend/layout.sass +10 -0
- data/app/assets/stylesheets/integral/support/media-query-indicator.sass +4 -4
- data/app/controllers/integral/backend/activities_controller.rb +21 -27
- data/app/controllers/integral/backend/base_controller.rb +87 -37
- data/app/controllers/integral/backend/images_controller.rb +26 -8
- data/app/controllers/integral/backend/lists_controller.rb +2 -14
- data/app/controllers/integral/backend/notification_subscriptions_controller.rb +23 -0
- data/app/controllers/integral/backend/pages_controller.rb +0 -4
- data/app/controllers/integral/backend/posts_controller.rb +0 -4
- data/app/controllers/integral/backend/settings_controller.rb +4 -0
- data/app/controllers/integral/backend/static_pages_controller.rb +6 -0
- data/app/controllers/integral/backend/users_controller.rb +43 -24
- data/app/controllers/integral/blog_controller.rb +12 -0
- data/app/controllers/integral/categories_controller.rb +17 -3
- data/app/controllers/integral/tags_controller.rb +5 -2
- data/app/decorators/integral/base_decorator.rb +16 -0
- data/app/decorators/integral/image_decorator.rb +2 -2
- data/app/decorators/integral/list_decorator.rb +1 -13
- data/app/decorators/integral/notification/notification_decorator.rb +74 -0
- data/app/decorators/integral/page_decorator.rb +1 -13
- data/app/decorators/integral/post_decorator.rb +1 -2
- data/app/decorators/integral/user_decorator.rb +1 -13
- data/app/decorators/integral/version_decorator.rb +8 -4
- data/app/helpers/integral/backend/base_helper.rb +97 -31
- data/app/jobs/integral/application_job.rb +1 -0
- data/app/jobs/integral/newsletter_signup_job.rb +0 -2
- data/app/mailers/integral/devise_mailer.rb +6 -0
- data/app/models/concerns/integral/notification/subscribable.rb +67 -0
- data/app/models/integral/application_record.rb +9 -0
- data/app/models/integral/category.rb +9 -0
- data/app/models/integral/image.rb +40 -3
- data/app/models/integral/list.rb +10 -2
- data/app/models/integral/list_item.rb +14 -14
- data/app/models/integral/list_item_connection.rb +6 -0
- data/app/models/integral/notification/notification.rb +28 -0
- data/app/models/integral/notification/subscription.rb +14 -0
- data/app/models/integral/page.rb +15 -8
- data/app/models/integral/post.rb +11 -13
- data/app/models/integral/user.rb +45 -2
- data/app/policies/integral/base_policy.rb +7 -12
- data/app/policies/integral/page_policy.rb +1 -0
- data/app/policies/integral/version_policy.rb +0 -8
- data/app/views/devise/invitations/edit.haml +1 -4
- data/app/views/devise/mailer/invitation_instructions.inky-haml +20 -0
- data/app/views/integral/backend/activities/grid/_dropdown_actions.haml +1 -0
- data/app/views/integral/backend/activities/grid/_row_content.haml +13 -0
- data/app/views/integral/backend/activities/index.haml +7 -13
- data/app/views/integral/backend/activities/shared/_grid.haml +35 -20
- data/app/views/integral/backend/activities/shared/index.haml +12 -12
- data/app/views/integral/backend/activities/shared/show.haml +7 -7
- data/app/views/integral/backend/activities/show.haml +1 -1
- data/app/views/integral/backend/categories/_modal.haml +2 -3
- data/app/views/integral/backend/images/_form.haml +13 -25
- data/app/views/integral/backend/images/edit.haml +1 -9
- data/app/views/integral/backend/images/grid/_dropdown_actions.haml +5 -0
- data/app/views/integral/backend/images/grid/_row_content.haml +5 -0
- data/app/views/integral/backend/images/index.haml +11 -17
- data/app/views/integral/backend/images/list.haml +11 -0
- data/app/views/integral/backend/images/show.haml +26 -0
- data/app/views/integral/backend/lists/_form.haml +6 -19
- data/app/views/integral/backend/lists/_item_modal.haml +3 -3
- data/app/views/integral/backend/lists/_manager.haml +11 -13
- data/app/views/integral/backend/lists/edit.haml +6 -20
- data/app/views/integral/backend/lists/grid/_dropdown_actions.haml +9 -0
- data/app/views/integral/backend/lists/grid/_row_content.haml +3 -0
- data/app/views/integral/backend/lists/index.haml +11 -17
- data/app/views/integral/backend/lists/list.haml +11 -0
- data/app/views/integral/backend/lists/show.haml +30 -0
- data/app/views/integral/backend/notifications/_notification.haml +21 -0
- data/app/views/integral/backend/pages/_form.haml +19 -43
- data/app/views/integral/backend/pages/edit.haml +4 -12
- data/app/views/integral/backend/pages/grid/_dropdown_actions.haml +11 -0
- data/app/views/integral/backend/pages/grid/_row_content.haml +5 -0
- data/app/views/integral/backend/pages/index.haml +6 -6
- data/app/views/integral/backend/pages/list.haml +12 -19
- data/app/views/integral/backend/pages/show.haml +19 -35
- data/app/views/integral/backend/posts/_form.haml +18 -56
- data/app/views/integral/backend/posts/edit.haml +4 -14
- data/app/views/integral/backend/posts/grid/_dropdown_actions.haml +10 -0
- data/app/views/integral/backend/posts/grid/_row_content.haml +6 -0
- data/app/views/integral/backend/posts/index.haml +6 -6
- data/app/views/integral/backend/posts/list.haml +11 -18
- data/app/views/integral/backend/posts/new.haml +0 -1
- data/app/views/integral/backend/posts/show.haml +18 -41
- data/app/views/integral/backend/shared/_breadcrumbs.haml +7 -4
- data/app/views/integral/backend/shared/_image_preview.haml +10 -3
- data/app/views/integral/backend/shared/_image_selector.haml +1 -1
- data/app/views/integral/backend/shared/_notification_subscription_toggle.haml +22 -0
- data/app/views/integral/backend/shared/action_bar/_index.haml +9 -0
- data/app/views/integral/backend/shared/action_bar/_show.haml +3 -0
- data/app/views/integral/backend/shared/cards/_at_a_glance.haml +3 -3
- data/app/views/integral/backend/shared/cards/_categories.haml +27 -28
- data/app/views/integral/backend/shared/cards/_object.haml +1 -1
- data/app/views/integral/backend/shared/cards/_recent_activity.haml +12 -12
- data/app/views/integral/backend/shared/cards/_recent_resources.haml +17 -0
- data/app/views/integral/backend/shared/cards/_top_post_authors.haml +14 -15
- data/app/views/integral/backend/shared/cards/_welcome.haml +24 -25
- data/app/views/integral/backend/shared/{_empty_grid.haml → grid/_empty.haml} +0 -0
- data/app/views/integral/backend/shared/grid/_form.haml +9 -0
- data/app/views/integral/backend/shared/grid/_grid.haml +21 -0
- data/app/views/integral/backend/shared/{_pagination.haml → grid/_pagination.haml} +0 -0
- data/app/views/integral/backend/shared/grid/_row_layout.haml +8 -0
- data/app/views/integral/backend/shared/record_selector/_collection.haml +1 -0
- data/app/views/integral/backend/shared/record_selector/_modal.haml +9 -10
- data/app/views/integral/backend/static_pages/dashboard.haml +6 -7
- data/app/views/integral/backend/users/_form.haml +34 -46
- data/app/views/integral/backend/users/grid/_dropdown_actions.haml +17 -0
- data/app/views/integral/backend/users/grid/_row_content.haml +8 -0
- data/app/views/integral/backend/users/index.haml +6 -6
- data/app/views/integral/backend/users/list.haml +10 -16
- data/app/views/integral/backend/users/show.haml +10 -1
- data/app/views/integral/categories/show.haml +3 -3
- data/app/views/integral/posts/_article_footer.haml +1 -1
- data/app/views/integral/posts/_card.haml +1 -1
- data/app/views/integral/posts/_most_read_section.haml +1 -1
- data/app/views/integral/posts/_post.haml +1 -1
- data/app/views/integral/posts/templates/default.haml +1 -1
- data/app/views/integral/shared/sidebar/_item.haml +1 -1
- data/app/views/layouts/integral/backend.html.haml +24 -5
- data/app/views/layouts/integral/backend/_create_dropdown.haml +1 -30
- data/app/views/layouts/integral/backend/_main_menu_items.haml +1 -101
- data/config/initializers/devise.rb +1 -1
- data/config/locales/en.yml +60 -2
- data/config/routes.rb +2 -0
- data/db/migrate/20200407022636_create_integral_notifications.rb +25 -0
- data/db/migrate/20200421223602_add_status_to_integral_users.rb +5 -0
- data/db/seeds.rb +15 -11
- data/lib/integral.rb +1 -0
- data/lib/integral/acts_as_integral.rb +115 -0
- data/lib/integral/acts_as_listable.rb +1 -1
- data/lib/integral/engine.rb +9 -0
- data/lib/integral/grids/activities_grid.rb +0 -1
- data/lib/integral/grids/lists_grid.rb +1 -0
- data/lib/integral/grids/posts_grid.rb +5 -1
- data/lib/integral/grids/users_grid.rb +5 -0
- data/lib/integral/list_renderer.rb +5 -1
- data/lib/integral/router.rb +20 -4
- data/lib/integral/version.rb +1 -1
- data/spec/factories.rb +15 -1
- metadata +45 -39
- data/app/decorators/integral/category_version_decorator.rb +0 -7
- data/app/decorators/integral/image_version_decorator.rb +0 -7
- data/app/decorators/integral/list_version_decorator.rb +0 -7
- data/app/decorators/integral/page_version_decorator.rb +0 -7
- data/app/decorators/integral/post_version_decorator.rb +0 -7
- data/app/decorators/integral/user_version_decorator.rb +0 -7
- data/app/views/devise/mailer/invitation_instructions.html.erb +0 -13
- data/app/views/integral/backend/activities/_grid.haml +0 -22
- data/app/views/integral/backend/images/_grid.haml +0 -16
- data/app/views/integral/backend/lists/_grid.haml +0 -14
- data/app/views/integral/backend/pages/_grid.haml +0 -46
- data/app/views/integral/backend/posts/_grid.haml +0 -51
- data/app/views/integral/backend/shared/_grid.haml +0 -18
- data/app/views/integral/backend/shared/cards/_recent_pages.haml +0 -19
- data/app/views/integral/backend/shared/cards/_recent_posts.haml +0 -18
- data/app/views/integral/backend/shared/cards/_recent_users.haml +0 -19
- data/app/views/integral/backend/users/_grid.haml +0 -36
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<% name = @resource.invited_by.present? ? @resource.invited_by.name : 'Someone' %>
|
|
2
|
-
|
|
3
|
-
<p><%= t("devise.mailer.invitation_instructions.hello", email: @resource.name) %>,</p>
|
|
4
|
-
|
|
5
|
-
<p><%= t("devise.mailer.invitation_instructions.someone_invited_you", url: integral.backend_dashboard_url, name: name) %></p>
|
|
6
|
-
|
|
7
|
-
<p><%= link_to t("devise.mailer.invitation_instructions.accept"), accept_invitation_url(@resource, :invitation_token => @token) %></p>
|
|
8
|
-
|
|
9
|
-
<% if @resource.invitation_due_at %>
|
|
10
|
-
<p><%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :'devise.mailer.invitation_instructions.accept_until_format')) %></p>
|
|
11
|
-
<% end %>
|
|
12
|
-
|
|
13
|
-
<p><%= t("devise.mailer.invitation_instructions.ignore").html_safe %></p>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
= render layout: 'integral/backend/shared/grid', locals: { grid: grid, options: { columns: [:date, :user, :action, :object, :instance, :actions] }} do
|
|
2
|
-
- if grid.assets.any?
|
|
3
|
-
- grid.assets.decorate.each do |activity|
|
|
4
|
-
%tr
|
|
5
|
-
%td= l(activity.created_at)
|
|
6
|
-
%td
|
|
7
|
-
- if activity.whodunnit.present?
|
|
8
|
-
= link_to backend_user_url(activity.whodunnit.id) do
|
|
9
|
-
%span.label.clear
|
|
10
|
-
= image_tag activity.whodunnit.avatar.url(:thumbnail), class: :avatar
|
|
11
|
-
= activity.whodunnit.name
|
|
12
|
-
%td
|
|
13
|
-
%span.label= activity.event
|
|
14
|
-
%td= activity.item_type
|
|
15
|
-
%td
|
|
16
|
-
= link_to activity.item_url do
|
|
17
|
-
= activity.item_title
|
|
18
|
-
%td.actions
|
|
19
|
-
= link_to activity.url do
|
|
20
|
-
= icon('eye')
|
|
21
|
-
- else
|
|
22
|
-
= render partial: 'integral/backend/shared/empty_grid'
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
= render_data_grid do
|
|
2
|
-
= render layout: 'integral/backend/shared/grid', locals: { grid: @grid, options: { columns: [:title, :updated_at, :actions], order: true }} do |grid|
|
|
3
|
-
- if grid.assets.any?
|
|
4
|
-
- grid.assets.decorate.each do |record|
|
|
5
|
-
%tr
|
|
6
|
-
%td
|
|
7
|
-
= image_tag record.file.url(:small), class: :preview
|
|
8
|
-
= record.title.truncate(30)
|
|
9
|
-
%td= l(record.updated_at, format: :long)
|
|
10
|
-
%td.actions
|
|
11
|
-
= link_to edit_backend_img_url(record) do
|
|
12
|
-
= icon('edit')
|
|
13
|
-
= link_to backend_img_url(record), method: :delete, data: { confirm: t('integral.actions.confirmation.deletion') } do
|
|
14
|
-
= icon('remove')
|
|
15
|
-
- else
|
|
16
|
-
= render partial: 'integral/backend/shared/empty_grid'
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
= render_data_grid do
|
|
2
|
-
= render layout: 'integral/backend/shared/grid', locals: { grid: @grid, options: { columns: [:title, :updated_at, :actions], order: true }} do |grid|
|
|
3
|
-
- if grid.assets.any?
|
|
4
|
-
- grid.assets.decorate.each do |record|
|
|
5
|
-
%tr
|
|
6
|
-
%td= record.title
|
|
7
|
-
%td= record.description
|
|
8
|
-
%td.actions
|
|
9
|
-
= link_to edit_backend_list_url(record) do
|
|
10
|
-
= icon('edit')
|
|
11
|
-
= link_to backend_list_url(record), method: :delete, data: { confirm: t('integral.actions.confirmation.deletion') } do
|
|
12
|
-
= icon('remove')
|
|
13
|
-
- else
|
|
14
|
-
= render partial: 'integral/backend/shared/empty_grid'
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
= render_data_grid do
|
|
2
|
-
= render layout: 'integral/backend/shared/grid', locals: { grid: @grid, options: { columns: [:title, :path, :status, :updated_at, :actions], order: true }} do |grid|
|
|
3
|
-
- if grid.assets.any?
|
|
4
|
-
- grid.assets.decorate.each do |record|
|
|
5
|
-
%tr.tr--clickable{ data: { href: backend_page_url(record.id), context_menu: "dropdown-pane-actions-page-#{record.id}" }}
|
|
6
|
-
%td= record.title.truncate(30)
|
|
7
|
-
%td= record.path
|
|
8
|
-
%td
|
|
9
|
-
%span.label= t("integral.records.status.#{record.status}")
|
|
10
|
-
%td= l(record.updated_at, format: :long)
|
|
11
|
-
%td.actions
|
|
12
|
-
%button.button--action-pane{ 'data-toggle' => "dropdown-pane-actions-page-#{record.id}" }
|
|
13
|
-
= icon('ellipsis-v')
|
|
14
|
-
.dropdown-pane.dropdown-pane--actions{ id: "dropdown-pane-actions-page-#{record.id}", data: { dropdown: true, position: :bottom, alignment: :right, close_on_click: 'true' } }
|
|
15
|
-
%ul.menu.vertical
|
|
16
|
-
- if policy(Integral::Page).update?
|
|
17
|
-
%li
|
|
18
|
-
= link_to edit_backend_page_url(record.id) do
|
|
19
|
-
= icon('edit')
|
|
20
|
-
= t('integral.actions.edit')
|
|
21
|
-
- unless record.archived?
|
|
22
|
-
%li
|
|
23
|
-
= link_to record.path do
|
|
24
|
-
= icon('eye')
|
|
25
|
-
= t('integral.actions.view_on_site')
|
|
26
|
-
%li
|
|
27
|
-
= link_to backend_page_url(record.id), target: :blank do
|
|
28
|
-
= icon('external-link')
|
|
29
|
-
= t('integral.actions.open_in_new_tab')
|
|
30
|
-
- if policy(Integral::Page).duplicate?
|
|
31
|
-
%li
|
|
32
|
-
= link_to duplicate_backend_page_url(record.id), method: :post, data: { confirm: t('integral.actions.confirmation.clone') } do
|
|
33
|
-
= icon('clone')
|
|
34
|
-
= t('integral.actions.clone')
|
|
35
|
-
- if policy(Integral::Version).manager?
|
|
36
|
-
%li
|
|
37
|
-
= link_to activities_backend_page_url(record.id) do
|
|
38
|
-
= icon('history')
|
|
39
|
-
= t('integral.actions.view_history')
|
|
40
|
-
- if policy(Integral::Page).destroy?
|
|
41
|
-
%li
|
|
42
|
-
= link_to backend_page_url(record.id), method: :delete, data: { confirm: t('integral.actions.confirmation.deletion') } do
|
|
43
|
-
= icon('remove')
|
|
44
|
-
= t('integral.actions.delete')
|
|
45
|
-
- else
|
|
46
|
-
= render partial: 'integral/backend/shared/empty_grid'
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
= render_data_grid do
|
|
2
|
-
= render layout: 'integral/backend/shared/grid', locals: { grid: @grid, options: { columns: [:title, :user, :status, :view_count, :updated_at, :actions], order: true }} do |grid|
|
|
3
|
-
- if grid.assets.any?
|
|
4
|
-
- grid.assets.decorate.each do |record|
|
|
5
|
-
%tr.tr--clickable{ data: { href: backend_post_url(record.id), context_menu: "dropdown-pane-actions-post-#{record.id}" }}
|
|
6
|
-
%td= record.title.truncate(30)
|
|
7
|
-
%td
|
|
8
|
-
- if record.user.present?
|
|
9
|
-
= image_tag record.user.avatar.url(:thumbnail), alt: record.user.name, class: 'avatar'
|
|
10
|
-
= record.user.name
|
|
11
|
-
- else
|
|
12
|
-
"#{record.user_id} [Deleted]"
|
|
13
|
-
%td
|
|
14
|
-
%span.label= t("integral.records.status.#{record.status}")
|
|
15
|
-
%td= number_with_delimiter(record.view_count)
|
|
16
|
-
%td= l(record.updated_at, format: :long)
|
|
17
|
-
%td.actions
|
|
18
|
-
%button.button--action-pane{ 'data-toggle' => "dropdown-pane-actions-post-#{record.id}" }
|
|
19
|
-
= icon('ellipsis-v')
|
|
20
|
-
.dropdown-pane.dropdown-pane--actions{ id: "dropdown-pane-actions-post-#{record.id}", data: { dropdown: true, position: :bottom, alignment: :right, close_on_click: 'true' } }
|
|
21
|
-
%ul.menu.vertical
|
|
22
|
-
- if policy(Integral::Post).manager?
|
|
23
|
-
%li
|
|
24
|
-
= link_to edit_backend_post_url(record.id) do
|
|
25
|
-
= icon('edit')
|
|
26
|
-
= t('integral.actions.edit')
|
|
27
|
-
%li
|
|
28
|
-
= link_to post_url(record) do
|
|
29
|
-
= icon('eye')
|
|
30
|
-
= t('integral.actions.view_on_site')
|
|
31
|
-
%li
|
|
32
|
-
= link_to backend_post_url(record.id), target: :blank do
|
|
33
|
-
= icon('external-link')
|
|
34
|
-
= t('integral.actions.open_in_new_tab')
|
|
35
|
-
- if policy(Integral::Post).duplicate?
|
|
36
|
-
%li
|
|
37
|
-
= link_to duplicate_backend_post_url(record.id), method: :post, data: { confirm: t('integral.actions.confirmation.clone') } do
|
|
38
|
-
= icon('clone')
|
|
39
|
-
= t('integral.actions.clone')
|
|
40
|
-
- if policy(Integral::Version).manager?
|
|
41
|
-
%li
|
|
42
|
-
= link_to activities_backend_post_url(record.id) do
|
|
43
|
-
= icon('history')
|
|
44
|
-
= t('integral.actions.view_history')
|
|
45
|
-
- if policy(Integral::Post).manager?
|
|
46
|
-
%li
|
|
47
|
-
= link_to backend_post_url(record.id), method: :delete, data: { confirm: t('integral.actions.confirmation.deletion') } do
|
|
48
|
-
= icon('remove')
|
|
49
|
-
= t('integral.actions.delete')
|
|
50
|
-
- else
|
|
51
|
-
= render partial: 'integral/backend/shared/empty_grid'
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
-# TODO: Improve this to handle empty grid also
|
|
2
|
-
- options ||= local_assigns.fetch(:options, { order: true, columns: [] })
|
|
3
|
-
|
|
4
|
-
%table.integral-grid.wice-grid.table-striped.hover
|
|
5
|
-
%thead
|
|
6
|
-
%tr
|
|
7
|
-
- grid.html_columns(*options[:columns]).uniq { |col| col.name }.sort_by{ |item| options[:columns].index item.name }.each do |column|
|
|
8
|
-
%th{ class: datagrid_column_classes(grid, column) }
|
|
9
|
-
- if column.supports_order? && options[:order]
|
|
10
|
-
%button{ data: { sort: column.name, desc: (!grid.descending).to_s }}
|
|
11
|
-
= column.header
|
|
12
|
-
- else
|
|
13
|
-
= column.header
|
|
14
|
-
%tbody
|
|
15
|
-
= yield(grid)
|
|
16
|
-
|
|
17
|
-
= render partial: 'integral/backend/shared/pagination', locals: { records: grid.assets }
|
|
18
|
-
= icon('spinner', class: 'fa-pulse fa-3x fa-fw load-indicator')
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
-# TODO: Should look to merge this partial with recent_posts to create recent_resources card
|
|
2
|
-
.card
|
|
3
|
-
.card-section
|
|
4
|
-
.card-action-title
|
|
5
|
-
%h2 Recent Pages
|
|
6
|
-
%table.hover
|
|
7
|
-
- Integral::Page.published.limit(5).decorate.each do |record|
|
|
8
|
-
%tr
|
|
9
|
-
%td= record.title
|
|
10
|
-
-# %td
|
|
11
|
-
-# - if record.user.present?
|
|
12
|
-
-# = image_tag record.user.avatar.url(:thumbnail), alt: record.user.name, class: 'avatar'
|
|
13
|
-
-# = record.user.name
|
|
14
|
-
-# - else
|
|
15
|
-
-# "#{record.user_id} [Deleted]"
|
|
16
|
-
%td
|
|
17
|
-
= link_to backend_page_url(record.id), class: 'button--action-pane' do
|
|
18
|
-
= icon('eye')
|
|
19
|
-
= link_to t('integral.actions.view_all'), list_backend_pages_url, class: 'button clear expanded'
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
.card
|
|
2
|
-
.card-section
|
|
3
|
-
.card-action-title
|
|
4
|
-
%h2 Recent Posts
|
|
5
|
-
%table.hover
|
|
6
|
-
- Integral::Post.published.limit(5).decorate.each do |record|
|
|
7
|
-
%tr
|
|
8
|
-
%td= record.title
|
|
9
|
-
%td
|
|
10
|
-
- if record.user.present?
|
|
11
|
-
= image_tag record.user.avatar.url(:thumbnail), alt: record.user.name, class: 'avatar'
|
|
12
|
-
= record.user.name
|
|
13
|
-
- else
|
|
14
|
-
"#{record.user_id} [Deleted]"
|
|
15
|
-
%td
|
|
16
|
-
= link_to backend_post_url(record.id), class: 'button--action-pane' do
|
|
17
|
-
= icon('eye')
|
|
18
|
-
= link_to t('integral.actions.view_all'), list_backend_posts_url, class: 'button clear expanded'
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
-# TODO: Should look to merge this partial with recent_posts to create recent_resources card
|
|
2
|
-
.card
|
|
3
|
-
.card-section
|
|
4
|
-
.card-action-title
|
|
5
|
-
%h2 Recent Users
|
|
6
|
-
%table.hover
|
|
7
|
-
- Integral::User.order('created_at DESC').limit(5).decorate.each do |record|
|
|
8
|
-
%tr
|
|
9
|
-
%td= record.name
|
|
10
|
-
-# %td
|
|
11
|
-
-# - if record.user.present?
|
|
12
|
-
-# = image_tag record.user.avatar.url(:thumbnail), alt: record.user.name, class: 'avatar'
|
|
13
|
-
-# = record.user.name
|
|
14
|
-
-# - else
|
|
15
|
-
-# "#{record.user_id} [Deleted]"
|
|
16
|
-
%td
|
|
17
|
-
= link_to backend_user_url(record.id), class: 'button--action-pane' do
|
|
18
|
-
= icon('eye')
|
|
19
|
-
= link_to t('integral.actions.view_all'), list_backend_users_url, class: 'button clear expanded'
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
= render_data_grid do
|
|
2
|
-
= render layout: 'integral/backend/shared/grid', locals: { grid: @grid, options: { columns: [:name, :email, :updated_at, :actions], order: true }} do |grid|
|
|
3
|
-
- if grid.assets.any?
|
|
4
|
-
- grid.assets.decorate.each do |record|
|
|
5
|
-
%tr.tr--clickable{ data: { href: backend_user_url(record.id), context_menu: "dropdown-pane-actions-user-#{record.id}" }}
|
|
6
|
-
%td
|
|
7
|
-
= image_tag record.avatar.url(:thumbnail), class: :avatar
|
|
8
|
-
= record.name.truncate(30)
|
|
9
|
-
%td= record.email
|
|
10
|
-
%td= l(record.updated_at, format: :long)
|
|
11
|
-
%td.actions
|
|
12
|
-
%button.button--action-pane{ 'data-toggle' => "dropdown-pane-actions-user-#{record.id}" }
|
|
13
|
-
= icon('ellipsis-v')
|
|
14
|
-
.dropdown-pane.dropdown-pane--actions{ id: "dropdown-pane-actions-user-#{record.id}", data: { dropdown: true, position: :bottom, alignment: :right, close_on_click: 'true' } }
|
|
15
|
-
%ul.menu.vertical
|
|
16
|
-
- if policy(Integral::User).manager?
|
|
17
|
-
%li
|
|
18
|
-
= link_to edit_backend_user_url(record.id) do
|
|
19
|
-
= icon('edit')
|
|
20
|
-
= t('integral.actions.edit')
|
|
21
|
-
%li
|
|
22
|
-
= link_to backend_user_url(record.id), target: :blank do
|
|
23
|
-
= icon('external-link')
|
|
24
|
-
= t('integral.actions.open_in_new_tab')
|
|
25
|
-
-# - if policy(Integral::Version).manager?
|
|
26
|
-
-# %li
|
|
27
|
-
-# = link_to activities_backend_post_url(record.id) do
|
|
28
|
-
-# = icon('history')
|
|
29
|
-
-# = t('integral.actions.view_history')
|
|
30
|
-
- if policy(Integral::User).manager?
|
|
31
|
-
%li
|
|
32
|
-
= link_to backend_user_url(record.id), method: :delete, data: { confirm: t('integral.actions.confirmation.deletion') } do
|
|
33
|
-
= icon('remove')
|
|
34
|
-
= t('integral.actions.delete')
|
|
35
|
-
- else
|
|
36
|
-
= render partial: 'integral/backend/shared/empty_grid'
|