forked from saurabh/orbit4-5
page rendering almost done ..
This commit is contained in:
parent
8d94fed6f3
commit
a54e19ea18
7
Gemfile
7
Gemfile
|
@ -1,19 +1,20 @@
|
|||
source 'https://rubygems.org'
|
||||
|
||||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
||||
gem 'rails', '4.0.3'
|
||||
gem 'rails', '4.1.0.rc2'
|
||||
gem 'mongoid', github: 'mongoid/mongoid'
|
||||
|
||||
# Use SCSS for stylesheets
|
||||
gem 'sass-rails', '~> 4.0.0'
|
||||
gem 'nokogiri'
|
||||
|
||||
|
||||
# Use Uglifier as compressor for JavaScript assets
|
||||
gem 'uglifier', '>= 1.3.0'
|
||||
|
||||
# Use CoffeeScript for .js.coffee assets and views
|
||||
gem 'coffee-rails', '~> 4.0.0'
|
||||
|
||||
gem 'announcement', path: '/Volumes/MyData/github/orbit4.5/announcement'
|
||||
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
||||
# gem 'therubyracer', platforms: :ruby
|
||||
|
||||
|
@ -25,7 +26,7 @@ gem 'turbolinks'
|
|||
|
||||
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
||||
gem 'jbuilder', '~> 1.2'
|
||||
|
||||
gem "active_model_serializers"
|
||||
|
||||
group :doc do
|
||||
# bundle exec rake doc:rails generates the API under doc/api.
|
||||
|
|
148
Gemfile.lock
148
Gemfile.lock
|
@ -1,148 +0,0 @@
|
|||
GIT
|
||||
remote: git://github.com/mongoid/mongoid.git
|
||||
revision: c8af8d0836b086cebc4a609037a97747e9f3359b
|
||||
specs:
|
||||
mongoid (4.0.0.beta1)
|
||||
activemodel (>= 4.0.0)
|
||||
moped (~> 2.0.beta6)
|
||||
origin (~> 2.1)
|
||||
tzinfo (>= 0.3.37)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
actionmailer (4.0.3)
|
||||
actionpack (= 4.0.3)
|
||||
mail (~> 2.5.4)
|
||||
actionpack (4.0.3)
|
||||
activesupport (= 4.0.3)
|
||||
builder (~> 3.1.0)
|
||||
erubis (~> 2.7.0)
|
||||
rack (~> 1.5.2)
|
||||
rack-test (~> 0.6.2)
|
||||
activemodel (4.0.3)
|
||||
activesupport (= 4.0.3)
|
||||
builder (~> 3.1.0)
|
||||
activerecord (4.0.3)
|
||||
activemodel (= 4.0.3)
|
||||
activerecord-deprecated_finders (~> 1.0.2)
|
||||
activesupport (= 4.0.3)
|
||||
arel (~> 4.0.0)
|
||||
activerecord-deprecated_finders (1.0.3)
|
||||
activesupport (4.0.3)
|
||||
i18n (~> 0.6, >= 0.6.4)
|
||||
minitest (~> 4.2)
|
||||
multi_json (~> 1.3)
|
||||
thread_safe (~> 0.1)
|
||||
tzinfo (~> 0.3.37)
|
||||
arel (4.0.2)
|
||||
atomic (1.1.15)
|
||||
bson (2.2.1)
|
||||
builder (3.1.4)
|
||||
coffee-rails (4.0.1)
|
||||
coffee-script (>= 2.2.0)
|
||||
railties (>= 4.0.0, < 5.0)
|
||||
coffee-script (2.2.0)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.7.0)
|
||||
columnize (0.3.6)
|
||||
connection_pool (1.2.0)
|
||||
debugger (1.6.5)
|
||||
columnize (>= 0.3.1)
|
||||
debugger-linecache (~> 1.2.0)
|
||||
debugger-ruby_core_source (~> 1.3.1)
|
||||
debugger-linecache (1.2.0)
|
||||
debugger-ruby_core_source (1.3.1)
|
||||
erubis (2.7.0)
|
||||
execjs (2.0.2)
|
||||
hike (1.2.3)
|
||||
i18n (0.6.9)
|
||||
jbuilder (1.5.3)
|
||||
activesupport (>= 3.0.0)
|
||||
multi_json (>= 1.2.0)
|
||||
jquery-rails (3.1.0)
|
||||
railties (>= 3.0, < 5.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
json (1.8.1)
|
||||
mail (2.5.4)
|
||||
mime-types (~> 1.16)
|
||||
treetop (~> 1.4.8)
|
||||
mime-types (1.25.1)
|
||||
mini_portile (0.5.2)
|
||||
minitest (4.7.5)
|
||||
moped (2.0.0.beta6)
|
||||
bson (~> 2.2)
|
||||
connection_pool (~> 1.2)
|
||||
optionable (~> 0.2.0)
|
||||
multi_json (1.8.4)
|
||||
nokogiri (1.6.1)
|
||||
mini_portile (~> 0.5.0)
|
||||
optionable (0.2.0)
|
||||
origin (2.1.0)
|
||||
polyglot (0.3.4)
|
||||
rack (1.5.2)
|
||||
rack-test (0.6.2)
|
||||
rack (>= 1.0)
|
||||
rails (4.0.3)
|
||||
actionmailer (= 4.0.3)
|
||||
actionpack (= 4.0.3)
|
||||
activerecord (= 4.0.3)
|
||||
activesupport (= 4.0.3)
|
||||
bundler (>= 1.3.0, < 2.0)
|
||||
railties (= 4.0.3)
|
||||
sprockets-rails (~> 2.0.0)
|
||||
railties (4.0.3)
|
||||
actionpack (= 4.0.3)
|
||||
activesupport (= 4.0.3)
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.18.1, < 2.0)
|
||||
rake (10.1.1)
|
||||
rdoc (4.1.1)
|
||||
json (~> 1.4)
|
||||
sass (3.2.14)
|
||||
sass-rails (4.0.1)
|
||||
railties (>= 4.0.0, < 5.0)
|
||||
sass (>= 3.1.10)
|
||||
sprockets-rails (~> 2.0.0)
|
||||
sdoc (0.4.0)
|
||||
json (~> 1.8)
|
||||
rdoc (~> 4.0, < 5.0)
|
||||
sprockets (2.11.0)
|
||||
hike (~> 1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.0)
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
sprockets-rails (2.0.1)
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
sprockets (~> 2.8)
|
||||
thor (0.18.1)
|
||||
thread_safe (0.2.0)
|
||||
atomic (>= 1.1.7, < 2)
|
||||
tilt (1.4.1)
|
||||
treetop (1.4.15)
|
||||
polyglot
|
||||
polyglot (>= 0.3.1)
|
||||
turbolinks (2.2.1)
|
||||
coffee-rails
|
||||
tzinfo (0.3.38)
|
||||
uglifier (2.4.0)
|
||||
execjs (>= 0.3.0)
|
||||
json (>= 1.8.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
coffee-rails (~> 4.0.0)
|
||||
debugger
|
||||
jbuilder (~> 1.2)
|
||||
jquery-rails
|
||||
mongoid!
|
||||
nokogiri
|
||||
rails (= 4.0.3)
|
||||
sass-rails (~> 4.0.0)
|
||||
sdoc
|
||||
turbolinks
|
||||
uglifier (>= 1.3.0)
|
|
@ -0,0 +1,48 @@
|
|||
(function(){
|
||||
var getUrlVars = function(){
|
||||
var vars = [], hash;
|
||||
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
|
||||
for(var i = 0; i < hashes.length; i++){
|
||||
hash = hashes[i].split('=');
|
||||
vars.push(decodeURIComponent(hash[0]));
|
||||
vars[decodeURIComponent(hash[0])] = decodeURIComponent(hash[1]);
|
||||
}
|
||||
if(vars[0] == window.location.href){
|
||||
vars =[];
|
||||
}
|
||||
return vars;
|
||||
}
|
||||
var page_params = getUrlVars();
|
||||
|
||||
$(document).ready(function(){
|
||||
$("head").append("<link href='/assets/pp-add-edit.css?body=1' media='screen' rel='stylesheet' /> ");
|
||||
$.ajax({
|
||||
url : "/page_parts/info",
|
||||
dataType : "json",
|
||||
type : "get",
|
||||
data : {"page_id" : page_params["id"]}
|
||||
}).done(function(data){
|
||||
$.each(data.parts,function(i,part){
|
||||
var page_part = $("*[" + part.name + "]");
|
||||
$.each(part.subparts,function(x,subpart){
|
||||
var newsub = $("<div data-ps='" + x + "'>" + subpart.module + "/" + subpart.widget + "</div>");
|
||||
page_part.prepend(newsub);
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
$("*[data-pp]").each(function(){
|
||||
var add_btn = $("<p class='add-ps'></p>"),
|
||||
part = $(this);
|
||||
add_btn.click(function(){
|
||||
if(part.find("*[data-ps]").length){
|
||||
window.location.href = "/page_parts/" + part.data("pp") + "/edit?page_id=" + page_params["id"];
|
||||
}else{
|
||||
window.location.href = "/page_parts/new?part=" + part.data("pp") + "&page_id=" + page_params["id"];
|
||||
}
|
||||
})
|
||||
$(this).append(add_btn);
|
||||
})
|
||||
|
||||
})
|
||||
})();
|
|
@ -0,0 +1,15 @@
|
|||
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
||||
// listed below.
|
||||
//
|
||||
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
||||
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
||||
//
|
||||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
||||
// compiled file.
|
||||
//
|
||||
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
||||
// about supported directives.
|
||||
//
|
||||
|
||||
//= require loadjquery
|
||||
//= require edit-main
|
|
@ -1,3 +0,0 @@
|
|||
# Place all the behaviors and hooks related to the matching controller here.
|
||||
# All this logic will automatically be available in application.js.
|
||||
# You can use CoffeeScript in this file: http://coffeescript.org/
|
|
@ -1,3 +1,3 @@
|
|||
// Place all the styles related to the home controller here.
|
||||
// Place all the styles related to the announcements controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
|
@ -0,0 +1,70 @@
|
|||
/*
|
||||
<div data-pp="3">
|
||||
<div data-ps="1"></div>
|
||||
<p class="add-ps"></p>
|
||||
</div>
|
||||
*/
|
||||
*[data-pp] {
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
}
|
||||
*[data-pp] > *[data-ps] {
|
||||
padding: 3px;
|
||||
height: 50px;
|
||||
outline: thin dotted #EBB666;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
*[data-pp] > *[data-ps]:before {
|
||||
content: "";
|
||||
line-height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #a1a1a1;
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity=60);
|
||||
}
|
||||
*[data-pp] > *[data-ps]:after {
|
||||
font-size: 1rem;
|
||||
font-weight: 300;
|
||||
content: "Edit";
|
||||
text-align: center;
|
||||
margin-top: -0.7rem;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
left: 0;
|
||||
}
|
||||
*[data-pp] > *[data-ps]:hover:before {
|
||||
opacity: 0.8;
|
||||
filter: alpha(opacity=80);
|
||||
}
|
||||
*[data-pp] > *[data-ps]:hover:after {
|
||||
font-weight: 400;
|
||||
}
|
||||
*[data-pp] > .add-ps {
|
||||
text-align: center;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 2rem;
|
||||
line-height: 2rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
*[data-pp] > .add-ps:after {
|
||||
font-size: 1rem;
|
||||
font-weight: 300;
|
||||
content: "Add";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #e0dbcb;
|
||||
}
|
||||
*[data-pp] > .add-ps:hover:after {
|
||||
font-weight: 400;
|
||||
background-color: #923132;
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
// Place all the styles related to the users controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
|
@ -2,4 +2,21 @@ class ApplicationController < ActionController::Base
|
|||
# Prevent CSRF attacks by raising an exception.
|
||||
# For APIs, you may want to use :null_session instead.
|
||||
protect_from_forgery with: :exception
|
||||
before_action :set_locale
|
||||
def default_url_options(options={})
|
||||
{ locale: I18n.locale }
|
||||
end
|
||||
|
||||
def set_locale
|
||||
I18n.locale = params[:locale] || I18n.default_locale
|
||||
end
|
||||
|
||||
def get_layout
|
||||
f = File.join("../../templates/", "#{@key}", '/home/page.html.erb')
|
||||
end
|
||||
|
||||
def get_key
|
||||
@key = Template::KEY
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -29,15 +29,11 @@ class HomeController < ApplicationController
|
|||
|
||||
private
|
||||
|
||||
def get_key
|
||||
@key = Template::KEY
|
||||
end
|
||||
|
||||
def get_layout
|
||||
if params[:name]
|
||||
File.join("../../templates", "#{@key}", '/home/page.html.erb')
|
||||
File.join("../../templates/", "#{@key}", '/home/page.html.erb')
|
||||
else
|
||||
false
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
class PagePartsController < ApplicationController
|
||||
before_action :get_key
|
||||
def new
|
||||
@part = PagePart.new
|
||||
@part.sub_parts.build
|
||||
@modules = []
|
||||
@part_number = params[:part]
|
||||
@page_id = params[:page_id]
|
||||
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/*").each do |m|
|
||||
@modules << m.gsub("#{Rails.root}/app/templates/#{@key}/modules/","")
|
||||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
page = Page.find(params[:page_id])
|
||||
@part = page.page_parts.where(:part_id => params[:id]).first
|
||||
@part.sub_parts.build
|
||||
@modules = []
|
||||
@page_id = params[:page_id]
|
||||
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/*").each do |m|
|
||||
@modules << m.gsub("#{Rails.root}/app/templates/#{@key}/modules/","")
|
||||
end
|
||||
end
|
||||
|
||||
def getwidgets
|
||||
module_name = params[:module]
|
||||
@select_number = params[:number_of_select]
|
||||
@widgets = []
|
||||
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_name}/*").each do |w|
|
||||
w = File.basename(w, ".*")
|
||||
w = File.basename(w, ".*")
|
||||
@widgets << w.gsub("_","") if w != "index" && w != "show"
|
||||
end
|
||||
render :layout => false
|
||||
end
|
||||
|
||||
def info
|
||||
page = Page.find(params[:page_id])
|
||||
parts = page.page_parts
|
||||
data = []
|
||||
parts.each do |part|
|
||||
partid = "data-pp=" + part.part_id.to_s
|
||||
subparts = part.sub_parts
|
||||
subpart = []
|
||||
subparts.each do |p|
|
||||
subpart << {"module" => p.module, "widget" => p.widget}
|
||||
end
|
||||
data << {"name" => partid, "subparts" => subpart}
|
||||
end
|
||||
render :json => {"parts" => data}.to_json
|
||||
end
|
||||
|
||||
def create
|
||||
@part = PagePart.new(part_params)
|
||||
@part.save!
|
||||
redirect_to pages_edit_view_path(:id => params[:page_part][:page_id])
|
||||
end
|
||||
|
||||
def update
|
||||
@part = PagePart.find(params[:page_part][:page_part_id])
|
||||
@part.update_attributes(part_params)
|
||||
redirect_to pages_edit_view_path(:id => params[:page_part][:page_id])
|
||||
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def part_params
|
||||
params.require(:page_part).permit(:part_id, :page_id, sub_parts_attributes: [:module, :widget, :id])
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,153 @@
|
|||
class PagesController < ApplicationController
|
||||
before_action :get_key
|
||||
layout :get_layout
|
||||
include PagesHelper
|
||||
|
||||
def index
|
||||
@pages = Page.all
|
||||
# render json: @pages
|
||||
end
|
||||
|
||||
def edit_view
|
||||
@manifest = @key
|
||||
@dataApi = "edit"
|
||||
|
||||
# @qq = render_to_string(:partial => @p, :layout => false)
|
||||
render get_view
|
||||
end
|
||||
|
||||
def show
|
||||
page = Page.find_by_param(params[:page_id]) rescue nil
|
||||
module_app = page.module.downcase.pluralize
|
||||
params[:target_controller] = "#{module_app}"
|
||||
@manifest = @key
|
||||
@dataApi = nil
|
||||
OrbitHelper.set_params params
|
||||
OrbitHelper.set_site_locale locale
|
||||
params[:target_action] = "index"
|
||||
params[:url] = page.url
|
||||
render render_final_page("#{module_app}/show",page)
|
||||
end
|
||||
|
||||
def moduleShow
|
||||
page = Page.find_by_param(params[:page_id])
|
||||
params[:target_action] = "show"
|
||||
params[:uid] = params[:uid]
|
||||
module_app = page.module.downcase.pluralize
|
||||
params[:target_controller] = "#{module_app}"
|
||||
@manifest = @key
|
||||
@dataApi = nil
|
||||
OrbitHelper.set_params params
|
||||
OrbitHelper.set_site_locale locale
|
||||
render render_final_page("#{module_app}/show",page)
|
||||
end
|
||||
|
||||
def preview
|
||||
render render_final_page
|
||||
end
|
||||
|
||||
|
||||
|
||||
def new
|
||||
@page = Page.new
|
||||
@pages = Page.where(:page_id.ne => "" , :page_id.exists => true)
|
||||
@modules = ModuleApp.all
|
||||
|
||||
end
|
||||
|
||||
def create
|
||||
@page = Page.new(page_params)
|
||||
@page.save!
|
||||
redirect_to pages_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def render_final_page(original_view=get_view,page)
|
||||
|
||||
parts = page.page_parts
|
||||
@part_partials = {}
|
||||
|
||||
parts.each do |part|
|
||||
subparts = part.sub_parts
|
||||
partials = []
|
||||
subparts.each do |subpart|
|
||||
# partials << render_to_string(:partial => get_widget_path(widget_path))
|
||||
partials << render_widget_for_frontend(params[:target_controller],"widget",subpart.widget)
|
||||
end
|
||||
@part_partials["data-pp='#{part.part_id}'"] = partials
|
||||
end
|
||||
|
||||
@file = nil
|
||||
@layout_html = nil
|
||||
@file = File.join('../templates', "#{@key}", '/home/page.html.erb')
|
||||
@layout_html = render_to_string(@file)
|
||||
doc = Nokogiri::HTML(@layout_html)
|
||||
|
||||
@part_partials.each do |key, partial|
|
||||
html_string = ""
|
||||
partial.each do |p|
|
||||
html_string = html_string + p
|
||||
end
|
||||
pp = doc.css("*[#{key}]")
|
||||
pp = pp[0]
|
||||
pp.inner_html = html_string
|
||||
end
|
||||
|
||||
viewarea = doc.css("*[data-content='true']")
|
||||
viewarea = viewarea[0]
|
||||
viewarea.inner_html = render_to_string(original_view)
|
||||
newlayout = "#{page.name}_layout.html.erb"
|
||||
file_path = File.join(Rails.root, 'app', 'views', 'frontend', newlayout)
|
||||
|
||||
f = File.open(file_path,"w")
|
||||
f.write(doc.to_html)
|
||||
f.close
|
||||
view_to_render = "frontend/#{newlayout}"
|
||||
view_to_render
|
||||
end
|
||||
|
||||
def get_widget_path(widget)
|
||||
file = File.join('../templates', "#{@key}", "modules/#{widget}")
|
||||
end
|
||||
|
||||
def get_view
|
||||
page = Page.find(params[:id])
|
||||
|
||||
if page.page_id == "home"
|
||||
@view = File.join(Rails.root, 'app', 'templates', "#{@key}", '/home/index.html.erb')
|
||||
else
|
||||
module_name = page.module.downcase.pluralize
|
||||
@view = File.join(Rails.root, 'app', 'templates', "#{@key}", "modules/#{module_name}/index.html.erb")
|
||||
end
|
||||
end
|
||||
|
||||
def page_params
|
||||
if params[:page][:parent_page] == ""
|
||||
params[:page][:parent_page] = nil
|
||||
@url = "/#{params[:page][:page_id]}"
|
||||
else
|
||||
page = Page.find(params[:page][:parent_page])
|
||||
@url = page.url + "/#{params[:page][:page_id]}"
|
||||
end
|
||||
p = params.require(:page).permit(:number, :page_id, :module, :parent_page, name_translations: [:en, :zh_tw])
|
||||
p["url"] = @url
|
||||
p
|
||||
end
|
||||
|
||||
def get_layout
|
||||
if request[:action] == "edit_view"
|
||||
page = Page.find(params[:id])
|
||||
if page.page_id == "home"
|
||||
false
|
||||
else
|
||||
File.join("../../templates", "#{@key}", '/home/page.html.erb')
|
||||
end
|
||||
# elsif request[:action] == "show" || request[:action] == "moduleShow"
|
||||
# File.join("../../templates", "themes", "#{@key}", '/home/page.html.erb')
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -2,7 +2,7 @@ require "json"
|
|||
module ApplicationHelper
|
||||
def render_widget(widget)
|
||||
key = Template::KEY
|
||||
file = File.join('../templates', "#{key}", "modules/#{widget}")
|
||||
file = File.join("../templates", "#{key}", "modules/#{widget}")
|
||||
render :partial => file
|
||||
end
|
||||
|
||||
|
@ -10,11 +10,28 @@ module ApplicationHelper
|
|||
"/module/#{module_name}/show"
|
||||
end
|
||||
|
||||
|
||||
|
||||
def render_menu
|
||||
json_file = File.read(File.join(Rails.root, 'public', "menu.json"))
|
||||
@items = JSON.parse(json_file)
|
||||
# json_file = File.read(File.join(Rails.root, 'public', "menu.json"))
|
||||
# @items = JSON.parse(json_file)
|
||||
@pages = Page.where(:parent_page_id.ne => "" , :parent_page_id.exists => false, :page_id.ne => "", :page_id.exists => true)
|
||||
|
||||
def create_json(pages)
|
||||
item = {}
|
||||
pages.each do |page|
|
||||
if page.child_page.size > 0
|
||||
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.child_page)}
|
||||
else
|
||||
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url}
|
||||
end
|
||||
end
|
||||
item
|
||||
end
|
||||
@items = create_json(@pages)
|
||||
|
||||
key = Template::KEY
|
||||
menu_file = File.open(File.join(Rails.root, 'app', 'templates', "#{key}", '/home/menu.html.erb'))
|
||||
menu_file = File.open(File.join(Rails.root, 'app', 'templates', "#{key}", '/home/menu.html.erb'))
|
||||
doc = Nokogiri::HTML(menu_file)
|
||||
menu_file.close
|
||||
|
||||
|
@ -63,4 +80,48 @@ module ApplicationHelper
|
|||
h.html_safe
|
||||
end
|
||||
|
||||
def render_view
|
||||
if params[:target_action] == "index"
|
||||
file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.html.erb"))
|
||||
doc = Nokogiri::HTML(file)
|
||||
file.close
|
||||
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|
|
||||
el = wrap_element.inner_html
|
||||
item.each do |key,value|
|
||||
el = el.gsub("{{#{key}}}",value)
|
||||
el = el.gsub("%7B%7B#{key}%7D%7D",value)
|
||||
end
|
||||
html_to_render = html_to_render + el
|
||||
end
|
||||
wrap_element.inner_html = html_to_render
|
||||
end
|
||||
doc.to_s.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)
|
||||
file.close
|
||||
wrap_element_html = doc.to_s
|
||||
html_to_render = ""
|
||||
controller = "#{params[:target_controller].capitalize}Controller".classify.constantize.new
|
||||
data = controller.send("#{params[:target_action]}")
|
||||
el = wrap_element_html
|
||||
data.each do |key,value|
|
||||
el = el.gsub("{{#{key}}}",value)
|
||||
el = el.gsub("%7B%7B#{key}%7D%7D",value)
|
||||
end
|
||||
el.html_safe
|
||||
end
|
||||
end
|
||||
|
||||
def action_data
|
||||
controller = "#{params[:target_controller].capitalize}Controller".constantize.new
|
||||
data = controller.send("#{params[:target_action]}")
|
||||
data
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
module OrbitHelper
|
||||
def self.set_params(params)
|
||||
@params = params
|
||||
end
|
||||
|
||||
def self.get_params
|
||||
@params
|
||||
end
|
||||
|
||||
def self.url_to_show(uid,title)
|
||||
"/#{self.get_site_locale.to_s}#{@params[:url]}/#{uid}/#{title.parameterize}"
|
||||
end
|
||||
|
||||
def self.set_site_locale(locale)
|
||||
@site_locale = locale
|
||||
end
|
||||
|
||||
def self.get_site_locale
|
||||
@site_locale
|
||||
end
|
||||
end
|
|
@ -0,0 +1,36 @@
|
|||
module PagesHelper
|
||||
|
||||
def parse_pp_tags(file)
|
||||
opened_file = File.open(file)
|
||||
doc = Nokogiri::HTML(opened_file)
|
||||
opened_file.close
|
||||
pps = doc.css("*[data-pp]")
|
||||
pps.each do |pp|
|
||||
pp.content = "<p class='add-ps'></p>"
|
||||
end
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
def render_widget_for_frontend(controller_name, widget_method, widget_file)
|
||||
file = File.open(File.join(Rails.root, 'app', 'templates', "#{Template::KEY}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb"))
|
||||
doc = Nokogiri::HTML(file)
|
||||
file.close
|
||||
wrap_elements = doc.css("*[data-repeat]")
|
||||
controller = "#{controller_name.capitalize}Controller".classify.constantize.new
|
||||
data = controller.send("#{widget_method}")
|
||||
wrap_elements.each do |wrap_element|
|
||||
html_to_render = ""
|
||||
data.each do |item|
|
||||
el = wrap_element.inner_html
|
||||
item.each do |key,value|
|
||||
el = el.gsub("{{#{key}}}",value)
|
||||
el = el.gsub("%7B%7B#{key}%7D%7D",value)
|
||||
end
|
||||
html_to_render = html_to_render + el
|
||||
end
|
||||
wrap_element.inner_html = html_to_render
|
||||
end
|
||||
doc.to_s.html_safe
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,16 @@
|
|||
module Slug
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
def slug
|
||||
if not respond_to? :title or title.empty?
|
||||
id
|
||||
else
|
||||
I18n.locale
|
||||
title.parameterize
|
||||
end
|
||||
end
|
||||
|
||||
def to_param
|
||||
slug
|
||||
end
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
class ModuleApp
|
||||
include Mongoid::Document
|
||||
field :title, type: String
|
||||
field :key, type: String
|
||||
end
|
|
@ -0,0 +1,23 @@
|
|||
class Page
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :name, localize: true
|
||||
field :number, type: Integer
|
||||
field :module
|
||||
field :url
|
||||
field :page_id
|
||||
|
||||
has_many :page_parts, :autosave => true, :dependent => :destroy
|
||||
|
||||
has_many :child_page, :class_name => 'Page', :inverse_of => :parent_page
|
||||
belongs_to :parent_page, :class_name => 'Page', :inverse_of => :child_page
|
||||
|
||||
def to_param
|
||||
page_id.parameterize
|
||||
end
|
||||
|
||||
def self.find_by_param(input)
|
||||
self.find_by(page_id: input) rescue nil
|
||||
end
|
||||
end
|
|
@ -0,0 +1,12 @@
|
|||
class PagePart
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :part_id, type: Integer
|
||||
|
||||
belongs_to :page
|
||||
has_many :sub_parts, :dependent => :destroy
|
||||
|
||||
accepts_nested_attributes_for :sub_parts, :allow_destroy => true
|
||||
|
||||
end
|
|
@ -0,0 +1,10 @@
|
|||
class PageRelationship
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :page_id, type: String
|
||||
field :child_id, type: String
|
||||
|
||||
belongs_to :parent, :class_name => "Page"
|
||||
belongs_to :child, :class_name => "Page"
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
class SubPart
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :module
|
||||
field :widget
|
||||
|
||||
belongs_to :page_part
|
||||
end
|
|
@ -0,0 +1,4 @@
|
|||
class PageSerializer < ActiveModel::Serializer
|
||||
attributes :url, :name
|
||||
has_many :child_page
|
||||
end
|
|
@ -1,5 +1,4 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
|
@ -7,8 +6,7 @@
|
|||
<title>Orbit Classic</title>
|
||||
<%= stylesheet_link_tag "#{@manifest}"%>
|
||||
<%= javascript_include_tag "#{@manifest}"%>
|
||||
<%= javascript_include_tag "#{@dataApi}"%>
|
||||
|
||||
<%= javascript_include_tag "#{@dataApi}" if @dataApi != nil%>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
|
@ -20,7 +18,7 @@
|
|||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/module/home">Project name</a>
|
||||
<a class="navbar-brand" href="/module/home">Orbit</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" data-menu="true">
|
||||
<%= render_menu %>
|
||||
|
@ -31,13 +29,16 @@
|
|||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1">
|
||||
<%= render_widget "faq/widget" %>
|
||||
</header>
|
||||
<div class="row" data-pp="2">
|
||||
<%= render_widget "announcement/widget" %>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="3"></div>
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="3">
|
||||
<!-- <div data-ps="1"></div>
|
||||
<div data-ps="1"></div>
|
||||
<div data-ps="1"></div>
|
||||
<p class="add-ps"></p> -->
|
||||
</div>
|
||||
</div><!--/row-->
|
||||
<hr>
|
||||
<footer>
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
|
@ -7,7 +6,7 @@
|
|||
<title>Orbit Classic</title>
|
||||
<%= stylesheet_link_tag "#{@manifest}"%>
|
||||
<%= javascript_include_tag "#{@manifest}"%>
|
||||
<%= javascript_include_tag "#{@dataApi}"%>
|
||||
<%= javascript_include_tag "#{@dataApi}" if @dataApi != nil%>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
<article>
|
||||
<h1>{{title}}</h1>
|
||||
<p>{{subtitle}}</p>
|
||||
<section>
|
||||
<span>{{postdate}}</span>
|
||||
<div>{{text}}</div>
|
||||
</section>
|
||||
</article>
|
|
@ -1,4 +1,4 @@
|
|||
<div data-repeat="3" data-module="announcement">
|
||||
<div data-repeat="3" data-module="announcement" data-ps=''>
|
||||
<div >
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150">
|
||||
|
@ -9,5 +9,5 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="{{link_to_index}}">More</a></p>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="{{link_to_index}}">More</a></p>
|
|
@ -1,7 +1,7 @@
|
|||
<div data-repeat="8" data-module="announcement">
|
||||
<div class="col-6 col-sm-6 col-lg-4" >
|
||||
<h2>{{title}}</h2>
|
||||
<p>{{subtitle}}</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="{{link_to_show}}">More</a></p>
|
||||
<p>{{body}}</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="{{link_to_show}}">{{more}}</a></p>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,6 @@
|
|||
<article>
|
||||
<h1>{{title}}</h1>
|
||||
<section>
|
||||
<div>{{body}}</div>
|
||||
</section>
|
||||
</article>
|
|
@ -1,4 +1,4 @@
|
|||
<div class="banner">
|
||||
<div class="banner" data-ps=''>
|
||||
<ul>
|
||||
<li data-repeat="0"><img src="http://placehold.it/150x150"></li>
|
||||
</ul>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div data-sp="" data-repeat="3" data-module="faq">
|
||||
<div data-ps="" data-repeat="3" data-module="faq">
|
||||
<div >
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150">
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/en/news" data-menu-link="true">
|
||||
News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1"><li>
|
||||
<a href="/en/news/focusnews" data-menu-link="true">
|
||||
Focus News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/en/news/focusnews/admission" data-menu-link="true">
|
||||
Admissions
|
||||
</a>
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/en/faqs" data-menu-link="true">
|
||||
Faqs
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1"></header><main class="row" data-content="true">
|
||||
<article><h1>This is test title</h1>
|
||||
<section><div>This is test body</div>
|
||||
</section></article></main><!--/row-->
|
||||
</div>
|
||||
<!--/span-->
|
||||
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="2"></div>
|
||||
<!--/span-->
|
||||
</div>
|
||||
<!--/row-->
|
||||
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,198 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/module/announcement" data-menu-link="true">
|
||||
Announcement
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq" data-menu-link="true">
|
||||
Faq
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery" data-menu-link="true">
|
||||
Gallery
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
Gallery1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.3
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1"><div data-repeat="3" data-module="announcement" data-ps="">
|
||||
<div>
|
||||
<h1>Harry</h1>
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150"><div class="caption">
|
||||
<h3>{{title}}</h3>
|
||||
<p>{{subtitle}}</p>
|
||||
<p><a data-href="detail" class="btn btn-primary" href="%7B%7Blink_to_show%7D%7D" role="button">Read more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="%7B%7Blink_to_index%7D%7D">More</a></p>
|
||||
</div></header><main class="row" data-content="true"><div class="list-group" data-repeat="0" data-module="faq">
|
||||
<a data-href="detail" class="list-group-item" href="%7B%7Blink_to_show%7D%7D">{{title}} »</a>
|
||||
</div></main><!--/row-->
|
||||
</div>
|
||||
<!--/span-->
|
||||
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="2"></div>
|
||||
<!--/span-->
|
||||
</div>
|
||||
<!--/row-->
|
||||
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,94 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/en/news" data-menu-link="true">
|
||||
News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1"><li>
|
||||
<a href="/en/news/focusnews" data-menu-link="true">
|
||||
Focus News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/en/news/focusnews/admission" data-menu-link="true">
|
||||
Admissions
|
||||
</a>
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/en/faqs" data-menu-link="true">
|
||||
Faqs
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1"></header><main class="row" data-content="true">
|
||||
<div data-repeat="8" data-module="announcement">
|
||||
<div class="col-6 col-sm-6 col-lg-4">
|
||||
<h2>This is test title</h2>
|
||||
<p>This is test body</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="/en/faqs/1vq8m73s/this-is-test-title">More</a></p>
|
||||
</div>
|
||||
|
||||
<div class="col-6 col-sm-6 col-lg-4">
|
||||
<h2>Test 2</h2>
|
||||
<p>Test 2 body</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="/en/faqs/qvr4bp3z/test-2">More</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</main><!--/row-->
|
||||
</div>
|
||||
<!--/span-->
|
||||
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="2"></div>
|
||||
<!--/span-->
|
||||
</div>
|
||||
<!--/row-->
|
||||
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,119 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/en/news" data-menu-link="true">
|
||||
News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1"><li>
|
||||
<a href="/en/news/focusnews" data-menu-link="true">
|
||||
Focus News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/en/news/focusnews/admission" data-menu-link="true">
|
||||
Admissions
|
||||
</a>
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/en/faqs" data-menu-link="true">
|
||||
Faqs
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1"></header><main class="row" data-content="true">
|
||||
<div data-repeat="8" data-module="announcement">
|
||||
<div class="col-6 col-sm-6 col-lg-4">
|
||||
<h2>This is test title</h2>
|
||||
<p>This is test body</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="/en/news/focusnews/1vq8m73s/this-is-test-title">More</a></p>
|
||||
</div>
|
||||
|
||||
<div class="col-6 col-sm-6 col-lg-4">
|
||||
<h2>Test 2</h2>
|
||||
<p>Test 2 body</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="/en/news/focusnews/qvr4bp3z/test-2">More</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</main><!--/row-->
|
||||
</div>
|
||||
<!--/span-->
|
||||
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="2">
|
||||
|
||||
<div data-repeat="3" data-module="announcement" data-ps="">
|
||||
<div>
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150"><div class="caption">
|
||||
<h3>This is test title</h3>
|
||||
<p>This is test body</p>
|
||||
<p><a data-href="detail" class="btn btn-primary" href="/en/news/focusnews/1vq8m73s/this-is-test-title" role="button">Read more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150"><div class="caption">
|
||||
<h3>Test 2</h3>
|
||||
<p>Test 2 body</p>
|
||||
<p><a data-href="detail" class="btn btn-primary" href="/en/news/focusnews/qvr4bp3z/test-2" role="button">Read more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="%7B%7Blink_to_index%7D%7D">More</a></p>
|
||||
|
||||
</div>
|
||||
<!--/span-->
|
||||
</div>
|
||||
<!--/row-->
|
||||
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,119 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/en/news" data-menu-link="true">
|
||||
News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1"><li>
|
||||
<a href="/en/news/focusnews" data-menu-link="true">
|
||||
Focus News
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/en/news/focusnews/admission" data-menu-link="true">
|
||||
Admissions
|
||||
</a>
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/en/faqs" data-menu-link="true">
|
||||
Faqs
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1">
|
||||
|
||||
<div data-repeat="3" data-module="announcement" data-ps="">
|
||||
<div>
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150"><div class="caption">
|
||||
<h3>This is test title</h3>
|
||||
<p>This is test body</p>
|
||||
<p><a data-href="detail" class="btn btn-primary" href="/en/news/1vq8m73s/this-is-test-title" role="button">Read more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150"><div class="caption">
|
||||
<h3>Test 2</h3>
|
||||
<p>Test 2 body</p>
|
||||
<p><a data-href="detail" class="btn btn-primary" href="/en/news/qvr4bp3z/test-2" role="button">Read more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="%7B%7Blink_to_index%7D%7D">More</a></p>
|
||||
|
||||
</header><main class="row" data-content="true">
|
||||
<div data-repeat="8" data-module="announcement">
|
||||
<div class="col-6 col-sm-6 col-lg-4">
|
||||
<h2>This is test title</h2>
|
||||
<p>This is test body</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="/en/news/1vq8m73s/this-is-test-title">More</a></p>
|
||||
</div>
|
||||
|
||||
<div class="col-6 col-sm-6 col-lg-4">
|
||||
<h2>Test 2</h2>
|
||||
<p>Test 2 body</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="/en/news/qvr4bp3z/test-2">More</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</main><!--/row-->
|
||||
</div>
|
||||
<!--/span-->
|
||||
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="2"></div>
|
||||
<!--/span-->
|
||||
</div>
|
||||
<!--/row-->
|
||||
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,207 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/module/announcement" data-menu-link="true">
|
||||
Announcement
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq" data-menu-link="true">
|
||||
Faq
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery" data-menu-link="true">
|
||||
Gallery
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
Gallery1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.3
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1"><div class="banner" data-ps="">
|
||||
<ul>
|
||||
<li data-repeat="0"><img src="http://placehold.it/150x150"></li>
|
||||
</ul>
|
||||
</div></header><main class="row" data-content="true"><div class="list-group" data-repeat="0" data-module="faq">
|
||||
<a data-href="detail" class="list-group-item" href="%7B%7Blink_to_show%7D%7D">{{title}} »</a>
|
||||
</div></main><!--/row-->
|
||||
</div>
|
||||
<!--/span-->
|
||||
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="2">
|
||||
<div class="banner" data-ps="">
|
||||
<ul>
|
||||
<li data-repeat="0"><img src="http://placehold.it/150x150"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div data-ps="" data-repeat="3" data-module="faq">
|
||||
<div>
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150"><div class="caption">
|
||||
<h3>{{title}}</h3>
|
||||
<p><a data-href="detail" class="btn btn-primary" role="button" href="%7B%7Blink_to_show%7D%7D">Read</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" href="%7B%7Blink_to_index%7D%7D" class="btn btn-primary" role="button">More</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<!--/span-->
|
||||
</div>
|
||||
<!--/row-->
|
||||
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,202 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/">Project name</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/module/announcement" data-menu-link="true">
|
||||
Announcement
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq" data-menu-link="true">
|
||||
Faq
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery" data-menu-link="true">
|
||||
Gallery
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
Gallery1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.3
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1"></header><main class="row" data-content="true"><div data-repeat="8" data-module="announcement">
|
||||
<div class="col-6 col-sm-6 col-lg-4">
|
||||
<h2>{{title}}</h2>
|
||||
<p>{{subtitle}}</p>
|
||||
<p><a class="btn btn-default" data-href="detail" role="button" href="%7B%7Blink_to_show%7D%7D">More</a></p>
|
||||
</div>
|
||||
</div></main><!--/row-->
|
||||
</div>
|
||||
<!--/span-->
|
||||
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="2"><div data-repeat="3" data-module="announcement" data-ps="">
|
||||
<div>
|
||||
<h1>Harry</h1>
|
||||
<div class="thumbnail">
|
||||
<img src="http://placehold.it/150x150"><div class="caption">
|
||||
<h3>{{title}}</h3>
|
||||
<p>{{subtitle}}</p>
|
||||
<p><a data-href="detail" class="btn btn-primary" href="%7B%7Blink_to_show%7D%7D" role="button">Read more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center"><a data-href="more" class="btn btn-primary" role="button" href="%7B%7Blink_to_index%7D%7D">More</a></p>
|
||||
</div></div>
|
||||
<!--/span-->
|
||||
</div>
|
||||
<!--/row-->
|
||||
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,188 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
|
||||
<link rel="shortcut icon" href="/assets/images/favicon.ico">
|
||||
<title>Orbit Classic</title>
|
||||
<link href="/assets/orbit_classic.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/font-awesome.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon-ie7.min.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/icon.css?body=1" media="screen" rel="stylesheet">
|
||||
<link href="/assets/main.css?body=1" media="screen" rel="stylesheet">
|
||||
<script src="/assets/lib/jquery-1.11.0.min.js?body=1"></script><script src="/assets/plugin/bootstrap.js?body=1"></script><script src="/assets/plugin/html5shiv.js?body=1"></script><script src="/assets/plugin/jquery.lite.image.resize.js?body=1"></script><script src="/assets/plugin/response.min.js?body=1"></script><script src="/assets/orbit_classic.js?body=1"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/module/home">Orbit</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" data-menu="true">
|
||||
<ul class="nav navbar-nav menu-level-0" data-menu-level="0">
|
||||
<li>
|
||||
<a href="/module/announcement" data-menu-link="true">
|
||||
Announcement
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2"><li>
|
||||
<a href="/module/announcement/show" data-menu-link="true">
|
||||
Announcement2
|
||||
</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq" data-menu-link="true">
|
||||
Faq
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/faq/show" data-menu-link="true">
|
||||
Faq2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery" data-menu-link="true">
|
||||
Gallery
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="nav navbar-nav dropdown-menu menu-level-1" data-menu-level="1">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
Gallery1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery1.1
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu menu-level-2" data-menu-level="2">
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/module/gallery/show" data-menu-link="true">
|
||||
gallery2.3
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.nav-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<header data-pp="1"><div class="banner" data-ps="">
|
||||
<ul>
|
||||
<li data-repeat="0"><img src="http://placehold.it/150x150"></li>
|
||||
</ul>
|
||||
</div></header><div class="row" data-pp="2">
|
||||
</div>
|
||||
</div>
|
||||
<!--/span-->
|
||||
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation" data-pp="3"><div class="banner" data-ps="">
|
||||
<ul>
|
||||
<li data-repeat="0"><img src="http://placehold.it/150x150"></li>
|
||||
</ul>
|
||||
</div></div>
|
||||
</div>
|
||||
<!--/row-->
|
||||
<hr>
|
||||
<footer><p>© Company 2014</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -3,11 +3,10 @@
|
|||
<head>
|
||||
<title>OrbitStore</title>
|
||||
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
||||
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
||||
<%= javascript_include_tag "jquery11" %>
|
||||
<%= csrf_meta_tags %>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<%= yield %>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<% i = 0 %>
|
||||
<%= f.hidden_field :page_id, value: @page_id %>
|
||||
<%= f.fields_for :sub_parts do |sub| %>
|
||||
Module :
|
||||
<%= sub.select(:module, @modules,{:include_blank => true}, "data-number"=> "pp_#{i}", "class" => "module_name") %>
|
||||
<span for="pp_<%= i.to_s %>">
|
||||
<%= sub.label(:widget,@part.sub_parts[i].widget) rescue nil %>
|
||||
<%= sub.hidden_field(:widget) if i < @part.sub_parts.count %>
|
||||
</span>
|
||||
<% i = i + 1 %>
|
||||
<br />
|
||||
<% end %>
|
||||
|
||||
<%= f.submit %>
|
|
@ -0,0 +1,21 @@
|
|||
<%= form_for @part, url: {action: "update"} do |f| %>
|
||||
<%= f.hidden_field :page_part_id, value: @part.id.to_s %>
|
||||
<%= render :partial => "form", :locals => { :f => f } %>
|
||||
<% end %>
|
||||
|
||||
<script type="text/javascript">
|
||||
$("select.module_name").on("change",function(){
|
||||
var select = $(this);
|
||||
if(select.val()){
|
||||
$.ajax({
|
||||
url : "/page_parts/getwidgets",
|
||||
dataType : "html",
|
||||
data : {"module" : select.val(),"number_of_select" : select.data("number").replace("pp_","")},
|
||||
type : "get"
|
||||
}).done(function(html){
|
||||
$("span[for=" + select.data("number") + "]").html(html);
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
|
@ -0,0 +1,2 @@
|
|||
Select Widget
|
||||
<%= select_tag("page_part[sub_parts_attributes][#{@select_number}][widget]",options_for_select(@widgets),{:include_blank => true}) %>
|
|
@ -0,0 +1,21 @@
|
|||
<%= form_for @part, url: {action: "create"} do |f| %>
|
||||
<%= f.hidden_field :part_id, value: @part_number %>
|
||||
<%= render :partial => "form", :locals => { :f => f } %>
|
||||
<% end %>
|
||||
|
||||
<script type="text/javascript">
|
||||
$("select.module_name").on("change",function(){
|
||||
var select = $(this);
|
||||
if(select.val()){
|
||||
$.ajax({
|
||||
url : "/page_parts/getwidgets",
|
||||
dataType : "html",
|
||||
data : {"module" : select.val(),"number_of_select" : select.data("number").replace("pp_","")},
|
||||
type : "get"
|
||||
}).done(function(html){
|
||||
$("span[for=" + select.data("number") + "]").html(html);
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
|
@ -0,0 +1,10 @@
|
|||
<ul>
|
||||
<% @pages.each do |page| %>
|
||||
<li>
|
||||
<%= page.name %>
|
||||
<a href="<%= pages_edit_view_path(:id=>page.id) %>" >Edit View</a>
|
||||
<a href="<%= pages_preview_path(:id=>page.id) %>" >Preview</a>
|
||||
<%= page.url %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
|
@ -0,0 +1,17 @@
|
|||
<%= form_for @page, url: {action: "create"} do |f| %>
|
||||
<% I18n.available_locales.each do |locale| %>
|
||||
Page name <%= locale.to_s %>:
|
||||
<%= f.fields_for :name_translations do |n| %>
|
||||
<%= n.text_field locale %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
Page id:
|
||||
<%= f.text_field :page_id %>
|
||||
Module :
|
||||
<%= f.select(:module, @modules.map{|m| [m.title,m.key]},{:include_blank => true}) %>
|
||||
Parent page :
|
||||
<%= f.select(:parent_page, @pages.map{|page| [page.name, page.id]},{:include_blank => true}) %>
|
||||
Page number:
|
||||
<%= f.text_field :number %>
|
||||
<%= f.submit "Create Page" %>
|
||||
<% end %>
|
|
@ -6,6 +6,7 @@ require "action_controller/railtie"
|
|||
require "action_mailer/railtie"
|
||||
require "sprockets/railtie"
|
||||
require "rails/test_unit/railtie"
|
||||
require "mongoid/railtie"
|
||||
|
||||
|
||||
# Require the gems listed in Gemfile, including any gems
|
||||
|
@ -31,6 +32,15 @@ module OrbitStore
|
|||
config.assets.paths << "#{path}/assets/images"
|
||||
end
|
||||
|
||||
# tell the I18n library where to find your translations
|
||||
I18n.load_path += Dir[Rails.root.join('lib', 'locale', '*.{rb,yml}')]
|
||||
|
||||
# set default locale to something other than :en
|
||||
I18n.default_locale = :en
|
||||
I18n.available_locales = [:en, :zh_tw]
|
||||
config.autoload_paths += %W(#{config.root}/lib)
|
||||
|
||||
|
||||
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
||||
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
||||
# config.time_zone = 'Central Time (US & Canada)'
|
||||
|
|
|
@ -20,4 +20,4 @@
|
|||
# available at http://guides.rubyonrails.org/i18n.html.
|
||||
|
||||
en:
|
||||
hello: "Hello world"
|
||||
more: "More"
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
zh_tw:
|
||||
more: "更多"
|
|
@ -11,6 +11,7 @@ development:
|
|||
hosts:
|
||||
- localhost:27017
|
||||
options:
|
||||
|
||||
# Change the default write concern. (default = { w: 1 })
|
||||
# write:
|
||||
# w: 1
|
||||
|
@ -29,6 +30,7 @@ development:
|
|||
# retry_interval: 1
|
||||
# Configure Mongoid specific options. (optional)
|
||||
options:
|
||||
|
||||
# Includes the root model name in json serialization. (default: false)
|
||||
# include_root_in_json: false
|
||||
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
OrbitStore::Application.routes.draw do
|
||||
resources :users
|
||||
|
||||
get "/pages/edit_view" => "pages#edit_view"
|
||||
get "/pages/preview" => "pages#preview"
|
||||
|
||||
get "/page_parts/getwidgets" => "page_parts#getwidgets"
|
||||
get "/page_parts/info" => "page_parts#info"
|
||||
|
||||
|
||||
resources :pages
|
||||
resources :page_parts
|
||||
|
||||
get "/module/:name" => "home#index"
|
||||
get "/module/:name/show" => "home#show"
|
||||
|
@ -8,7 +17,14 @@ OrbitStore::Application.routes.draw do
|
|||
|
||||
# You can have the root of your site routed with "root"
|
||||
root 'home#index'
|
||||
scope "(:locale)", locale: /en|zh_tw/ do
|
||||
|
||||
get ':page_id(/:page_id(/:page_id))', to: 'pages#show'
|
||||
get ':page_id(/:uid(/:slug))', to: 'pages#moduleShow'
|
||||
get ':page_id(/:page_id(/:uid(/:slug)))', to: 'pages#moduleShow'
|
||||
get ':page_id(/:page_id(/:page_id(/:uid(/:slug))))', to: 'pages#moduleShow'
|
||||
resources :pages
|
||||
end
|
||||
# Example of regular route:
|
||||
# get 'products/:id' => 'catalog#view'
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
require 'orbit_app/register_module'
|
||||
require 'orbit_app/module/registration'
|
||||
|
||||
module OrbitApp
|
||||
extend RegisterModule
|
||||
end
|
|
@ -0,0 +1,54 @@
|
|||
#This is a core class of Orbit Kernel. This class will register a module and set the properties defined in the module's initializer
|
||||
#file.
|
||||
module OrbitApp
|
||||
module Module
|
||||
module Registration
|
||||
module ClassMethods
|
||||
|
||||
@@registrations = []
|
||||
|
||||
def new(name,&block)
|
||||
@@registrations << RegisteredModule.new(name,&block)
|
||||
end
|
||||
|
||||
def find_by_key(key)
|
||||
@@registrations.each{|t|
|
||||
return t if t.key.eql?(key)
|
||||
}
|
||||
return nil
|
||||
end
|
||||
|
||||
def all
|
||||
return @@registrations
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included(other)
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class RegisteredModule
|
||||
attr_reader :name,:key,:module_label
|
||||
|
||||
def initialize(name,&block)
|
||||
@name = name
|
||||
@key = @name.underscore.singularize
|
||||
# @module_label = 'rulingcom.errors.init.module_app_noname'
|
||||
setup_module_app
|
||||
end
|
||||
|
||||
def get_module_app
|
||||
ModuleApp.find_by(key: @key, title: name) rescue nil
|
||||
end
|
||||
|
||||
def setup_module_app
|
||||
module_app = get_module_app
|
||||
module_app = ModuleApp.new(:key=>@key,:title=>name) if module_app.nil?
|
||||
module_app.save(:validate=>false)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,10 @@
|
|||
#This module will initialize the registration process for a ModuleApp
|
||||
module OrbitApp
|
||||
module RegisterModule
|
||||
def registration(name,type ={:type=> "ModuleApp"} ,&block)
|
||||
if type[:type].eql?("ModuleApp")
|
||||
Module::Registration.new(name,&block)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,14 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AnnouncementsControllerTest < ActionController::TestCase
|
||||
test "should get index" do
|
||||
get :index
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get show" do
|
||||
get :show
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
require 'test_helper'
|
||||
|
||||
class BackendControllerTest < ActionController::TestCase
|
||||
test "should get index" do
|
||||
get :index
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
title: MyString
|
||||
body: MyString
|
||||
|
||||
two:
|
||||
title: MyString
|
||||
body: MyString
|
|
@ -0,0 +1,9 @@
|
|||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
title: MyString
|
||||
key: MyString
|
||||
|
||||
two:
|
||||
title: MyString
|
||||
key: MyString
|
|
@ -0,0 +1,9 @@
|
|||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
page_id: MyString
|
||||
child_id: MyString
|
||||
|
||||
two:
|
||||
page_id: MyString
|
||||
child_id: MyString
|
|
@ -0,0 +1,4 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AnnouncementsHelperTest < ActionView::TestCase
|
||||
end
|
|
@ -0,0 +1,4 @@
|
|||
require 'test_helper'
|
||||
|
||||
class BackendHelperTest < ActionView::TestCase
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AnnouncementTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
require 'test_helper'
|
||||
|
||||
class ModuleAppTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
require 'test_helper'
|
||||
|
||||
class PageRelationshipTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
Loading…
Reference in New Issue