knitkit 2.1.15 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/app/controllers/knitkit/base_controller.rb +1 -1
- data/app/controllers/knitkit/comments_controller.rb +7 -2
- data/app/controllers/knitkit/erp_app/desktop/app_controller.rb +78 -98
- data/app/controllers/knitkit/erp_app/desktop/articles_controller.rb +65 -45
- data/app/controllers/knitkit/erp_app/desktop/content_controller.rb +22 -12
- data/app/controllers/knitkit/erp_app/desktop/file_assets_controller.rb +1 -1
- data/app/controllers/knitkit/erp_app/desktop/image_assets_controller.rb +28 -16
- data/app/controllers/knitkit/erp_app/desktop/inquiries_controller.rb +15 -49
- data/app/controllers/knitkit/erp_app/desktop/online_document_sections_controller.rb +4 -3
- data/app/controllers/knitkit/erp_app/desktop/position_controller.rb +69 -11
- data/app/controllers/knitkit/erp_app/desktop/theme_controller.rb +63 -60
- data/app/controllers/knitkit/erp_app/desktop/website_controller.rb +98 -82
- data/app/controllers/knitkit/erp_app/desktop/website_host_controller.rb +77 -0
- data/app/controllers/knitkit/erp_app/desktop/website_nav_controller.rb +64 -44
- data/app/controllers/knitkit/erp_app/desktop/website_nav_item_controller.rb +147 -0
- data/app/controllers/knitkit/erp_app/desktop/website_section_controller.rb +81 -45
- data/app/controllers/knitkit/mobile_controller.rb +15 -0
- data/app/controllers/knitkit/online_document_sections_controller.rb +2 -1
- data/app/controllers/knitkit/unauthorized_controller.rb +0 -1
- data/app/controllers/knitkit/website_sections_controller.rb +7 -4
- data/app/mailers/website_inquiry_mailer.rb +8 -7
- data/app/models/content.rb +11 -2
- data/app/models/document.rb +2 -17
- data/app/models/published_website.rb +96 -59
- data/app/models/theme.rb +100 -14
- data/app/models/website.rb +260 -28
- data/app/models/website_inquiry.rb +5 -12
- data/app/models/website_section.rb +9 -1
- data/app/views/knitkit/blogs/_add_comment.html.erb +44 -23
- data/app/views/knitkit/blogs/_comment.html.erb +4 -6
- data/app/views/knitkit/blogs/index.html.erb +63 -49
- data/app/views/knitkit/blogs/show.html.erb +17 -12
- data/app/views/knitkit/mobile/index.html.erb +162 -0
- data/app/views/knitkit/online_document_sections/index.html.erb +7 -5
- data/app/views/knitkit/unauthorized/index.html.erb +8 -4
- data/app/views/knitkit/website_sections/index.html.erb +8 -4
- data/app/views/layouts/knitkit/base.html.erb +79 -63
- data/app/views/layouts/knitkit/online_document_sections.html.erb +74 -52
- data/app/views/menus/knitkit/_default_menu.html.erb +4 -4
- data/app/views/menus/knitkit/_default_section_menu.html.erb +22 -23
- data/app/views/shared/knitkit/_bread_crumb.html.erb +10 -7
- data/app/views/shared/knitkit/_footer.html.erb +2 -2
- data/app/views/website_inquiry_mailer/inquiry.erb +23 -2
- data/app/widgets/contact_us/base.rb +25 -50
- data/app/widgets/contact_us/javascript/contact_us.js +7 -7
- data/app/widgets/contact_us/views/error.html.erb +6 -8
- data/app/widgets/contact_us/views/index.html.erb +28 -1
- data/app/widgets/contact_us/views/layouts/base.html.erb +9 -6
- data/app/widgets/contact_us/views/success.html.erb +3 -3
- data/app/widgets/google_map/views/index.html.erb +36 -36
- data/app/widgets/login/base.rb +1 -0
- data/app/widgets/login/javascript/login.js +3 -3
- data/app/widgets/login/views/index.html.erb +46 -26
- data/app/widgets/login/views/layouts/base.html.erb +15 -13
- data/app/widgets/login/views/login_header.html.erb +7 -9
- data/app/widgets/manage_profile/base.rb +116 -164
- data/app/widgets/manage_profile/views/_address.html.erb +184 -0
- data/app/widgets/manage_profile/views/_contact_information_form.html.erb +23 -192
- data/app/widgets/manage_profile/views/_email_address.html.erb +163 -0
- data/app/widgets/manage_profile/views/_password_form.html.erb +23 -20
- data/app/widgets/manage_profile/views/_phone_number.html.erb +165 -0
- data/app/widgets/manage_profile/views/_user_information_form.html.erb +49 -33
- data/app/widgets/manage_profile/views/error.html.erb +6 -0
- data/app/widgets/manage_profile/views/index.html.erb +44 -46
- data/app/widgets/manage_profile/views/layouts/base.html.erb +3 -1
- data/app/widgets/manage_profile/views/success.html.erb +5 -0
- data/app/widgets/reset_password/views/index.html.erb +33 -28
- data/app/widgets/reset_password/views/layouts/base.html.erb +10 -1
- data/app/widgets/search/base.rb +37 -25
- data/app/widgets/search/views/_inline_search_form.html.erb +12 -0
- data/app/widgets/search/views/_search_form.html.erb +41 -0
- data/app/widgets/search/views/index.html.erb +5 -3
- data/app/widgets/search/views/layouts/base.html.erb +13 -23
- data/app/widgets/search/views/show.html.erb +32 -47
- data/app/widgets/signup/base.rb +1 -1
- data/app/widgets/signup/javascript/signup.js +7 -9
- data/app/widgets/signup/views/_signup_form.html.erb +34 -29
- data/app/widgets/signup/views/error.html.erb +11 -11
- data/app/widgets/signup/views/index.html.erb +3 -2
- data/app/widgets/signup/views/layouts/base.html.erb +8 -5
- data/app/widgets/signup/views/success.html.erb +5 -4
- data/config/routes.rb +39 -28
- data/db/data_migrations/20120809020508_update_website_and_configuration.rb +3 -0
- data/db/migrate/20110211002317_setup_knitkit.rb +0 -1
- data/db/migrate/20131112013052_add_knitkit_missing_indexes.rb +33 -0
- data/db/migrate/20140622212723_update_website_inquiries.rb +22 -0
- data/db/migrate/20140911185022_add_publishing_to_website.rb +5 -0
- data/db/migrate/20141013073349_add_custom_fields_to_documents.rb +12 -0
- data/db/migrate/20141016101936_upgrade_remove_dynamic_attributes.rb +13 -0
- data/lib/knitkit.rb +0 -1
- data/lib/knitkit/engine.rb +1 -0
- data/lib/knitkit/extensions.rb +4 -0
- data/lib/knitkit/extensions/active_record/acts_as_commentable.rb +33 -0
- data/lib/knitkit/extensions/active_record/acts_as_document.rb +0 -12
- data/lib/knitkit/extensions/active_record/acts_as_publishable.rb +7 -10
- data/lib/knitkit/extensions/compass_ae/widgets/base.rb +2 -4
- data/lib/knitkit/extensions/compass_ae/widgets/widget_proxy_controller.rb +4 -1
- data/lib/knitkit/extensions/railties/action_view/helpers/blog_helper.rb +16 -13
- data/lib/knitkit/extensions/railties/action_view/helpers/content_helper.rb +10 -8
- data/lib/knitkit/extensions/railties/theme_support/asset_tag_helper.rb +123 -108
- data/lib/knitkit/extensions/will_paginate/link_renderer.rb +67 -0
- data/lib/knitkit/routing_filter/section_router.rb +10 -8
- data/lib/knitkit/syntax_validator.rb +2 -2
- data/lib/knitkit/version.rb +7 -3
- data/public/images/inline_edit/close.png +0 -0
- data/public/images/knitkit/close_window.png +0 -0
- data/public/images/knitkit/logo.png +0 -0
- data/public/images/knitkit/splash/images/add-site.png +0 -0
- data/public/images/knitkit/splash/images/adjust-site.png +0 -0
- data/public/images/knitkit/splash/images/browse-site.png +0 -0
- data/public/images/knitkit/splash/images/find-themes.png +0 -0
- data/public/images/knitkit/splash/images/settings.png +0 -0
- data/public/images/knitkit/splash/images/tutorials.png +0 -0
- data/public/images/knitkit/splash/splash.png +0 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/articles_grid_panel.js +656 -627
- data/public/javascripts/erp_app/desktop/applications/knitkit/center_region.js +444 -333
- data/public/javascripts/erp_app/desktop/applications/knitkit/{east_region.js → east_region/east_region.js} +33 -33
- data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/file_assets_panel.js +332 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_data_view.js +144 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_panel.js +335 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/{widgets_panel.js → east_region/widgets_panel.js} +55 -55
- data/public/javascripts/erp_app/desktop/applications/knitkit/inquiries_grid_panel.js +150 -37
- data/public/javascripts/erp_app/desktop/applications/knitkit/module.js +228 -96
- data/public/javascripts/erp_app/desktop/applications/knitkit/publish_window.js +89 -85
- data/public/javascripts/erp_app/desktop/applications/knitkit/published_grid_panel.js +238 -217
- data/public/javascripts/erp_app/desktop/applications/knitkit/select_roles_window.js +59 -54
- data/public/javascripts/erp_app/desktop/applications/knitkit/splash_screen.js +170 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/main_menu.js +1168 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/websites_combo.js +71 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/versions_grid_panel.js +301 -306
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/article.js +216 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/document.js +182 -153
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/host.js +48 -65
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/menu.js +93 -94
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/section.js +523 -197
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website_nav_items.js +20 -34
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/hosts_tree_panel.js +74 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/menu_tree_panel.js +245 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/site_contents_tree_panel.js +360 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/themes_tree_panel.js +348 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/west_region.js +106 -1132
- data/public/javascripts/knitkit/bootstrap-datepicker.js +474 -0
- data/public/javascripts/knitkit/bootstrap.min.js +7 -0
- data/public/javascripts/knitkit/confirm-bootstrap.js +110 -0
- data/public/javascripts/knitkit/inline_editing.js +73 -50
- data/public/javascripts/knitkit/jquery.maskedinput.min.js +7 -0
- data/public/javascripts/knitkit/mobile/app/view/Main.js +108 -0
- data/public/javascripts/knitkit/mobile/ux/slidenavigation/View.js +734 -0
- data/public/javascripts/knitkit/theme.js +76 -0
- data/public/stylesheets/erp_app/desktop/applications/knitkit/knitkit.css +95 -35
- data/public/stylesheets/knitkit/bootstrap-responsive.min.css +10 -0
- data/public/stylesheets/knitkit/bootstrap.min.css +7 -0
- data/public/stylesheets/knitkit/custom.css +122 -0
- data/public/stylesheets/knitkit/datepicker.css +182 -0
- data/public/stylesheets/knitkit/inline_editing.css +58 -58
- data/spec/controllers/knitkit/erp_app/desktop/website_section_controller_spec.rb +1 -1
- data/spec/dummy/config/application.rb +1 -1
- data/spec/models/article_spec.rb +3 -3
- data/spec/models/content_spec.rb +9 -9
- data/spec/models/website_spec.rb +1 -1
- metadata +100 -114
- data/app/helpers/application_helper.rb +0 -134
- data/app/views/knitkit/articles/index.html.erb +0 -3
- data/app/views/knitkit/articles/show.html.erb +0 -4
- data/app/views/menus/knitkit/_default_sub_menu.html.erb +0 -43
- data/app/views/menus/knitkit/_default_sub_section_menu.html.erb +0 -47
- data/app/widgets/contact_us/views/_contact_form.html.erb +0 -36
- data/app/widgets/dynamic_forms/base.rb +0 -139
- data/app/widgets/dynamic_forms/javascript/dynamic_forms.js +0 -110
- data/app/widgets/dynamic_forms/views/error.html.erb +0 -5
- data/app/widgets/dynamic_forms/views/index.html.erb +0 -8
- data/app/widgets/dynamic_forms/views/success.html.erb +0 -4
- data/app/widgets/dynamic_grid/base.rb +0 -130
- data/app/widgets/dynamic_grid/helpers/controller/dynamic_grid_controller_helper.rb +0 -3
- data/app/widgets/dynamic_grid/helpers/view/dynamic_grid_view_helper.rb +0 -3
- data/app/widgets/dynamic_grid/javascript/dynamic_grid.js +0 -177
- data/app/widgets/dynamic_grid/views/index.html.erb +0 -14
- data/app/widgets/login/views/reset_password.html.erb +0 -26
- data/app/widgets/manage_profile/views/default_type_error.html.erb +0 -5
- data/app/widgets/scaffold/base.rb +0 -87
- data/app/widgets/scaffold/helpers/controller/scaffold_controller_helper.rb +0 -3
- data/app/widgets/scaffold/helpers/view/scaffold_view_helper.rb +0 -3
- data/app/widgets/scaffold/javascript/scaffold.js +0 -337
- data/app/widgets/scaffold/views/index.html.erb +0 -15
- data/app/widgets/search/views/_search.html.erb +0 -39
- data/public/images/knitkit/bullet.png +0 -0
- data/public/images/knitkit/close.png +0 -0
- data/public/images/knitkit/content.png +0 -0
- data/public/images/knitkit/footer.png +0 -0
- data/public/images/knitkit/graphic.png +0 -0
- data/public/images/knitkit/greyFadeDown.png +0 -0
- data/public/images/knitkit/link.png +0 -0
- data/public/images/knitkit/menu.png +0 -0
- data/public/images/knitkit/menu_select.png +0 -0
- data/public/images/knitkit/search.png +0 -0
- data/public/images/knitkit/tooltip.gif +0 -0
- data/public/javascripts/ajax_pagination.js +0 -33
- data/public/javascripts/datepicker.js +0 -445
- data/public/javascripts/erp_app/desktop/applications/knitkit/file_assets_panel.js +0 -341
- data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_data_view.js +0 -31
- data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_panel.js +0 -263
- data/public/javascripts/erp_app/desktop/applications/knitkit/section_articles_grid_panel.js +0 -722
- data/public/javascripts/erp_app/desktop/applications/knitkit/themes_tree_panel.js +0 -585
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website.js +0 -155
- data/public/javascripts/knitkit/helpers.js +0 -26
- data/public/stylesheets/datepicker.css +0 -121
- data/public/stylesheets/extjs/resources/css/knitkit_extjs_4.css +0 -233
- data/public/stylesheets/knitkit/style.css +0 -426
data/lib/knitkit/engine.rb
CHANGED
@@ -17,6 +17,7 @@ module Knitkit
|
|
17
17
|
include Knitkit::Extensions::ActiveRecord::ActsAsPublishable
|
18
18
|
include Knitkit::Extensions::ActiveRecord::ThemeSupport::HasManyThemes
|
19
19
|
include Knitkit::Extensions::ActiveRecord::ActsAsDocument
|
20
|
+
include Knitkit::Extensions::ActiveRecord::ActsAsCommentable
|
20
21
|
end
|
21
22
|
|
22
23
|
ActiveSupport.on_load(:action_controller) do
|
data/lib/knitkit/extensions.rb
CHANGED
@@ -10,9 +10,13 @@ require 'knitkit/extensions/railties/theme_support/theme_file_resolver'
|
|
10
10
|
require 'knitkit/extensions/active_record/acts_as_publishable'
|
11
11
|
require 'knitkit/extensions/active_record/theme_support/has_many_themes'
|
12
12
|
require 'knitkit/extensions/active_record/acts_as_document'
|
13
|
+
require 'knitkit/extensions/active_record/acts_as_commentable'
|
13
14
|
|
14
15
|
#active_controller extensions
|
15
16
|
require 'knitkit/extensions/action_controller/theme_support/acts_as_themed_controller'
|
16
17
|
|
17
18
|
#action_mailer extensions
|
18
19
|
require 'knitkit/extensions/action_mailer/theme_support/acts_as_themed_mailer'
|
20
|
+
|
21
|
+
#willpaginate
|
22
|
+
require 'knitkit/extensions/will_paginate/link_renderer'
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Knitkit
|
2
|
+
module Extensions
|
3
|
+
module ActiveRecord
|
4
|
+
module ActsAsCommentable
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
|
11
|
+
def acts_as_commentable
|
12
|
+
has_many :comments, :as => :commented_record, :dependent => :destroy
|
13
|
+
|
14
|
+
extend ActsAsCommentable::SingletonMethods
|
15
|
+
include ActsAsCommentable::InstanceMethods
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
module SingletonMethods
|
21
|
+
end
|
22
|
+
|
23
|
+
module InstanceMethods
|
24
|
+
|
25
|
+
def add_comment(options={})
|
26
|
+
self.comments.create(options)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end # ActsAsCommentable
|
31
|
+
end # ActiveRecord
|
32
|
+
end # Extensions
|
33
|
+
end # Knitkit
|
@@ -21,18 +21,6 @@ module Knitkit
|
|
21
21
|
|
22
22
|
#from Document / FileAssets
|
23
23
|
[:add_file, :files].each { |m| delegate m, :to => :document }
|
24
|
-
|
25
|
-
#from relational_dynamic_attributes
|
26
|
-
[
|
27
|
-
:add_dynamic_attribute,
|
28
|
-
:update_or_create_dynamic_attribute,
|
29
|
-
:update_first_dynamic_attribute_value_of_type,
|
30
|
-
:get_dynamic_attributes,
|
31
|
-
:get_dynamic_value_of_type,
|
32
|
-
:get_dynamic_attribute_of_type,
|
33
|
-
:has_dynamic_attribute_of_type?,
|
34
|
-
:destroy_dynamic_attribute_of_type
|
35
|
-
].each { |m| delegate m, :to => :document }
|
36
24
|
end
|
37
25
|
|
38
26
|
end
|
@@ -9,7 +9,7 @@ module Knitkit
|
|
9
9
|
module ClassMethods
|
10
10
|
|
11
11
|
def can_be_published
|
12
|
-
after_destroy :
|
12
|
+
after_destroy :delete_published_elements
|
13
13
|
|
14
14
|
extend ActsAsPublishable::SingletonMethods
|
15
15
|
include ActsAsPublishable::InstanceMethods
|
@@ -25,15 +25,12 @@ module Knitkit
|
|
25
25
|
site.publish_element(comment, self, version, current_user)
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
|
30
|
-
published_elements.each do |published_element|
|
31
|
-
published_element.destroy
|
32
|
-
end
|
28
|
+
def delete_published_elements
|
29
|
+
PublishedElement.delete_all("published_element_record_id = '#{id}' and (published_element_record_type = '#{self.class.to_s}' or published_element_record_type = '#{self.class.superclass.to_s}')")
|
33
30
|
end
|
34
31
|
end
|
35
32
|
|
36
|
-
end#ActsAsPublishable
|
37
|
-
end#ActiveRecord
|
38
|
-
end#Extensions
|
39
|
-
end#Knitkit
|
33
|
+
end #ActsAsPublishable
|
34
|
+
end #ActiveRecord
|
35
|
+
end #Extensions
|
36
|
+
end #Knitkit
|
@@ -5,13 +5,11 @@
|
|
5
5
|
|
6
6
|
website.themes.active.map{ |theme| {:path => theme.path.to_s, :url => theme.url.to_s}}.each do |theme|
|
7
7
|
path = File.join(theme[:path],'widgets',self.widget_name,'views')
|
8
|
-
paths
|
8
|
+
paths.unshift(path) unless paths.include?(path)
|
9
9
|
end if website
|
10
|
-
|
11
|
-
paths.reverse!
|
10
|
+
|
12
11
|
ActionView::Base.new(paths).render(:template => view, :locals => locals)
|
13
12
|
end
|
14
|
-
|
15
13
|
end
|
16
14
|
|
17
15
|
::ErpApp::Widgets::Base.class_eval do
|
@@ -19,10 +19,13 @@ ErpApp::WidgetProxyController.class_eval do
|
|
19
19
|
return if result.nil?
|
20
20
|
|
21
21
|
if result.is_a?(Hash)
|
22
|
-
|
22
|
+
if !result[:send_file] and !result[:send_data] and !result[:redirect_to]
|
23
|
+
render result
|
24
|
+
end
|
23
25
|
else
|
24
26
|
render :inline => result
|
25
27
|
end
|
28
|
+
|
26
29
|
end
|
27
30
|
|
28
31
|
protected
|
@@ -23,35 +23,38 @@ module Knitkit
|
|
23
23
|
|
24
24
|
def blog_rss_links(link_title='RSS Feed')
|
25
25
|
if params[:action] == 'tag'
|
26
|
-
|
26
|
+
link_to link_title, main_app.blog_tag_url(params[:section_id], params[:tag_id], :rss), :target => '_blank'
|
27
27
|
else
|
28
|
-
|
28
|
+
link_to link_title, main_app.blogs_url(params[:section_id], :rss), :target => '_blank'
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def blog_recent_approved_comments
|
33
33
|
if @published_content.content.comments.recent.approved.empty?
|
34
|
-
|
34
|
+
'No Comments'
|
35
35
|
else
|
36
36
|
html = ''
|
37
37
|
|
38
38
|
@published_content.content.comments.recent.approved.each do |comment|
|
39
|
-
html += render :partial => 'comment', :locals => {:comment => comment}
|
39
|
+
html += (render :partial => 'comment', :locals => {:comment => comment})
|
40
40
|
end
|
41
41
|
|
42
|
-
|
42
|
+
raw html
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
def blog_pagination(css_class, params)
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
47
|
+
will_paginate @contents,
|
48
|
+
:renderer => Knitkit::Extensions::WillPaginate::LinkRenderer,
|
49
|
+
:class => css_class,
|
50
|
+
:params => {
|
51
|
+
:section_id => params[:section_id],
|
52
|
+
:per_page => 1,
|
53
|
+
:format => params[:format],
|
54
|
+
:only_path => true,
|
55
|
+
:use_route => params[:use_route],
|
56
|
+
:scope => main_app
|
57
|
+
}
|
55
58
|
end
|
56
59
|
|
57
60
|
end #BlogHelper
|
@@ -6,13 +6,15 @@ module Knitkit
|
|
6
6
|
module ContentHelper
|
7
7
|
|
8
8
|
def setup_inline_editing
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
if can_inline_edit?
|
10
|
+
raw "<script type='text/javascript'>
|
11
|
+
jQuery(document).ready(function() {
|
12
|
+
new OnDemandLoadByAjax().load('/javascripts/erp_app/ckeditor/ckeditor.js', function(){
|
13
|
+
Knitkit.InlineEditing.setup(#{@website.id});
|
14
|
+
});
|
13
15
|
});
|
14
16
|
</script>"
|
15
|
-
|
17
|
+
end
|
16
18
|
end
|
17
19
|
|
18
20
|
def render_editable_content(content_version, additional_css_classes=[])
|
@@ -41,8 +43,8 @@ module Knitkit
|
|
41
43
|
html = ''
|
42
44
|
|
43
45
|
section_contents = WebsiteSectionContent.includes(:content).
|
44
|
-
|
45
|
-
|
46
|
+
where(:website_section_id => @website_section.id, :content_area => name.to_s).
|
47
|
+
order(:position).all
|
46
48
|
published_contents = []
|
47
49
|
section_contents.each do |sc|
|
48
50
|
content_version = Content.get_published_version(@active_publication, sc.content) unless @active_publication.nil?
|
@@ -63,7 +65,7 @@ module Knitkit
|
|
63
65
|
end
|
64
66
|
|
65
67
|
private
|
66
|
-
|
68
|
+
|
67
69
|
def can_inline_edit?
|
68
70
|
result = false
|
69
71
|
unless (current_user.nil? or current_user === false)
|
@@ -9,11 +9,17 @@ require 'action_view/helpers/asset_tag_helper'
|
|
9
9
|
module ActionView
|
10
10
|
module Helpers
|
11
11
|
module AssetTagHelper
|
12
|
+
|
12
13
|
def theme_javascript_path(theme, source)
|
13
14
|
theme = controller.website.themes.find_by_theme_id(theme) unless theme.is_a?(Theme)
|
14
|
-
|
15
|
+
|
16
|
+
name, directory = name_and_path_from_source(source, "#{theme.url}/javascripts")
|
17
|
+
|
18
|
+
file = theme.files.where('name = ? and directory = ?', name, directory).first
|
19
|
+
|
15
20
|
file.nil? ? '' : file.data.url
|
16
21
|
end
|
22
|
+
|
17
23
|
alias_method :theme_path_to_javascript, :theme_javascript_path
|
18
24
|
|
19
25
|
def theme_javascript_include_tag(theme_id, *sources)
|
@@ -21,61 +27,53 @@ module ActionView
|
|
21
27
|
return("could not find theme with the id #{theme_id}") unless theme
|
22
28
|
|
23
29
|
options = sources.extract_options!.stringify_keys
|
24
|
-
cache
|
30
|
+
cache = options.delete("cache")
|
25
31
|
recursive = options.delete("recursive")
|
26
32
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
# paths = theme_compute_javascript_paths(theme, sources, recursive)
|
33
|
-
# theme_write_asset_file_contents(theme, joined_javascript_path, paths) unless File.exists?(joined_javascript_path)
|
34
|
-
# raw theme_javascript_src_tag(theme, joined_javascript_name, options)
|
35
|
-
# else
|
36
|
-
sources = theme_expand_javascript_sources(theme, sources, recursive).collect do |source|
|
37
|
-
theme_javascript_src_tag(theme, source, options)
|
38
|
-
end.join("\n")
|
39
|
-
raw sources
|
33
|
+
sources = theme_expand_javascript_sources(theme, sources, recursive).collect do |source|
|
34
|
+
theme_javascript_src_tag(theme, source, options)
|
35
|
+
end.join("\n")
|
36
|
+
raw sources
|
40
37
|
#end
|
41
38
|
end
|
42
39
|
|
43
40
|
def theme_stylesheet_path(theme, source)
|
44
41
|
theme = controller.website.themes.find_by_theme_id(theme) unless theme.is_a?(Theme)
|
45
|
-
|
42
|
+
|
43
|
+
name, directory = name_and_path_from_source(source, "#{theme.url}/stylesheets")
|
44
|
+
|
45
|
+
file = theme.files.where('name = ? and directory = ?', name, directory).first
|
46
|
+
|
46
47
|
file.nil? ? '' : file.data.url
|
47
48
|
end
|
49
|
+
|
48
50
|
alias_method :theme_path_to_stylesheet, :theme_stylesheet_path
|
49
51
|
|
50
52
|
def theme_stylesheet_link_tag(theme_id, *sources)
|
51
53
|
theme = controller.website.themes.find_by_theme_id(theme_id)
|
52
54
|
return("could not find theme with the id #{theme_id}") unless theme
|
53
|
-
|
55
|
+
|
54
56
|
options = sources.extract_options!.stringify_keys
|
55
|
-
cache
|
57
|
+
cache = options.delete("cache")
|
56
58
|
recursive = options.delete("recursive")
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
# paths = theme_compute_stylesheet_paths(theme, sources, recursive)
|
64
|
-
# theme_write_asset_file_contents(theme, joined_stylesheet_path, paths) unless File.exists?(joined_stylesheet_path)
|
65
|
-
# raw theme_stylesheet_tag(theme, joined_stylesheet_name, options)
|
66
|
-
# else
|
67
|
-
sources = theme_expand_stylesheet_sources(theme, sources, recursive).collect do |source|
|
68
|
-
theme_stylesheet_tag(theme, source, options)
|
69
|
-
end.join("\n")
|
70
|
-
raw sources
|
59
|
+
|
60
|
+
sources = theme_expand_stylesheet_sources(theme, sources, recursive).collect do |source|
|
61
|
+
theme_stylesheet_tag(theme, source, options)
|
62
|
+
end.join("\n")
|
63
|
+
raw sources
|
71
64
|
#end
|
72
65
|
end
|
73
66
|
|
74
67
|
def theme_image_path(theme, source)
|
75
68
|
theme = controller.website.themes.find_by_theme_id(theme) unless theme.is_a?(Theme)
|
76
|
-
|
69
|
+
|
70
|
+
name, directory = name_and_path_from_source(source, "#{theme.url}/images")
|
71
|
+
|
72
|
+
file = theme.files.where('name = ? and directory = ?', name, directory).first
|
73
|
+
|
77
74
|
file.nil? ? '' : file.data.url
|
78
75
|
end
|
76
|
+
|
79
77
|
alias_method :theme_path_to_image, :theme_image_path # aliased to avoid conflicts with an image_path named route
|
80
78
|
|
81
79
|
def theme_image_tag(theme_id, source, options = {})
|
@@ -92,109 +90,126 @@ module ActionView
|
|
92
90
|
|
93
91
|
if mouseover = options.delete(:mouseover)
|
94
92
|
options[:onmouseover] = "this.src='#{theme_image_path(theme, mouseover)}'"
|
95
|
-
options[:onmouseout]
|
93
|
+
options[:onmouseout] = "this.src='#{theme_image_path(theme, options[:src])}'"
|
96
94
|
end
|
97
95
|
|
98
96
|
tag("img", options)
|
99
97
|
end
|
100
98
|
|
101
99
|
private
|
102
|
-
|
103
|
-
|
100
|
+
def theme_compute_public_path(theme, source, dir, ext = nil, include_host = true)
|
101
|
+
has_request = controller.respond_to?(:request)
|
104
102
|
|
105
|
-
|
106
|
-
|
107
|
-
|
103
|
+
if ext && (File.extname(source).blank? || File.exist?(File.join(theme.path, dir, "#{source}.#{ext}")))
|
104
|
+
source += ".#{ext}"
|
105
|
+
end
|
108
106
|
|
109
|
-
|
110
|
-
|
107
|
+
unless source =~ %r{^[-a-z]+://}
|
108
|
+
source = "/#{dir}/#{source}" unless source[0] == ?/
|
111
109
|
|
112
|
-
|
110
|
+
source = theme_rewrite_asset_path(theme, source)
|
113
111
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
end
|
112
|
+
if has_request && include_host
|
113
|
+
unless source =~ %r{^#{ActionController::Base.config.relative_url_root}/}
|
114
|
+
source = "#{ActionController::Base.config.relative_url_root}#{source}"
|
118
115
|
end
|
119
116
|
end
|
120
|
-
|
121
|
-
source
|
122
117
|
end
|
123
118
|
|
124
|
-
|
125
|
-
|
126
|
-
asset_id
|
127
|
-
else
|
128
|
-
path = File.join(theme.path, source)
|
129
|
-
asset_id = File.exist?(path) ? File.mtime(path).to_i.to_s : ''
|
130
|
-
asset_id
|
131
|
-
end
|
132
|
-
end
|
119
|
+
source
|
120
|
+
end
|
133
121
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
122
|
+
def theme_rails_asset_id(theme, source)
|
123
|
+
if asset_id = ENV["RAILS_ASSET_ID"]
|
124
|
+
asset_id
|
125
|
+
else
|
126
|
+
path = File.join(theme.path, source)
|
127
|
+
asset_id = File.exist?(path) ? File.mtime(path).to_i.to_s : ''
|
128
|
+
asset_id
|
141
129
|
end
|
130
|
+
end
|
142
131
|
|
143
|
-
|
144
|
-
|
145
|
-
|
132
|
+
def theme_rewrite_asset_path(theme, source)
|
133
|
+
asset_id = theme_rails_asset_id(theme, source)
|
134
|
+
if asset_id.blank?
|
135
|
+
source
|
136
|
+
else
|
137
|
+
source + "?#{asset_id}"
|
146
138
|
end
|
139
|
+
end
|
147
140
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
end
|
141
|
+
def theme_javascript_src_tag(theme, source, options)
|
142
|
+
options = {"type" => Mime::JS, "src" => theme_path_to_javascript(theme, source)}.merge(options)
|
143
|
+
content_tag("script", "", options)
|
144
|
+
end
|
153
145
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
146
|
+
def theme_stylesheet_tag(theme, source, options)
|
147
|
+
options = {"rel" => "stylesheet", "type" => Mime::CSS, "media" => "screen",
|
148
|
+
"href" => html_escape(theme_path_to_stylesheet(theme, source))}.merge(options)
|
149
|
+
tag("link", options, false, false)
|
150
|
+
end
|
159
151
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
end
|
152
|
+
def theme_compute_javascript_paths(theme, *args)
|
153
|
+
theme_expand_javascript_sources(theme, *args).collect do |source|
|
154
|
+
theme_compute_public_path(theme, source, theme.url + '/javascripts', 'js', false)
|
164
155
|
end
|
156
|
+
end
|
165
157
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
else
|
170
|
-
sources.flatten
|
171
|
-
end
|
158
|
+
def theme_compute_stylesheet_paths(theme, *args)
|
159
|
+
theme_expand_stylesheet_sources(theme, *args).collect do |source|
|
160
|
+
theme_compute_public_path(theme, source, theme.url + '/stylesheets', 'css', false)
|
172
161
|
end
|
162
|
+
end
|
173
163
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
end
|
164
|
+
def theme_expand_javascript_sources(theme, sources, recursive = false)
|
165
|
+
if sources.include?(:all)
|
166
|
+
all_javascript_files = collect_asset_files(theme.path + '/javascripts', ('**' if recursive), '*.js').uniq
|
167
|
+
else
|
168
|
+
sources.flatten
|
180
169
|
end
|
170
|
+
end
|
181
171
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
mt = asset_paths.map { |p| File.mtime(theme_asset_file_path(theme, p)) }.max
|
188
|
-
File.utime(mt, mt, joined_asset_path)
|
172
|
+
def theme_expand_stylesheet_sources(theme, sources, recursive)
|
173
|
+
if sources.first == :all
|
174
|
+
collect_asset_files(theme.path + '/stylesheets', ('**' if recursive), '*.css')
|
175
|
+
else
|
176
|
+
sources.flatten
|
189
177
|
end
|
178
|
+
end
|
190
179
|
|
191
|
-
|
192
|
-
|
180
|
+
def theme_write_asset_file_contents(theme, joined_asset_path, asset_paths)
|
181
|
+
FileUtils.mkdir_p(File.dirname(joined_asset_path))
|
182
|
+
File.open(joined_asset_path, "w+") do |cache|
|
183
|
+
cache.write(theme_join_asset_file_contents(theme, asset_paths))
|
193
184
|
end
|
185
|
+
mt = asset_paths.map { |p| File.mtime(theme_asset_file_path(theme, p)) }.max
|
186
|
+
File.utime(mt, mt, joined_asset_path)
|
187
|
+
end
|
194
188
|
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
189
|
+
def theme_join_asset_file_contents(theme, paths)
|
190
|
+
paths.collect { |path| File.read(theme_asset_file_path(theme, path)) }.join("\n\n")
|
191
|
+
end
|
192
|
+
|
193
|
+
def theme_asset_file_path(theme, path)
|
194
|
+
File.join(Theme.root_dir, path.split('?').first)
|
195
|
+
end
|
196
|
+
|
197
|
+
def name_and_path_from_source(source, base_directory)
|
198
|
+
path = source.split('/')
|
199
|
+
name = path.last
|
200
|
+
|
201
|
+
directory = if path.length > 1
|
202
|
+
#remove last element
|
203
|
+
path.pop
|
204
|
+
|
205
|
+
"#{base_directory}/#{path.join('/')}"
|
206
|
+
else
|
207
|
+
base_directory
|
208
|
+
end
|
209
|
+
|
210
|
+
return name, directory
|
211
|
+
end
|
212
|
+
|
213
|
+
end # AssetTagHelper
|
214
|
+
end # Helpers
|
215
|
+
end # ActionView
|