nocms-admin 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +339 -0
  3. data/README.md +4 -0
  4. data/Rakefile +21 -0
  5. data/app/assets/fonts/no_cms/admin/fsd_-_pragmatapro-webfont.eot +0 -0
  6. data/app/assets/fonts/no_cms/admin/fsd_-_pragmatapro-webfont.ttf +0 -0
  7. data/app/assets/fonts/no_cms/admin/fsd_-_pragmatapro-webfont.woff +0 -0
  8. data/app/assets/images/no_cms/admin/NoCMS_logo.svg +29 -0
  9. data/app/assets/images/no_cms/admin/general-f471e1516770e9528f3dcf0a635516de.png +0 -0
  10. data/app/assets/images/no_cms/admin/ico-add.png +0 -0
  11. data/app/assets/images/no_cms/admin/ico-close.png +0 -0
  12. data/app/assets/images/no_cms/admin/ico-expand-dark.png +0 -0
  13. data/app/assets/images/no_cms/admin/ico-expand.png +0 -0
  14. data/app/assets/images/no_cms/admin/ico-filter.png +0 -0
  15. data/app/assets/images/no_cms/admin/ico-mini-delete.png +0 -0
  16. data/app/assets/images/no_cms/admin/ico-mini-move-down.png +0 -0
  17. data/app/assets/images/no_cms/admin/ico-mini-move-up.png +0 -0
  18. data/app/assets/images/no_cms/admin/ico-mini-show-hide.png +0 -0
  19. data/app/assets/images/no_cms/admin/ico-search-mini.png +0 -0
  20. data/app/assets/images/no_cms/admin/ico-search.png +0 -0
  21. data/app/assets/images/no_cms/admin/stripe_5d3ba7190e7de9a95d82d43dce2917b1.png +0 -0
  22. data/app/assets/javascripts/no_cms/admin/application.js +17 -0
  23. data/app/assets/javascripts/no_cms/admin/libraries/store.min.js +2 -0
  24. data/app/assets/javascripts/no_cms/admin/logger.js +48 -0
  25. data/app/assets/javascripts/no_cms/admin/no_cms_admin.js +2 -0
  26. data/app/assets/javascripts/no_cms/admin/ready.js +65 -0
  27. data/app/assets/stylesheets/no_cms/admin/application.css.scss +13 -0
  28. data/app/assets/stylesheets/no_cms/admin/no_cms.css.scss +1281 -0
  29. data/app/builders/no_cms/admin/form_builder.rb +18 -0
  30. data/app/controllers/no_cms/admin/application_controller.rb +12 -0
  31. data/app/controllers/no_cms/admin/dashboard_controller.rb +7 -0
  32. data/app/helpers/no_cms/admin/application_helper.rb +17 -0
  33. data/app/views/layouts/no_cms/admin/application.html.erb +77 -0
  34. data/app/views/no_cms/admin/dashboard/show.html.erb +0 -0
  35. data/app/views/no_cms/admin/shared/_console_log.html.erb +11 -0
  36. data/app/views/no_cms/admin/shared/_locales.html.erb +5 -0
  37. data/app/views/no_cms/admin/shared/_log_messages.html.erb +8 -0
  38. data/app/views/no_cms/admin/shared/_menu_item.html.erb +5 -0
  39. data/app/views/no_cms/admin/shared/_menu_items.html.erb +3 -0
  40. data/app/views/no_cms/admin/shared/_secondary_menu_toolbar.html.erb +32 -0
  41. data/app/views/no_cms/admin/shared/_toolbar.html.erb +15 -0
  42. data/config/locales/en.yml +11 -0
  43. data/config/routes.rb +3 -0
  44. data/lib/no_cms/admin/configuration.rb +10 -0
  45. data/lib/no_cms/admin/engine.rb +7 -0
  46. data/lib/no_cms/admin/logger.rb +48 -0
  47. data/lib/no_cms/admin/version.rb +5 -0
  48. data/lib/nocms_admin.rb +8 -0
  49. data/lib/tasks/admin_tasks.rake +4 -0
  50. metadata +145 -0
@@ -0,0 +1,18 @@
1
+ class NoCms::Admin::FormBuilder < ActionView::Helpers::FormBuilder
2
+
3
+ [:text_field, :text_area, :select].each do |helper|
4
+ define_method helper do |attribute, *args|
5
+ html = super attribute, *args
6
+ html += errors_field(attribute)
7
+ html
8
+ end
9
+ end
10
+
11
+ def errors_field(attribute)
12
+ error_messages = object.errors.full_messages_for(attribute)
13
+ return '' if error_messages.blank?
14
+ @template.content_tag('ul',
15
+ @template.raw(error_messages.map{|e| @template.content_tag('li', e)}.join),
16
+ class: 'error')
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ module NoCms
2
+ module Admin
3
+ class ApplicationController < ActionController::Base
4
+
5
+ before_filter :initialize_logger
6
+
7
+ def initialize_logger
8
+ @logger = NoCms::Admin::Logger.new request
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ module NoCms
2
+ module Admin
3
+ class DashboardController < ApplicationController
4
+
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ module NoCms
2
+ module Admin
3
+ module ApplicationHelper
4
+
5
+ def menu_item_url menu_item
6
+ menu_item[:url].is_a?(Proc) ?
7
+ menu_item[:url].call :
8
+ menu_item[:url]
9
+ end
10
+
11
+ def no_cms_admin_form_for(record, options = {}, &block)
12
+ form_for record, options.merge(builder: NoCms::Admin::FormBuilder), &block
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,77 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>NºCMS</title>
6
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/sanitize.css/2.0.0/sanitize.css">
7
+
8
+ <%= stylesheet_link_tag "no_cms/admin/application", media: "all" %>
9
+ <%= yield :stylesheets %>
10
+
11
+ <%= csrf_meta_tags %>
12
+ </head>
13
+
14
+ <% second_menu = yield :second_menu %>
15
+
16
+ <body <%= raw 'class="col-1-only"' if second_menu.blank? %>>
17
+
18
+ <section id="content-area">
19
+ <%= yield %>
20
+ </section>
21
+
22
+
23
+ <section id="interface">
24
+ <header id="main-header">
25
+ <div class="logo">
26
+ <%= link_to image_tag("no_cms/admin/NoCMS_logo.svg", alt: "NoCMS Rules", width: "94px", height: "44px"), no_cms_admin.root_path, class: 'logo' %>
27
+ </div>
28
+ <a href="#" class="btn right ico-logout">LOGOUT</a>
29
+ </header>
30
+
31
+ <aside id="col-1">
32
+ <div class="tool-bar">
33
+ <%= render 'no_cms/admin/shared/locales' %>
34
+
35
+ </div>
36
+ <div class="content">
37
+ <%= render partial: 'no_cms/admin/shared/menu_item', collection: NoCms::Admin.menu_items, layout: 'no_cms/admin/shared/menu_items', as: :menu_item, locals: { current: @current_section } %>
38
+ </div>
39
+ </aside>
40
+
41
+ <% unless second_menu.blank? %>
42
+ <aside id="col-2">
43
+ <%= render 'no_cms/admin/shared/secondary_menu_toolbar' %>
44
+ <% pagination = yield :pagination %>
45
+ <% unless pagination.blank? %>
46
+ <div class="page-nav">
47
+ <p>
48
+ <%= pagination %>
49
+ </p>
50
+ </div>
51
+ <% end %>
52
+ <div class="content">
53
+ <%= second_menu %>
54
+ </div>
55
+ </aside>
56
+ <% end %>
57
+ </section>
58
+
59
+
60
+ <%= render 'no_cms/admin/shared/console_log' %>
61
+
62
+
63
+
64
+ <div id="mini-options"> ^ v x o </div>
65
+
66
+
67
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
68
+ <%= javascript_include_tag "no_cms/admin/application" %>
69
+ <%= yield :js %>
70
+ <script type="text/javascript">
71
+ $(function(){
72
+ <%= yield :ready_js %>
73
+ });
74
+ </script>
75
+
76
+ </body>
77
+ </html>
File without changes
@@ -0,0 +1,11 @@
1
+ <section id="log-bar">
2
+ <span id="js-clear-log" title="<%= t('.clear_title')%>"><%= t('.clear')%></span>
3
+ </section>
4
+ <% content_for :ready_js do %>
5
+ var logger = new NoCMS.Admin.Logger();
6
+ <% @logger.messages.each do |type, messages| %>
7
+ <% messages.each do |message| %>
8
+ logger.addMessage(<%= raw type.to_json %>, <%= raw message.to_json %>)
9
+ <% end %>
10
+ <% end %>
11
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <div class="lang">
2
+ <% I18n.available_locales.each do |l| %>
3
+ <%= link_to l.to_s.upcase, url_for(request.params.merge(locale: l)), class: (l == I18n.locale ? 'current' : nil) %>
4
+ <% end %>
5
+ </div>
@@ -0,0 +1,8 @@
1
+ <% types ||= [:info, :warning, :error] %>
2
+ <% @logger.messages(types).each do |type, messages| %>
3
+ <% messages.each do |message| %>
4
+ <div class="row msg <%= type %>">
5
+ <%= message %>
6
+ </div>
7
+ <% end %>
8
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% current ||= nil %>
2
+ <li <%= raw 'class="current"' if current == menu_item[:name] %>>
3
+ <%= link_to I18n.t("no_cms.admin.menu_items.#{menu_item[:name]}"), menu_item_url(menu_item) %>
4
+ <%= render partial: 'no_cms/admin/shared/menu_item', collection: menu_item[:children], layout: 'no_cms/admin/shared/menu_items', as: :menu_item, locals: { current: current } unless menu_item[:children].blank? %>
5
+ </li>
@@ -0,0 +1,3 @@
1
+ <ul>
2
+ <%= yield %>
3
+ </ul>
@@ -0,0 +1,32 @@
1
+ <% filter = begin
2
+ render 'filter'
3
+ rescue ActionView::MissingTemplate
4
+ ''
5
+ end %>
6
+
7
+ <% search = begin
8
+ render 'search'
9
+ rescue ActionView::MissingTemplate
10
+ ''
11
+ end %>
12
+
13
+ <div class="tool-bar">
14
+ <a href="#" id="js-expand-col-2" class="btn-square ico-expand" title="Expand page listing"></a>
15
+ <a href="#" id="js-collapse-to-minimun" class="btn-square ico-close" title="Close page listing"></a>
16
+ <%= link_to '', '#', id: "js-filter", class: "btn-square ico-filter", title: I18n.t('.filter') unless filter.blank? %>
17
+ <%= link_to '', '#', id: "js-search", class: "btn-square ico-search", title: I18n.t('.search') unless search.blank? %>
18
+ <%= link_to '', url_for(action: :new), title: t('.new'), class: 'btn-square right ico-add accent', id: 'js-add-new' %>
19
+ </div>
20
+
21
+ <% unless search.blank? %>
22
+ <div class="search-bar">
23
+ <%= search %>
24
+ </div>
25
+ <% end %>
26
+
27
+ <% unless filter.blank? %>
28
+ <div class="filter-bar">
29
+ <%= filter %>
30
+ </div>
31
+ <% end %>
32
+
@@ -0,0 +1,15 @@
1
+ <% f ||= nil %>
2
+ <div class="tool-bar">
3
+ <%= begin
4
+ render 'toolbar_left', f: f
5
+ rescue ActionView::MissingTemplate
6
+ ''
7
+ end %>
8
+ <a href="#" id="js-go-full-screen" class="btn-square ico-expand-dark"></a>
9
+ <%= render 'no_cms/admin/shared/locales' %>
10
+ <%= begin
11
+ render 'toolbar_right', f: f
12
+ rescue ActionView::MissingTemplate
13
+ ''
14
+ end %>
15
+ </div>
@@ -0,0 +1,11 @@
1
+ en:
2
+ no_cms:
3
+ admin:
4
+ shared:
5
+ console_log:
6
+ clear: Clear
7
+ clear_title: Clear log
8
+ secondary_menu_toolbar:
9
+ filter: Filter
10
+ new: New
11
+ search: Search
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ NoCms::Admin::Engine.routes.draw do
2
+ root to: 'dashboard#show'
3
+ end
@@ -0,0 +1,10 @@
1
+ module NoCms
2
+ module Admin
3
+ include ActiveSupport::Configurable
4
+
5
+ config_accessor :menu_items
6
+
7
+ self.menu_items = []
8
+
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ module NoCms
2
+ module Admin
3
+ class Engine < ::Rails::Engine
4
+ isolate_namespace NoCms::Admin
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,48 @@
1
+ module NoCms
2
+ module Admin
3
+ class Logger
4
+
5
+ # We will need the request if we want to save the messages in flash
6
+ def initialize request
7
+ @request = request
8
+ request.session[:no_cms_admin_logger] ||= {}
9
+ @messages = request.session[:no_cms_admin_logger]
10
+ request.session[:no_cms_admin_logger] = {}
11
+ end
12
+
13
+ def messages_container later=false
14
+ later ? @request.session[:no_cms_admin_logger] : @messages
15
+ end
16
+
17
+ def info message, later=false
18
+ add_message :info, message, later
19
+ end
20
+
21
+ def warning message, later=false
22
+ add_message :warning, message, later
23
+ end
24
+
25
+ def error message, later=false
26
+ add_message :error, message, later
27
+ end
28
+
29
+ def add_message type, message, later=false
30
+ container = messages_container later
31
+ if later
32
+ @request.session[:no_cms_admin_logger][type] ||= []
33
+ @request.session[:no_cms_admin_logger][type] << message
34
+ else
35
+ @messages[type] ||= []
36
+ @messages[type] << message
37
+ end
38
+ end
39
+
40
+ def messages types = []
41
+ types.blank? ?
42
+ @messages :
43
+ @messages.select { |type, _| types.include? type }
44
+ end
45
+
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,5 @@
1
+ module NoCms
2
+ module Admin
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ require "no_cms/admin/engine"
2
+ require "no_cms/admin/configuration"
3
+ require "no_cms/admin/logger"
4
+
5
+ module NoCms
6
+ module Admin
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :admin do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nocms-admin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Simplelogica
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 4.0.3
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '4.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 4.0.3
33
+ - !ruby/object:Gem::Dependency
34
+ name: sass-rails
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 4.0.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 4.0.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: sqlite3
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ description: Common layout and functionalities for NoCMS custom admins
68
+ email:
69
+ - gems@simplelogica.net
70
+ executables: []
71
+ extensions: []
72
+ extra_rdoc_files: []
73
+ files:
74
+ - LICENSE
75
+ - README.md
76
+ - Rakefile
77
+ - app/assets/fonts/no_cms/admin/fsd_-_pragmatapro-webfont.eot
78
+ - app/assets/fonts/no_cms/admin/fsd_-_pragmatapro-webfont.ttf
79
+ - app/assets/fonts/no_cms/admin/fsd_-_pragmatapro-webfont.woff
80
+ - app/assets/images/no_cms/admin/NoCMS_logo.svg
81
+ - app/assets/images/no_cms/admin/general-f471e1516770e9528f3dcf0a635516de.png
82
+ - app/assets/images/no_cms/admin/ico-add.png
83
+ - app/assets/images/no_cms/admin/ico-close.png
84
+ - app/assets/images/no_cms/admin/ico-expand-dark.png
85
+ - app/assets/images/no_cms/admin/ico-expand.png
86
+ - app/assets/images/no_cms/admin/ico-filter.png
87
+ - app/assets/images/no_cms/admin/ico-mini-delete.png
88
+ - app/assets/images/no_cms/admin/ico-mini-move-down.png
89
+ - app/assets/images/no_cms/admin/ico-mini-move-up.png
90
+ - app/assets/images/no_cms/admin/ico-mini-show-hide.png
91
+ - app/assets/images/no_cms/admin/ico-search-mini.png
92
+ - app/assets/images/no_cms/admin/ico-search.png
93
+ - app/assets/images/no_cms/admin/stripe_5d3ba7190e7de9a95d82d43dce2917b1.png
94
+ - app/assets/javascripts/no_cms/admin/application.js
95
+ - app/assets/javascripts/no_cms/admin/libraries/store.min.js
96
+ - app/assets/javascripts/no_cms/admin/logger.js
97
+ - app/assets/javascripts/no_cms/admin/no_cms_admin.js
98
+ - app/assets/javascripts/no_cms/admin/ready.js
99
+ - app/assets/stylesheets/no_cms/admin/application.css.scss
100
+ - app/assets/stylesheets/no_cms/admin/no_cms.css.scss
101
+ - app/builders/no_cms/admin/form_builder.rb
102
+ - app/controllers/no_cms/admin/application_controller.rb
103
+ - app/controllers/no_cms/admin/dashboard_controller.rb
104
+ - app/helpers/no_cms/admin/application_helper.rb
105
+ - app/views/layouts/no_cms/admin/application.html.erb
106
+ - app/views/no_cms/admin/dashboard/show.html.erb
107
+ - app/views/no_cms/admin/shared/_console_log.html.erb
108
+ - app/views/no_cms/admin/shared/_locales.html.erb
109
+ - app/views/no_cms/admin/shared/_log_messages.html.erb
110
+ - app/views/no_cms/admin/shared/_menu_item.html.erb
111
+ - app/views/no_cms/admin/shared/_menu_items.html.erb
112
+ - app/views/no_cms/admin/shared/_secondary_menu_toolbar.html.erb
113
+ - app/views/no_cms/admin/shared/_toolbar.html.erb
114
+ - config/locales/en.yml
115
+ - config/routes.rb
116
+ - lib/no_cms/admin/configuration.rb
117
+ - lib/no_cms/admin/engine.rb
118
+ - lib/no_cms/admin/logger.rb
119
+ - lib/no_cms/admin/version.rb
120
+ - lib/nocms_admin.rb
121
+ - lib/tasks/admin_tasks.rake
122
+ homepage: https://github.com/simplelogica/nocms-admin
123
+ licenses: []
124
+ metadata: {}
125
+ post_install_message:
126
+ rdoc_options: []
127
+ require_paths:
128
+ - lib
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ requirements: []
140
+ rubyforge_project:
141
+ rubygems_version: 2.2.2
142
+ signing_key:
143
+ specification_version: 4
144
+ summary: Common layout and functionalities for NoCMS custom admins.
145
+ test_files: []