Merge branch 'master' into ydu

This commit is contained in:
Harry Bomrah 2014-12-02 15:40:03 +08:00
commit 933d24d778
15 changed files with 202 additions and 46 deletions

View File

@ -55,9 +55,6 @@ class Admin::SitesController < OrbitAdminController
def preference
end
def update_manager
end
def update_orbit
end
@ -80,6 +77,7 @@ class Admin::SitesController < OrbitAdminController
end
def update_manager
@store_permissions = check_store_permissions
end
def get_update_history
@ -94,6 +92,8 @@ class Admin::SitesController < OrbitAdminController
end
def update_orbit
store_permissions = check_store_permissions
if store_permissions["permission_granted"]
result = ""
need_stash = %x(git diff).blank?
%x(git stash) unless need_stash
@ -105,10 +105,20 @@ class Admin::SitesController < OrbitAdminController
result = "failed"
else
result = "success"
Bundler.with_clean_env { `cd #{Rails.root} && bundle install` }
Bundler.with_clean_env { `cd #{Rails.root} && bundle update` }
end
render :text => result
else
render :json => store_permissions.to_json
end
end
def bundle_install
Bundler.with_clean_env { `cd #{Rails.root} && bundle update` }
%x(kill -s USR2 `cat tmp/pids/unicorn.pid`)
sleep 5
render :nothing => true
end
def restart_server

View File

@ -63,7 +63,7 @@ class Admin::StoreController < OrbitAdminController
private
def store_url
@store_url = "http://store.tp.rulingcom.com"
@store_url = OrbitStore::URL
# @store_url = "http://localhost:3000"
end
end

View File

@ -81,5 +81,4 @@ class OrbitAdminController < ApplicationController
@current_user_is_sub_manager = current_user.is_sub_manager?(@module_app) rescue false
end
end

View File

@ -163,12 +163,16 @@ class PagesController < ApplicationController
}
end
else
if !module_app.key.eql?("page_content")
categories = module_app.categories.collect do |cat|
{
"title" => cat.title,
"id" => cat.id.to_s
}
end
else
categories = []
end
end
roles = roles.nil? ? [] : roles
@ -200,6 +204,9 @@ class PagesController < ApplicationController
@modules = ModuleApp.all.frontend_enabled
@module_app = ModuleApp.find_by_key(@page.module) rescue nil
@categories = @module_app.categories rescue []
if @module_app.key.eql?("page_content")
@categories = []
end
@tags = @module_app.tags rescue []
if @module_app.key.eql?("member")
@roles = Role.order_by(:_id=>'ASC').all.collect do |role|
@ -317,8 +324,10 @@ class PagesController < ApplicationController
@part_partials.each do |key, partial|
html_string = ""
partial.each do |p|
if !p.nil?
html_string = html_string + p
end
end
pp = doc.css("*[#{key}]")
if !pp.blank?
pp = pp[0]
@ -391,17 +400,20 @@ class PagesController < ApplicationController
page = Page.find(params[:page][:parent_page])
page.url = page.url == "/" ? "" : page.url
@url = page.url + "/#{params[:page][:page_id]}"
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, :member_sort_position, enabled_for_sitemap: [], enabled_for: [], menu_enabled_for: [], categories: [], tags: [], role_status: [], name_translations: [:en, :zh_tw],external_url_translations: [:en, :zh_tw])
valid_locales = current_site.valid_locales rescue []
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, :member_sort_position, enabled_for_sitemap: [], enabled_for: [], menu_enabled_for: [], categories: [], tags: [], role_status: [], name_translations: valid_locales ,external_url_translations: valid_locales)
p["url"] = @url
if p["external_url_translations"]
p["external_url_translations"]["en"] = p["external_url_translations"]["en"].sub("http://" + request.host_with_port,"") if p["external_url_translations"]["en"].present?
p["external_url_translations"]["zh_tw"] = p["external_url_translations"]["zh_tw"].sub("http://" + request.host_with_port,"") if p["external_url_translations"]["zh_tw"].present?
current_site.in_use_locales.each do |loc|
p["external_url_translations"][loc.to_s] = p["external_url_translations"][loc.to_s].sub("http://" + request.host_with_port,"") if p["external_url_translations"][loc.to_s].present?
end
end
p
end
def page_update_params
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, :member_sort_position, enabled_for_sitemap: [], enabled_for: [],menu_enabled_for: [], categories: [], tags: [], role_status: [], name_translations: [:en, :zh_tw], external_url_translations: [:en, :zh_tw])
valid_locales = current_site.valid_locales rescue []
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, :member_sort_position, enabled_for_sitemap: [], enabled_for: [],menu_enabled_for: [], categories: [], tags: [], role_status: [], name_translations: valid_locales, external_url_translations: valid_locales)
p["role_status"] = p["role_status"] || []
p["categories"] = p["categories"] || []
p["enabled_for"] = p["enabled_for"] || []
@ -409,8 +421,9 @@ class PagesController < ApplicationController
p["enabled_for_sitemap"] = p["enabled_for_sitemap"] || []
p["enabled_for_mobile"] = p["enabled_for_mobile"] || 0
if p["external_url_translations"]
p["external_url_translations"]["en"] = p["external_url_translations"]["en"].sub("http://" + request.host_with_port,"") if p["external_url_translations"]["en"].present?
p["external_url_translations"]["zh_tw"] = p["external_url_translations"]["zh_tw"].sub("http://" + request.host_with_port,"") if p["external_url_translations"]["zh_tw"].present?
current_site.in_use_locales.each do |loc|
p["external_url_translations"][loc.to_s] = p["external_url_translations"][loc.to_s].sub("http://" + request.host_with_port,"") if p["external_url_translations"][loc.to_s].present?
end
end
p
end

View File

@ -22,7 +22,7 @@ module ApplicationHelper
header = Nokogiri::HTML(header_file_html, nil, "UTF-8")
sub_menu_html = site.sub_menu
html = header.to_s
html = html.gsub("{{site_name}}",site.title)
html = html.gsub("{{site_name}}",(site.title rescue ""))
html = html.gsub("%7B%7Blogo_url%7D%7D",(site.site_logo.url.nil? ? "/assets/site-logo.png" : site.site_logo.url))
if site.sitemap_menu_in_header
sub_menu_html = sub_menu_html + "<a href='/#{I18n.locale.to_s}#{site.site_map_link}'>Sitemap</a>"
@ -144,9 +144,9 @@ module ApplicationHelper
def create_menu(items,level)
html = ""
items.each do |key,item|
li = @menus_items[level].gsub("href_here",item["url"])
li = li.gsub("{{link_name}}",key)
li = li.gsub("target_here",item["target"])
li = @menus_items[level].gsub("href_here",(item["url"] || ""))
li = li.gsub("{{link_name}}",(key || ""))
li = li.gsub("target_here",(item["target"] || ""))
li = request.original_fullpath == item['url'] ? li.gsub("{{active}}","active") : li.gsub("{{active}}","")
if item["children"] && !item["children"].empty?
@ -478,11 +478,14 @@ module ApplicationHelper
end
def get_target(link)
temp_url = URI.parse(link)
target = "_blank"
if !link.nil?
link = link.split("?").first
temp_url = URI.parse(link)
if temp_url.host.nil?
target = "_self"
end
end
target
end

View File

@ -1,3 +1,5 @@
require "uri"
require "net/http"
module OrbitBackendHelper
def self.included(base)
@ -152,6 +154,37 @@ module OrbitBackendHelper
@user_has_privileges
end
def check_store_permissions #checks with the store if it has proper access and rights to access store
store_permission = {}
store_token = current_site.store_token rescue nil
if !store_token.nil?
params_to_send = {'store_token' => current_site.store_token}
uri = URI.parse(OrbitStore::URL)
http = Net::HTTP.new(uri.host,uri.port)
request = Net::HTTP::Get.new("/site/permissions")
request.body = params_to_send.to_query
response = http.request(request)
data = JSON.parse(response.body)
if !data["success"]
case data["error"]
when "INVALID_SITE_TOKEN"
current_site.store_token = nil
current_site.save
end
store_permission["permission_granted"] = false
store_permission["error"] = data["error"]
store_permission["message"] = data["message"]
else
store_permission["permission_granted"] = true
end
else
store_permission["permission_granted"] = false
store_permission["error"] = "SITE_NOT_REGISTERED"
store_permission["message"] = "Site not registered."
end
store_permission
end
def render_401
render "public/401"
end

View File

@ -146,12 +146,7 @@ module OrbitHelper
def self.user_can_edit?(obj)
return false if @current_user.nil?
return true if @current_user.is_admin?
if obj.class.to_s == "PageContext"
return @current_user.is_manager?(@module_app)
else
return @current_user.nil? ? false : user_has_cateogry?(obj.category_id)
end
return @current_user.nil? ? false : self.user_has_cateogry?(obj.category_id)
end
def self.user_access_level?
@ -173,7 +168,9 @@ module OrbitHelper
if @current_user.is_admin? or @current_user.is_manager?(@module_app)
return true
else
return @current_user.approved_categories.include?cat rescue false
category = Category.find(cat) rescue nil
return false if category.nil?
return @current_user.approved_categories.include?category rescue false
end
end

View File

@ -12,6 +12,7 @@ class ModuleApp
field :authorizable_models, type: Array
field :widget_enable, type: Boolean, default: false
field :widget_methods
field :desktop_enabled, type: Boolean, default: false
field :widget_settings
has_many :categories, dependent: :destroy, :autosave => true
@ -19,6 +20,7 @@ class ModuleApp
has_many :authorizations
scope :frontend_enabled, ->{ where(:frontend_enable => true)}
scope :desktop_enabled, ->{ where(:desktop_enabled => true)}
scope :widget_enabled, ->{ where(:widget_enable => true)}
def refetch_setting!(reg)
@ -30,6 +32,7 @@ class ModuleApp
self[:widget_enable] = reg.is_widget_enabled
self[:widget_methods] = reg.get_widget_methods
self[:widget_settings] = reg.get_widget_settings
self[:desktop_enabled] = reg.is_desktop_enabled
end
def sub_managers

View File

@ -0,0 +1,3 @@
class OrbitStore
URL = "http://store.tp.rulingcom.com"
end

View File

@ -2,6 +2,7 @@ class Page
include Mongoid::Document
include Mongoid::Timestamps
include OrbitModel::Impression
include OrbitCategory::Categorizable
field :name, localize: true
field :number, type: Integer

View File

@ -0,0 +1,24 @@
<table class="table table-hover table-striped active-index">
<caption>
<h3>{{page-title}}</h3>
</caption>
<thead>
<tr>
<th class="col-md-2">{{th_category}}</th>
<th class="col-md-2">{{th_act_time_range}}</th>
<th class="col-md-5">{{th_title}}</th>
<th class="col-md-2">{{th_sign_up_time_range}}</th>
<th class="col-md-2">{{th_sign_up}}</th>
</tr>
</thead>
<tbody data-level="0" data-list="acts">
<tr>
<td>{{category}}</td>
<td>{{act_start_date}} ~ <br /> {{act_end_date}}</td>
<td>{{title}}</td>
<td>{{sign_start_date}} ~ <br /> {{sign_end_date}}</td>
<td>{{sign_up}}</i></td>
</tr>
</tbody>
</table>
{{pagination_goes_here}}

View File

@ -0,0 +1,20 @@
<table class="table table-hover table-striped survey-index">
<caption><h3>{{page-title}}</h3></caption>
<thead>
<tr>
<th class="col-md-6">{{th_title}}</th>
<th class="col-md-3">{{th_time_range}}</th>
<th class="col-md-1">{{th_write}}</th>
<th class="col-md-1">{{th_result}}</th>
</tr>
</thead>
<tbody data-level="0" data-list="surveys">
<tr>
<td>{{title}}</td>
<td>{{time_range}}</td>
<td>{{write}}</td>
<td>{{result}}</td>
</tr>
</tbody>
</table>
{{pagination_goes_here}}

View File

@ -1,3 +1,4 @@
<!-- test for some stuff -->
<style type="text/css">
.container{
}
@ -94,6 +95,25 @@
<span class="break"></span>
<span class="panel-title"><%= t("update_manager_.available_updates") %></span>
<span id="num_new_updates" class="badge badge-important pull-right"></span>
<% if !@store_permissions["permission_granted"] %>
<span class="break pull-right"></span>
<small class="pull-right text-error">
<% if @store_permissions["message"].size > 30 %>
<a class="tooltipalert text-error" href="#"
onclick="return false;" title="<%= @store_permissions["message"] %>"><%= @store_permissions["message"][0..17] + "..." %></a>
<script type="text/javascript">
$('.tooltipalert').tooltip({
position: {
my: "center bottom-4",
at: "center top"
}
});
</script>
<% else %>
<%= @store_permissions["message"] %>
<% end %>
</small>
<% end %>
</div>
<div class="pannel-body">
<table class="table table-striped">
@ -104,7 +124,11 @@
</div>
</div>
<div style="height: 55px;">
<% if @store_permissions["permission_granted"] %>
<button id="update_btn" class="btn btn-primary pull-right" style="margin: 10px;"><i class="icon-inbox icon-white"></i> <%= t("update_manager_.system_update") %></button>
<% else %>
<a href="/<%= I18n.locale.to_s %>/admin/designs" class="pull-right">Please register here.</a>
<% end %>
</div>
</div>
<div id="update_status">
@ -113,6 +137,24 @@
<i class="icon-info-sign"></i>
<span class="break"></span>
<span class="panel-title"><%= t("update_manager_.update_status") %></span>
<% if !@store_permissions["permission_granted"] %>
<small class="pull-right text-error">
<% if @store_permissions["message"].size > 30 %>
<a class="tooltipalert text-error" href="#"
onclick="return false;" title="<%= @store_permissions["message"] %>"><%= @store_permissions["message"][0..17] + "..." %></a>
<script type="text/javascript">
$('.tooltipalert').tooltip({
position: {
my: "center bottom-4",
at: "center top"
}
});
</script>
<% else %>
<%= @store_permissions["message"] %>
<% end %>
</small>
<% end %>
</div>
<div class="pannel-body">
<div id="update_done" class="alert alert-success" style="font-size: 16px; text-align: center; margin: 0px;">

View File

@ -24,4 +24,3 @@ gem "announcement_link_widget", git: "http://gitlab.tp.rulingcom.com/harry/annou
#desktop
gem "orbit_4_5_desktop", git: 'http://gitlab.tp.rulingcom.com/ray/orbit-4-5-desktop.git'

View File

@ -40,7 +40,7 @@ module OrbitApp
end
class RegisteredModule
attr_reader :name,:key,:base_path, :module_label,:widget_methods,:authorizable_models,:is_authorizable, :data_count, :widget_settings, :icon_class_no_sidebar
attr_reader :name,:key,:base_path, :module_label,:widget_methods,:authorizable_models,:is_authorizable, :data_count, :widget_settings, :icon_class_no_sidebar,:desktop_enabled
def initialize(name,&block)
@name = name
@ -52,6 +52,7 @@ module OrbitApp
@is_taggable = false
@authorizable_models = []
@is_authorizable = false
@desktop_enabled = false
@taggable_model = nil
@is_categorizable = false
@is_frontend_enabled = false
@ -130,6 +131,14 @@ module OrbitApp
authorizable_on
end
def desktop_enabled(status)
@desktop_enabled = status
end
def is_desktop_enabled
@desktop_enabled
end
def is_authorizable
@is_authorizable
end