nocms-admin-pages 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +23 -0
  3. data/app/assets/images/no_cms/admin/pages/stripe_5d3ba7190e7de9a95d82d43dce2917b1_a10.png +0 -0
  4. data/app/assets/javascripts/no_cms/admin/pages/application.js +2 -0
  5. data/app/assets/javascripts/no_cms/admin/pages/content_block_handler.js +108 -0
  6. data/app/assets/stylesheets/no_cms/admin/pages/application.css +13 -0
  7. data/app/assets/stylesheets/no_cms/admin/pages/pages.css.scss +107 -0
  8. data/app/controllers/no_cms/admin/pages/application_controller.rb +8 -0
  9. data/app/controllers/no_cms/admin/pages/pages_controller.rb +86 -0
  10. data/app/helpers/no_cms/admin/pages/application_helper.rb +8 -0
  11. data/app/helpers/no_cms/admin/pages/pages_helper.rb +25 -0
  12. data/app/views/no_cms/admin/pages/blocks/_default.html.erb +9 -0
  13. data/app/views/no_cms/admin/pages/blocks/_form.html.erb +20 -0
  14. data/app/views/no_cms/admin/pages/blocks/_index.html.erb +12 -0
  15. data/app/views/no_cms/admin/pages/pages/_content_fields.html.erb +15 -0
  16. data/app/views/no_cms/admin/pages/pages/_filter.html.erb +59 -0
  17. data/app/views/no_cms/admin/pages/pages/_page_listing.html.erb +3 -0
  18. data/app/views/no_cms/admin/pages/pages/_page_listing_item.html.erb +13 -0
  19. data/app/views/no_cms/admin/pages/pages/_search.html.erb +4 -0
  20. data/app/views/no_cms/admin/pages/pages/_toolbar_right.html.erb +3 -0
  21. data/app/views/no_cms/admin/pages/pages/edit.html.erb +38 -0
  22. data/app/views/no_cms/admin/pages/pages/index.html.erb +11 -0
  23. data/app/views/no_cms/admin/pages/pages/new.html.erb +16 -0
  24. data/config/initializers/admin_menu_items.rb +4 -0
  25. data/config/locales/en.yml +33 -0
  26. data/config/routes.rb +3 -0
  27. data/lib/no_cms/admin/pages/engine.rb +13 -0
  28. data/lib/no_cms/admin/pages/version.rb +7 -0
  29. data/lib/nocms-admin-pages.rb +8 -0
  30. data/lib/tasks/pages_tasks.rake +4 -0
  31. metadata +140 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 632c92fc7d5067172887bca9991102495727098d
4
+ data.tar.gz: c48113c93862f5180aa9226cc2d745045fabbae2
5
+ SHA512:
6
+ metadata.gz: 6d1d6a288c9b45e987068e797b87e3b853932651712da46978b731d5d17d5ea4cfc919720390da18becc6777f71252e5c3e79a325e6569b332ee7a75b922e61c
7
+ data.tar.gz: 2142414c5a6a9a49afe01c3aed1905d5717972bde097fcce89b43aa371b0978e125e0bbbbaf5698f2cc3decb4ff40febf6502d8aa902ad8ea0c4d1cadbf05bf4
@@ -0,0 +1,23 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Pages'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+
22
+ Bundler::GemHelper.install_tasks
23
+
@@ -0,0 +1,2 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
@@ -0,0 +1,108 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
3
+
4
+ NoCMS.ContentBlockHandler = function() {
5
+
6
+
7
+ var default_layout_block = $('#new_content_block_default'),
8
+ block_placeholder = $('#content_blocks_placeholder'),
9
+ new_content_link = $('#new_content_block'),
10
+ block_templates = $('.new.block'),
11
+ that = this;
12
+
13
+ new_content_link.on('click', function(e){
14
+ e.preventDefault();
15
+ that.createBlock();
16
+ });
17
+
18
+ block_placeholder.on('change', '.block_layout_selector', function(e){
19
+ that.updateBlock($(this).parents('.block'), $(this).val());
20
+ });
21
+
22
+ block_placeholder.on('click', '.ico-mini-move-down', function(e){
23
+ e.preventDefault();
24
+ var block = $(this).parents('.block'),
25
+ next_blocks = block.nextAll('.block');
26
+
27
+ if(next_blocks.length > 0) {
28
+ that.switchBlockPositions(block, next_blocks.first());
29
+ }
30
+ });
31
+
32
+ block_placeholder.on('click', '.ico-mini-move-up', function(e){
33
+ e.preventDefault();
34
+ var block = $(this).parents('.block'),
35
+ previous_blocks = block.prevAll('.block');
36
+
37
+ if(previous_blocks.length > 0) {
38
+ that.switchBlockPositions(previous_blocks.first(), block);
39
+ }
40
+ });
41
+
42
+ block_placeholder.on('click', '.ico-mini-show-hide', function(e){
43
+ e.preventDefault();
44
+ that.toggleDraft($(this).parents('.block'));
45
+ });
46
+
47
+ block_placeholder.on('click', '.ico-mini-delete', function(e){
48
+ e.preventDefault();
49
+ that.toggleDestroy($(this).parents('.block'));
50
+ });
51
+
52
+ this.updateBlock = function(block, new_layout){
53
+ new_template = block_templates.filter('#new_content_block_' + new_layout)
54
+ block.find('.layout_fields').html(new_template.find('.layout_fields').html());
55
+ this.modifyInputNames(block, block.find('.block_layout_selector').attr('id').match(/_([0-9]*)_/)[1]);
56
+ }
57
+
58
+ this.switchBlockPositions = function(block, next_block){
59
+ var next_block_position = next_block.find('.position').val();
60
+
61
+ next_block.find('.position').val(block.find('.position').val());
62
+ block.find('.position').val(next_block_position);
63
+
64
+ next_block.after(block);
65
+ }
66
+
67
+ this.createBlock = function(){
68
+ var position = $('.block').not('.new').length;
69
+ new_block = default_layout_block.clone();
70
+ new_block.removeClass('new');
71
+ new_block.removeAttr('id');
72
+ this.modifyInputNames(new_block, position);
73
+ new_block.find('.position').val(position);
74
+
75
+ block_placeholder.append(new_block);
76
+ }
77
+
78
+ this.modifyInputNames = function(block, position){
79
+
80
+ block.find('[for]').each(function(){
81
+ $(this).attr('for', $(this).attr('for').replace(/_[0-9]*_/, '_'+position+'_'))
82
+ });
83
+ block.find('[id]').each(function(){
84
+ $(this).attr('id', $(this).attr('id').replace(/_[0-9]*_/, '_'+position+'_'))
85
+ });
86
+ block.find('[name]').each(function(){
87
+ $(this).attr('name', $(this).attr('name').replace(/\[[0-9]*\]/, '['+position+']'))
88
+ });
89
+
90
+ }
91
+
92
+ this.toggleDraft = function(block) {
93
+ var draft_field = block.find('.draft');
94
+ block.toggleClass('oculto');
95
+ draft_field.val(draft_field.val() == '1' ? '0' : '1');
96
+ }
97
+
98
+ this.toggleDestroy = function(block) {
99
+ var draft_field = block.find('.destroy');
100
+ block.toggleClass('to-be-deleted');
101
+ draft_field.val(draft_field.val() == '1' ? '0' : '1');
102
+ }
103
+
104
+ block_templates.each(function() {
105
+ $(this).detach();
106
+ });
107
+
108
+ }
@@ -0,0 +1,13 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,107 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
5
+
6
+ /* Main BG color */
7
+ $bg: #272c2f;
8
+ $content_area_padding: 20px;
9
+ $accent: #f05a28;
10
+ $font_mono: 'pragmataproregular', 'Courier New', Courier, monospace;
11
+ $line_color: lighten($bg, 40%);
12
+
13
+ .new.block {
14
+ display:none;
15
+ }
16
+ section#content-area .content .row {
17
+ &.has-children {
18
+ counter-reset: term;
19
+ }
20
+ .block {
21
+ $line_color: lighten($bg, 40%);
22
+ position: relative;
23
+ margin: ($content_area_padding * 0.75) 0 ($content_area_padding * 0.75) $content_area_padding;
24
+ padding: 0;
25
+ border-left: 2px dotted $line_color;
26
+ border-right: 2px dotted $line_color;
27
+ border-top: 2px solid $line_color;
28
+
29
+ > .title {
30
+ width: 100%;
31
+ height: 24px;
32
+ background: #fff;
33
+ background: lighten($bg, 40%);
34
+
35
+ color: #fff;
36
+ font-weight: 700;
37
+ padding: 4px 0 0 8px;
38
+
39
+ > .mo {
40
+ opacity: 1;
41
+ float: right;
42
+ border: 0;
43
+
44
+ > input[type=submit],
45
+ > button,
46
+ > a {
47
+ background-color: $line_color;
48
+ border-left: 1px solid #fff;
49
+ &.active,
50
+ &:hover {
51
+ background-color: desaturate(darken($accent, 20%), 20%);
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ /* Contador */
58
+ &:before {
59
+ counter-increment: term;
60
+ content: counter(term);
61
+ display: block;
62
+ position: absolute;
63
+ padding: 4px 0 0 0;
64
+ width: 20px;
65
+ height: 22px;
66
+ top: -2px;
67
+ left: -22px;
68
+ background: $line_color;
69
+
70
+ font-family: $font_mono;
71
+ font-size: 18px;
72
+ font-weight: 700;
73
+ text-align: center;
74
+ color: #fff;
75
+
76
+ }
77
+
78
+
79
+ &.to-be-deleted {
80
+ .title {
81
+ .mo {
82
+ .ico-mini-delete {
83
+ background-color: $accent !important;
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ &.oculto {
90
+ .title {
91
+ .mo {
92
+ .ico-mini-show-hide {
93
+ background-color: $accent !important;
94
+ }
95
+ }
96
+ }
97
+ .row {
98
+ background-image: image-url('no_cms/admin/pages/stripe_5d3ba7190e7de9a95d82d43dce2917b1_a10.png');
99
+ }
100
+ }
101
+ >.row {
102
+ &:last-of-type {
103
+ border-bottom: 2px solid lighten($bg, 50%);
104
+ }
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,8 @@
1
+ module NoCms
2
+ module Admin
3
+ module Pages
4
+ class ApplicationController < NoCms::Admin::ApplicationController
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,86 @@
1
+ require_dependency "no_cms/admin/pages/application_controller"
2
+
3
+ module NoCms::Admin::Pages
4
+ class PagesController < ApplicationController
5
+
6
+ before_filter :load_menu_section
7
+ before_filter :load_page, only: [:edit, :update, :destroy]
8
+ before_filter :load_roots, only: [:index, :new, :edit]
9
+
10
+
11
+ def new
12
+ @page = NoCms::Pages::Page.new
13
+ end
14
+
15
+ def create
16
+ @page = NoCms::Pages::Page.new page_params
17
+ if @page.save
18
+ @logger.info(I18n.t('.no_cms.admin.pages.pages.create.success', title: @page.path), true)
19
+ redirect_after_save
20
+ else
21
+ @logger.error(I18n.t('.no_cms.admin.pages.pages.create.error', title: @page.path))
22
+ load_roots
23
+ render :new
24
+ end
25
+ end
26
+
27
+ def edit
28
+ @logger.add_message :pages, I18n.t('.no_cms.admin.pages.pages.edit.log_messages', title: @page.path)
29
+ NoCms::Pages.block_layouts.each do |name, _|
30
+ @page.blocks.build layout: name
31
+ end
32
+ end
33
+
34
+ def update
35
+ if @page.update_attributes page_params
36
+ @logger.info(I18n.t('.no_cms.admin.pages.pages.update.success', title: @page.path), true)
37
+ redirect_after_save
38
+ else
39
+ @logger.error(I18n.t('.no_cms.admin.pages.pages.update.error', title: @page.path))
40
+ load_roots
41
+ render :new
42
+ end
43
+ end
44
+
45
+ def destroy
46
+ if @page.destroy
47
+ @logger.info(I18n.t('.no_cms.admin.pages.pages.destroy.success', title: @page.path), true)
48
+ else
49
+ @logger.error(I18n.t('.no_cms.admin.pages.pages.destroy.error', title: @page.path), true)
50
+ end
51
+ redirect_to pages_path
52
+ end
53
+
54
+ private
55
+
56
+ def load_menu_section
57
+ @current_section = 'pages'
58
+ end
59
+
60
+ def load_page
61
+ @page = NoCms::Pages::Page.find(params[:id])
62
+ end
63
+
64
+ def load_roots
65
+ @roots = NoCms::Pages::Page.roots
66
+ end
67
+
68
+ def page_params
69
+ page_params = params.require(:page).permit(:title, :body, :parent_id, :draft)
70
+ page_params.merge!(blocks_attributes: params[:page][:blocks_attributes]) unless params[:page][:blocks_attributes].blank?
71
+ page_params
72
+ end
73
+
74
+ def redirect_after_save
75
+ if params[:submit_and_hide]
76
+ redirect_to pages_path
77
+ elsif params[:submit_and_new]
78
+ redirect_to new_page_path
79
+ else params[:submit]
80
+ redirect_to edit_page_path(@page)
81
+ end
82
+
83
+ end
84
+
85
+ end
86
+ end
@@ -0,0 +1,8 @@
1
+ module NoCms
2
+ module Admin
3
+ module Pages
4
+ module ApplicationHelper
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,25 @@
1
+ module NoCms::Admin::Pages
2
+ module PagesHelper
3
+
4
+ def page_listing_item_classes page, current_page
5
+ classes = []
6
+ classes << 'current' if current_page == page
7
+ classes << 'oculto' if page.draft
8
+ classes
9
+ end
10
+
11
+ def block_form_classes block
12
+ classes = []
13
+ classes << 'oculto' if block.draft
14
+ classes << 'new' if block.new_record?
15
+ classes
16
+ end
17
+
18
+ def block_form_id block
19
+ block.new_record? ?
20
+ "new_content_block_#{block.layout}" :
21
+ "content_block_#{block.id}"
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,9 @@
1
+ <div class="row">
2
+ <%= f.label :title %>
3
+ <%= f.text_field :title %>
4
+ </div>
5
+
6
+ <div class="row">
7
+ <%= f.label :body %>
8
+ <%= f.text_area :body %>
9
+ </div>
@@ -0,0 +1,20 @@
1
+ <div class="title">
2
+ <%= I18n.t "no_cms.pages.blocks.layouts.#{f.object.layout}" %>
3
+ <div class="mo">
4
+ <a href="" class="ico-mini-delete">
5
+ <a href="" class="ico-mini-move-up"></a>
6
+ <a href="" class="ico-mini-move-down"></a>
7
+ <a href="" class="ico-mini-show-hide"></a>
8
+ </div>
9
+ </div>
10
+ <div class="row">
11
+ <%= f.label :layout %>
12
+ <%= f.select :layout, NoCms::Pages.block_layouts.map{|name, _| [ I18n.t("no_cms.pages.blocks.layouts.#{name}"), name ]}, {}, class: 'block_layout_selector' %>
13
+ </div>
14
+ <div class='layout_fields'>
15
+ <%= render "no_cms/admin/pages/blocks/#{f.object.template}" , f: f %>
16
+ </div>
17
+
18
+ <%= f.hidden_field :position, class: 'position', value: f.index %>
19
+ <%= f.hidden_field :draft, class: 'draft', value: f.object.draft ? '1' : '0' %>
20
+ <%= f.hidden_field :_destroy, class: 'destroy', value: '0' %>
@@ -0,0 +1,12 @@
1
+ <div class="row has-children" id='content_blocks_placeholder'>
2
+ <label><%= t('.title') %></label>
3
+
4
+ <%= link_to t('.new_block'), '#', id: 'new_content_block', class: 'btn _m0' %>
5
+
6
+ <%= f.fields_for :blocks do |f_block| %>
7
+
8
+ <div class="block row <%= block_form_classes(f_block.object).join(" ")%>" id="<%= block_form_id(f_block.object) %>">
9
+ <%= render 'no_cms/admin/pages/blocks/form', f: f_block %>
10
+ </div>
11
+ <% end %>
12
+ </div>
@@ -0,0 +1,15 @@
1
+ <div id="content_fields">
2
+ <div class="row">
3
+ <%= f.label :parent_id %>
4
+ <%= f.select :parent_id, NoCms::Pages::Page.with_translations.map{|p| [p.path, p.id]}, include_blank: t('.choose_page') %>
5
+ </div>
6
+ <div class="row">
7
+ <%= f.label :title %>
8
+ <%= f.text_field :title %>
9
+ </div>
10
+
11
+ <div class="row">
12
+ <%= f.label :body %>
13
+ <%= f.text_area :body %>
14
+ </div>
15
+ </div>
@@ -0,0 +1,59 @@
1
+ <form action="#">
2
+ <div class="row">
3
+ <label for="nombre">Nombre</label>
4
+ <input type="text" name="nombre" id="" placeholder="Placeholder de nombre">
5
+ </div>
6
+ <div class="row">
7
+ <label for="codigo-GG">Código GG</label>
8
+ <input type="text" name="codigo-GG" id="">
9
+ </div>
10
+ <div class="row">
11
+ <label for="ISBN">ISBN</label>
12
+ <input type="text" name="ISBN" id="">
13
+ </div>
14
+ <div class="row">
15
+ <label for="categoria">Categoría</label>
16
+ <input type="text" name="categoria" id="">
17
+ </div>
18
+ <div class="row">
19
+ <label for="xxx">Dos inputs en una sola línea</label>
20
+ <input type="text" name="Nombre" id="" class="half">
21
+ <input type="text" name="Apellidos" id="" class="half">
22
+ </div>
23
+ <div class="row">
24
+ <label for="editorial">Editorial</label>
25
+ <select name="editorial" id="">
26
+ <option value="">Editorial 1</option>
27
+ <option value="">Editorial 2</option>
28
+ <option value="">Editorial 3</option>
29
+ </select>
30
+ </div>
31
+ <div class="row">
32
+ <label for="coleccion">Colección y país</label>
33
+ <select name="coleccion" id="">
34
+ <option value="">Sleccione colección</option>
35
+ <option value="">Colección 1</option>
36
+ <option value="">Colección 2</option>
37
+ <option value="">Colección 3</option>
38
+ </select>
39
+ <select name="pais" id="">
40
+ <option value="">Sleccione país</option>
41
+ <option value="">Colección 1</option>
42
+ <option value="">Colección 2</option>
43
+ <option value="">Colección 3</option>
44
+ </select>
45
+ </div>
46
+ <div class="row">
47
+ <fieldset>
48
+ <legend>Título del grupos de checkboxes</legend>
49
+ <label><input type="checkbox" name="" id=""> Checkbox 1</label>
50
+ <label><input type="checkbox" name="" id=""> Checkbox 2</label>
51
+ <label><input type="checkbox" name="" id=""> Checkbox 4</label>
52
+ <label><input type="checkbox" name="" id=""> Checkbox 5</label>
53
+ </fieldset>
54
+ </div>
55
+ <div class="row filter-actions">
56
+ <input type="submit" value="Filtrar" class="btn right">
57
+ <input type="reset" value="Eliminar filtro" class="btn right">
58
+ </div>
59
+ </form>
@@ -0,0 +1,3 @@
1
+ <ul>
2
+ <%= yield %>
3
+ </ul>
@@ -0,0 +1,13 @@
1
+ <% current ||= nil %>
2
+ <li <%= raw "class='#{page_listing_item_classes(page, current).join(' ')}'"%>>
3
+ <%= link_to page.title, edit_page_path(page)%>
4
+ <div class="mo">
5
+ <%= button_to '', page_path(page), method: :delete, class: "ico-mini-delete", title: t('.destroy') %>
6
+ <%= button_to page_path(page), method: :put, class: "ico-mini-show-hide", title: (page.draft ? t('.show') : t('.hide')) do %>
7
+ <% fields_for page do |f| %>
8
+ <%= f.hidden_field :draft, value: (page.draft ? "0" : "1") %>
9
+ <% end %>
10
+ <% end %>
11
+ </div>
12
+ <%= render partial: 'page_listing_item', collection: page.children, as: 'page', layout: 'page_listing', locals: { current: current } unless page.children.blank? %>
13
+ </li>
@@ -0,0 +1,4 @@
1
+ <form action="#">
2
+ <input type="text" name="serch" id="search-terms" placeholder="Search in this section">
3
+ <input type="submit" value="" class="btn mini-search ">
4
+ </form>
@@ -0,0 +1,3 @@
1
+ <%= f.submit t('.submit'), name: :submit, class: "btn right" %>
2
+ <%= f.submit t('.submit_and_new'), name: 'submit_and_new', class: "btn right" %>
3
+ <%= f.submit t('.submit_and_hide'), name: 'submit_and_hide', class: "btn right" %>
@@ -0,0 +1,38 @@
1
+ <% content_for :js do %>
2
+ <%= javascript_include_tag 'no_cms/admin/pages/content_block_handler' %>
3
+ <% end %>
4
+
5
+ <% content_for :ready_js do %>
6
+ NoCMS.ContentBlockHandler();
7
+ <% end %>
8
+
9
+ <% content_for :stylesheets do %>
10
+ <%= stylesheet_link_tag 'no_cms/admin/pages/pages' %>
11
+ <% end %>
12
+
13
+ <% content_for :second_menu do %>
14
+ <%= render partial: 'page_listing_item', collection: @roots, as: 'page', layout: 'page_listing', locals: { current: @page } unless @roots.blank? %>
15
+ <% end %>
16
+
17
+
18
+ <%= no_cms_admin_form_for @page do |f| %>
19
+ <%= render partial: 'no_cms/admin/shared/toolbar', locals: { f: f } %>
20
+ <div class="content">
21
+ <%= render 'no_cms/admin/shared/log_messages' %>
22
+ <%= render 'content_fields', f: f %>
23
+ <%= render 'no_cms/admin/pages/blocks/index', f: f %>
24
+ </div>
25
+
26
+ <div class="advanced">
27
+ <p class="title collapsed">Opciones avanzadas</p>
28
+ <div>
29
+ Ojete
30
+ </div>
31
+ </div>
32
+ <% end %>
33
+ <div class="advanced">
34
+ <p class="title collapsed">Opciones avanzadas</p>
35
+ <div>
36
+ Ojete
37
+ </div>
38
+ </div>
@@ -0,0 +1,11 @@
1
+ <% content_for :second_menu do %>
2
+ <%= render partial: 'page_listing_item', collection: @roots, as: 'page', layout: 'page_listing' unless @roots.blank? %>
3
+ <% end %>
4
+
5
+ <% content_for :stylesheets do %>
6
+ <%= stylesheet_link_tag 'no_cms/admin/pages/pages' %>
7
+ <% end %>
8
+
9
+ <div class="content">
10
+ <%= render 'no_cms/admin/shared/log_messages' %>
11
+ </div>
@@ -0,0 +1,16 @@
1
+ <% content_for :second_menu do %>
2
+ <%= render partial: 'page_listing_item', collection: @roots, as: 'page', layout: 'page_listing', locals: { current: @page } unless @roots.blank? %>
3
+ <% end %>
4
+
5
+ <% content_for :stylesheets do %>
6
+ <%= stylesheet_link_tag 'no_cms/admin/pages/pages' %>
7
+ <% end %>
8
+
9
+ <%= no_cms_admin_form_for @page do |f| %>
10
+ <%= render partial: 'no_cms/admin/shared/toolbar', locals: { f: f } %>
11
+ <div class="content">
12
+ <%= render 'no_cms/admin/shared/log_messages' %>
13
+ <%= render 'content_fields', f: f %>
14
+ </div>
15
+
16
+ <% end %>
@@ -0,0 +1,4 @@
1
+ NoCms::Admin.menu_items << {
2
+ name: 'pages',
3
+ url: proc { NoCms::Admin::Pages::Engine.routes.url_helpers.pages_path }
4
+ }
@@ -0,0 +1,33 @@
1
+ en:
2
+ no_cms:
3
+ admin:
4
+ menu_items:
5
+ pages: Pages
6
+ pages:
7
+ blocks:
8
+ index:
9
+ new_block: Create new block
10
+ title: Blocks attached to this page
11
+ pages:
12
+ create:
13
+ success: "Page %{title} has been created"
14
+ error: "Some error was found and page %{title} couldn't be created"
15
+ destroy:
16
+ success: "Page %{title} has been deleted"
17
+ error: "Some error was found and page %{title} couldn't be deleted"
18
+ edit:
19
+ log_messages: "Page %{title} loaded for editing"
20
+ submit: 'Send'
21
+ new:
22
+ submit: 'Send'
23
+ page_listing_item:
24
+ destroy: Remove
25
+ show: Show Page
26
+ hide: Mark Page as draft
27
+ toolbar_right:
28
+ submit: Save
29
+ submit_and_new: Save and new
30
+ submit_and_hide: Save and hide
31
+ update:
32
+ success: "Page %{title} has been updated"
33
+ error: "Some error was found and page %{title} couldn't be updated"
@@ -0,0 +1,3 @@
1
+ NoCms::Admin::Pages::Engine.routes.draw do
2
+ resources :pages
3
+ end
@@ -0,0 +1,13 @@
1
+ require 'nocms_pages'
2
+ require 'nocms_admin'
3
+ require 'jquery-rails'
4
+
5
+ module NoCms
6
+ module Admin
7
+ module Pages
8
+ class Engine < ::Rails::Engine
9
+ isolate_namespace NoCms::Admin::Pages
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ module NoCms
2
+ module Admin
3
+ module Pages
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ require "no_cms/admin/pages/engine"
2
+
3
+ module NoCms
4
+ module Admin
5
+ module Pages
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :pages do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nocms-admin-pages
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: nocms-pages
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: nocms-admin
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.0.1
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.0.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: jquery-rails
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '3.1'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '3.1'
67
+ - !ruby/object:Gem::Dependency
68
+ name: sqlite3
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ description: Gem with custom back for nocms-pages gem
82
+ email:
83
+ - gems@simplelogica.net
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - Rakefile
89
+ - app/assets/images/no_cms/admin/pages/stripe_5d3ba7190e7de9a95d82d43dce2917b1_a10.png
90
+ - app/assets/javascripts/no_cms/admin/pages/application.js
91
+ - app/assets/javascripts/no_cms/admin/pages/content_block_handler.js
92
+ - app/assets/stylesheets/no_cms/admin/pages/application.css
93
+ - app/assets/stylesheets/no_cms/admin/pages/pages.css.scss
94
+ - app/controllers/no_cms/admin/pages/application_controller.rb
95
+ - app/controllers/no_cms/admin/pages/pages_controller.rb
96
+ - app/helpers/no_cms/admin/pages/application_helper.rb
97
+ - app/helpers/no_cms/admin/pages/pages_helper.rb
98
+ - app/views/no_cms/admin/pages/blocks/_default.html.erb
99
+ - app/views/no_cms/admin/pages/blocks/_form.html.erb
100
+ - app/views/no_cms/admin/pages/blocks/_index.html.erb
101
+ - app/views/no_cms/admin/pages/pages/_content_fields.html.erb
102
+ - app/views/no_cms/admin/pages/pages/_filter.html.erb
103
+ - app/views/no_cms/admin/pages/pages/_page_listing.html.erb
104
+ - app/views/no_cms/admin/pages/pages/_page_listing_item.html.erb
105
+ - app/views/no_cms/admin/pages/pages/_search.html.erb
106
+ - app/views/no_cms/admin/pages/pages/_toolbar_right.html.erb
107
+ - app/views/no_cms/admin/pages/pages/edit.html.erb
108
+ - app/views/no_cms/admin/pages/pages/index.html.erb
109
+ - app/views/no_cms/admin/pages/pages/new.html.erb
110
+ - config/initializers/admin_menu_items.rb
111
+ - config/locales/en.yml
112
+ - config/routes.rb
113
+ - lib/no_cms/admin/pages/engine.rb
114
+ - lib/no_cms/admin/pages/version.rb
115
+ - lib/nocms-admin-pages.rb
116
+ - lib/tasks/pages_tasks.rake
117
+ homepage: https://github.com/simplelogica/nocms-admin-pages
118
+ licenses: []
119
+ metadata: {}
120
+ post_install_message:
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 2.2.2
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: Gem with custom back for nocms-pages gem
140
+ test_files: []