kadmin 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +44 -44
  3. data/Rakefile +146 -146
  4. data/app/assets/javascripts/modular/app.js +1388 -1388
  5. data/app/assets/javascripts/modular/application.js +3 -3
  6. data/app/assets/javascripts/modular/vendor.js +57671 -57671
  7. data/app/assets/stylesheets/kadmin/typeahead-select.scss +2 -0
  8. data/app/assets/stylesheets/modular/app-blue.css +2795 -2795
  9. data/app/assets/stylesheets/modular/app-custom.css +2795 -2795
  10. data/app/assets/stylesheets/modular/app-green.css +2795 -2795
  11. data/app/assets/stylesheets/modular/app-orange.css +2795 -2795
  12. data/app/assets/stylesheets/modular/app-purple.css +2795 -2795
  13. data/app/assets/stylesheets/modular/app-red.css +2795 -2795
  14. data/app/assets/stylesheets/modular/app-seagreen.css +2795 -2795
  15. data/app/assets/stylesheets/modular/app.css +2795 -2795
  16. data/app/assets/stylesheets/modular/custom.css +51 -19
  17. data/app/assets/stylesheets/modular/vendor.css +12999 -12999
  18. data/app/controllers/kadmin/application_controller.rb +64 -64
  19. data/app/controllers/kadmin/auth_controller.rb +98 -98
  20. data/app/controllers/kadmin/concerns/authorized_user.rb +67 -67
  21. data/app/controllers/kadmin/dash_controller.rb +19 -19
  22. data/app/decorators/kadmin/finder_decorator.rb +50 -50
  23. data/app/decorators/kadmin/pager_decorator.rb +33 -33
  24. data/app/helpers/kadmin/alert_helper.rb +59 -59
  25. data/app/helpers/kadmin/application_helper.rb +4 -4
  26. data/app/helpers/kadmin/bootstrap_helper.rb +23 -23
  27. data/app/helpers/kadmin/form_builder.rb +9 -9
  28. data/app/helpers/kadmin/forms/inverted_check_box.rb +10 -10
  29. data/app/helpers/kadmin/navigation_helper.rb +28 -28
  30. data/app/helpers/kadmin/pagination_helper.rb +95 -95
  31. data/app/views/kadmin/auth/login.html.erb +4 -4
  32. data/app/views/kadmin/components/_finder.html.erb +14 -18
  33. data/app/views/kadmin/components/finder/_empty.html.erb +3 -3
  34. data/app/views/kadmin/components/finder/_form.erb +10 -10
  35. data/app/views/kadmin/components/finder/_header.html.erb +14 -11
  36. data/app/views/kadmin/dash/index.html.erb +5 -5
  37. data/app/views/kadmin/error.html.erb +5 -5
  38. data/app/views/kadmin/helpers/_alerts.html.erb +4 -4
  39. data/app/views/kadmin/helpers/_form_errors.html.erb +10 -10
  40. data/app/views/layouts/modular/application.html.erb +134 -132
  41. data/config/initializers/action_view.rb +2 -2
  42. data/config/initializers/assets.rb +5 -5
  43. data/config/locales/de.yml +25 -25
  44. data/config/locales/en.yml +24 -24
  45. data/config/routes.rb +12 -12
  46. data/lib/kadmin.rb +22 -22
  47. data/lib/kadmin/auth.rb +31 -31
  48. data/lib/kadmin/auth/configuration.rb +66 -66
  49. data/lib/kadmin/auth/unauthorized_error.rb +14 -14
  50. data/lib/kadmin/auth/user.rb +15 -15
  51. data/lib/kadmin/auth/user_store.rb +21 -21
  52. data/lib/kadmin/configuration.rb +18 -18
  53. data/lib/kadmin/engine.rb +15 -15
  54. data/lib/kadmin/error.rb +7 -7
  55. data/lib/kadmin/errors/authorization.rb +15 -15
  56. data/lib/kadmin/finder.rb +66 -66
  57. data/lib/kadmin/form.rb +179 -179
  58. data/lib/kadmin/pager.rb +93 -93
  59. data/lib/kadmin/version.rb +3 -3
  60. data/test/dummy/README.rdoc +28 -28
  61. data/test/dummy/Rakefile +6 -6
  62. data/test/dummy/app/assets/javascripts/application.js +13 -13
  63. data/test/dummy/app/assets/stylesheets/application.css +15 -15
  64. data/test/dummy/app/controllers/admin/application_controller.rb +11 -11
  65. data/test/dummy/app/controllers/admin/people_controller.rb +89 -89
  66. data/test/dummy/app/controllers/admin_controller.rb +4 -4
  67. data/test/dummy/app/controllers/application_controller.rb +5 -5
  68. data/test/dummy/app/controllers/authorized_controller.rb +8 -8
  69. data/test/dummy/app/helpers/application_helper.rb +2 -2
  70. data/test/dummy/app/models/group.rb +8 -8
  71. data/test/dummy/app/models/group_person.rb +6 -6
  72. data/test/dummy/app/models/person.rb +20 -20
  73. data/test/dummy/app/views/admin/index.html.erb +1 -1
  74. data/test/dummy/app/views/admin/people/_form.html.erb +34 -34
  75. data/test/dummy/app/views/admin/people/_table.html.erb +33 -33
  76. data/test/dummy/app/views/admin/people/edit.html.erb +4 -4
  77. data/test/dummy/app/views/admin/people/index.html.erb +3 -3
  78. data/test/dummy/app/views/admin/people/new.html.erb +5 -5
  79. data/test/dummy/app/views/admin/people/show.html.erb +3 -3
  80. data/test/dummy/app/views/authorized/index.html.erb +1 -1
  81. data/test/dummy/app/views/layouts/application.html.erb +14 -14
  82. data/test/dummy/bin/bundle +3 -3
  83. data/test/dummy/bin/rails +4 -4
  84. data/test/dummy/bin/rake +4 -4
  85. data/test/dummy/bin/setup +29 -29
  86. data/test/dummy/config.ru +4 -4
  87. data/test/dummy/config/application.rb +39 -39
  88. data/test/dummy/config/boot.rb +5 -5
  89. data/test/dummy/config/database.yml +22 -22
  90. data/test/dummy/config/environment.rb +5 -5
  91. data/test/dummy/config/environments/development.rb +41 -41
  92. data/test/dummy/config/environments/production.rb +79 -79
  93. data/test/dummy/config/environments/test.rb +42 -42
  94. data/test/dummy/config/initializers/assets.rb +10 -10
  95. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -7
  96. data/test/dummy/config/initializers/cookies_serializer.rb +3 -3
  97. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -4
  98. data/test/dummy/config/initializers/inflections.rb +16 -16
  99. data/test/dummy/config/initializers/kadmin.rb +24 -24
  100. data/test/dummy/config/initializers/mime_types.rb +4 -4
  101. data/test/dummy/config/initializers/session_store.rb +3 -3
  102. data/test/dummy/config/initializers/wrap_parameters.rb +14 -14
  103. data/test/dummy/config/locales/en.yml +17 -17
  104. data/test/dummy/config/routes.rb +13 -13
  105. data/test/dummy/config/secrets.yml +22 -22
  106. data/test/dummy/db/migrate/20161006114509_create_people.rb +11 -11
  107. data/test/dummy/db/migrate/20161006134459_create_groups.rb +11 -11
  108. data/test/dummy/db/migrate/20161006134746_create_group_people.rb +11 -11
  109. data/test/dummy/db/schema.rb +43 -43
  110. data/test/dummy/lib/forms/group_form.rb +16 -16
  111. data/test/dummy/lib/forms/person_form.rb +19 -19
  112. data/test/dummy/public/404.html +67 -67
  113. data/test/dummy/public/422.html +67 -67
  114. data/test/dummy/public/500.html +66 -66
  115. data/test/dummy/test/fixtures/children.yml +11 -11
  116. data/test/dummy/test/fixtures/group_people.yml +11 -11
  117. data/test/dummy/test/fixtures/groups.yml +11 -11
  118. data/test/dummy/test/fixtures/people.yml +11 -11
  119. data/test/dummy/test/models/group_person_test.rb +7 -7
  120. data/test/dummy/test/models/group_test.rb +7 -7
  121. data/test/kadmin/form_test.rb +6 -6
  122. data/test/test_helper.rb +32 -32
  123. metadata +54 -53
@@ -1,95 +1,95 @@
1
- module Kadmin
2
- module PaginationHelper
3
- # @param [Kadmin::Pager] pager context to paginate
4
- # @param [Array<Integer>] sizes array of page sizes
5
- def paginate(pager, sizes)
6
- return content_tag(:div, pagination_page_list(pager) + pagination_size_list(pager, sizes), class: 'btn-toolbar')
7
- end
8
-
9
- # Page Links
10
- # Always include:
11
- # => Previous page, first, last, next
12
- # If we're over page 10, at ... after previous link
13
- # If there aren't showing the last page yet, add ... before next link
14
- def pagination_page_list(pager)
15
- links = []
16
- window = (pager.current_page - 2)..(pager.current_page + 2)
17
-
18
- window = Range.new(0, window.end - window.begin) if window.begin.negative?
19
- window = Range.new(window.begin, pager.pages - 1) if window.end >= pager.pages
20
-
21
- first_link = pagination_navigate_link(pager, 0, '&laquo;')
22
- previous_link = pagination_navigate_link(pager, pager.current_page - 1, '&lsaquo;')
23
- last_link = pagination_navigate_link(pager, pager.pages - 1, '&raquo;')
24
- next_link = pagination_navigate_link(pager, pager.current_page + 1, '&rsaquo;')
25
-
26
- if pager.previous_page?(window.begin)
27
- links << pagination_non_link('&hellip;', 'disabled')
28
- end
29
-
30
- window.each do |number|
31
- links << pagination_page_link(number, pager)
32
- end
33
-
34
- if pager.next_page?(window.end)
35
- links << pagination_non_link('&hellip;', 'disabled')
36
- end
37
-
38
- links.unshift(first_link, previous_link)
39
- links << next_link
40
- links << last_link
41
-
42
- return content_tag(:div, links.reduce(&:+), class: 'btn-group')
43
- end
44
- private :pagination_page_list
45
-
46
- def pagination_non_link(text, css_classes = nil)
47
- classes = %w(btn btn-default) + Array.wrap(css_classes)
48
- return content_tag(:div, text.to_s.html_safe, class: classes.join(' '))
49
- end
50
- private :pagination_non_link
51
-
52
- def pagination_link(text, options = {}, css_classes = nil)
53
- classes = %w(btn btn-default) + Array.wrap(css_classes)
54
- return link_to(text.to_s.html_safe, params.merge(options), class: classes.join(' '))
55
- end
56
- private :pagination_link
57
-
58
- def pagination_page_link(page, pager)
59
- link = if pager.current_page?(page)
60
- pagination_non_link(page + 1, 'active')
61
- else
62
- pagination_link(page + 1, page_offset: pager.offset_at(page))
63
- end
64
-
65
- return link
66
- end
67
- private :pagination_page_link
68
-
69
- def pagination_navigate_link(pager, page, text)
70
- link = if pager.contains?(page)
71
- pagination_link(text, page_offset: pager.offset_at(page))
72
- else
73
- pagination_non_link(text, 'disabled')
74
- end
75
-
76
- return link
77
- end
78
- private :pagination_navigate_link
79
-
80
- # Page Sizes
81
- def pagination_size_list(pager, sizes)
82
- label = content_tag(:div, 'Per page: ', class: 'btn')
83
- links = sizes.map do |size|
84
- if pager.size == size
85
- pagination_non_link(size, 'active')
86
- else
87
- pagination_link(size, page_size: size)
88
- end
89
- end.reduce(&:+)
90
-
91
- return content_tag(:div, label + links, class: 'btn-group')
92
- end
93
- private :pagination_size_list
94
- end
95
- end
1
+ module Kadmin
2
+ module PaginationHelper
3
+ # @param [Kadmin::Pager] pager context to paginate
4
+ # @param [Array<Integer>] sizes array of page sizes
5
+ def paginate(pager, sizes)
6
+ return content_tag(:div, pagination_page_list(pager) + pagination_size_list(pager, sizes), class: 'btn-toolbar')
7
+ end
8
+
9
+ # Page Links
10
+ # Always include:
11
+ # => Previous page, first, last, next
12
+ # If we're over page 10, at ... after previous link
13
+ # If there aren't showing the last page yet, add ... before next link
14
+ def pagination_page_list(pager)
15
+ links = []
16
+ window = (pager.current_page - 2)..(pager.current_page + 2)
17
+
18
+ window = Range.new(0, window.end - window.begin) if window.begin.negative?
19
+ window = Range.new(window.begin, pager.pages - 1) if window.end >= pager.pages
20
+
21
+ first_link = pagination_navigate_link(pager, 0, '&laquo;')
22
+ previous_link = pagination_navigate_link(pager, pager.current_page - 1, '&lsaquo;')
23
+ last_link = pagination_navigate_link(pager, pager.pages - 1, '&raquo;')
24
+ next_link = pagination_navigate_link(pager, pager.current_page + 1, '&rsaquo;')
25
+
26
+ if pager.previous_page?(window.begin)
27
+ links << pagination_non_link('&hellip;', 'disabled')
28
+ end
29
+
30
+ window.each do |number|
31
+ links << pagination_page_link(number, pager)
32
+ end
33
+
34
+ if pager.next_page?(window.end)
35
+ links << pagination_non_link('&hellip;', 'disabled')
36
+ end
37
+
38
+ links.unshift(first_link, previous_link)
39
+ links << next_link
40
+ links << last_link
41
+
42
+ return content_tag(:div, links.reduce(&:+), class: 'btn-group')
43
+ end
44
+ private :pagination_page_list
45
+
46
+ def pagination_non_link(text, css_classes = nil)
47
+ classes = %w(btn btn-default) + Array.wrap(css_classes)
48
+ return content_tag(:div, text.to_s.html_safe, class: classes.join(' '))
49
+ end
50
+ private :pagination_non_link
51
+
52
+ def pagination_link(text, options = {}, css_classes = nil)
53
+ classes = %w(btn btn-default) + Array.wrap(css_classes)
54
+ return link_to(text.to_s.html_safe, params.merge(options), class: classes.join(' '))
55
+ end
56
+ private :pagination_link
57
+
58
+ def pagination_page_link(page, pager)
59
+ link = if pager.current_page?(page)
60
+ pagination_non_link(page + 1, 'active')
61
+ else
62
+ pagination_link(page + 1, page_offset: pager.offset_at(page))
63
+ end
64
+
65
+ return link
66
+ end
67
+ private :pagination_page_link
68
+
69
+ def pagination_navigate_link(pager, page, text)
70
+ link = if pager.contains?(page)
71
+ pagination_link(text, page_offset: pager.offset_at(page))
72
+ else
73
+ pagination_non_link(text, 'disabled')
74
+ end
75
+
76
+ return link
77
+ end
78
+ private :pagination_navigate_link
79
+
80
+ # Page Sizes
81
+ def pagination_size_list(pager, sizes)
82
+ label = content_tag(:div, 'Per page: ', class: 'btn')
83
+ links = sizes.map do |size|
84
+ if pager.size == size
85
+ pagination_non_link(size, 'active')
86
+ else
87
+ pagination_link(size, page_size: size)
88
+ end
89
+ end.reduce(&:+)
90
+
91
+ return content_tag(:div, label + links, class: 'btn-group')
92
+ end
93
+ private :pagination_size_list
94
+ end
95
+ end
@@ -1,4 +1,4 @@
1
- <div style='text-align: center; margin-top: 1em'>
2
- <p><%= link_to(t('kadmin.auth.please_login'), omniauth_provider_link) %></p>
3
- <p><%= t('kadmin.auth.login_required') %></p>
4
- </div>
1
+ <div style='text-align: center; margin-top: 1em'>
2
+ <p><%= link_to(t('kadmin.auth.please_login'), omniauth_provider_link) %></p>
3
+ <p><%= t('kadmin.auth.login_required') %></p>
4
+ </div>
@@ -1,18 +1,14 @@
1
- <%= render partial: 'kadmin/components/finder/header', locals: { finder: finder } %>
2
-
3
- <div class='container-fluid'>
4
- <% if finder.filters.present? %>
5
- <div class='row'>
6
- <%= render partial: 'kadmin/components/finder/form', locals: { finder: finder } %>
7
- </div>
8
- <% end %>
9
-
10
- <div class='row' style='padding-top: 15px'>
11
- <% if finder.results.empty? %>
12
- <%= render partial: 'kadmin/components/finder/empty', locals: { finder: finder } %>
13
- <% else %>
14
- <%= yield %>
15
- <%= paginate(finder.pager, [15, 30, 50, 100]) %>
16
- <% end %>
17
- </div>
18
- </div>
1
+ <%= render partial: 'kadmin/components/finder/header', locals: { finder: finder } %>
2
+
3
+ <div class='container-fluid'>
4
+ <div class='row' style='padding-top: 15px'>
5
+ <% if finder.results.empty? %>
6
+ <%= render partial: 'kadmin/components/finder/empty', locals: { finder: finder } %>
7
+ <% else %>
8
+ <%= yield %>
9
+ <% if finder.results.size > 50 %>
10
+ <%= paginate(finder.pager, [50, 100, 1000]) %>
11
+ <% end %>
12
+ <% end %>
13
+ </div>
14
+ </div>
@@ -1,3 +1,3 @@
1
- <div class='jumbotron'>
2
- <p><%= t('kadmin.components.finder.empty') %></p>
3
- </div>
1
+ <div class='jumbotron'>
2
+ <p><%= t('kadmin.components.finder.empty') %></p>
3
+ </div>
@@ -1,10 +1,10 @@
1
- <%= form_tag(request.path, method: 'get', class: 'form-inline') do %>
2
- <div class='form-group'>
3
- <%= link_to(t('kadmin.components.finder.create'), url_for(action: :new), class: 'btn btn-primary') %>
4
- <% finder.filters.each do |name, filter| %>
5
- <%= text_field_tag("filter_#{name}", filter&.value, class: 'form-control', placeholder: "Filter by #{name}...") %>
6
- <% end %>
7
- <%= submit_tag(t('kadmin.components.finder.filter'), class: 'btn btn-default form-control') %>
8
- <%= link_to(t('kadmin.components.finder.clear'), request.path, class: 'btn btn-danger form-control') %>
9
- </div>
10
- <% end %>
1
+ <%= form_tag(request.path, method: 'get', class: 'form-inline pull-right') do %>
2
+ <div class='form-group'>
3
+ <%= link_to(t('kadmin.components.finder.create'), url_for(action: :new), class: 'btn btn-primary', style: 'margin-right: 20px') %>
4
+ <% finder.filters.each do |name, filter| %>
5
+ <%= text_field_tag("filter_#{name}", filter&.value, class: 'form-control', placeholder: "Filter by #{name}...") %>
6
+ <% end %>
7
+ <%= submit_tag(t('kadmin.components.finder.filter'), class: 'btn btn-default form-control') %>
8
+ <!--<%= link_to(t('kadmin.components.finder.clear'), request.path, class: 'btn btn-danger form-control') %>-->
9
+ </div>
10
+ <% end %>
@@ -1,11 +1,14 @@
1
- <div class="page-header">
2
- <h2>
3
- <%= finder.currently_showing %>
4
- <% unless finder.empty? %>
5
- <small>
6
- <%= t('kadmin.components.finder.out_of', total: finder.pager.total) %>
7
- <%= finder.applied_filters %>
8
- </small>
9
- <% end %>
10
- </h2>
11
- </div>
1
+ <div class="card-title-block">
2
+ <h3 class="title">
3
+ <%= finder.currently_showing %>
4
+ <% unless finder.empty? %>
5
+ (
6
+ <%= t('kadmin.components.finder.out_of', total: finder.pager.total) %>
7
+ <%= finder.applied_filters %>
8
+ )
9
+ <% end %>
10
+ <% if finder.filters.present? %>
11
+ <%= render partial: 'kadmin/components/finder/form', locals: { finder: finder } %>
12
+ <% end %>
13
+ </h3>
14
+ </div>
@@ -1,5 +1,5 @@
1
- <div class='jumbotron' style='margin-top: 1em;'>
2
- <h1 class='display-3'><%= t('kadmin.welcome', user: current_user) %></h1>
3
- <hr class='m-y-2'>
4
- <p><%= t('kadmin.dash_message') %></p>
5
- </div>
1
+ <div class='jumbotron' style='margin-top: 1em;'>
2
+ <h3 class=''><%= t('kadmin.welcome', user: current_user) %></h3>
3
+ <hr class='m-y-2'>
4
+ <p><%= t('kadmin.dash_message') %></p>
5
+ </div>
@@ -1,5 +1,5 @@
1
- <div class='jumbotron' style='margin-top: 1em'>
2
- <h1 class='display-3'><%= title %></h1>
3
- <hr class='m-y-2'>
4
- <p><%= message %></p>
5
- </div>
1
+ <div class='jumbotron' style='margin-top: 1em'>
2
+ <h1 class='display-3'><%= title %></h1>
3
+ <hr class='m-y-2'>
4
+ <p><%= message %></p>
5
+ </div>
@@ -1,4 +1,4 @@
1
- <div class='alerts'>
2
- <%= render_flash_alerts %>
3
- <%= yield :flash_alerts %>
4
- </div>
1
+ <div class='alerts'>
2
+ <%= render_flash_alerts %>
3
+ <%= yield :flash_alerts %>
4
+ </div>
@@ -1,10 +1,10 @@
1
- <% if model.errors.present? %>
2
- <%= alert('danger') do %>
3
- <p><%= glyphicon('exclamation-sign') %> <%= t('kadmin.forms.please_correct') %></p>
4
- <ul>
5
- <% model.errors.full_messages.each do |message| %>
6
- <li><%= message.html_safe %></li>
7
- <% end %>
8
- </ul>
9
- <% end %>
10
- <% end %>
1
+ <% if model.errors.present? %>
2
+ <%= alert('danger') do %>
3
+ <p><%= glyphicon('exclamation-sign') %> <%= t('kadmin.forms.please_correct') %></p>
4
+ <ul>
5
+ <% model.errors.full_messages.each do |message| %>
6
+ <li><%= message.html_safe %></li>
7
+ <% end %>
8
+ </ul>
9
+ <% end %>
10
+ <% end %>
@@ -1,133 +1,135 @@
1
- <!doctype html>
2
- <html class="no-js" lang="en">
3
-
4
- <head>
5
- <meta charset="utf-8">
6
- <meta http-equiv="x-ua-compatible" content="ie=edge">
7
- <title>Apps/Services Admin</title>
8
- <meta name="description" content="">
9
- <meta name="viewport" content="width=device-width, initial-scale=1">
10
- <link rel="apple-touch-icon" href="apple-touch-icon.png">
11
- <!-- Place favicon.ico in the root directory -->
12
- <%= stylesheet_link_tag "modular/vendor.css", media: "all" %>
13
- <%= stylesheet_link_tag "modular/app-blue.css", media: "all" %>
14
- <%= stylesheet_link_tag "modular/custom.css", media: "all" %>
15
- <%= csrf_meta_tags %>
16
- <!-- Additional scripts -->
17
- <%= javascript_include_tag "modular/application.js" %>
18
- <%= javascript_include_tag "modular/custom.js" %>
19
- </head>
20
-
21
- <body>
22
- <div class="main-wrapper">
23
- <div class="app" id="app">
24
- <header class="header">
25
- <h3 class="title" style="margin-left: 40px;"> Moin, moin! </h3>
26
- <div class="header-block header-block-nav">
27
- <ul class="nav-profile">
28
- <% if logged_in? %>
29
- <%= link_to(t('kadmin.authorization.logout'), Kadmin::Engine.routes.url_helpers.auth_logout_path) %>
30
- <% end %>
31
- <li class="profile dropdown">
32
-
33
- <!--<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
34
- <div class="img" style="background-image: url('https://avatars3.githubusercontent.com/u/3959008?v=3&s=40')"> </div>
35
- <span class="name">John Doe</span>
36
- </a>
37
- <div class="dropdown-menu profile-dropdown-menu" aria-labelledby="dropdownMenu1">
38
- <a class="dropdown-item" href="#"> <i class="fa fa-user icon"></i> Profile </a>
39
- <a class="dropdown-item" href="#"> <i class="fa fa-bell icon"></i> Notifications </a>
40
- <a class="dropdown-item" href="#"> <i class="fa fa-gear icon"></i> Settings </a>
41
- <div class="dropdown-divider"></div>
42
- <a class="dropdown-item" href="login.html"> <i class="fa fa-power-off icon"></i> Logout </a>
43
- </div>-->
44
- </li>
45
- </ul>
46
- </div>
47
- </header>
48
- <aside class="sidebar">
49
- <div class="sidebar-container">
50
- <div class="sidebar-header">
51
- <div class="brand">
52
- <!--<div class="logo"> <span class="l l1"></span> <span class="l l2"></span> <span class="l l3"></span> <span class="l l4"></span> <span class="l l5"></span> </div>-->
53
- <a class="titlelink" href="/admin">Apps&amp;Services Admin</a> </div>
54
- </div>
55
- <nav class="menu">
56
- <ul class="nav metismenu" id="sidebar-menu">
57
-
58
- <% unless @layout_navbar_links.blank? %>
59
- <% @layout_navbar_links.each do |link| %>
60
- <%= nav_link_to(link[:title], link[:path]) %>
61
- <% end %>
62
- <% end %>
63
- <!--<li class="active">
64
- <a href="index.html"> <i class="fa fa-home"></i> Dashboard </a>
65
- </li>
66
- <li>
67
- <a href=""> <i class="fa fa-th-large"></i> Items Manager <i class="fa arrow"></i> </a>
68
- <ul>
69
- <li> <a href="items-list.html">
70
- Items List
71
- </a> </li>
72
- <li> <a href="item-editor.html">
73
- Item Editor
74
- </a> </li>
75
- </ul>
76
- </li>-->
77
- </ul>
78
- </nav>
79
- </div>
80
- </aside>
81
- <div class="sidebar-overlay" id="sidebar-overlay"></div>
82
- <article class="content dashboard-page">
83
- <div class="row">
84
- <% if content_for?(:sidebar) %>
85
- <div class="col-xl-8">
86
- <!-- main -->
87
- <%= render partial: 'kadmin/helpers/alerts' %>
88
- <%= yield %>
89
- </div>
90
- <div class="col-xl-4 helpsidebar">
91
- <!-- sidebar -->
92
- <div class="card card-default">
93
- <div class="card-header">
94
- <div class="header-block">
95
- <p class="title">Help</p>
96
- </div>
97
- </div>
98
- <div class="card-block">
99
- <%= yield(:sidebar) %>
100
- </div>
101
- <!--<div class="card-footer"> Card Footer </div>-->
102
- </div>
103
- </div>
104
- <% else %>
105
- <div class="col-sm-12">
106
- <%= render partial: 'kadmin/helpers/alerts' %>
107
- <%= yield %>
108
- </div>
109
- <% end %>
110
- </div>
111
- </article>
112
- <footer class="footer">
113
- <div class="footer-block buttons"> </div>
114
- <div class="footer-block author">
115
- <ul>
116
- <li> Problems? <a href="https://redmine.offerista.com/projects/apps-services/issues/new">Create a Ticket</a> </li>
117
- </ul>
118
- </div>
119
- </footer>
120
- </div>
121
- </div>
122
- <!-- Reference block for JS -->
123
- <div class="ref" id="ref">
124
- <div class="color-primary"></div>
125
- <div class="chart">
126
- <div class="color-primary"></div>
127
- <div class="color-secondary"></div>
128
- </div>
129
- </div>
130
- <%= yield :javascripts %>
131
- </body>
132
-
1
+ <!doctype html>
2
+ <html class="no-js" lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
7
+ <title>Apps/Services Admin</title>
8
+ <meta name="description" content="">
9
+ <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <link rel="apple-touch-icon" href="apple-touch-icon.png">
11
+ <!-- Place favicon.ico in the root directory -->
12
+ <%= stylesheet_link_tag "modular/vendor.css", media: "all" %>
13
+ <%= stylesheet_link_tag "modular/app-blue.css", media: "all" %>
14
+ <%= stylesheet_link_tag "modular/custom.css", media: "all" %>
15
+ <%= yield :stylesheets %>
16
+ <%= csrf_meta_tags %>
17
+ <!-- Additional scripts -->
18
+ <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
19
+ <%= javascript_include_tag "modular/application.js" %>
20
+ <%= javascript_include_tag "modular/custom.js" %>
21
+ </head>
22
+
23
+ <body>
24
+ <div class="main-wrapper">
25
+ <div class="app" id="app">
26
+ <header class="header">
27
+ <h3 class="title" style="margin-left: 40px;"> <!--Moin, moin!--> </h3>
28
+ <div class="header-block header-block-nav">
29
+ <ul class="nav-profile">
30
+ <% if logged_in? %>
31
+ <%= link_to(t('kadmin.authorization.logout'), Kadmin::Engine.routes.url_helpers.auth_logout_path) %>
32
+ <% end %>
33
+ <li class="profile dropdown">
34
+
35
+ <!--<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
36
+ <div class="img" style="background-image: url('https://avatars3.githubusercontent.com/u/3959008?v=3&s=40')"> </div>
37
+ <span class="name">John Doe</span>
38
+ </a>
39
+ <div class="dropdown-menu profile-dropdown-menu" aria-labelledby="dropdownMenu1">
40
+ <a class="dropdown-item" href="#"> <i class="fa fa-user icon"></i> Profile </a>
41
+ <a class="dropdown-item" href="#"> <i class="fa fa-bell icon"></i> Notifications </a>
42
+ <a class="dropdown-item" href="#"> <i class="fa fa-gear icon"></i> Settings </a>
43
+ <div class="dropdown-divider"></div>
44
+ <a class="dropdown-item" href="login.html"> <i class="fa fa-power-off icon"></i> Logout </a>
45
+ </div>-->
46
+ </li>
47
+ </ul>
48
+ </div>
49
+ </header>
50
+ <aside class="sidebar">
51
+ <div class="sidebar-container">
52
+ <div class="sidebar-header">
53
+ <div class="brand">
54
+ <!--<div class="logo"> <span class="l l1"></span> <span class="l l2"></span> <span class="l l3"></span> <span class="l l4"></span> <span class="l l5"></span> </div>-->
55
+ <a class="titlelink" href="/admin">Apps&amp;Services Admin</a> </div>
56
+ </div>
57
+ <nav class="menu">
58
+ <ul class="nav metismenu" id="sidebar-menu">
59
+
60
+ <% unless @layout_navbar_links.blank? %>
61
+ <% @layout_navbar_links.each do |link| %>
62
+ <%= nav_link_to(link[:title], link[:path]) %>
63
+ <% end %>
64
+ <% end %>
65
+ <!--<li class="active">
66
+ <a href="index.html"> <i class="fa fa-home"></i> Dashboard </a>
67
+ </li>
68
+ <li>
69
+ <a href=""> <i class="fa fa-th-large"></i> Items Manager <i class="fa arrow"></i> </a>
70
+ <ul>
71
+ <li> <a href="items-list.html">
72
+ Items List
73
+ </a> </li>
74
+ <li> <a href="item-editor.html">
75
+ Item Editor
76
+ </a> </li>
77
+ </ul>
78
+ </li>-->
79
+ </ul>
80
+ </nav>
81
+ </div>
82
+ </aside>
83
+ <div class="sidebar-overlay" id="sidebar-overlay"></div>
84
+ <article class="content dashboard-page">
85
+ <div class="row">
86
+ <% if content_for?(:sidebar) %>
87
+ <div class="col-xl-8">
88
+ <!-- main -->
89
+ <%= render partial: 'kadmin/helpers/alerts' %>
90
+ <%= yield %>
91
+ </div>
92
+ <div class="col-xl-4 helpsidebar">
93
+ <!-- sidebar -->
94
+ <div class="card card-default">
95
+ <div class="card-header">
96
+ <div class="header-block">
97
+ <p class="title">Help</p>
98
+ </div>
99
+ </div>
100
+ <div class="card-block">
101
+ <%= yield(:sidebar) %>
102
+ </div>
103
+ <!--<div class="card-footer"> Card Footer </div>-->
104
+ </div>
105
+ </div>
106
+ <% else %>
107
+ <div class="col-sm-12">
108
+ <%= render partial: 'kadmin/helpers/alerts' %>
109
+ <%= yield %>
110
+ </div>
111
+ <% end %>
112
+ </div>
113
+ </article>
114
+ <footer class="footer">
115
+ <div class="footer-block buttons"> </div>
116
+ <div class="footer-block author">
117
+ <ul>
118
+ <li> Problems? <a href="https://redmine.offerista.com/projects/apps-services/issues/new">Create a Ticket</a> </li>
119
+ </ul>
120
+ </div>
121
+ </footer>
122
+ </div>
123
+ </div>
124
+ <!-- Reference block for JS -->
125
+ <div class="ref" id="ref">
126
+ <div class="color-primary"></div>
127
+ <div class="chart">
128
+ <div class="color-primary"></div>
129
+ <div class="color-secondary"></div>
130
+ </div>
131
+ </div>
132
+ <%= yield :javascripts %>
133
+ </body>
134
+
133
135
  </html>