pixelforce_cms 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +1 -0
  7. data/lib/generators/pixelforce_cms/controller_generator.rb +29 -0
  8. data/lib/generators/pixelforce_cms/install_generator.rb +49 -0
  9. data/lib/generators/pixelforce_cms/templates/Gemfile +81 -0
  10. data/lib/generators/pixelforce_cms/templates/admin_controller.rb +39 -0
  11. data/lib/generators/pixelforce_cms/templates/application.html.haml +34 -0
  12. data/lib/generators/pixelforce_cms/templates/base_controller.rb +7 -0
  13. data/lib/generators/pixelforce_cms/templates/css/_variables.css.scss +15 -0
  14. data/lib/generators/pixelforce_cms/templates/css/application/chromeframe.css.scss +14 -0
  15. data/lib/generators/pixelforce_cms/templates/css/application/document.css.scss +0 -0
  16. data/lib/generators/pixelforce_cms/templates/css/application/html5.css.scss +33 -0
  17. data/lib/generators/pixelforce_cms/templates/css/application/media_queries.css.scss +0 -0
  18. data/lib/generators/pixelforce_cms/templates/css/application.css +17 -0
  19. data/lib/generators/pixelforce_cms/templates/css/jasny-bootstrap-responsive.css +170 -0
  20. data/lib/generators/pixelforce_cms/templates/css/jasny-bootstrap.css +1449 -0
  21. data/lib/generators/pixelforce_cms/templates/css/style.css.scss +101 -0
  22. data/lib/generators/pixelforce_cms/templates/css/style.responsive.css.scss +17 -0
  23. data/lib/generators/pixelforce_cms/templates/javascripts/application.js +17 -0
  24. data/lib/generators/pixelforce_cms/templates/javascripts/jasny-bootstrap.js +1119 -0
  25. data/lib/pixelforce_cms/version.rb +3 -0
  26. data/lib/pixelforce_cms.rb +1 -0
  27. data/pixelforce_cms.gemspec +23 -0
  28. metadata +98 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f076067b625f24e933e2e6f29b174752e16012c5
4
+ data.tar.gz: fb5b9041a788f8f9ea1e9c022de1482e0e8160e9
5
+ SHA512:
6
+ metadata.gz: f12bcfa47f3578b03ca6f3e4819385d086511fe2a98e8fb53f02726c3be9afc73837aecc874d2845cf21b70917ae402a3550e8a6ba137368b56ba98a733794c3
7
+ data.tar.gz: ec10dea95a774584c38cbee6448695995470a4982f663b09b9642079546ceb032381badf916d1473c75c6b031c17fdf16fccec37621d15135d4b78f9f3de26fa
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in pixelforce_cms.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Ben Zhang
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # PixelforceCms
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'pixelforce_cms'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install pixelforce_cms
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,29 @@
1
+ require 'rails/generators'
2
+
3
+ module PixelforceCms
4
+ module Generators
5
+ class ControllerGenerator < Rails::Generators::Base
6
+ source_root File.expand_path("../templates", __FILE__)
7
+ argument :controller_name, type: :string
8
+
9
+ def create_controller
10
+ template "base_controller.rb", "app/controllers/admin/base_controller.rb"
11
+ template "admin_controller.rb", "app/controllers/admin/#{file_name.pluralize}_controller.rb"
12
+ end
13
+
14
+ def create_route
15
+ sentinel = "authenticated :user do\n"
16
+ routing_code = "resources :#{file_name.pluralize}, controller: 'admin/#{file_name.pluralize}'"
17
+ in_root do
18
+ inject_into_file 'config/routes.rb', " #{routing_code}\n", { :after => sentinel, :verbose => false }
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def file_name
25
+ controller_name.underscore
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,49 @@
1
+ require 'rails/generators'
2
+
3
+ module PixelforceCms
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def copy_assets
9
+ copy_file "javascripts/application.js", "app/assets/javascripts/application.js"
10
+ copy_file "javascripts/jasny-bootstrap.js", "vendor/assets/javascripts/jasny-bootstrap.js"
11
+ copy_file "css/application.css", "app/assets/stylesheets/application.css"
12
+ copy_file "css/_variables.css.scss", "vendor/assets/stylesheets/_variables.css.scss"
13
+ copy_file "css/jasny-bootstrap-responsive.css", 'vendor/assets/stylesheets/jasny-bootstrap-responsive.css'
14
+ copy_file "css/jasny-bootstrap.css", 'vendor/assets/stylesheets/jasny-bootstrap.css'
15
+ copy_file "css/style.css.scss", 'vendor/assets/stylesheets/style.css.scss'
16
+ copy_file "css/style.responsive.css.scss", 'vendor/assets/stylesheets/style.responsive.css.scss'
17
+ copy_file "css/application/chromeframe.css.scss", 'vendor/assets/stylesheets/application/chromeframe.css.scss'
18
+ copy_file "css/application/html5.css.scss", 'vendor/assets/stylesheets/application/html5.css.scss'
19
+ end
20
+
21
+ def copy_gemfile
22
+ copy_file "Gemfile", 'Gemfile'
23
+ end
24
+
25
+ def copy_controller_files
26
+ copy_file "application.html.haml", 'app/views/layouts/application.html.haml'
27
+ create_file 'app/views/pages/index.html.haml'
28
+ in_root do
29
+ inject_into_file 'config/routes.rb', "\n root :to => 'pages#index'\n", { :after => 'do', :verbose => false }
30
+ end
31
+ end
32
+
33
+ def config_application
34
+ email_config = %q(
35
+ config.action_mailer.delivery_method = :smtp
36
+ config.action_mailer.smtp_settings = {
37
+ :address => "smtp.gmail.com",
38
+ :port => 587,
39
+ :user_name => "pfmedia.ben@gmail.com",
40
+ :password => "plus5261",
41
+ :authentication => :plain
42
+ })
43
+ sentinel = "config.assets.version = '1.0'"
44
+ inject_into_file 'config/application.rb', "\n#{email_config}\n", { :after => sentinel, :verbose => false }
45
+ end
46
+
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,81 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '3.2.14'
4
+
5
+ # Bundle edge Rails instead:
6
+ # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
+
8
+ gem 'mysql2'
9
+
10
+ gem 'devise', '~> 2.0'
11
+ gem 'simple_form', '~> 2.0'
12
+ gem 'paperclip'
13
+
14
+ # SEO pack
15
+ gem 'meta-tags', :require => 'meta_tags'
16
+
17
+ # exception handle
18
+ gem 'exception_notification'
19
+
20
+ # pixelforce template
21
+ gem 'pixelforce_cms', git: 'git@github.com:BenZhang/pixelforce_cms.git'
22
+
23
+ # Gems used only for assets and not required
24
+ # in production environments by default.
25
+ group :assets do
26
+ gem 'sass-rails', '~> 3.2.3'
27
+ gem 'coffee-rails', '~> 3.2.1'
28
+
29
+ # See https://github.com/sstephenson/execjs#readme for more supported runtimes
30
+ # gem 'therubyracer', :platforms => :ruby
31
+
32
+ gem 'uglifier', '>= 1.0.3'
33
+
34
+ #HTML5
35
+ gem 'compass-rails'
36
+ gem 'compass-h5bp'
37
+ gem 'uglifier', '>= 1.0.3'
38
+
39
+ #Bootstrap
40
+ gem "therubyracer"
41
+ gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
42
+ gem 'font-awesome-sass-rails'
43
+ gem 'anjlab-bootstrap-rails', :require => 'bootstrap-rails',
44
+ :github => 'anjlab/bootstrap-rails'
45
+ end
46
+
47
+ gem 'jquery-rails'
48
+
49
+ group :development, :test do
50
+ gem 'quiet_assets'
51
+ gem 'rspec'
52
+ gem 'rspec-rails', '~> 2.13'
53
+ # Deploy with Capistrano
54
+ gem 'capistrano'
55
+ gem 'rvm-capistrano'
56
+ gem 'factory_girl_rails'
57
+ gem 'thin'
58
+ gem 'mocha'
59
+ end
60
+
61
+ gem 'sass'
62
+ gem 'html5-rails'
63
+ gem 'jquery-rails'
64
+
65
+ gem 'haml', '~> 4.0.0'
66
+ gem 'haml-rails', '~> 0.4'
67
+
68
+ # To use ActiveModel has_secure_password
69
+ # gem 'bcrypt-ruby', '~> 3.0.0'
70
+
71
+ # To use Jbuilder templates for JSON
72
+ # gem 'jbuilder'
73
+
74
+ # Use unicorn as the app server
75
+ # gem 'unicorn'
76
+
77
+ # Deploy with Capistrano
78
+ # gem 'capistrano'
79
+
80
+ # To use debugger
81
+ # gem 'debugger'
@@ -0,0 +1,39 @@
1
+ class Admin::<%= controller_name.pluralize %>Controller < Admin::BaseController
2
+
3
+ def index
4
+ @<%= controller_name.underscore.pluralize %> = <%= controller_name %>.all
5
+ end
6
+
7
+ def new
8
+ @<%= controller_name.underscore %> = <%= controller_name %>.new
9
+ end
10
+
11
+ def create
12
+ @<%= controller_name.underscore %> = <%= controller_name %>.new params[:<%= controller_name.underscore %>]
13
+ if @<%= controller_name.underscore %>.save
14
+ redirect_to <%= controller_name.underscore.pluralize %>_path
15
+ else
16
+ render action: :new
17
+ end
18
+ end
19
+
20
+ def edit
21
+ @<%= controller_name.underscore %> = <%= controller_name %>.find params[:id]
22
+ end
23
+
24
+ def update
25
+ @<%= controller_name.underscore %> = <%= controller_name %>.find params[:id]
26
+ if @<%= controller_name.underscore %>.update_attributes params[:<%= controller_name.underscore %>]
27
+ redirect_to <%= controller_name.underscore.pluralize %>_path
28
+ else
29
+ render action: :edit
30
+ end
31
+ end
32
+
33
+ def destroy
34
+ @<%= controller_name.underscore %> = <%= controller_name %>.find params[:id]
35
+ @<%= controller_name.underscore %>.destroy
36
+ redirect_to <%= controller_name.underscore.pluralize %>_path
37
+ end
38
+
39
+ end
@@ -0,0 +1,34 @@
1
+ !!!
2
+ = html_tag class: 'no-js', lang: 'en'
3
+ %head
4
+ %meta{:charset => 'UTF-8'}
5
+ %meta{:content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible"}
6
+ = display_meta_tags site: 'Sitename',
7
+ keywords: '',
8
+ description: 'Website description',
9
+ separator: '|',
10
+ reverse: true
11
+
12
+ %meta{content: "PixelForce Systems", :name => "author"}
13
+ %meta{:content => "Copyright Sitename #{Date.today.year}. All Rights Reserved.", :name => "Copyright"}
14
+
15
+ %meta{:content => "width=640", :name => "viewport"}
16
+ %link{:href => "/favicon.ico", :rel => "shortcut icon"}
17
+
18
+ %link{:href => "http://fonts.googleapis.com/css?family=Roboto:400,700,300", :rel => "stylesheet", :type => "text/css"}
19
+ %link{:href => "http://fonts.googleapis.com/css?family=Roboto+Condensed:300,700", :rel => "stylesheet", :type => "text/css"}
20
+ = stylesheet_link_tag :application, media: 'all'
21
+ = csrf_meta_tags
22
+
23
+ /[if lt IE 9]
24
+ <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
25
+
26
+ %body{ :class => controller.controller_name }
27
+ #main-content
28
+ .container
29
+ = render 'application/header'
30
+ = yield
31
+ = render 'application/footer'
32
+
33
+ = javascript_include_tag :application
34
+ = yield :js
@@ -0,0 +1,7 @@
1
+ class PagesController < ApplicationController
2
+
3
+ def index
4
+
5
+ end
6
+
7
+ end
@@ -0,0 +1,15 @@
1
+ // This file was generated by html5-rails
2
+ // https://github.com/sporkd/html5-rails
3
+ // Upgrade with: $ rails generate html5:install
4
+ //
5
+ // These global SCSS(SASS) variables will be
6
+ // available to all your stylesheets.
7
+
8
+ //----------------------------------------------
9
+ // Html5 Boilerplate overrides
10
+ //----------------------------------------------
11
+ $font-color: #222;
12
+ $font-family: 'Roboto', sans-serif;
13
+ $font-size: 1em;
14
+ $link-color: #808285;
15
+ $link-hover-color: #808285;
@@ -0,0 +1,14 @@
1
+ // This file was generated by html5-rails
2
+ // https://github.com/sporkd/html5-rails
3
+ // Upgrade with: $ rails generate html5:install
4
+
5
+ //-----------------------------------------
6
+ // Chrome Frame override
7
+ //-----------------------------------------
8
+
9
+ .chromeframe {
10
+ margin: 0.2em 0;
11
+ background: #ccc;
12
+ color: black;
13
+ padding: 0.2em 0;
14
+ }
@@ -0,0 +1,33 @@
1
+ // This file was generated by html5-rails
2
+ // https://github.com/sporkd/html5-rails
3
+ // Upgrade with: $ rails generate html5:install
4
+
5
+ //-----------------------------------------
6
+ // Variables come first
7
+ //-----------------------------------------
8
+ @import "variables";
9
+
10
+ //-----------------------------------------
11
+ // Imports
12
+ //-----------------------------------------
13
+ // @import "compass/css3";
14
+ @import "h5bp";
15
+
16
+ //-----------------------------------------
17
+ // Prepend includes
18
+ //-----------------------------------------
19
+ @include h5bp-normalize;
20
+ @include h5bp-main;
21
+
22
+ //-----------------------------------------
23
+ // Custom application partials
24
+ //-----------------------------------------
25
+ @import "application/chromeframe";
26
+ @import "application/document";
27
+ @import "application/media_queries"; // Media queries last
28
+
29
+ //-----------------------------------------
30
+ // Append includes
31
+ //-----------------------------------------
32
+ @include h5bp-helpers;
33
+ @include h5bp-media;
@@ -0,0 +1,17 @@
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
+
12
+ *= require application/chromeframe
13
+ *= require twitter/bootstrap
14
+ *= require _font-awesome
15
+
16
+ *= require style
17
+ */
@@ -0,0 +1,170 @@
1
+ /*!
2
+ * Jasny Bootstrap Responsive Extensions j3
3
+ *
4
+ * Copyright 2012 Jasny BV
5
+ * Licensed under the Apache License v2.0
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Extended with pride by @ArnoldDaniels of jasny.net
9
+ */
10
+
11
+ .clearfix {
12
+ *zoom: 1;
13
+ }
14
+
15
+ .clearfix:before,
16
+ .clearfix:after {
17
+ display: table;
18
+ line-height: 0;
19
+ content: "";
20
+ }
21
+
22
+ .clearfix:after {
23
+ clear: both;
24
+ }
25
+
26
+ .hide-text {
27
+ font: 0/0 a;
28
+ color: transparent;
29
+ text-shadow: none;
30
+ background-color: transparent;
31
+ border: 0;
32
+ }
33
+
34
+ .input-block-level {
35
+ display: block;
36
+ width: 100%;
37
+ min-height: 30px;
38
+ -webkit-box-sizing: border-box;
39
+ -moz-box-sizing: border-box;
40
+ box-sizing: border-box;
41
+ }
42
+
43
+ .container-semifluid {
44
+ max-width: 1170px;
45
+ }
46
+
47
+ @media (min-width: 768px) and (max-width: 979px) {
48
+ .row-desktop.row-fluid {
49
+ width: 100%;
50
+ }
51
+ .row-desktop.row {
52
+ margin-left: 0;
53
+ }
54
+ .row-desktop > [class*="span"],
55
+ .row-desktop > [class*="span"] {
56
+ display: block;
57
+ float: none;
58
+ width: auto;
59
+ margin: 0;
60
+ }
61
+ }
62
+
63
+ @media (max-width: 767px) {
64
+ .table-responsive tr {
65
+ display: block;
66
+ padding: 8px;
67
+ }
68
+ .table-bordered.table-responsive tr {
69
+ border: 1px solid #DDD;
70
+ border-top: 0;
71
+ border-right: 0;
72
+ }
73
+ .table-responsive td,
74
+ .table-responsive th {
75
+ display: block;
76
+ padding: 0;
77
+ font-weight: normal;
78
+ border: none;
79
+ }
80
+ .table-responsive th {
81
+ font-style: italic;
82
+ }
83
+ .responsive-strong {
84
+ font-weight: bold;
85
+ }
86
+ .responsive-em {
87
+ font-style: italic;
88
+ }
89
+ .responsive-soft {
90
+ color: #999;
91
+ }
92
+ }
93
+
94
+ @media (max-width: 480px) {
95
+ .form-horizontal .controls,
96
+ .form-horizontal .well .controls,
97
+ .small-labels .controls {
98
+ margin-left: 0;
99
+ }
100
+ }
101
+
102
+ @media (max-width: 768px) {
103
+ .form-horizontal .form-actions {
104
+ padding-left: 18px;
105
+ }
106
+ }
107
+
108
+ @media (min-width: 768px) and (max-width: 979px) {
109
+ .form-horizontal .control-label {
110
+ width: 100px;
111
+ }
112
+ .form-horizontal .controls {
113
+ margin-left: 110px;
114
+ }
115
+ .form-horizontal .form-actions {
116
+ padding-left: 110px;
117
+ }
118
+ .form-horizontal .well .control-label {
119
+ width: 80px;
120
+ }
121
+ .form-horizontal .well .controls {
122
+ margin-left: 90px;
123
+ }
124
+ .small-labels .control-group > label {
125
+ width: 50px;
126
+ }
127
+ .small-labels .controls {
128
+ margin-left: 60px;
129
+ }
130
+ .small-labels .form-actions {
131
+ padding-left: 60px;
132
+ }
133
+ }
134
+
135
+ @media (min-width: 1200px) {
136
+ .small-labels .control-group > label {
137
+ width: 80px;
138
+ }
139
+ .small-labels .controls {
140
+ margin-left: 100px;
141
+ }
142
+ .small-labels .form-actions {
143
+ padding-left: 100px;
144
+ }
145
+ }
146
+
147
+ @media (max-width: 480px) {
148
+ .page-alert {
149
+ position: static;
150
+ width: auto;
151
+ }
152
+ .page-alert .alert {
153
+ width: auto;
154
+ margin-left: 0;
155
+ border-top-width: 1px;
156
+ -webkit-border-radius: 4px;
157
+ -moz-border-radius: 4px;
158
+ border-radius: 4px;
159
+ }
160
+ body > .page-alert {
161
+ position: static;
162
+ }
163
+ }
164
+
165
+ @media (min-width: 1200px) {
166
+ .page-alert .alert {
167
+ width: 700px;
168
+ margin-left: -375px;
169
+ }
170
+ }