faalis 0.7.0
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 +7 -0
- data/LICENSE +339 -0
- data/README.md +45 -0
- data/Rakefile +42 -0
- data/app/assets/fonts/DroidNaskh-Bold.ttf +0 -0
- data/app/assets/fonts/DroidNaskh-Regular.ttf +0 -0
- data/app/assets/fonts/OpenSans-Bold.ttf +0 -0
- data/app/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- data/app/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Italic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Light.ttf +0 -0
- data/app/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Regular.ttf +0 -0
- data/app/assets/fonts/OpenSans-Semibold.ttf +0 -0
- data/app/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- data/app/assets/images/faalis/select2-spinner.gif +0 -0
- data/app/assets/images/faalis/select2.png +0 -0
- data/app/assets/images/faalis/select2x2.png +0 -0
- data/app/assets/javascripts/faalis/application.js +20 -0
- data/app/assets/javascripts/faalis/dashboard/angular.js +9 -0
- data/app/assets/javascripts/faalis/dashboard/app.js +75 -0
- data/app/assets/javascripts/faalis/dashboard/application.js.erb +21 -0
- data/app/assets/javascripts/faalis/dashboard/functions.js.erb +91 -0
- data/app/assets/javascripts/faalis/dashboard/init.js +38 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-animate.js +1226 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-gettext.js +202 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-resource.js +578 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-route.js +880 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular.js +20031 -0
- data/app/assets/javascripts/faalis/dashboard/lib/lodash.underscore.js +4893 -0
- data/app/assets/javascripts/faalis/dashboard/lib/ng-grid.js +3260 -0
- data/app/assets/javascripts/faalis/dashboard/lib/ng-quick-date.js +297 -0
- data/app/assets/javascripts/faalis/dashboard/lib/restangular.js +1066 -0
- data/app/assets/javascripts/faalis/dashboard/lib/select2.js +3255 -0
- data/app/assets/javascripts/faalis/dashboard/lib/ui.select2.js +217 -0
- data/app/assets/javascripts/faalis/dashboard/locale/translations.js +5 -0
- data/app/assets/javascripts/faalis/dashboard/modules/anim.js +32 -0
- data/app/assets/javascripts/faalis/dashboard/modules/api.js +32 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/auth.js +34 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/group.js +174 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/profile.js +59 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/user.js +123 -0
- data/app/assets/javascripts/faalis/dashboard/modules/errors.js +47 -0
- data/app/assets/javascripts/faalis/dashboard/modules/filter.js +44 -0
- data/app/assets/javascripts/faalis/dashboard/modules/list-view.js +310 -0
- data/app/assets/javascripts/faalis/dashboard/modules/logs.js +41 -0
- data/app/assets/javascripts/faalis/dashboard/modules/modules.js +50 -0
- data/app/assets/javascripts/faalis/dashboard/modules/nav.js.erb +97 -0
- data/app/assets/javascripts/faalis/dashboard/templates/application.handlebars.erb +42 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/details.handlebars.erb +15 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/index.handlebars.erb +7 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/new.handlebars.erb +39 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/index.handlebars.erb +31 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/users/details.handlebars.erb +15 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/users/index.handlebars.erb +11 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/users/new.handlebars.erb +33 -0
- data/app/assets/javascripts/faalis/dashboard/templates/components/list-view.handlebars.erb +59 -0
- data/app/assets/javascripts/faalis/dashboard/templates/components/model-form.handlebars.erb +3 -0
- data/app/assets/javascripts/faalis/dashboard/templates/modules.handlebars.erb +15 -0
- data/app/assets/javascripts/faalis/dashboard/templates/navigation.handlebars.erb +43 -0
- data/app/assets/javascripts/faalis/dashboard/templates/widgets.handlebars +23 -0
- data/app/assets/javascripts/faalis/dashboard/variables.js.erb +17 -0
- data/app/assets/javascripts/faalis/groups.js +2 -0
- data/app/assets/javascripts/faalis/home.js +2 -0
- data/app/assets/javascripts/faalis/i18n.js +13 -0
- data/app/assets/javascripts/faalis/locale/en.json +27 -0
- data/app/assets/javascripts/faalis/locale/fa.json +27 -0
- data/app/assets/javascripts/faalis/users.js +2 -0
- data/app/assets/stylesheets/faalis/base.css.scss +264 -0
- data/app/assets/stylesheets/faalis/dashboard/dashboard.css.scss +226 -0
- data/app/assets/stylesheets/faalis/dashboard/list_view.css.scss +169 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/application.css +26 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/base.css.scss.erb +28 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/direction.css.scss +38 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/foundation_and_overrides.css.scss +1014 -0
- data/app/assets/stylesheets/faalis/dashboard/ng-grid.css.scss +442 -0
- data/app/assets/stylesheets/faalis/dashboard/ng-quick-date-default-theme.css.scss +20 -0
- data/app/assets/stylesheets/faalis/dashboard/ng-quick-date.css.scss +19 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/application.css +26 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/base.css.scss.erb +31 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/base.css_flymake.scss +25 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/buttons.css.scss.erb +45 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/direction.css.scss +37 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/foundation_and_overrides.css.scss +1014 -0
- data/app/assets/stylesheets/faalis/dashboard/select2.css.scss.erb +618 -0
- data/app/assets/stylesheets/faalis/dashboard/sidebar.css.scss +93 -0
- data/app/assets/stylesheets/faalis/devise.css.scss +34 -0
- data/app/assets/stylesheets/faalis/groups.css +4 -0
- data/app/assets/stylesheets/faalis/home.css.scss +14 -0
- data/app/assets/stylesheets/faalis/ltr/application.css +20 -0
- data/app/assets/stylesheets/faalis/ltr/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/faalis/ltr/foundation_and_overrides.scss.erb +1012 -0
- data/app/assets/stylesheets/faalis/mixins.css.scss +15 -0
- data/app/assets/stylesheets/faalis/rtl/application.css +20 -0
- data/app/assets/stylesheets/faalis/rtl/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/faalis/rtl/foundation_and_overrides.scss.erb +1012 -0
- data/app/assets/stylesheets/faalis/users.css +4 -0
- data/app/assets/stylesheets/faalis/variables.css.scss +102 -0
- data/app/controllers/faalis/api/v1/groups_controller.rb +75 -0
- data/app/controllers/faalis/api/v1/logs_controller.rb +12 -0
- data/app/controllers/faalis/api/v1/permissions_controller.rb +17 -0
- data/app/controllers/faalis/api/v1/profiles_controller.rb +42 -0
- data/app/controllers/faalis/api/v1/users_controller.rb +75 -0
- data/app/controllers/faalis/api_controller.rb +51 -0
- data/app/controllers/faalis/application_controller.rb +34 -0
- data/app/controllers/faalis/dashboard_controller.rb +44 -0
- data/app/controllers/faalis/home_controller.rb +19 -0
- data/app/controllers/faalis/omniauth/callbacks_controller.rb +43 -0
- data/app/helpers/faalis/application_helper.rb +4 -0
- data/app/helpers/faalis/dashboard_helper.rb +5 -0
- data/app/helpers/faalis/groups_helper.rb +4 -0
- data/app/helpers/faalis/home_helper.rb +4 -0
- data/app/helpers/faalis/users_helper.rb +4 -0
- data/app/models/ability.rb +42 -0
- data/app/models/faalis/group.rb +27 -0
- data/app/models/faalis/permission.rb +15 -0
- data/app/models/faalis/user.rb +81 -0
- data/app/views/angularjs_templates/#index.html# +8 -0
- data/app/views/angularjs_templates/auth/groups/details.html +21 -0
- data/app/views/angularjs_templates/auth/groups/index.html +5 -0
- data/app/views/angularjs_templates/auth/groups/new.html +41 -0
- data/app/views/angularjs_templates/auth/index.html +30 -0
- data/app/views/angularjs_templates/auth/profile/edit.html +54 -0
- data/app/views/angularjs_templates/auth/users/details.html +28 -0
- data/app/views/angularjs_templates/auth/users/index.html +6 -0
- data/app/views/angularjs_templates/auth/users/new.html +56 -0
- data/app/views/angularjs_templates/filter/index.html +15 -0
- data/app/views/angularjs_templates/index.html +8 -0
- data/app/views/angularjs_templates/list-view/index.html +81 -0
- data/app/views/angularjs_templates/locale/fa.po +25 -0
- data/app/views/angularjs_templates/locale/templates.pot +24 -0
- data/app/views/angularjs_templates/logs/index.html +6 -0
- data/app/views/angularjs_templates/modules.html +17 -0
- data/app/views/angularjs_templates/nav.html.erb +38 -0
- data/app/views/devise/confirmations/new.html.erb +34 -0
- data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/devise/passwords/edit.html.erb +44 -0
- data/app/views/devise/passwords/new.html.erb +32 -0
- data/app/views/devise/registrations/edit.html.erb +29 -0
- data/app/views/devise/registrations/new.html.erb +91 -0
- data/app/views/devise/sessions/new.html.erb +98 -0
- data/app/views/devise/shared/_links.erb +25 -0
- data/app/views/devise/unlocks/new.html.erb +30 -0
- data/app/views/faalis/api/v1/groups/create.json.jbuilder +4 -0
- data/app/views/faalis/api/v1/groups/destroy.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/destroy.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/groups/edit.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/index.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/index.json.jbuilder +6 -0
- data/app/views/faalis/api/v1/groups/new.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/show.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/show.json.jbuilder +5 -0
- data/app/views/faalis/api/v1/groups/update.json.jbuilder +4 -0
- data/app/views/faalis/api/v1/logs/index.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/permissions/index.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/users/create.html.erb +2 -0
- data/app/views/faalis/api/v1/users/create.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/users/destroy.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/users/distroy.html.erb +2 -0
- data/app/views/faalis/api/v1/users/edit.html.erb +2 -0
- data/app/views/faalis/api/v1/users/index.html.erb +2 -0
- data/app/views/faalis/api/v1/users/index.json.jbuilder +4 -0
- data/app/views/faalis/api/v1/users/show.html.erb +2 -0
- data/app/views/faalis/api/v1/users/show.json.jbuilder +2 -0
- data/app/views/faalis/api/v1/users/update.json.jbuilder +1 -0
- data/app/views/faalis/dashboard/index.html.erb +37 -0
- data/app/views/faalis/dashboard/login_required_page.html.erb +5 -0
- data/app/views/faalis/home/index.html.erb +119 -0
- data/app/views/layouts/faalis/application.html.erb +90 -0
- data/app/views/layouts/faalis/dashboard.html.erb +21 -0
- data/config/initializers/devise.rb +28 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/devise.fa.yml +56 -0
- data/config/locales/fa/LC_MESSAGES/faalis.mo +0 -0
- data/config/locales/fa/faalis.po +181 -0
- data/config/locales/fa/messages.mo +0 -0
- data/config/locales/faalis.pot +181 -0
- data/config/routes.rb +36 -0
- data/db/migrate/20131013091000_devise_create_red_base_users.rb +64 -0
- data/db/migrate/20131020124701_create_red_base_groups.rb +9 -0
- data/db/migrate/20131021170923_create_red_base_permissions.rb +10 -0
- data/db/migrate/20131123120422_add_permissions_groups_table.rb +8 -0
- data/db/seeds.rb +15 -0
- data/lib/faalis.rb +30 -0
- data/lib/faalis/active_record.rb +64 -0
- data/lib/faalis/api.rb +61 -0
- data/lib/faalis/api/groups_api.rb +41 -0
- data/lib/faalis/api/permissions_api.rb +24 -0
- data/lib/faalis/api/root.rb +15 -0
- data/lib/faalis/api/users_api.rb +20 -0
- data/lib/faalis/cucumber.rb +25 -0
- data/lib/faalis/cucumber/auth.rb +45 -0
- data/lib/faalis/cucumber/exceptions.rb +40 -0
- data/lib/faalis/cucumber/interaction.rb +43 -0
- data/lib/faalis/cucumber/query.rb +28 -0
- data/lib/faalis/cucumber/urls.rb +76 -0
- data/lib/faalis/dashboard.rb +60 -0
- data/lib/faalis/dashboard/controller.rb +42 -0
- data/lib/faalis/dashboard/module.rb +45 -0
- data/lib/faalis/engine.rb +128 -0
- data/lib/faalis/exceptions.rb +26 -0
- data/lib/faalis/i18n.rb +35 -0
- data/lib/faalis/initialize.rb +7 -0
- data/lib/faalis/omniauth.rb +24 -0
- data/lib/faalis/omniauth/callbacks.rb +58 -0
- data/lib/faalis/plugins.rb +44 -0
- data/lib/faalis/version.rb +22 -0
- data/lib/faalis_plugin.rb +476 -0
- data/lib/generators/faalis/USAGE +8 -0
- data/lib/generators/faalis/angularjs_resource_generator.rb +74 -0
- data/lib/generators/faalis/install_all_generator.rb +38 -0
- data/lib/generators/faalis/install_generator.rb +42 -0
- data/lib/generators/faalis/install_specs_generator.rb +48 -0
- data/lib/generators/faalis/js_scaffold_generator.rb +273 -0
- data/lib/generators/faalis/templates/README +41 -0
- data/lib/generators/faalis/templates/SPECS +13 -0
- data/lib/generators/faalis/templates/angularjs/details.html.erb +20 -0
- data/lib/generators/faalis/templates/angularjs/index.html.erb +62 -0
- data/lib/generators/faalis/templates/angularjs/module.js.erb +309 -0
- data/lib/generators/faalis/templates/angularjs/new.html.erb +105 -0
- data/lib/generators/faalis/templates/api/controller.rb.erb +56 -0
- data/lib/generators/faalis/templates/devise.rb +251 -0
- data/lib/generators/faalis/templates/faalis.rb +14 -0
- data/lib/generators/faalis/templates/fast_gettext.rb +4 -0
- data/lib/generators/faalis/templates/features/api.feature +92 -0
- data/lib/generators/faalis/templates/features/api.step.rb +7 -0
- data/lib/generators/faalis/templates/features/step_definitions/email_steps.rb +206 -0
- data/lib/generators/faalis/templates/features/support/email_spec.rb +1 -0
- data/lib/generators/faalis/templates/features/support/env.rb +79 -0
- data/lib/generators/faalis/templates/formtastic.rb +76 -0
- data/lib/generators/faalis/templates/js_scaffold.README +25 -0
- data/lib/generators/faalis/templates/seeds.rb +1 -0
- data/lib/generators/faalis/templates/spec/factories/groups.rb +5 -0
- data/lib/generators/faalis/templates/spec/factories/users.rb +10 -0
- data/lib/generators/faalis/templates/spec/spec_helper.rb +69 -0
- data/lib/generators/faalis/templates/spec/support/devise.rb +3 -0
- data/lib/generators/faalis/templates/views/create.json.jbuilder.erb +2 -0
- data/lib/generators/faalis/templates/views/destroy.json.jbuilder.erb +1 -0
- data/lib/generators/faalis/templates/views/index.json.jbuilder.erb +10 -0
- data/lib/generators/faalis/templates/views/show.json.jbuilder.erb +7 -0
- data/lib/generators/faalis/templates/views/update.json.jbuilder.erb +6 -0
- data/lib/generators/faalis/views_generator.rb +41 -0
- data/lib/tasks/faalis_tasks.rake +23 -0
- data/lib/tasks/grunt/Gruntfile.js +25 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +23 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/test.log +15 -0
- data/spec/dummy/public/404.html +58 -0
- data/spec/dummy/public/422.html +58 -0
- data/spec/dummy/public/500.html +57 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/tmp/ember-rails/ember-data.js +10204 -0
- data/spec/dummy/tmp/ember-rails/ember.js +36991 -0
- data/spec/spec_helper.rb +52 -0
- metadata +678 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
# Red Base - Basic website skel engine
|
|
3
|
+
# Copyright (C) 2012-2013 Yellowen
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License along
|
|
16
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
+
# -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
module Faalis
|
|
21
|
+
module Generators
|
|
22
|
+
class AngularjsResourceGenerator < Rails::Generators::Base
|
|
23
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
24
|
+
|
|
25
|
+
argument :resource_name, :type => :string, :required => true
|
|
26
|
+
argument :dependencies, type: :array, default: [], banner: "dependencies"
|
|
27
|
+
|
|
28
|
+
desc "Create a new resource for angularjs application"
|
|
29
|
+
def create_module
|
|
30
|
+
template "angularjs/module.js.erb", "#{angularjs_app_path}modules/#{resource_path}.js"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def create_template
|
|
34
|
+
template "angularjs/index.html.erb", "app/assets/templates/#{resource.underscore}/index.html"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
def get_dependencies
|
|
40
|
+
deps = []
|
|
41
|
+
dependencies.each do |dependency|
|
|
42
|
+
deps << "'#{dependency.camelize}'"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
deps.join(", ")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def resource_path
|
|
49
|
+
path_parts = resource_name.split("/")
|
|
50
|
+
if path_parts.length > 1
|
|
51
|
+
return "#{path_parts(0..-2).join("/")}/#{path_parts[-1].underscore}"
|
|
52
|
+
end
|
|
53
|
+
resource_name.underscore
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def resource
|
|
57
|
+
path_parts = resource_name.split("/")
|
|
58
|
+
if path_parts.length > 1
|
|
59
|
+
return path_parts[-1].camelize
|
|
60
|
+
end
|
|
61
|
+
resource_name.camelize
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def is_in_engine?
|
|
65
|
+
false
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def angularjs_app_path
|
|
69
|
+
path = Faalis::Engine.dashboard_js_manifest.split("/")[0..-2].join("/")
|
|
70
|
+
"app/assets/javascripts/#{path}/"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
# Red Base - Basic website skel engine
|
|
3
|
+
# Copyright (C) 2012-2013 Yellowen
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License along
|
|
16
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
+
# -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
module Faalis
|
|
21
|
+
module Generators
|
|
22
|
+
class InstallAllGenerator < Rails::Generators::Base
|
|
23
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
24
|
+
|
|
25
|
+
desc "Copy all the necessary files to use Red Base (migrations included)"
|
|
26
|
+
hook_for :install_generator
|
|
27
|
+
|
|
28
|
+
def copy_migrations
|
|
29
|
+
rake("faalis:install:migrations")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def copy_install
|
|
33
|
+
invoke "faalis:install"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
# Red Base - Basic website skel engine
|
|
3
|
+
# Copyright (C) 2012-2013 Yellowen
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License along
|
|
16
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
+
# -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
module Faalis
|
|
21
|
+
module Generators
|
|
22
|
+
class InstallGenerator < Rails::Generators::Base
|
|
23
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
24
|
+
|
|
25
|
+
desc "Copy all the necessary files to use Red Base"
|
|
26
|
+
class_option :orm
|
|
27
|
+
|
|
28
|
+
def copy_init_files
|
|
29
|
+
template "devise.rb", "config/initializers/devise.rb"
|
|
30
|
+
template "faalis.rb", "config/initializers/faalis.rb"
|
|
31
|
+
template "fast_gettext.rb", "config/initializers/fast_gettext.rb"
|
|
32
|
+
template "formtastic.rb", "config/initializers/formstatic.rb"
|
|
33
|
+
template "seeds.rb", "db/seeds.rb"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def show_readme
|
|
37
|
+
readme "README" if behavior == :invoke
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
# Red Base - Basic website skel engine
|
|
3
|
+
# Copyright (C) 2012-2013 Yellowen
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License along
|
|
16
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
+
# -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
module Faalis
|
|
21
|
+
module Generators
|
|
22
|
+
class InstallSpecsGenerator < Rails::Generators::Base
|
|
23
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
24
|
+
|
|
25
|
+
desc "Copy all the necessary files to install and use specs"
|
|
26
|
+
|
|
27
|
+
def install_gems
|
|
28
|
+
invoke "rspec:install"
|
|
29
|
+
invoke "cucumber:install", ["--capybara", "--rspec"]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def update_configurations
|
|
33
|
+
copy_file "features/step_definitions/email_steps.rb", "features/step_definitions/email_steps.rb"
|
|
34
|
+
copy_file "features/support/env.rb", "features/support/env.rb"
|
|
35
|
+
copy_file "spec/factories/groups.rb", "spec/factories/groups.rb"
|
|
36
|
+
copy_file "spec/factories/users.rb", "spec/factories/users.rb"
|
|
37
|
+
copy_file "spec/spec_helper.rb", "spec/spec_helper.rb"
|
|
38
|
+
copy_file "spec/support/devise.rb", "spec/support/devise.rb"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def show_readme
|
|
42
|
+
readme "SPECS" if behavior == :invoke
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
# Red Base - Basic website skel engine
|
|
3
|
+
# Copyright (C) 2012-2013 Yellowen
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License along
|
|
16
|
+
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
+
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
+
# -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
module Faalis
|
|
21
|
+
module Generators
|
|
22
|
+
class JsScaffoldGenerator < Rails::Generators::Base
|
|
23
|
+
|
|
24
|
+
include ActionView::Helpers::TextHelper
|
|
25
|
+
|
|
26
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
27
|
+
|
|
28
|
+
argument :resource_name, :type => :string, :required => true
|
|
29
|
+
argument :resource_fields, type: :array, default: [], banner: "fields[:types]"
|
|
30
|
+
class_option :without_specs, :type => :boolean, :default => false, :desc => "Do not install specs"
|
|
31
|
+
class_option :only_specs, :type => :boolean, :default => false, :desc => "Generate only spec files"
|
|
32
|
+
class_option :bulk_fields, :type => :string, :default => "", :desc => "Fields to use in in bulk edit, comma separated"
|
|
33
|
+
class_option :no_bulk, :type => :boolean, :default => false, :desc => "No bulk edit needed"
|
|
34
|
+
class_option :menu, :type => :string, :default => "", :desc => "Provide menu items which should be in sidebar. format: menu1:url,menu2:url"
|
|
35
|
+
class_option :title_field, :type => :string, :default => "name", :desc => "Field name to use as title of each object"
|
|
36
|
+
class_option :required, :type => :string, :default => "", :desc => "Non optional fields, comma separated"
|
|
37
|
+
class_option :deps, :type => :string, :default => "", :desc => "Dependencies of Angularjs module, comma separated"
|
|
38
|
+
class_option :tabs, :type => :string, :default => "", :desc => "Add tabs to 'new' view of scaffold. format: --tabs tab1:'field1;field2',tab2 Note: __all__ field include all fileds."
|
|
39
|
+
class_option :no_filter, :type => :boolean, :default => false, :desc => "Don't view a filter box"
|
|
40
|
+
|
|
41
|
+
desc "Create a new resource for client side application"
|
|
42
|
+
def create_module
|
|
43
|
+
unless options[:only_specs]
|
|
44
|
+
template "angularjs/module.js.erb", "#{angularjs_app_path}modules/#{resource_path}.js"
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def create_template
|
|
49
|
+
unless options[:only_specs]
|
|
50
|
+
template "angularjs/index.html.erb", "app/views/angularjs_templates/#{resource.underscore}/index.html"
|
|
51
|
+
template "angularjs/new.html.erb", "app/views/angularjs_templates/#{resource.underscore}/new.html"
|
|
52
|
+
template "angularjs/details.html.erb", "app/views/angularjs_templates/#{resource.underscore}/details.html"
|
|
53
|
+
|
|
54
|
+
template "views/index.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/index.json.jbuilder"
|
|
55
|
+
template "views/show.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/show.json.jbuilder"
|
|
56
|
+
template "views/create.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/create.json.jbuilder"
|
|
57
|
+
template "views/destroy.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/destroy.json.jbuilder"
|
|
58
|
+
template "views/update.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/update.json.jbuilder"
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def create_api
|
|
63
|
+
unless options[:only_specs]
|
|
64
|
+
template "api/controller.rb.erb", "app/controllers/api/v1/#{resource.pluralize.underscore}_controller.rb"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def create_specs
|
|
69
|
+
unless options[:without_specs]
|
|
70
|
+
template "features/api.feature", "features/#{resource.underscore}.api.feature"
|
|
71
|
+
template "features/api.step.rb", "features/step_definitions/#{resource.underscore}.rb"
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
def show_readme
|
|
75
|
+
readme "js_scaffold.README" if behavior == :invoke
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# PRIVATES --------------------------------------------
|
|
79
|
+
private
|
|
80
|
+
|
|
81
|
+
# Path to the resource
|
|
82
|
+
def resource_path
|
|
83
|
+
path_parts = resource_name.split("/")
|
|
84
|
+
if path_parts.length > 1
|
|
85
|
+
return "#{path_parts(0..-2).join("/")}/#{path_parts[-1].underscore}"
|
|
86
|
+
end
|
|
87
|
+
resource_name.underscore
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Url of resource
|
|
91
|
+
def resource_url
|
|
92
|
+
path_parts = resource_name.split("/")
|
|
93
|
+
if path_parts.length > 1
|
|
94
|
+
return "#{path_parts(0..-2).join("/")}/#{path_parts[-1].pluralize.underscore}"
|
|
95
|
+
end
|
|
96
|
+
resource_name.pluralize.underscore
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def resource
|
|
100
|
+
path_parts = resource_name.split("/")
|
|
101
|
+
if path_parts.length > 1
|
|
102
|
+
return path_parts[-1].camelize
|
|
103
|
+
end
|
|
104
|
+
resource_name.camelize
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def is_in_engine?
|
|
108
|
+
false
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def angularjs_app_path
|
|
112
|
+
path = Faalis::Engine.dashboard_js_manifest.split("/")[0..-2].join("/")
|
|
113
|
+
"app/assets/javascripts/#{path}/"
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Tabs ------------------------------------
|
|
117
|
+
|
|
118
|
+
# Process the user provided tabs
|
|
119
|
+
# @return a Hash of tabs like
|
|
120
|
+
def tabs
|
|
121
|
+
if options[:tabs].present?
|
|
122
|
+
tabs = options[:tabs].split(",")
|
|
123
|
+
result = {}
|
|
124
|
+
tabs.each do |tab|
|
|
125
|
+
name, fields = tab.split(":")
|
|
126
|
+
fields_list = []
|
|
127
|
+
unless fields.nil?
|
|
128
|
+
fields_list = fields.split(";")
|
|
129
|
+
end
|
|
130
|
+
result[name] = fields_list
|
|
131
|
+
end
|
|
132
|
+
return result
|
|
133
|
+
else
|
|
134
|
+
{}
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def any_tabs?
|
|
139
|
+
options[:tabs].present?
|
|
140
|
+
end
|
|
141
|
+
# -----------------------------------
|
|
142
|
+
|
|
143
|
+
# An array of fields like
|
|
144
|
+
# [name, type]
|
|
145
|
+
def fields
|
|
146
|
+
fields = []
|
|
147
|
+
resource_fields.each do |field|
|
|
148
|
+
name, type, to = field.split(":")
|
|
149
|
+
if ["belongs_to", "has_many", "in"].include? type
|
|
150
|
+
type = Relation.new(type, to)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
fields << [name, type]
|
|
154
|
+
end
|
|
155
|
+
fields
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def fields_hash
|
|
159
|
+
Hash[fields]
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def grid_fields
|
|
163
|
+
fields
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Returns fields which is needed to be in bulk edit
|
|
167
|
+
def bulk_edit_fields
|
|
168
|
+
unless options[:bulk_fields].empty?
|
|
169
|
+
bfields = options[:bulk_fields].split(",")
|
|
170
|
+
fields = fields_hash
|
|
171
|
+
bfields.each do |f|
|
|
172
|
+
unless fields.include? f
|
|
173
|
+
raise ::Exception.new "'#{f}' is not in scaffold fields."
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
return bfields
|
|
177
|
+
else
|
|
178
|
+
return fields.keys
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# Return an string to use as a function parameters each
|
|
183
|
+
# field appears as symbol
|
|
184
|
+
def fields_as_params(relations: false)
|
|
185
|
+
result = ""
|
|
186
|
+
field_num = 0
|
|
187
|
+
fields.each do |name, type|
|
|
188
|
+
if relations
|
|
189
|
+
if ["belongs_to"].include? type
|
|
190
|
+
result += " :#{name}_id"
|
|
191
|
+
else
|
|
192
|
+
result += " :#{name}"
|
|
193
|
+
end
|
|
194
|
+
field_num += 1
|
|
195
|
+
if field_num < fields.length
|
|
196
|
+
result += ","
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
else
|
|
200
|
+
unless ["belongs_to", "has_many"].include? type
|
|
201
|
+
result += " :#{name}"
|
|
202
|
+
field_num += 1
|
|
203
|
+
if field_num < fields.length
|
|
204
|
+
result += ","
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
if result
|
|
212
|
+
result = ",#{result}"
|
|
213
|
+
if result[-1] == ","
|
|
214
|
+
result = result[0..-2]
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
result
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
def random_json_data
|
|
222
|
+
data = {}
|
|
223
|
+
fields.each do |field, type|
|
|
224
|
+
case type
|
|
225
|
+
when "belongs_to"
|
|
226
|
+
data["#{field}_id"] = 1
|
|
227
|
+
when "integer"
|
|
228
|
+
data[field] = 1+ rand(1000)
|
|
229
|
+
else
|
|
230
|
+
data[field] = random_string
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
data.to_json.to_s
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
def random_string
|
|
237
|
+
o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
|
|
238
|
+
(0...50).map{ o[rand(o.length)] }.join
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
def required_fields
|
|
242
|
+
if not options[:required].empty?
|
|
243
|
+
return options[:required].split(",")
|
|
244
|
+
end
|
|
245
|
+
[]
|
|
246
|
+
end
|
|
247
|
+
class Relation < String
|
|
248
|
+
attr_accessor :to
|
|
249
|
+
|
|
250
|
+
def initialize(value, to_)
|
|
251
|
+
super(value)
|
|
252
|
+
self.to = to_
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
def resource_name
|
|
256
|
+
to.split("/").last
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
def restangular
|
|
260
|
+
result = "API"
|
|
261
|
+
to.split("/").each do |resource|
|
|
262
|
+
result = "#{result}.all(\"#{resource}\")"
|
|
263
|
+
end
|
|
264
|
+
result
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
def get_list
|
|
268
|
+
"#{restangular}.getList()"
|
|
269
|
+
end
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|