cms-rails 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/app/assets/images/add_bar.png +0 -0
- data/app/assets/images/del_bar.png +0 -0
- data/app/assets/images/update_bar.png +0 -0
- data/app/controllers/cms_rails_controller.rb +20 -0
- data/app/controllers/pages_controller.rb +14 -16
- data/app/helpers/render_helper.rb +49 -0
- data/app/models/page.rb +4 -0
- data/cms-rails.gemspec +3 -1
- data/lib/cms/rails.rb +0 -3
- data/lib/cms/rails/version.rb +1 -1
- data/lib/generators/cms/load/load_generator.rb +24 -25
- data/lib/generators/cms/templates/assets/cms.rails.js +56 -0
- data/lib/generators/cms/templates/layouts/_actions.html.haml +8 -0
- metadata +41 -6
- data/lib/cms/rails/render_page.rb +0 -59
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0314fe9ee9744d0024e0edf723d769d289205a90
|
4
|
+
data.tar.gz: a6d29bab16c98b7de212ca33975c38b11e32ae1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 648757d38228246cf091647d0fdfa244b1187825c421db57a3c12021105f75f8fdd4a4756c558d5a859274b37c85239330aa991a324e64ed5a13120bc6971cb0
|
7
|
+
data.tar.gz: ea10a992cb474eb899a89ccd9cde2b463504d6cf406efb2479ffffb9d6bf1f6c45a6e81c3b39d70dead59e369639a9f242b2f0ed9309a8baabea825e72720331
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class CmsRailsController < ::ApplicationController
|
2
|
+
before_filter :is_login!, except: [:index]
|
3
|
+
helper_method :current_user, :menu, :find_page
|
4
|
+
|
5
|
+
def is_login!
|
6
|
+
redirect_to '/login', notice: 'You need login to load this section' if current_user.nil?
|
7
|
+
end
|
8
|
+
|
9
|
+
def current_user
|
10
|
+
User.find(session[:user_id]) unless session[:user_id].nil?
|
11
|
+
end
|
12
|
+
|
13
|
+
def menu(parent)
|
14
|
+
Menu.find_by_page_id(find_page(parent.humanize).id)
|
15
|
+
end
|
16
|
+
|
17
|
+
def find_page(wanted)
|
18
|
+
Page.find_by_name(wanted)
|
19
|
+
end
|
20
|
+
end
|
@@ -1,7 +1,4 @@
|
|
1
|
-
class PagesController <
|
2
|
-
before_filter :is_login!
|
3
|
-
include Cms::Rails::RenderPage
|
4
|
-
helper Cms::Rails::RenderPage
|
1
|
+
class PagesController < CmsRailsController
|
5
2
|
|
6
3
|
def index
|
7
4
|
end
|
@@ -14,9 +11,10 @@ class PagesController < ApplicationController
|
|
14
11
|
|
15
12
|
def create
|
16
13
|
params[:page][:name] = params[:page][:name].humanize
|
17
|
-
page = Page.create(page_params)
|
18
|
-
|
19
|
-
|
14
|
+
@page = Page.create(page_params)
|
15
|
+
@parent = params[:page][:parent]
|
16
|
+
if @page.save and create_type.save
|
17
|
+
redirection(@page.name.parameterize.underscore)
|
20
18
|
else
|
21
19
|
redirect_to new_page_path(type: params[:type])
|
22
20
|
end
|
@@ -25,8 +23,8 @@ class PagesController < ApplicationController
|
|
25
23
|
private
|
26
24
|
|
27
25
|
def redirection(page)
|
28
|
-
unless
|
29
|
-
redirect_to "/#{
|
26
|
+
unless @parent.nil?
|
27
|
+
redirect_to "/#{@parent}/#{page}"
|
30
28
|
else
|
31
29
|
redirect_to "/#{page}"
|
32
30
|
end
|
@@ -42,18 +40,18 @@ class PagesController < ApplicationController
|
|
42
40
|
position
|
43
41
|
end
|
44
42
|
|
45
|
-
def create_type
|
43
|
+
def create_type
|
46
44
|
type = case params[:page][:type]
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
45
|
+
when 'Menu'
|
46
|
+
@page.menus.create
|
47
|
+
when 'Navigation'
|
48
|
+
navigations.create(page_id: @page.id)
|
49
|
+
end
|
52
50
|
type
|
53
51
|
end
|
54
52
|
|
55
53
|
def navigations
|
56
|
-
menu(
|
54
|
+
menu(@parent).navigations
|
57
55
|
end
|
58
56
|
|
59
57
|
def page_params
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module RenderHelper
|
2
|
+
def cms_render_page
|
3
|
+
@page = params[:parent]
|
4
|
+
content = case @page
|
5
|
+
when 'login'
|
6
|
+
'sessions/new'
|
7
|
+
when 'register'
|
8
|
+
'users/new'
|
9
|
+
else
|
10
|
+
@page = select_page unless is_basic_page?
|
11
|
+
unless @page.nil?
|
12
|
+
'pages/container'
|
13
|
+
else
|
14
|
+
'main'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
content
|
18
|
+
end
|
19
|
+
|
20
|
+
def cms_render_menu
|
21
|
+
Menu.all.map {|menu| Page.send_name(menu.page_id)}
|
22
|
+
end
|
23
|
+
|
24
|
+
def cms_render_navigation
|
25
|
+
unless is_basic_page?
|
26
|
+
navigations.map {|nav| Page.send_name(nav.page_id)}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def select_page
|
33
|
+
unless params[:child].nil?
|
34
|
+
find_page(params[:child].humanize)
|
35
|
+
else
|
36
|
+
find_page(@page.humanize)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def navigations
|
41
|
+
menu(params[:parent]).navigations
|
42
|
+
end
|
43
|
+
|
44
|
+
def is_basic_page?
|
45
|
+
basic_pages = ['','login','register',nil]
|
46
|
+
basic_pages.include?(params[:parent])
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/app/models/page.rb
CHANGED
@@ -9,4 +9,8 @@ class Page < ActiveRecord::Base
|
|
9
9
|
validates :titulo, presence: true, length: { minimum: 3, maximum: 50 }, format: { with: /[a-zA-Z\s\d]/ }
|
10
10
|
validates :active, presence: true, numericality: true
|
11
11
|
validates :position, presence: true, numericality: true
|
12
|
+
|
13
|
+
def self.send_name(id)
|
14
|
+
Page.find(id).name
|
15
|
+
end
|
12
16
|
end
|
data/cms-rails.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = Cms::Rails::VERSION
|
9
9
|
gem.authors = ["Oscar Hugo Cardenas Lopez"]
|
10
10
|
gem.email = ["ohcl87@hotmail.com"]
|
11
|
-
gem.description = %q{This gem provide a group form and methods to create a cms function to create new content in your application}
|
11
|
+
gem.description = %q{This gem provide a group form and methods to create a cms this provide a rails g cms:migrations and rails g cms:load to initialize the process function to create new content in your application}
|
12
12
|
gem.summary = %q{Provide a forms and methods to have a cms into rails app}
|
13
13
|
gem.homepage = "https://github.com/sorsucrel/cms-rails"
|
14
14
|
gem.license = "MIT"
|
@@ -21,6 +21,8 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_runtime_dependency "rails", ">= 3.2"
|
22
22
|
gem.add_runtime_dependency "pg", ">= 0.15.0"
|
23
23
|
gem.add_runtime_dependency "bundler", "~> 1.3"
|
24
|
+
gem.add_runtime_dependency "anything-slider"
|
25
|
+
gem.add_runtime_dependency "tinymce-rails4"
|
24
26
|
gem.add_development_dependency "compass", ">= 0.12.0"
|
25
27
|
gem.add_development_dependency 'bcrypt-ruby', '~> 3.0.0'
|
26
28
|
gem.add_development_dependency "rake"
|
data/lib/cms/rails.rb
CHANGED
data/lib/cms/rails/version.rb
CHANGED
@@ -15,8 +15,16 @@ module Cms
|
|
15
15
|
copy_file 'mailers/notifier.rb', 'app/mailers/notifier.rb'
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
|
18
|
+
def copy_layouts_files
|
19
|
+
dir = 'layouts'
|
20
|
+
copy_file "#{dir}/application.html.haml", 'app/views/layouts/application.html.haml'
|
21
|
+
copy_file "#{dir}/_actions.html.haml", 'app/views/layouts/_actions.html.haml'
|
22
|
+
end
|
23
|
+
|
24
|
+
def js_dependency_load
|
25
|
+
copy_file 'assets/cms.rails.js', 'app/assets/javascripts/cms.rails.js'
|
26
|
+
inject_into_file "app/assets/javascripts/application.js", "//= require tinymce.min\n//= require jquery.anythingslider\n//= require cms.rails\n", before: "//= require_tree"
|
27
|
+
inject_into_file "app/assets/stylesheets/application.css", "\n*= require anythingslider.sass", after: "*= require_tree ."
|
20
28
|
end
|
21
29
|
|
22
30
|
def load_config_to_send_mail
|
@@ -33,39 +41,30 @@ module Cms
|
|
33
41
|
|
34
42
|
def load_initial
|
35
43
|
inject_into_file 'app/controllers/application_controller.rb', after: 'protect_from_forgery with: :exception' do
|
36
|
-
"\n
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
redirect_to '/login', notice: 'You need login to load this section'
|
46
|
-
elsif $current_user.nil?
|
47
|
-
$current_user = User.find_by_id(session[:user_id])
|
48
|
-
end
|
49
|
-
end"
|
44
|
+
"\n helper :render\n
|
45
|
+
def init_twitter\n
|
46
|
+
end\n
|
47
|
+
def init_github\n
|
48
|
+
end\n
|
49
|
+
def nit_facebook\n
|
50
|
+
end\n
|
51
|
+
def nit_linkedin\n
|
52
|
+
end\n"
|
50
53
|
end
|
51
54
|
end
|
52
55
|
|
53
|
-
def create_helper_methods
|
54
|
-
inject_into_file 'app/helpers/application_helper.rb', after: 'ApplicationHelper' do
|
55
|
-
"\n def render_page
|
56
|
-
cms_render_page
|
57
|
-
end"
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
56
|
def load_routes
|
62
57
|
inject_into_file 'config/routes.rb', after: 'Application.routes.draw do' do
|
63
58
|
"
|
64
59
|
post 'sessions/new', to: 'sessions#create'
|
65
60
|
get 'sessions/destroy', to: 'sessions#logout'
|
66
61
|
resources :users, only: [:create]
|
62
|
+
resources :pages, only: [:create, :new]
|
67
63
|
get '/auth/:provider/callback', to: 'sessions#create'
|
68
|
-
get '/auth/failure', to: 'sessions#failure'
|
64
|
+
get '/auth/failure', to: 'sessions#failure'
|
65
|
+
get '/:parent', to: 'pages#index'
|
66
|
+
get '/:parent/:child', to: 'pages#index'
|
67
|
+
root to: 'pages#index'"
|
69
68
|
end
|
70
69
|
end
|
71
70
|
|
@@ -0,0 +1,56 @@
|
|
1
|
+
$(function(){
|
2
|
+
$('#slider').anythingSlider({
|
3
|
+
resizeContents : true,
|
4
|
+
theme : "default",
|
5
|
+
autoPlay : true,
|
6
|
+
addWmodeToObject : false,
|
7
|
+
buildNavigation : false,
|
8
|
+
hashTags : false
|
9
|
+
}); // add any non-default options here
|
10
|
+
|
11
|
+
tinymce.init({
|
12
|
+
selector: ".full",
|
13
|
+
inline: true,
|
14
|
+
plugins: [
|
15
|
+
"advlist autolink autosave link image lists charmap hr anchor pagebreak spellchecker",
|
16
|
+
"searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
|
17
|
+
"table contextmenu directionality textcolor fullpage textcolor save"
|
18
|
+
],
|
19
|
+
toolbar1: "bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | styleselect formatselect fontselect fontsizeselect",
|
20
|
+
toolbar2: "searchreplace | bullist numlist | outdent indent | undo redo | link unlink image media code | inserttime | forecolor backcolor",
|
21
|
+
toolbar3: "table | hr removeformat | subscript superscript | charmap | fullscreen | pagebreak save",
|
22
|
+
menubar: false,
|
23
|
+
toolbar_items_size: 'small',
|
24
|
+
save_enablewhendirty: true,
|
25
|
+
save_onsavecallback: function() {console.log("Save");}
|
26
|
+
});
|
27
|
+
|
28
|
+
tinymce.init({
|
29
|
+
selector: ".editable",
|
30
|
+
inline: true,
|
31
|
+
plugins: "save",
|
32
|
+
toolbar: "undo redo save",
|
33
|
+
save_enablewhendirty: true,
|
34
|
+
save_onsavecallback: function() {console.log("Save");},
|
35
|
+
menubar: false
|
36
|
+
});
|
37
|
+
|
38
|
+
tinymce.init({
|
39
|
+
selector: ".imagen",
|
40
|
+
inline: true,
|
41
|
+
setup: function(editor) {
|
42
|
+
editor.addButton('mybutton', {
|
43
|
+
text: 'My button',
|
44
|
+
icon: false,
|
45
|
+
onclick: function() {
|
46
|
+
editor.insertContent('Main button');
|
47
|
+
}
|
48
|
+
});
|
49
|
+
},
|
50
|
+
plugins: "image save",
|
51
|
+
toolbar: "undo redo image mybutton save",
|
52
|
+
save_enablewhendirty: true,
|
53
|
+
save_onsavecallback: function() {console.log("Save");},
|
54
|
+
menubar: false
|
55
|
+
});
|
56
|
+
});
|
@@ -0,0 +1,8 @@
|
|
1
|
+
- unless current_user.nil?
|
2
|
+
- parent||= ""
|
3
|
+
.inline
|
4
|
+
= link_to new_page_path(type: action, parent: parent ) do
|
5
|
+
%img{src: image_path('add_bar.png'), alt: "#{action}add"}
|
6
|
+
%img{src: image_path('del_bar.png'), alt: "#{action}del"}
|
7
|
+
- content_for :edit_header do
|
8
|
+
%img{src: image_path('update_bar.png'), alt: "Headerupdate"}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cms-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Hugo Cardenas Lopez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11
|
11
|
+
date: 2013-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: anything-slider
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: tinymce-rails4
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: compass
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,8 +122,9 @@ dependencies:
|
|
94
122
|
- - '>='
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
97
|
-
description: This gem provide a group form and methods to create a cms
|
98
|
-
|
125
|
+
description: This gem provide a group form and methods to create a cms this provide
|
126
|
+
a rails g cms:migrations and rails g cms:load to initialize the process function
|
127
|
+
to create new content in your application
|
99
128
|
email:
|
100
129
|
- ohcl87@hotmail.com
|
101
130
|
executables: []
|
@@ -107,9 +136,14 @@ files:
|
|
107
136
|
- LICENSE.txt
|
108
137
|
- README.md
|
109
138
|
- Rakefile
|
139
|
+
- app/assets/images/add_bar.png
|
140
|
+
- app/assets/images/del_bar.png
|
141
|
+
- app/assets/images/update_bar.png
|
142
|
+
- app/controllers/cms_rails_controller.rb
|
110
143
|
- app/controllers/pages_controller.rb
|
111
144
|
- app/controllers/sessions_controller.rb
|
112
145
|
- app/controllers/users_controller.rb
|
146
|
+
- app/helpers/render_helper.rb
|
113
147
|
- app/models/footer.rb
|
114
148
|
- app/models/menu.rb
|
115
149
|
- app/models/navigation.rb
|
@@ -124,12 +158,13 @@ files:
|
|
124
158
|
- app/views/users/_new.html.haml
|
125
159
|
- cms-rails.gemspec
|
126
160
|
- lib/cms/rails.rb
|
127
|
-
- lib/cms/rails/render_page.rb
|
128
161
|
- lib/cms/rails/version.rb
|
129
162
|
- lib/generators/cms/load/load_generator.rb
|
130
163
|
- lib/generators/cms/migrations/migrations_generator.rb
|
164
|
+
- lib/generators/cms/templates/assets/cms.rails.js
|
131
165
|
- lib/generators/cms/templates/config/initializers/mail.rb
|
132
166
|
- lib/generators/cms/templates/config/initializers/omniauth.rb
|
167
|
+
- lib/generators/cms/templates/layouts/_actions.html.haml
|
133
168
|
- lib/generators/cms/templates/layouts/application.html.haml
|
134
169
|
- lib/generators/cms/templates/mailers/notifier.rb
|
135
170
|
- lib/generators/cms/templates/migrations/create_footers.rb
|
@@ -160,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
195
|
version: '0'
|
161
196
|
requirements: []
|
162
197
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.
|
198
|
+
rubygems_version: 2.0.3
|
164
199
|
signing_key:
|
165
200
|
specification_version: 4
|
166
201
|
summary: Provide a forms and methods to have a cms into rails app
|
@@ -1,59 +0,0 @@
|
|
1
|
-
module Cms
|
2
|
-
module Rails
|
3
|
-
module RenderPage
|
4
|
-
def cms_render_page
|
5
|
-
@parent = params[:parent]
|
6
|
-
content = case @parent
|
7
|
-
when 'login'
|
8
|
-
'sessions/new'
|
9
|
-
when 'register'
|
10
|
-
'users/new'
|
11
|
-
else
|
12
|
-
@page = select_page unless @parent.nil?
|
13
|
-
unless @page.nil?
|
14
|
-
'pages/container'
|
15
|
-
else
|
16
|
-
'main'
|
17
|
-
end
|
18
|
-
end
|
19
|
-
content
|
20
|
-
end
|
21
|
-
|
22
|
-
def select_page
|
23
|
-
unless child_exist!
|
24
|
-
Page.find_by_name(@parent.humanize)
|
25
|
-
else
|
26
|
-
find_child
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def find_child
|
31
|
-
Page.find_by_name(params[:child].humanize)
|
32
|
-
end
|
33
|
-
|
34
|
-
def child_exist!
|
35
|
-
child = params[:child]
|
36
|
-
!child.nil?
|
37
|
-
end
|
38
|
-
|
39
|
-
def cms_render_menu
|
40
|
-
Menu.all.map {|menu| Page.select(:name).find(menu.page_id).name}
|
41
|
-
end
|
42
|
-
|
43
|
-
def cms_render_navigation
|
44
|
-
navigations = menu(params[:parent]).navigations
|
45
|
-
navigations.map {|nav| Page.select(:name).find(nav.page_id).name}
|
46
|
-
end
|
47
|
-
|
48
|
-
def menu(parent)
|
49
|
-
page = Page.find_by_name(parent.humanize)
|
50
|
-
menu = Menu.find_by_page_id(page.id)
|
51
|
-
end
|
52
|
-
|
53
|
-
def is_basic_page!
|
54
|
-
basic_pages = ['','login','register',nil]
|
55
|
-
basic_pages.include?(params[:parent])
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|