diff --git a/Gemfile b/Gemfile index c382961..fdc72f6 100644 --- a/Gemfile +++ b/Gemfile @@ -14,7 +14,8 @@ gem 'uglifier', '>= 1.3.0' # Use CoffeeScript for .js.coffee assets and views gem 'coffee-rails', '~> 4.0.0' -gem 'announcement', git: 'git@gitlab.tp.rulingcom.com:saurabh/announcement-test.git' +# gem 'announcement', git: 'git@gitlab.tp.rulingcom.com:saurabh/announcement-test.git' +gem 'announcement', path: "/Volumes/MyData/github/orbit4.5/announcement" # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', platforms: :ruby @@ -43,4 +44,4 @@ end # gem 'capistrano', group: :development # Use debugger -gem 'debugger', '>= 1.6.6', group: [:development, :test] +gem 'debugger', '>= 1.6.6', group: [:development, :test] \ No newline at end of file diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 6f248a8..5ab3363 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -88,9 +88,10 @@ module ApplicationHelper wrap_elements = doc.css("*[data-module]") controller = "#{params[:target_controller].capitalize}Controller".classify.constantize.new data = controller.send("#{params[:target_action]}") - wrap_elements.each do |wrap_element| - html_to_render = "" - data.each do |item| + keys = data.keys + wrap_elements.each do |wrap_element| + html_to_render = "" + (data[keys[0]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |item| el = wrap_element.inner_html item.each do |key,value| el = el.gsub("{{#{key}}}",value) @@ -100,7 +101,14 @@ module ApplicationHelper end wrap_element.inner_html = html_to_render end - doc.to_s.html_safe + html = doc.to_html + if keys[1] + (data[keys[1]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |key,value| + html = html.gsub("{{#{key}}}",value) + html = html.gsub("%7B%7B#{key}%7D%7D",value) + end + end + html.html_safe elsif params[:target_action] == "show" file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.html.erb")) doc = Nokogiri::HTML(file, nil, "UTF-8") diff --git a/app/helpers/orbit_helper.rb b/app/helpers/orbit_helper.rb index c7c400e..5ce06d7 100644 --- a/app/helpers/orbit_helper.rb +++ b/app/helpers/orbit_helper.rb @@ -18,4 +18,12 @@ module OrbitHelper def self.get_site_locale @site_locale end + + def self.to_param(title) + if I18n.locale.to_s == "en" + title.parameterize + else + title + end + end end diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index 2d6bad6..bd9072c 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -18,9 +18,10 @@ module PagesHelper wrap_elements = doc.css("*[data-repeat]") controller = "#{controller_name.capitalize}Controller".classify.constantize.new data = controller.send("#{widget_method}") + keys = data.keys wrap_elements.each do |wrap_element| html_to_render = "" - data.each do |item| + (data[keys[0]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |item| el = wrap_element.inner_html item.each do |key,value| el = el.gsub("{{#{key}}}",value) @@ -30,7 +31,15 @@ module PagesHelper end wrap_element.inner_html = html_to_render end - doc.to_s.html_safe + html = doc.to_html + if keys[1] + (data[keys[1]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |key,value| + html = html.gsub("{{#{key}}}",value) + html = html.gsub("%7B%7B#{key}%7D%7D",value) + end + end + html.html_safe end end + diff --git a/app/models/module_app.rb b/app/models/module_app.rb index 6ea15b4..6c38fac 100644 --- a/app/models/module_app.rb +++ b/app/models/module_app.rb @@ -2,4 +2,5 @@ class ModuleApp include Mongoid::Document field :title, type: String field :key, type: String + field :widget_methods, type: Array end diff --git a/app/templates/orbit_classic/modules/announcements/_widget.html.erb b/app/templates/orbit_classic/modules/announcements/_widget.html.erb index 083118d..b44427d 100644 --- a/app/templates/orbit_classic/modules/announcements/_widget.html.erb +++ b/app/templates/orbit_classic/modules/announcements/_widget.html.erb @@ -11,3 +11,4 @@

More

+

{{name}}

\ No newline at end of file diff --git a/lib/orbit_app/module/registration.rb b/lib/orbit_app/module/registration.rb index c5c1df5..82cf941 100644 --- a/lib/orbit_app/module/registration.rb +++ b/lib/orbit_app/module/registration.rb @@ -29,12 +29,13 @@ module OrbitApp end class RegisteredModule - attr_reader :name,:key,:module_label + attr_reader :name,:key,:module_label, :widget_methods def initialize(name,&block) @name = name @key = @name.underscore.singularize # @module_label = 'rulingcom.errors.init.module_app_noname' + @widget_methods = [] setup_module_app end @@ -44,7 +45,7 @@ module OrbitApp def setup_module_app module_app = get_module_app - module_app = ModuleApp.new(:key=>@key,:title=>name) if module_app.nil? + module_app = ModuleApp.new(:key=>@key,:title=>name, :widget_methods => @widget_methods) if module_app.nil? module_app.save(:validate=>false) end