faalis 1.0.0.alpha0 → 1.0.0.alpha1
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/README.md +44 -22
- data/Rakefile +1 -0
- data/app/assets/javascripts/faalis/angular-manifest.js +1 -0
- data/app/assets/javascripts/faalis/dashboard/app.js +4 -3
- data/app/assets/javascripts/faalis/dashboard/application.js.erb +0 -1
- data/app/assets/javascripts/faalis/dashboard/functions.js.erb +5 -7
- data/app/assets/javascripts/faalis/dashboard/init.js +1 -2
- data/app/assets/javascripts/faalis/dashboard/modules/fields/datetime.js +5 -3
- data/app/assets/javascripts/faalis/dashboard/modules/fields/image.js +46 -105
- data/app/assets/javascripts/faalis/dashboard/modules/services/upload_service.js +17 -0
- data/app/assets/javascripts/faalis/dashboard/variables.js.erb +1 -1
- data/app/assets/javascripts/faalis/{locale → locales}/en.json +0 -0
- data/app/assets/javascripts/faalis/{locale → locales}/fa.json +0 -0
- data/app/assets/javascripts/faalis/locales/translations.fa.js +4 -0
- data/app/assets/locale/templates.fa.pot +275 -0
- data/app/assets/locale/templates.pot +0 -8
- data/app/controllers/faalis/#api_controller.rb# +51 -0
- data/app/controllers/faalis/#dashboard_controller.rb# +65 -0
- data/app/controllers/faalis/application_controller.rb +9 -10
- data/app/controllers/faalis/dashboard_controller.rb +2 -2
- data/app/models/faalis/user.rb +11 -11
- data/app/models/faalis/user/auth_definitions.rb +2 -14
- data/app/models/faalis/user/mongoid_fields.rb +0 -1
- data/app/views/angularjs_templates/fields/datetime/datetime.html +7 -1
- data/app/views/angularjs_templates/fields/image/image.html +1 -1
- data/app/views/angularjs_templates/index.html +1 -6
- data/app/views/angularjs_templates/modules.html +1 -1
- data/app/views/devise/registrations/new.html.erb +5 -1
- data/app/views/devise/sessions/new.html.erb +17 -16
- data/app/views/devise/shared/_links.erb +8 -6
- data/app/views/layouts/faalis/application.html.erb +0 -4
- data/app/views/layouts/faalis/dashboard.html.erb +2 -2
- data/app/views/layouts/faalis/simple.html.erb +18 -20
- data/config/locales/fa/LC_MESSAGES/faalis.mo +0 -0
- data/config/locales/fa/faalis.edit.mo +0 -0
- data/config/locales/fa/faalis.edit.po +104 -0
- data/config/locales/fa/faalis.mo +0 -0
- data/config/locales/fa/faalis.po +29 -108
- data/{app/controllers/faalis/#1.sh# → config/locales/fa/faalis.po.time_stamp} +0 -0
- data/config/locales/faalis.pot +10 -88
- data/config/routes.rb +16 -3
- data/lib/faalis.rb +1 -0
- data/lib/faalis/discovery/permissions.rb +10 -3
- data/lib/faalis/engine.rb +21 -0
- data/lib/faalis/generators/concerns.rb +2 -0
- data/lib/faalis/generators/concerns/allow_query_on.rb +8 -12
- data/lib/faalis/generators/concerns/angular.rb +4 -5
- data/lib/faalis/generators/concerns/child.rb +31 -0
- data/lib/faalis/generators/concerns/fieldset.rb +2 -2
- data/lib/faalis/generators/concerns/globalize.rb +14 -0
- data/lib/faalis/generators/concerns/hstore.rb +19 -0
- data/lib/faalis/generators/concerns/model.rb +3 -3
- data/lib/faalis/generators/concerns/parent.rb +4 -6
- data/lib/faalis/generators/concerns/required.rb +2 -1
- data/lib/faalis/generators/concerns/resource_name.rb +1 -0
- data/lib/faalis/generators/concerns/tabs.rb +4 -7
- data/lib/faalis/generators/concerns/where.rb +1 -3
- data/lib/faalis/generators/dashboard_scaffold.rb +2 -0
- data/lib/faalis/generators/fields/#relation.rb# +61 -0
- data/lib/faalis/i18n.rb +6 -1
- data/lib/faalis/middlewares.rb +1 -0
- data/lib/faalis/middlewares/locale.rb +29 -0
- data/lib/faalis/route.rb +12 -19
- data/lib/faalis/version.rb +1 -1
- data/lib/generators/faalis/install_all_generator.rb +5 -3
- data/lib/generators/faalis/install_generator.rb +4 -0
- data/lib/generators/faalis/js/install_i18n_generator.rb +1 -1
- data/lib/generators/faalis/scaffold_generator.rb +72 -25
- data/lib/generators/faalis/templates/i18n/Gruntfile.js.erb +2 -2
- data/lib/generators/faalis/templates/i18n/fa.js +2 -2
- data/lib/generators/faalis/templates/js/list_view/details.html.erb +26 -3
- data/lib/generators/faalis/templates/views/create.json.jbuilder.erb +2 -1
- data/lib/generators/faalis/templates/views/index.json.jbuilder.erb +4 -2
- data/lib/generators/faalis/templates/views/show.json.jbuilder.erb +2 -1
- data/lib/generators/faalis/templates/views/update.json.jbuilder.erb +2 -1
- data/lib/tasks/faalis_tasks.rake +25 -27
- data/lib/tasks/grunt/Gruntfile.js +2 -2
- data/lib/tasks/sync.rake +3 -4
- metadata +43 -90
- data/app/assets/javascripts/faalis/dashboard/modules/list-view.js +0 -341
- data/app/assets/javascripts/faalis/dashboard/modules/modules.js +0 -75
- data/app/assets/javascripts/faalis/dashboard/modules/nav.js.erb +0 -78
- data/app/assets/stylesheets/faalis/base.css.scss +0 -334
- data/app/assets/stylesheets/faalis/dashboard/dashboard.css.scss +0 -246
- data/app/assets/stylesheets/faalis/dashboard/list_view.css.scss +0 -169
- data/app/assets/stylesheets/faalis/dashboard/ltr/application.css +0 -29
- data/app/assets/stylesheets/faalis/dashboard/ltr/base.css.scss.erb +0 -33
- data/app/assets/stylesheets/faalis/dashboard/ltr/buttons.css.scss.erb +0 -55
- data/app/assets/stylesheets/faalis/dashboard/ltr/direction.css.scss +0 -38
- data/app/assets/stylesheets/faalis/dashboard/ltr/foundation_and_overrides.css.scss +0 -1261
- data/app/assets/stylesheets/faalis/dashboard/ltr/time.css.scss +0 -58
- data/app/assets/stylesheets/faalis/dashboard/rtl/application.css +0 -27
- data/app/assets/stylesheets/faalis/dashboard/rtl/base.css.scss.erb +0 -35
- data/app/assets/stylesheets/faalis/dashboard/rtl/buttons.css.scss.erb +0 -45
- data/app/assets/stylesheets/faalis/dashboard/rtl/direction.css.scss +0 -37
- data/app/assets/stylesheets/faalis/dashboard/rtl/foundation_and_overrides.css.scss +0 -1264
- data/app/assets/stylesheets/faalis/dashboard/share/time.css.scss +0 -57
- data/app/assets/stylesheets/faalis/dashboard/sidebar.css.scss +0 -93
- data/app/assets/stylesheets/faalis/devise.css.scss +0 -34
- data/app/assets/stylesheets/faalis/groups.css +0 -4
- data/app/assets/stylesheets/faalis/home.css.scss +0 -14
- data/app/assets/stylesheets/faalis/ltr/application.css +0 -20
- data/app/assets/stylesheets/faalis/ltr/buttons.css.scss.erb +0 -45
- data/app/assets/stylesheets/faalis/ltr/foundation_and_overrides.scss +0 -1258
- data/app/assets/stylesheets/faalis/mixins.css.scss +0 -15
- data/app/assets/stylesheets/faalis/rtl/application.css +0 -20
- data/app/assets/stylesheets/faalis/rtl/buttons.css.scss.erb +0 -50
- data/app/assets/stylesheets/faalis/rtl/foundation_and_overrides.css.scss +0 -1264
- data/app/assets/stylesheets/faalis/users.css +0 -4
- data/app/assets/stylesheets/faalis/variables.css.scss +0 -102
- data/app/controllers/faalis/api/v1/workflows_controller.rb +0 -18
- data/app/views/angularjs_templates/list-view/index.html +0 -82
- data/app/views/faalis/api/v1/workflows/index.json.jbuilder +0 -5
- data/app/workflows/faalis/administration_workflow.rb +0 -7
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/test.log +0 -15
- data/spec/dummy/tmp/ember-rails/ember-data.js +0 -10204
- data/spec/dummy/tmp/ember-rails/ember.js +0 -36991
- data/spec/factories/faalis_workflows.rb +0 -7
- data/spec/models/faalis/workflow_spec.rb +0 -7
data/lib/faalis/i18n.rb
CHANGED
|
@@ -21,7 +21,6 @@ module Faalis
|
|
|
21
21
|
|
|
22
22
|
# I18n related utility functions
|
|
23
23
|
class I18n
|
|
24
|
-
|
|
25
24
|
RTL = [:fa, :ar]
|
|
26
25
|
|
|
27
26
|
def self.direction(locale)
|
|
@@ -31,5 +30,11 @@ module Faalis
|
|
|
31
30
|
'ltr'
|
|
32
31
|
end
|
|
33
32
|
end
|
|
33
|
+
|
|
34
|
+
module Locale
|
|
35
|
+
def self.default_url_options
|
|
36
|
+
{ :locale => I18n.locale }
|
|
37
|
+
end
|
|
38
|
+
end
|
|
34
39
|
end
|
|
35
40
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'faalis/middlewares/locale'
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Faalis
|
|
2
|
+
module Middlewares
|
|
3
|
+
|
|
4
|
+
# Locale middleware for `Faalis`. This middleware try to set
|
|
5
|
+
# the locale from url.
|
|
6
|
+
class Locale
|
|
7
|
+
def initialize(app)
|
|
8
|
+
@app = app
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def call(env)
|
|
12
|
+
req = Rack::Request.new(env)
|
|
13
|
+
|
|
14
|
+
# Check whether locale is presence or not.
|
|
15
|
+
if locale = req.path_info.match(/^([a-z]{2})\/.*/)
|
|
16
|
+
# If its set the default locale to it.
|
|
17
|
+
locale = locale[1]
|
|
18
|
+
else
|
|
19
|
+
# Use pre-defined default if it isn't
|
|
20
|
+
locale = ::I18n.default_locale
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
req.params['locale'] ||= locale
|
|
24
|
+
::I18n.locale = locale
|
|
25
|
+
@app.call env
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
data/lib/faalis/route.rb
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
|
+
|
|
1
2
|
module Faalis
|
|
2
3
|
class Routes
|
|
3
|
-
|
|
4
|
+
# This class method will add `Faalis` routes to host application
|
|
5
|
+
# Router
|
|
6
|
+
def self.define_api_routes(routes = Rails.application.routes)
|
|
4
7
|
|
|
5
8
|
routes.draw do
|
|
6
9
|
scope 'module'.to_sym => 'faalis' do
|
|
7
|
-
|
|
10
|
+
# TODO: Add a dynamic solution for formats
|
|
11
|
+
namespace :api, defaults: {format: :json} do
|
|
8
12
|
namespace :v1 do
|
|
9
|
-
get 'permissions', :
|
|
10
|
-
get 'permissions/user', :
|
|
11
|
-
resources :groups, :
|
|
12
|
-
resources :users, :
|
|
13
|
-
resource :profile, :
|
|
13
|
+
get 'permissions', to: 'permissions#index'
|
|
14
|
+
get 'permissions/user', to: 'permissions#user_permissions'
|
|
15
|
+
resources :groups, except: [:new]
|
|
16
|
+
resources :users, except: [:new]
|
|
17
|
+
resource :profile, except: [:new, :destroy]
|
|
14
18
|
|
|
15
19
|
get 'logs' => 'logs#index'
|
|
16
|
-
get 'workflows' => 'workflows#index'
|
|
17
|
-
|
|
18
|
-
resources :conversations, only: [:index, :show, :create, :destroy] do
|
|
19
|
-
collection do
|
|
20
|
-
get ':box/box' => 'conversations#index'
|
|
21
|
-
post 'trash' => 'conversations#trash'
|
|
22
|
-
post 'untrash' => 'conversations#untrash'
|
|
23
|
-
end
|
|
24
|
-
member do
|
|
25
|
-
post :reply
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
20
|
end
|
|
29
21
|
end
|
|
30
22
|
end
|
|
31
23
|
end
|
|
24
|
+
|
|
32
25
|
end
|
|
33
26
|
end
|
|
34
27
|
end
|
data/lib/faalis/version.rb
CHANGED
|
@@ -22,15 +22,17 @@ module Faalis
|
|
|
22
22
|
class InstallAllGenerator < Rails::Generators::Base
|
|
23
23
|
source_root File.expand_path('../templates', __FILE__)
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
class_option :mongoid, type: :boolean, default: false, desc: 'Use mongoid with faalis'
|
|
26
|
+
|
|
27
|
+
desc 'Copy all the necessary files to use Faalis (migrations included)'
|
|
26
28
|
hook_for :install_generator
|
|
27
29
|
|
|
28
30
|
def copy_migrations
|
|
29
|
-
rake(
|
|
31
|
+
rake('faalis:install:migrations') unless options[:mongoid]
|
|
30
32
|
end
|
|
31
33
|
|
|
32
34
|
def copy_install
|
|
33
|
-
invoke
|
|
35
|
+
invoke 'faalis:install'
|
|
34
36
|
end
|
|
35
37
|
|
|
36
38
|
end
|
|
@@ -61,6 +61,10 @@ module Faalis
|
|
|
61
61
|
route 'Faalis::Routes.define_api_routes'
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
+
def patch_application_controller
|
|
65
|
+
inject_into_class "app/controllers/application_controller.rb", ApplicationController, " extend Faalis::I18n::Locale\n"
|
|
66
|
+
end
|
|
67
|
+
|
|
64
68
|
def show_readme
|
|
65
69
|
readme 'README' if behavior == :invoke
|
|
66
70
|
end
|
|
@@ -28,7 +28,7 @@ module Faalis
|
|
|
28
28
|
|
|
29
29
|
def copy_init_files
|
|
30
30
|
template 'i18n/Gruntfile.js.erb', 'lib/tasks/grunt/Gruntfile.js'
|
|
31
|
-
copy_file 'i18n/fa.js', 'app/assets/javascripts/
|
|
31
|
+
copy_file 'i18n/fa.js', 'app/assets/javascripts/locales/fa.js'
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def show_readme
|
|
@@ -23,24 +23,28 @@ module Faalis
|
|
|
23
23
|
class ScaffoldGenerator < Rails::Generators::Base
|
|
24
24
|
include Faalis::Generators::Concerns::RequireFields
|
|
25
25
|
include Faalis::Generators::Concerns::Parent
|
|
26
|
+
include Faalis::Generators::Concerns::Child
|
|
26
27
|
include Faalis::Generators::Concerns::JsonInput
|
|
27
28
|
include Faalis::Generators::Concerns::ResourceName
|
|
28
29
|
include Faalis::Generators::Concerns::ResourceFields
|
|
30
|
+
include Faalis::Generators::Concerns::Globalize
|
|
31
|
+
|
|
29
32
|
|
|
30
33
|
desc 'Create full faalis full scaffold'
|
|
31
|
-
# FIXME: These options should have :
|
|
34
|
+
# FIXME: These options should have :desc or even default
|
|
32
35
|
# value
|
|
33
|
-
class_option :no_model
|
|
34
|
-
class_option :no_route
|
|
35
|
-
class_option :no_controller
|
|
36
|
-
class_option :no_migration
|
|
37
|
-
class_option :no_asset
|
|
36
|
+
class_option :no_model, :type => :boolean
|
|
37
|
+
class_option :no_route, :type => :boolean
|
|
38
|
+
class_option :no_controller, :type => :boolean
|
|
39
|
+
class_option :no_migration, :type => :boolean
|
|
40
|
+
class_option :no_asset, :type => :boolean
|
|
38
41
|
|
|
39
|
-
#
|
|
42
|
+
# This method will create full scaffold based on user options
|
|
40
43
|
def create_scaffold
|
|
41
44
|
if options.empty?
|
|
42
45
|
# TODO: ....
|
|
43
46
|
end
|
|
47
|
+
# TODO: Show error if in class_option migration is selected by model not
|
|
44
48
|
create_model unless options[:no_model]
|
|
45
49
|
create_route unless options[:no_route]
|
|
46
50
|
create_controller unless options[:no_controller]
|
|
@@ -53,7 +57,6 @@ module Faalis
|
|
|
53
57
|
# It does not have any relation to Faalis
|
|
54
58
|
# TODO: Check for better way
|
|
55
59
|
def create_controller
|
|
56
|
-
#invoke "scaffold_controller", resource_data["name"]
|
|
57
60
|
if options[:no_asset]
|
|
58
61
|
`rails g scaffold_controller #{resource_data["name"]} --skip`
|
|
59
62
|
else
|
|
@@ -72,61 +75,88 @@ module Faalis
|
|
|
72
75
|
result = []
|
|
73
76
|
all_fields = []
|
|
74
77
|
relations = "\n"
|
|
75
|
-
fields.each do |name, type, to|
|
|
76
78
|
|
|
79
|
+
fields.each do |name, type, to|
|
|
77
80
|
case type
|
|
78
81
|
when 'belongs_to'
|
|
79
82
|
type_ = 'integer'
|
|
80
83
|
if to.singularize != name
|
|
81
|
-
relations << "belongs_to :#{name.singularize},
|
|
84
|
+
relations << " belongs_to :#{name.singularize},
|
|
82
85
|
:class_name => \"#{to.singularize.capitalize}\"\n"
|
|
83
86
|
else
|
|
84
|
-
relations << "belongs_to :#{to.singularize}\n"
|
|
87
|
+
relations << " belongs_to :#{to.singularize}\n"
|
|
85
88
|
end
|
|
86
89
|
name_ = "#{name.singularize}_id"
|
|
87
90
|
result << [name_, type_]
|
|
88
91
|
|
|
89
|
-
when 'text', 'integer', 'string', 'boolean', 'datetime'
|
|
92
|
+
when 'text', 'integer', 'string', 'boolean', 'datetime', 'date', 'float'
|
|
90
93
|
result << [name, type]
|
|
91
94
|
|
|
92
95
|
when 'image'
|
|
93
96
|
generate "paperclicp #{resource_data['name']} #{name}"
|
|
94
|
-
relations << "has_attached_file :#{name}\n"
|
|
95
|
-
relations << "validates_attachment_content_type
|
|
97
|
+
relations << " has_attached_file :#{name}\n"
|
|
98
|
+
relations << " validates_attachment_content_type :#{name},
|
|
99
|
+
content_type: %w(image/jpeg image/jpg image/png),
|
|
100
|
+
less_than: 1.megabytes]\n"
|
|
101
|
+
# TODO: Run this generator just once for all images
|
|
102
|
+
`rails generate paperclip #{resource_data['name']} #{name}`
|
|
96
103
|
when 'tag'
|
|
97
104
|
rake "rake acts_as_taggable_on_engine:install:migrations"
|
|
98
|
-
relations << "acts_as_taggable_on :#{name}\n"
|
|
105
|
+
relations << " acts_as_taggable_on :#{name}\n"
|
|
99
106
|
result << [name, 'string']
|
|
100
107
|
|
|
101
108
|
when 'in'
|
|
102
109
|
result << [name, 'string']
|
|
103
110
|
|
|
104
111
|
when 'has_many'
|
|
105
|
-
relations << "has_and_belongs_to_many :#{to}\n"
|
|
106
|
-
say_status 'warn', "There is a many to many relation between #{resource_data['name']}
|
|
112
|
+
relations << " has_and_belongs_to_many :#{to}\n"
|
|
113
|
+
say_status 'warn', "There is a many to many relation between #{resource_data['name']} and #{to},
|
|
114
|
+
You should create it manually in model files"
|
|
107
115
|
|
|
108
116
|
end
|
|
117
|
+
end
|
|
109
118
|
|
|
110
|
-
|
|
111
|
-
|
|
119
|
+
if parent?
|
|
120
|
+
parents.each do |parent|
|
|
121
|
+
result << ["#{parent.singularize}_id", "integer"]
|
|
122
|
+
relations << " belongs_to :#{parent.singularize}\n"
|
|
112
123
|
end
|
|
124
|
+
end
|
|
113
125
|
|
|
126
|
+
|
|
127
|
+
childs.each do |child|
|
|
128
|
+
relations << " has_many :#{child.pluralize}\n"
|
|
114
129
|
end
|
|
115
130
|
|
|
116
|
-
|
|
117
|
-
|
|
131
|
+
all_fields = result.collect do |x|
|
|
132
|
+
x.join(':')
|
|
118
133
|
end
|
|
119
134
|
|
|
120
|
-
|
|
135
|
+
# Load all globalize field and create a string to adding in model
|
|
136
|
+
globalizes = "\n translates "+
|
|
137
|
+
globalize_fields.map { |field | ":#{field['name'].underscore}" }.join(", ")
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
invoke('active_record:model', [resource_data['name'].underscore, *all_fields], {
|
|
121
142
|
migration: !options[:no_migration], timestamps: true
|
|
122
143
|
})
|
|
144
|
+
if globalize_fields.any?
|
|
145
|
+
create_globalize_migration
|
|
146
|
+
end
|
|
147
|
+
|
|
123
148
|
if File.exist?("app/models/#{resource_data["name"]}.rb")
|
|
124
|
-
|
|
125
|
-
|
|
149
|
+
|
|
150
|
+
inject_into_file "app/models/#{resource_data["name"].underscore}.rb", after: 'Base' do
|
|
151
|
+
|
|
152
|
+
globalize_fields.empty? ? relations : relations + globalizes
|
|
126
153
|
end
|
|
127
154
|
else
|
|
128
|
-
puts "Could not find file app/models/#{resource_data["name"]}"
|
|
155
|
+
puts "Could not find file app/models/#{resource_data["name"].underscore}"
|
|
129
156
|
end
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
130
160
|
end
|
|
131
161
|
|
|
132
162
|
#Invoke Faalis list view generator
|
|
@@ -134,6 +164,23 @@ module Faalis
|
|
|
134
164
|
invoke 'faalis:js:list_view', [jsonfile]
|
|
135
165
|
|
|
136
166
|
end
|
|
167
|
+
|
|
168
|
+
def create_globalize_migration
|
|
169
|
+
`rails g migration add_globalize_to_#{resource_data["name"].underscore} `
|
|
170
|
+
Dir["#{Rails.root}/db/migrate/**/*globalize*.rb"].each {|file| require file }
|
|
171
|
+
klass = "add_globalize_to_#{resource_data['name']}".underscore.camelize
|
|
172
|
+
|
|
173
|
+
migration_class = "::#{klass}".constantize
|
|
174
|
+
migration_path = migration_class.instance_method(:change).source_location
|
|
175
|
+
|
|
176
|
+
fields = globalize_fields.map { |field | ":#{field['name']} => :#{field['type']}" }.join(", ")
|
|
177
|
+
|
|
178
|
+
inject_into_file migration_path[0], after: 'change' do
|
|
179
|
+
"\n #{resource_data['name'].camelize}"+
|
|
180
|
+
'.create_translation_table! '+
|
|
181
|
+
fields
|
|
182
|
+
end
|
|
183
|
+
end
|
|
137
184
|
end
|
|
138
185
|
end
|
|
139
186
|
end
|
|
@@ -3,7 +3,7 @@ module.exports = function (grunt) {
|
|
|
3
3
|
nggettext_extract: {
|
|
4
4
|
pot: {
|
|
5
5
|
files: {
|
|
6
|
-
'app/assets/
|
|
6
|
+
'app/assets/locales/templates.pot': ['app/views/angularjs_templates/**/*.html',
|
|
7
7
|
'app/views/angularjs_templates/**/*.html.erb',
|
|
8
8
|
'app/assets/javascripts/**/*.js',
|
|
9
9
|
'app/assets/javascripts/**/*.js',
|
|
@@ -18,7 +18,7 @@ module.exports = function (grunt) {
|
|
|
18
18
|
module: "Dashboard"
|
|
19
19
|
},
|
|
20
20
|
files: {
|
|
21
|
-
'app/assets/javascripts/
|
|
21
|
+
'app/assets/javascripts/locales/translations.fa.js': ['app/assets/locales/*.fa.pot']
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// require translations for your specific languages.
|
|
2
|
-
//= require faalis/
|
|
3
|
-
//= require
|
|
2
|
+
//= require faalis/locales/translations.fa
|
|
3
|
+
//= require locales/translations.fa
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
<div class="details">
|
|
2
|
-
|
|
2
|
+
<% if child? %>
|
|
3
|
+
<div class="row">
|
|
4
|
+
<div class="small-8 column">
|
|
5
|
+
<% end %>
|
|
6
|
+
<% fields.each do |f, field_type| %>
|
|
3
7
|
<p>
|
|
4
|
-
|
|
8
|
+
<% case field_type
|
|
5
9
|
when "belongs_to" %> <b translate><%= f.capitalize %> :</b> {{object.<%= f %>.name}}
|
|
6
|
-
|
|
10
|
+
<% when "has_many" %><p>
|
|
7
11
|
<b translate><%= f.capitalize %> :</b>
|
|
8
12
|
<ul>
|
|
9
13
|
<li ng-repeat="item in object.<%= f %>"> {{ item.name }}</li>
|
|
@@ -12,6 +16,25 @@
|
|
|
12
16
|
<% else %><b translate><%= f.capitalize %> :</b> {{object.<%= f %>}}
|
|
13
17
|
<% end %></p>
|
|
14
18
|
<% end %>
|
|
19
|
+
|
|
20
|
+
<% if child? %>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div class="small-4 column">
|
|
24
|
+
<ul>
|
|
25
|
+
<% childs.each do |child| %>
|
|
26
|
+
|
|
27
|
+
<li>
|
|
28
|
+
<a ng-href="#/<%= resource_data['name'].pluralize %>/{{ object.id }}/<%= child.pluralize %>" class="small">
|
|
29
|
+
<span translated><%= child.split('_').tap{|a| a[0].upcase }.join(' ') %></span>
|
|
30
|
+
</a>
|
|
31
|
+
</li>
|
|
32
|
+
<% end %>
|
|
33
|
+
</ul>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<% end %>
|
|
15
38
|
<ul class="button-group float-right">
|
|
16
39
|
<a ng-href="#<% parents.each do |p| %>/<%= p %>/{{ this.$parent.$parent.$parent.$parent.<%= p %>_id }}<% end %>/<%= resource_url %>/{{ object.id }}/edit" class="small">
|
|
17
40
|
<span class="fa fa-edit"></span> <span translated>Edit</span>
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
json.
|
|
1
|
+
json.id @<%= resource.underscore %>.id.to_s
|
|
2
|
+
json.extract! @<%= resource.underscore %><%= fields_as_params %>
|
|
2
3
|
<% fields.each do |name, type| %><% if type == "has_many" %>json.<%= name %> @<%= resource.underscore %>.<%= name %>, :id, :name<% end %><% end %>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
json.array! @<%= resource.pluralize.underscore %> do |<%= resource.underscore %>|
|
|
2
|
-
json.
|
|
2
|
+
json.id <%= resource.underscore %>.id.to_s
|
|
3
|
+
json.extract! <%= resource.underscore %><%= fields_as_params %><% fields.each do |name, type| %><% case type
|
|
3
4
|
when "belongs_to" %>
|
|
4
5
|
json.<%= name %> do
|
|
5
6
|
if <%= resource.underscore %>.<%= name %>
|
|
@@ -7,5 +8,6 @@ json.array! @<%= resource.pluralize.underscore %> do |<%= resource.underscore %>
|
|
|
7
8
|
json.name <%= resource.underscore %>.<%= name %>.name
|
|
8
9
|
end
|
|
9
10
|
end
|
|
10
|
-
<% when "has_many" %>
|
|
11
|
+
<% when "has_many" %>
|
|
12
|
+
json.<%= name %> <%= resource.underscore %>.<%= name %>, :id, :name<% end %><% end %>
|
|
11
13
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
json.
|
|
1
|
+
json.id @<%= resource.underscore %>.id.to_s
|
|
2
|
+
json.extract! @<%= resource.underscore %><%= fields_as_params %><% fields.each do |name, type| %>
|
|
2
3
|
<% case type
|
|
3
4
|
when "belongs_to" %>
|
|
4
5
|
json.partial! 'faalis/relations/belongs_to', object: @<%= resource.underscore %>.<%= name %>, :name => :<%= name %>, :fields => [:id, :name]
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
json.
|
|
1
|
+
json.id @<%= resource.underscore %>.id.to_s
|
|
2
|
+
json.extract! @<%= resource.underscore %><%= fields_as_params %>
|
|
2
3
|
<% fields.each do |name, type| %><% if type == "has_many" %>json.<%= name %> @<%= resource.underscore %>.<%= name %>, :id, :name
|
|
3
4
|
<% end %><% if type == "belongs_to" %>
|
|
4
5
|
json.partial! 'faalis/relations/belongs_to', object: @<%= resource.underscore %>.<%= name %>, :name => :<%= name %>, :fields => [:id, :name]
|
data/lib/tasks/faalis_tasks.rake
CHANGED
|
@@ -1,40 +1,38 @@
|
|
|
1
|
-
namespace :
|
|
1
|
+
namespace :js do
|
|
2
|
+
namespace :i18n do
|
|
3
|
+
|
|
4
|
+
desc "Collect all the strings which marked for translation from javascript files"
|
|
5
|
+
task :collect do
|
|
6
|
+
base = "--base #{Rails.root}/"
|
|
7
|
+
puts "grunt --gruntfile #{Rails.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_extract -d -v"
|
|
8
|
+
puts `grunt --gruntfile #{Rails.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_extract -d -v`
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
desc "Compile all the strings which marked for translation in javascript files"
|
|
12
|
+
task :compile do
|
|
13
|
+
base = "--base #{Rails.root}/"
|
|
14
|
+
puts `grunt --gruntfile #{Rails.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_compile -d -v`
|
|
15
|
+
end
|
|
16
|
+
end
|
|
2
17
|
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
namespace :faalis do
|
|
3
22
|
namespace :js do
|
|
4
23
|
namespace :i18n do
|
|
5
|
-
|
|
6
24
|
desc "Collect all the strings which marked for translation from javascript files"
|
|
7
25
|
task :collect do
|
|
8
|
-
base = "--base #{
|
|
9
|
-
puts "grunt --gruntfile #{
|
|
10
|
-
puts `grunt --gruntfile #{
|
|
26
|
+
base = "--base #{Faalis::Engine.root}/"
|
|
27
|
+
puts "grunt --gruntfile #{Faalis::Engine.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_extract -d -v"
|
|
28
|
+
puts `grunt --gruntfile #{Faalis::Engine.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_extract -d -v`
|
|
11
29
|
end
|
|
12
30
|
|
|
13
31
|
desc "Compile all the strings which marked for translation in javascript files"
|
|
14
32
|
task :compile do
|
|
15
|
-
base = "--base #{
|
|
16
|
-
puts `grunt --gruntfile #{
|
|
33
|
+
base = "--base #{Faalis::Engine.root}/"
|
|
34
|
+
puts `grunt --gruntfile #{Faalis::Engine.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_compile -d -v`
|
|
17
35
|
end
|
|
18
36
|
end
|
|
19
|
-
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
namespace :js do
|
|
25
|
-
namespace :i18n do
|
|
26
|
-
desc "Collect all the strings which marked for translation from javascript files"
|
|
27
|
-
task :collect do
|
|
28
|
-
base = "--base #{Faalis::Engine.root}/"
|
|
29
|
-
puts "grunt --gruntfile #{Faalis::Engine.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_extract -d -v"
|
|
30
|
-
puts `grunt --gruntfile #{Faalis::Engine.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_extract -d -v`
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
desc "Compile all the strings which marked for translation in javascript files"
|
|
34
|
-
task :compile do
|
|
35
|
-
base = "--base #{Faalis::Engine.root}/"
|
|
36
|
-
puts `grunt --gruntfile #{Faalis::Engine.root}/lib/tasks/grunt/Gruntfile.js #{base} nggettext_compile -d -v`
|
|
37
|
-
end
|
|
38
|
-
|
|
39
37
|
end
|
|
40
38
|
end
|