adminpanel 3.3.4 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/adminpanel.gemspec +1 -1
- data/app/controllers/adminpanel/pages_controller.rb +32 -0
- data/app/controllers/concerns/adminpanel/gallery_actions.rb +0 -2
- data/app/helpers/adminpanel/adminpanel_form_builder.rb +1 -1
- data/app/helpers/adminpanel/application_helper.rb +10 -2
- data/app/helpers/adminpanel/shared_pages_helper.rb +1 -1
- data/app/models/adminpanel/page.rb +10 -0
- data/app/models/adminpanel/pagefile.rb +0 -0
- data/app/models/concerns/adminpanel/base.rb +5 -1
- data/app/views/adminpanel/pages/show.html.erb +94 -0
- data/app/views/adminpanel/templates/edit.html.erb +1 -1
- data/app/views/layouts/adminpanel/_side_menu.html.erb +25 -0
- data/config/routes.rb +6 -0
- data/lib/adminpanel/engine.rb +3 -0
- data/lib/adminpanel/version.rb +1 -1
- data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +6 -0
- data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +9 -0
- data/test/dummy/app/models/adminpanel/random_page.rb +53 -0
- data/test/dummy/app/models/adminpanel/random_pagefile.rb +13 -0
- data/test/dummy/app/uploader/adminpanel/random_pagefile_uploader.rb +23 -0
- data/test/dummy/config/initializers/adminpanel_setup.rb +7 -0
- data/test/dummy/db/schema.rb +5 -0
- data/test/features/pages/pages_test.rb +49 -0
- metadata +16 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c33f9d543bfc5b175732944bcd0901b1b4146839
|
4
|
+
data.tar.gz: 9211446d561d7da413da1c861b1fd84cf928f23d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54dd5f764c3aad38c9e637de87dda3f6d9b5fe9e08d8a29570149f3b3bc6ffe514cb23742a0832aa067eeb728b11bcd4fbc5fd537c1c71dd8d6a20ba41ab4b55
|
7
|
+
data.tar.gz: e400b3a5dc0bf3cba3025ac74409f98379a8a3190ba89adc073cfa8dab6d412c1b6107c234507b4e2ca671346034d6ed9f60d61f76496c4e7080a8c92abe9a36
|
data/adminpanel.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_runtime_dependency 'mini_magick', '4.3.6'
|
28
28
|
spec.add_runtime_dependency 'bcrypt', '~> 3.1', '>= 3.1.7'
|
29
29
|
spec.add_runtime_dependency 'carrierwave', '~> 0.10', '>= 0.10.0'
|
30
|
-
spec.add_runtime_dependency 'cancancan', '~> 1.
|
30
|
+
spec.add_runtime_dependency 'cancancan', '~> 1.16.0'
|
31
31
|
spec.add_runtime_dependency 'friendly_id', '~> 5.1.0', '>= 5.1.0'
|
32
32
|
|
33
33
|
# Implemented APIs
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Adminpanel
|
2
|
+
class PagesController < Adminpanel::ApplicationController
|
3
|
+
before_action :redefine_model
|
4
|
+
|
5
|
+
def show
|
6
|
+
end
|
7
|
+
|
8
|
+
def edit
|
9
|
+
params[:skip_breadcrumb] = true
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def update
|
14
|
+
if @resource_instance.update(page_params)
|
15
|
+
redirect_to page_path(@resource_instance)
|
16
|
+
else
|
17
|
+
params[:skip_breadcrumb] = true
|
18
|
+
render 'adminpanel/templates/edit'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def redefine_model
|
25
|
+
@model = @resource_instance.class
|
26
|
+
end
|
27
|
+
|
28
|
+
def page_params
|
29
|
+
@model.whitelisted_attributes(params)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -308,7 +308,7 @@ module Adminpanel
|
|
308
308
|
def title_layout(attribute)
|
309
309
|
@template.content_tag :div, class: 'control-group' do
|
310
310
|
@template.content_tag :div, class: 'controls' do
|
311
|
-
@template.content_tag(:i, I18n.t('adminpanel.form.server_file', file: self.object
|
311
|
+
@template.content_tag(:i, I18n.t('adminpanel.form.server_file', file: self.object.send(attribute).to_s.split('/').last))
|
312
312
|
end
|
313
313
|
end
|
314
314
|
end
|
@@ -12,14 +12,22 @@ module Adminpanel
|
|
12
12
|
options[:html][:"data-parent-object-id"] = object.id
|
13
13
|
options[:html][:"data-dropzone"] = @model.to_s.demodulize.underscore
|
14
14
|
options[:html][:"data-dropzone-galleries"] = @model.galleries.to_json
|
15
|
-
|
16
|
-
|
15
|
+
if @resource_instance.is_a? Adminpanel::Page
|
16
|
+
options[:html][:"data-dropzone-url"] = url_for(controller: :pages, action: :add_to_gallery)
|
17
|
+
options[:html][:"data-dropzone-delete-url"] = url_for(controller: :pages, action: :remove_image)
|
18
|
+
else
|
19
|
+
options[:html][:"data-dropzone-url"] = url_for(controller: @model.to_controller_name, action: :add_to_gallery)
|
20
|
+
options[:html][:"data-dropzone-delete-url"] = url_for(controller: @model.to_controller_name, action: :remove_image)
|
21
|
+
end
|
17
22
|
end
|
18
23
|
if @model.has_trix_gallery?
|
19
24
|
options[:html][:"data-trix-url"] = url_for(controller: @model.to_controller_name, action: :add_to_gallery)
|
20
25
|
options[:html][:"data-parent-class"] ||= @model.to_s
|
21
26
|
options[:html][:"data-params-key"] ||= @model.to_s.demodulize.underscore
|
22
27
|
end
|
28
|
+
if @resource_instance.is_a? Adminpanel::Page
|
29
|
+
options[:url] = adminpanel.page_path(@resource_instance)
|
30
|
+
end
|
23
31
|
|
24
32
|
form_for(object, *(args << options), &block)
|
25
33
|
end
|
@@ -65,7 +65,7 @@ module Adminpanel
|
|
65
65
|
li_tags.html_safe
|
66
66
|
end
|
67
67
|
when 'file_field'
|
68
|
-
link_to(object
|
68
|
+
link_to(object.send("#{attribute}_url").split('/').last, object.try(:send, "#{attribute}_url")) if object.send("#{attribute}_url").present?
|
69
69
|
when 'image_field'
|
70
70
|
content_tag :ul do
|
71
71
|
image_tag(object.send("#{attribute}_url", :thumb))
|
File without changes
|
@@ -95,7 +95,7 @@ module Adminpanel
|
|
95
95
|
def has_trix_gallery?
|
96
96
|
form_attributes.each do |fields|
|
97
97
|
fields.each do |attribute, properties|
|
98
|
-
if properties['type'] == 'wysiwyg_field'
|
98
|
+
if properties['type'] == 'wysiwyg_field' && properties['uploader'].present?
|
99
99
|
return true
|
100
100
|
end
|
101
101
|
end
|
@@ -212,6 +212,10 @@ module Adminpanel
|
|
212
212
|
to_s.demodulize.underscore.pluralize
|
213
213
|
end
|
214
214
|
|
215
|
+
def form_url
|
216
|
+
self
|
217
|
+
end
|
218
|
+
|
215
219
|
private
|
216
220
|
|
217
221
|
def exclude_route?(route)
|
@@ -0,0 +1,94 @@
|
|
1
|
+
<% provide(
|
2
|
+
:page_title,
|
3
|
+
I18n.t('action.show', resource: @resource_instance.name)
|
4
|
+
) -%>
|
5
|
+
|
6
|
+
<div class="row-fluid">
|
7
|
+
<div class="widget span12">
|
8
|
+
<div class="widget-header">
|
9
|
+
<%= content_tag(:i, nil, class: "fa fa-#{@model.icon}") %>
|
10
|
+
<h5>
|
11
|
+
<%= @model.display_name.humanize %>
|
12
|
+
</h5>
|
13
|
+
<div class="widget-buttons">
|
14
|
+
<%= render 'adminpanel/icons/edit', resource: @resource_instance.becomes(Adminpanel::Page) %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<div class="widget-body">
|
18
|
+
<div class="widget-tickets widget-tickets-large clearfix">
|
19
|
+
<ul>
|
20
|
+
<% @model.display_attributes('show').each do |fields| %>
|
21
|
+
<% fields.each do |attribute, properties| %>
|
22
|
+
<li class="priority-high">
|
23
|
+
<div class="span3">
|
24
|
+
<h6><%= properties['label'] %></h6>
|
25
|
+
</div>
|
26
|
+
<div class="span8">
|
27
|
+
<%= field_value(properties['type'], attribute, @resource_instance) %>
|
28
|
+
</div>
|
29
|
+
</li>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
32
|
+
</ul>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
<div class="row-fluid">
|
38
|
+
<% if @model.has_gallery? %>
|
39
|
+
<% @model.galleries.each do |gallery| %>
|
40
|
+
<% gallery_class = gallery.last.constantize %>
|
41
|
+
<% gallery_relationship = gallery.first.pluralize %>
|
42
|
+
<div class="gallery-widget widget widget-padding span6">
|
43
|
+
<div class="widget-header">
|
44
|
+
<%= content_tag(:i, nil, class: "fa fa-#{@model.icon}") %>
|
45
|
+
<h5><%= I18n.t('gallery.container') %>: <%= @model.display_name.humanize %>
|
46
|
+
<%= render 'adminpanel/icons/edit', resource: @resource_instance.becomes(Adminpanel::Page) %>
|
47
|
+
</h5>
|
48
|
+
</div>
|
49
|
+
<% if gallery_class.is_sortable? %>
|
50
|
+
<div class="widget-body widget-tasks-assigned clearfix">
|
51
|
+
<table class="table table-striped table-bordered">
|
52
|
+
<thead>
|
53
|
+
<tr>
|
54
|
+
<td class="draggable-header"></td>
|
55
|
+
<td><i class="fa fa-picture-o"></i></td>
|
56
|
+
</tr>
|
57
|
+
</thead>
|
58
|
+
<tbody id="sortable">
|
59
|
+
<% collection = @resource_instance.send(gallery_relationship).ordered %>
|
60
|
+
<% collection.each do |image| %>
|
61
|
+
<tr
|
62
|
+
data-id="<%= image.id %>"
|
63
|
+
data-url="<%= url_for [:move_to_position, image] %>"
|
64
|
+
>
|
65
|
+
<td class="draggable img"><i class="fa fa-bars fa-2x"></i></td>
|
66
|
+
<td>
|
67
|
+
<%= link_to(
|
68
|
+
image_tag(image.file_url(:thumb)),
|
69
|
+
image.file.to_s,
|
70
|
+
rel: "group",
|
71
|
+
name: gallery_class.display_name
|
72
|
+
) %>
|
73
|
+
</td>
|
74
|
+
</tr>
|
75
|
+
<% end %>
|
76
|
+
</tbody>
|
77
|
+
</table>
|
78
|
+
</div>
|
79
|
+
<% else %>
|
80
|
+
<div class="widget-body row-fluid">
|
81
|
+
<% @resource_instance.send(gallery_relationship).each do |image| %>
|
82
|
+
<%= link_to(
|
83
|
+
image_tag( image.file_url(:thumb) ),
|
84
|
+
image.file_url.to_s,
|
85
|
+
rel: 'group',
|
86
|
+
name: @model.display_name
|
87
|
+
) %>
|
88
|
+
<% end %>
|
89
|
+
</div>
|
90
|
+
<% end %>
|
91
|
+
</div>
|
92
|
+
<% end %>
|
93
|
+
<% end %>
|
94
|
+
</div>
|
@@ -25,6 +25,7 @@
|
|
25
25
|
</div>
|
26
26
|
</div>
|
27
27
|
|
28
|
+
<!-- Render models -->
|
28
29
|
<% Adminpanel.displayable_resources.each do |resource| %>
|
29
30
|
<% resource_class = symbol_class(resource) %>
|
30
31
|
<% if resource_class.has_route?(:index) && (can?(:read, resource_class) || can?( :publish, resource_class)) %>
|
@@ -49,5 +50,29 @@
|
|
49
50
|
</div>
|
50
51
|
<% end %>
|
51
52
|
<% end %>
|
53
|
+
|
54
|
+
<!-- Render pages -->
|
55
|
+
<% Adminpanel.displayable_pages.each do |page_class| %>
|
56
|
+
<div class="accordion-group" data-filter="<%= page_class.instance.name -%>">
|
57
|
+
<div class="accordion-heading">
|
58
|
+
<%= link_to(
|
59
|
+
page_path(page_class.instance),
|
60
|
+
data: {
|
61
|
+
no_transition_cache: true
|
62
|
+
},
|
63
|
+
class: "accordion-toggle accordion-navigation
|
64
|
+
#{params[:controller] == 'adminpanel/pages' && page_class.instance.id.to_s == params[:id].to_s ? 'active' : ''}
|
65
|
+
spinner-link".squish
|
66
|
+
) do %>
|
67
|
+
<%= content_tag(
|
68
|
+
:i,
|
69
|
+
nil,
|
70
|
+
class: "fa fa-#{page_class.icon}"
|
71
|
+
) %>
|
72
|
+
<%= page_class.instance.name %>
|
73
|
+
<% end %>
|
74
|
+
</div>
|
75
|
+
</div>
|
76
|
+
<% end %>
|
52
77
|
</div>
|
53
78
|
</div>
|
data/config/routes.rb
CHANGED
@@ -65,6 +65,12 @@ Adminpanel::Engine.routes.draw do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
root to: "#{Adminpanel.displayable_resources.first}#index"
|
68
|
+
resources :pages, only: [:show, :edit, :update] do
|
69
|
+
collection do
|
70
|
+
post :add_to_gallery, to: "pages#add_to_gallery", as: 'add_to_gallery', path: I18n.t('routes.add_to_gallery')
|
71
|
+
delete :remove_image, to: "pages#remove_image", as: 'remove_image', path: I18n.t('routes.remove_image')
|
72
|
+
end
|
73
|
+
end
|
68
74
|
resources :sessions, only: [:new, :create, :destroy] do
|
69
75
|
collection do
|
70
76
|
get 'instagram_login'
|
data/lib/adminpanel/engine.rb
CHANGED
@@ -11,6 +11,7 @@ module Adminpanel
|
|
11
11
|
:analytics_application_name,
|
12
12
|
:analytics_application_version,
|
13
13
|
:displayable_resources,
|
14
|
+
:displayable_pages,
|
14
15
|
:fb_app_id,
|
15
16
|
:fb_app_secret,
|
16
17
|
:instagram_client_id,
|
@@ -27,6 +28,8 @@ module Adminpanel
|
|
27
28
|
:users
|
28
29
|
]
|
29
30
|
|
31
|
+
self.displayable_pages = []
|
32
|
+
|
30
33
|
self.fb_app_id = nil
|
31
34
|
self.fb_app_secret = nil
|
32
35
|
|
data/lib/adminpanel/version.rb
CHANGED
@@ -17,6 +17,7 @@ class CreateAdminpanelTables < ActiveRecord::Migration
|
|
17
17
|
create_auths
|
18
18
|
create_sections
|
19
19
|
create_images
|
20
|
+
create_pages
|
20
21
|
end
|
21
22
|
|
22
23
|
private
|
@@ -73,6 +74,14 @@ class CreateAdminpanelTables < ActiveRecord::Migration
|
|
73
74
|
add_index :adminpanel_auths, [:key]
|
74
75
|
end
|
75
76
|
|
77
|
+
def create_pages
|
78
|
+
create_table :adminpanel_pages do |t|
|
79
|
+
t.string :name
|
80
|
+
t.string :type
|
81
|
+
t.text :fields
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
76
85
|
def create_sections
|
77
86
|
create_table :adminpanel_sections do |t|
|
78
87
|
t.string :name
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Adminpanel
|
2
|
+
class RandomPage < Page
|
3
|
+
def self.instance
|
4
|
+
first || create!(name: 'Random Page', type: 'Adminpanel::RandomPage')
|
5
|
+
end
|
6
|
+
|
7
|
+
mount_images :random_pagefiles
|
8
|
+
|
9
|
+
store :fields, accessors: [
|
10
|
+
:header,
|
11
|
+
:slogan,
|
12
|
+
:body,
|
13
|
+
]
|
14
|
+
|
15
|
+
def self.form_attributes
|
16
|
+
[
|
17
|
+
{
|
18
|
+
'header' => {
|
19
|
+
'type' => 'text_field',
|
20
|
+
'label' => 'Cabecera'
|
21
|
+
}
|
22
|
+
},
|
23
|
+
{
|
24
|
+
'slogan' => {
|
25
|
+
'type' => 'text_field',
|
26
|
+
'label' => 'Slogan'
|
27
|
+
}
|
28
|
+
},
|
29
|
+
{
|
30
|
+
'body' => {
|
31
|
+
'type' => 'wysiwyg_field',
|
32
|
+
'label' => 'Contenido'
|
33
|
+
}
|
34
|
+
},
|
35
|
+
{
|
36
|
+
'random_pagefiles' => {
|
37
|
+
'type' => 'adminpanel_file_field',
|
38
|
+
'label' => 'Galería'
|
39
|
+
}
|
40
|
+
}
|
41
|
+
]
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.display_name
|
45
|
+
'Random Page'
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.icon
|
49
|
+
'puzzle-piece'
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Adminpanel
|
2
|
+
class RandomPagefile < Image
|
3
|
+
# include Adminpanel::SortableGallery
|
4
|
+
|
5
|
+
mount_uploader :file, RandomPagefileUploader
|
6
|
+
|
7
|
+
# Warning: This method prevents the file from recreating versions,
|
8
|
+
# use it at your own risk delete the original file
|
9
|
+
# def remove_original attachment
|
10
|
+
# File.delete "#{Rails.root.join('public')}#{file_url}" if file
|
11
|
+
# end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Adminpanel
|
2
|
+
class RandomPagefileUploader < CarrierWave::Uploader::Base
|
3
|
+
include CarrierWave::MiniMagick
|
4
|
+
|
5
|
+
storage :file
|
6
|
+
|
7
|
+
def root
|
8
|
+
Rails.root.join 'public/'
|
9
|
+
end
|
10
|
+
|
11
|
+
def store_dir
|
12
|
+
"uploads/image/#{model.class.name.demodulize}/#{model.id}"
|
13
|
+
end
|
14
|
+
|
15
|
+
version :thumb do
|
16
|
+
process resize_to_fill: [120, 120]
|
17
|
+
end
|
18
|
+
|
19
|
+
def extension_white_list
|
20
|
+
%w(jpg jpeg png)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/test/dummy/db/schema.rb
CHANGED
@@ -126,6 +126,11 @@ ActiveRecord::Schema.define do
|
|
126
126
|
t.integer :test_object_id
|
127
127
|
t.integer :category_id
|
128
128
|
end
|
129
|
+
create_table :adminpanel_pages do |t|
|
130
|
+
t.string :name
|
131
|
+
t.string :type
|
132
|
+
t.text :fields
|
133
|
+
end
|
129
134
|
create_table :adminpanel_file_resources do |t|
|
130
135
|
t.string :name
|
131
136
|
t.datetime :created_at
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class PagesTest < ViewCase
|
4
|
+
|
5
|
+
setup :sign_in
|
6
|
+
|
7
|
+
test "when root path Admipnanel.displayed_pages are in the menu" do
|
8
|
+
visit adminpanel.root_path
|
9
|
+
assert page.has_selector?('.accordion-toggle.accordion-navigation.spinner-link', text: 'Random Page')
|
10
|
+
assert page.has_link?('Random Page', href: adminpanel.page_path(Adminpanel::RandomPage.instance))
|
11
|
+
end
|
12
|
+
|
13
|
+
test "when visiting a random page it should display all its form fields" do
|
14
|
+
Adminpanel::RandomPage.instance.update(header: 'Hola', slogan: 'Saludo cordial', body: '<div>lorem</div>')
|
15
|
+
visit adminpanel.page_path(Adminpanel::RandomPage.instance)
|
16
|
+
assert page.has_content?('Cabecera')
|
17
|
+
assert page.has_content?('Hola')
|
18
|
+
assert page.has_content?('Slogan')
|
19
|
+
assert page.has_content?('Saludo cordial')
|
20
|
+
assert page.has_content?('lorem')
|
21
|
+
assert page.has_link?('', href: adminpanel.edit_page_path(Adminpanel::RandomPage.instance))
|
22
|
+
end
|
23
|
+
|
24
|
+
test "when editing a random page it should display and update form fields" do
|
25
|
+
Adminpanel::RandomPage.instance.update(header: '', slogan: '', body: '')
|
26
|
+
visit adminpanel.edit_page_path(Adminpanel::RandomPage.instance)
|
27
|
+
fill_in 'random_page_header', with: 'sum header'
|
28
|
+
fill_in 'random_page_slogan', with: 'a fine slogan'
|
29
|
+
page.execute_script(
|
30
|
+
%Q(
|
31
|
+
var editor = $('#body-trix-editor')[0].editor;
|
32
|
+
editor.insertString("a fine body");
|
33
|
+
)
|
34
|
+
) # to fill the wysiwyg editor
|
35
|
+
click_button 'Actualizar Random Page'
|
36
|
+
|
37
|
+
assert_equal 'sum header', Adminpanel::RandomPage.instance.header
|
38
|
+
assert_equal 'a fine slogan', Adminpanel::RandomPage.instance.slogan
|
39
|
+
assert_equal '<div>a fine body</div>', Adminpanel::RandomPage.instance.body
|
40
|
+
assert 1, Adminpanel::RandomPage.count
|
41
|
+
assert_equal adminpanel.page_path(Adminpanel::RandomPage.instance), page.current_path
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
def sign_in
|
46
|
+
visit adminpanel.signin_path
|
47
|
+
login
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adminpanel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jose Ramon Camacho
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-05-
|
13
|
+
date: 2017-05-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -92,20 +92,14 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 1.
|
96
|
-
- - ">="
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: 1.13.0
|
95
|
+
version: 1.16.0
|
99
96
|
type: :runtime
|
100
97
|
prerelease: false
|
101
98
|
version_requirements: !ruby/object:Gem::Requirement
|
102
99
|
requirements:
|
103
100
|
- - "~>"
|
104
101
|
- !ruby/object:Gem::Version
|
105
|
-
version: 1.
|
106
|
-
- - ">="
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: 1.13.0
|
102
|
+
version: 1.16.0
|
109
103
|
- !ruby/object:Gem::Dependency
|
110
104
|
name: friendly_id
|
111
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -512,6 +506,7 @@ files:
|
|
512
506
|
- app/controllers/adminpanel/analytics_controller.rb
|
513
507
|
- app/controllers/adminpanel/application_controller.rb
|
514
508
|
- app/controllers/adminpanel/auths_controller.rb
|
509
|
+
- app/controllers/adminpanel/pages_controller.rb
|
515
510
|
- app/controllers/adminpanel/permissions_controller.rb
|
516
511
|
- app/controllers/adminpanel/roles_controller.rb
|
517
512
|
- app/controllers/adminpanel/sections_controller.rb
|
@@ -534,6 +529,8 @@ files:
|
|
534
529
|
- app/models/adminpanel/analytic.rb
|
535
530
|
- app/models/adminpanel/auth.rb
|
536
531
|
- app/models/adminpanel/image.rb
|
532
|
+
- app/models/adminpanel/page.rb
|
533
|
+
- app/models/adminpanel/pagefile.rb
|
537
534
|
- app/models/adminpanel/permission.rb
|
538
535
|
- app/models/adminpanel/role.rb
|
539
536
|
- app/models/adminpanel/section.rb
|
@@ -562,6 +559,7 @@ files:
|
|
562
559
|
- app/views/adminpanel/icons/_facebook.html.erb
|
563
560
|
- app/views/adminpanel/icons/_new.html.erb
|
564
561
|
- app/views/adminpanel/icons/_show.html.erb
|
562
|
+
- app/views/adminpanel/pages/show.html.erb
|
565
563
|
- app/views/adminpanel/sections/_sections_table.html.erb
|
566
564
|
- app/views/adminpanel/sections/edit.html.erb
|
567
565
|
- app/views/adminpanel/sections/index.html.erb
|
@@ -647,11 +645,14 @@ files:
|
|
647
645
|
- test/dummy/app/models/adminpanel/mug.rb
|
648
646
|
- test/dummy/app/models/adminpanel/photo.rb
|
649
647
|
- test/dummy/app/models/adminpanel/product.rb
|
648
|
+
- test/dummy/app/models/adminpanel/random_page.rb
|
649
|
+
- test/dummy/app/models/adminpanel/random_pagefile.rb
|
650
650
|
- test/dummy/app/models/adminpanel/salesman.rb
|
651
651
|
- test/dummy/app/models/adminpanel/test_object.rb
|
652
652
|
- test/dummy/app/models/adminpanel/textfile.rb
|
653
653
|
- test/dummy/app/uploader/adminpanel/file_resourcefile_uploader.rb
|
654
654
|
- test/dummy/app/uploader/adminpanel/photo_uploader.rb
|
655
|
+
- test/dummy/app/uploader/adminpanel/random_pagefile_uploader.rb
|
655
656
|
- test/dummy/app/uploader/adminpanel/section_uploader.rb
|
656
657
|
- test/dummy/app/views/layouts/application.html.erb
|
657
658
|
- test/dummy/config.ru
|
@@ -688,6 +689,7 @@ files:
|
|
688
689
|
- test/dummy/test/fixtures/attachments/dog-fries.png
|
689
690
|
- test/dummy/test/fixtures/attachments/hipster.jpg
|
690
691
|
- test/dummy/test/fixtures/attachments/thumb_hipster.jpg
|
692
|
+
- test/features/pages/pages_test.rb
|
691
693
|
- test/features/session/login_test.rb
|
692
694
|
- test/features/shared/concerns/friendly_test.rb
|
693
695
|
- test/features/shared/concerns/sortable_gallery_ui_test.rb
|
@@ -779,11 +781,14 @@ test_files:
|
|
779
781
|
- test/dummy/app/models/adminpanel/mug.rb
|
780
782
|
- test/dummy/app/models/adminpanel/photo.rb
|
781
783
|
- test/dummy/app/models/adminpanel/product.rb
|
784
|
+
- test/dummy/app/models/adminpanel/random_page.rb
|
785
|
+
- test/dummy/app/models/adminpanel/random_pagefile.rb
|
782
786
|
- test/dummy/app/models/adminpanel/salesman.rb
|
783
787
|
- test/dummy/app/models/adminpanel/test_object.rb
|
784
788
|
- test/dummy/app/models/adminpanel/textfile.rb
|
785
789
|
- test/dummy/app/uploader/adminpanel/file_resourcefile_uploader.rb
|
786
790
|
- test/dummy/app/uploader/adminpanel/photo_uploader.rb
|
791
|
+
- test/dummy/app/uploader/adminpanel/random_pagefile_uploader.rb
|
787
792
|
- test/dummy/app/uploader/adminpanel/section_uploader.rb
|
788
793
|
- test/dummy/app/views/layouts/application.html.erb
|
789
794
|
- test/dummy/config.ru
|
@@ -820,6 +825,7 @@ test_files:
|
|
820
825
|
- test/dummy/test/fixtures/attachments/dog-fries.png
|
821
826
|
- test/dummy/test/fixtures/attachments/hipster.jpg
|
822
827
|
- test/dummy/test/fixtures/attachments/thumb_hipster.jpg
|
828
|
+
- test/features/pages/pages_test.rb
|
823
829
|
- test/features/session/login_test.rb
|
824
830
|
- test/features/shared/concerns/friendly_test.rb
|
825
831
|
- test/features/shared/concerns/sortable_gallery_ui_test.rb
|