forked from saurabh/orbit4-5
new parser for pages and widgets..
This commit is contained in:
parent
f178fd963a
commit
9b008b4ead
5
Gemfile
5
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]
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -2,4 +2,5 @@ class ModuleApp
|
|||
include Mongoid::Document
|
||||
field :title, type: String
|
||||
field :key, type: String
|
||||
field :widget_methods, type: Array
|
||||
end
|
||||
|
|
|
@ -11,3 +11,4 @@
|
|||
</div>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="{{link_to_index}}">More</a></p>
|
||||
<p class="text-center">{{name}}</p>
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue