nocms-admin-pages 0.0.1

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.
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: []