member plugin edit
This commit is contained in:
commit
bc44d38948
4
Gemfile
4
Gemfile
|
@ -1,5 +1,5 @@
|
|||
source 'http://rubygems.org'
|
||||
gem 'rails'
|
||||
gem 'rails', "~> 3.2.9"
|
||||
|
||||
gem "brakeman"
|
||||
gem 'mime-types'
|
||||
|
@ -11,7 +11,7 @@ gem "net-ldap", "~> 0.3.1"
|
|||
gem 'devise', '1.5.3'
|
||||
gem 'exception_notification' # Send error trace
|
||||
gem 'execjs'
|
||||
gem 'jquery-rails'
|
||||
gem 'jquery-rails', '2.1.4'
|
||||
gem 'jquery-ui-rails'
|
||||
gem 'kaminari', :git => 'git://github.com/amatsuda/kaminari.git'
|
||||
|
||||
|
|
|
@ -15,4 +15,3 @@
|
|||
//= require orbitTimeline
|
||||
//= require orbitdesktop
|
||||
//= require desktop/books_pages
|
||||
//= require desktop/seminar_pages
|
||||
|
|
|
@ -25,8 +25,8 @@ $('#index').live('pageinit',function(){
|
|||
$(".slideImg").muImageResize({width: $globalW, height: Math.floor($globalW/720*240)});
|
||||
$(this).find(".newpic img").muImageResize({width: 280, height: 200});
|
||||
$('.slideshow').cycle({
|
||||
fx:'scrollLeft',
|
||||
timeout: 6000,
|
||||
fx: $effect,
|
||||
timeout: $timeout
|
||||
});
|
||||
$(".newlist").css({
|
||||
"width" : $(".newitem").outerWidth()*(Math.floor($globalW/$(".newitem").outerWidth()))+30,
|
||||
|
@ -40,8 +40,9 @@ $('#index').live('pageinit',function(){
|
|||
$('#announcement_content').live('pageinit',function(){
|
||||
$(this).find(".newpic img").muImageResize({width: 320, height: 220});
|
||||
});
|
||||
var mobileDemo = { 'center': '24.987449, 121.576117', 'zoom': 17 };
|
||||
|
||||
$('#map').live('pageinit', function() {
|
||||
var mobileDemo = { 'center': $map_center, 'zoom': $map_zoom };
|
||||
var $windowH = $(window).height();
|
||||
$("#map_canvas").css({
|
||||
'height' : $windowH,
|
||||
|
@ -50,7 +51,7 @@ $('#map').live('pageinit', function() {
|
|||
$('#map_canvas').gmap({'center': mobileDemo.center, 'zoom': mobileDemo.zoom, 'disableDefaultUI':false, 'callback': function() {
|
||||
var self = this;
|
||||
self.addMarker({'position': this.get('map').getCenter() }).click(function() {
|
||||
self.openInfoWindow({ 'content': "<%= I18n.t('mobile.location_description') %>" }, this);
|
||||
self.openInfoWindow({ 'content': $info }, this);
|
||||
});
|
||||
}});
|
||||
}).load('basic_map');
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
//= require jquery.form
|
||||
//= require bootstrap
|
||||
//= require jquery.masonry.min
|
||||
//= require jquery.isotope.min
|
||||
//= require jquery.tinyscrollbar.min
|
||||
//= require orbit-1.0
|
||||
//= require tinymce-jquery
|
||||
|
|
|
@ -1,28 +1,42 @@
|
|||
$(document).on('click', '.orbit-bar-search', function (){
|
||||
if ($(this).parents('.search').hasClass('visible')){
|
||||
$(this).parents('.search').stop().animate({
|
||||
'width':'28px',
|
||||
},500);
|
||||
$('.navbar-search').stop().animate({
|
||||
'left':'30px',
|
||||
'opacity':'0',
|
||||
},200);
|
||||
$(this).parents('.search').css({
|
||||
'background-color': 'transparent',
|
||||
|
||||
$(document).ready(function(){
|
||||
$('.search').tooltip({
|
||||
placement: "bottom"
|
||||
});
|
||||
$(this).parents('.search').removeClass('visible');
|
||||
}
|
||||
else{
|
||||
});
|
||||
$(document).on('mouseenter', '.orbit-bar-search', function (){
|
||||
$(this).parents('.search').stop().animate({
|
||||
'width':'265px',
|
||||
},200);
|
||||
$('.navbar-search').stop().animate({
|
||||
'left':'7px',
|
||||
'left':'4px',
|
||||
'opacity':'1'
|
||||
},500);
|
||||
$(this).parents('.search').css({
|
||||
'background-color': 'rgba(0, 0, 0, 0.5)',
|
||||
});
|
||||
$(this).parents('.search').addClass('visible');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).on('mouseleave', '.search.visible', function (){
|
||||
$(this).stop().animate({
|
||||
'width':'28px',
|
||||
},500);
|
||||
$('.navbar-search').stop().animate({
|
||||
'left':'30px',
|
||||
'opacity':'0',
|
||||
},200);
|
||||
$(this).css({
|
||||
'background-color': 'transparent',
|
||||
});
|
||||
$(this).removeClass('visible');
|
||||
});
|
||||
|
||||
$(document).on("mouseenter",".orbit-bar-language, .language-menu",function(){
|
||||
$(this).parents('.language').addClass("open")
|
||||
})
|
||||
|
||||
$(document).on("mouseleave",".orbit-bar-language, .language-menu",function(){
|
||||
$(this).parents('.language').removeClass("open")
|
||||
})
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
function get_part_id(){
|
||||
return $(".edit_page_part").attr("action").split('/').pop();
|
||||
return $(".edit_page_part,.edit_page").attr("action").split('/').pop();
|
||||
}
|
||||
|
||||
function get_object_path(){
|
||||
a = window.location.href.split('/');
|
||||
a.pop();
|
||||
return a.join('/');
|
||||
}
|
||||
|
||||
$("div.editable").live("mouseenter mouseleave", function (event) {
|
||||
|
@ -10,26 +16,26 @@ $("#page_design").live('change', function() {
|
|||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_themes');
|
||||
});
|
||||
|
||||
$("#page_module_app_id").live('change', function() {
|
||||
var app_id = $(this).val();
|
||||
if(app_id!=''){
|
||||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_frontend_pages',function(data, textStatus){
|
||||
if(textStatus == 'success'){
|
||||
$(this).after(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
else{
|
||||
$("#app_page_url").children().remove();
|
||||
}
|
||||
});
|
||||
// $("#page_module_app_id").live('change', function() {
|
||||
// var app_id = $(this).val();
|
||||
// if(app_id!=''){
|
||||
// $.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_after_module_changed',function(data, textStatus){
|
||||
// if(textStatus == 'success'){
|
||||
// $(this).after(data);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// else{
|
||||
// $("#app_page_url").children().remove();
|
||||
// }
|
||||
// });
|
||||
|
||||
$("#module_app_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_widgets?part_id=' + get_part_id());
|
||||
$.getScript(get_object_path() + '/reload_after_module_changed?module_app_id='+$(this).val()); //?part_id=' + get_part_id());
|
||||
});
|
||||
|
||||
$("#widget_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_widget_styles?module_app_id=' + $("#module_app_list select").val() + '&part_id=' + get_part_id());
|
||||
$("#widget_list select,#frontend_list select").live('change', function() {
|
||||
$.getScript(get_object_path() +'/reload_after_list_changed?frontend=' + $(this).val() + '&module_app_id=' + $("#module_app_list select").val() );//+ '&part_id=' + get_part_id());
|
||||
});
|
||||
|
||||
$("#tag_list select").live('change', function() {
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
//= require jquery.ui.sortable
|
||||
//= require jquery_ujs
|
||||
//= require bootstrap
|
||||
//= require jquery.isotope.min
|
||||
//= require jquery.tinyscrollbar.min
|
||||
//= require orbit-1.0
|
||||
//= require orbit-bar-search
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
label{
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
.style_switch{}
|
||||
|
||||
.style_switch ul{}
|
||||
.style_switch ul{
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.style_switch li{
|
||||
float: left;
|
||||
|
@ -9,17 +14,20 @@
|
|||
width: 103px;
|
||||
}
|
||||
.style_radio{
|
||||
margin: 0 0 5px 10px;
|
||||
cursor: pointer;
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
.style_img{
|
||||
display: block;
|
||||
margin: 0 0 5px;
|
||||
margin: 5px 0 5px -28px;
|
||||
}
|
||||
|
||||
.style_description{
|
||||
color: #6B6B6B;
|
||||
display: block;
|
||||
margin: 0 0 0 5px;
|
||||
font-size: 12px;
|
||||
margin: 0 0 0 -25px;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
label{
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
*= require list
|
||||
*= require widget
|
||||
*= require scroll_style
|
||||
*= require isotope
|
||||
*= require icons
|
||||
*= require site-map
|
||||
*= require lib/bootstrap-datetimepicker
|
||||
|
|
|
@ -9,32 +9,6 @@ class Admin::ModuleAppsController < ApplicationController
|
|||
end
|
||||
|
||||
|
||||
def reload_frontend_pages
|
||||
@categories =[]
|
||||
@module_app = ModuleApp.find(params[:id])
|
||||
|
||||
@frontend_path = @module_app.widgets.keys[0] if ( !@module_app.widgets.blank? && @module_app.widgets[0].blank? )
|
||||
|
||||
@frontend_style = @module_app.widgets[@frontend_path] if ( !@frontend_path.blank? )
|
||||
|
||||
case @module_app.key
|
||||
when 'announcement'
|
||||
@categories = BulletinCategory.all
|
||||
@tags = AnnouncementTag.all
|
||||
when 'news'
|
||||
@categories = NewsBulletinCategory.all
|
||||
@tags = NewsTag.all
|
||||
when 'web_resource'
|
||||
@categories = WebLinkCategory.all
|
||||
@tags = WebResourceTag.all
|
||||
when 'archive'
|
||||
@categories = ArchiveFileCategory.all
|
||||
@tags = ArchiveTag.all
|
||||
end
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
end
|
||||
end
|
||||
|
||||
def module_auth_proc
|
||||
@module_app = ModuleApp.find(params[:id])
|
||||
|
@ -136,7 +110,6 @@ class Admin::ModuleAppsController < ApplicationController
|
|||
end
|
||||
#user is not permited to do that
|
||||
flash[:notice] = t('app_auth.operation_not_permitted')
|
||||
render :nothing => true, :status => 403
|
||||
render :nothing => true,:status => 403
|
||||
end
|
||||
|
||||
end
|
|
@ -1,5 +1,5 @@
|
|||
class Admin::ObjectAuthsController < ApplicationController
|
||||
include OrbitCoreLib::PermissionUnility
|
||||
include OrbitCoreLib::PermissionUtility
|
||||
layout "new_admin"
|
||||
before_filter :force_order
|
||||
# before_filter :is_admin? ,:only => :index
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
class Admin::ObjectAuthsNewInterfaceController < OrbitBackendController
|
||||
include OrbitCoreLib::PermissionUnility
|
||||
include OrbitCoreLib::PermissionUtility
|
||||
before_filter :force_order
|
||||
|
||||
def set_module_app
|
||||
@module_app = ModuleApp.where(:title=>'Announcement').first
|
||||
end
|
||||
|
||||
|
||||
def setting
|
||||
@sys_users = User.all(conditions: {admin: false}).includes(:avatar).not_guest_user
|
||||
|
@ -59,6 +63,7 @@ class Admin::ObjectAuthsNewInterfaceController < OrbitBackendController
|
|||
|
||||
def force_order
|
||||
authenticate_user!
|
||||
set_module_app
|
||||
setup_vars
|
||||
check_if_user_can_do_object_auth
|
||||
end
|
||||
|
|
|
@ -25,31 +25,28 @@ class Admin::PagePartsController < ApplicationController
|
|||
def edit
|
||||
@part = PagePart.find(params[:id])
|
||||
@module_apps = ModuleApp.excludes(widgets: nil).where(enable_frontend: true).order_by(:title, :asc)
|
||||
@module_app = @part.module_app ? @part.module_app : @module_apps[0]
|
||||
@module_app = @part.module_app ? @part.module_app : nil
|
||||
@user_choose = @part.widget_path
|
||||
@r_tag = @part.public_r_tag.blank? ? LIST[:public_r_tags][0] : @part.public_r_tag
|
||||
@tag_objects = @r_tag.classify.constantize.all rescue nil
|
||||
|
||||
if @module_app
|
||||
@widget_path = @part.widget_path ? @part.widget_path : @module_app.widgets.keys[0]
|
||||
@widget_style = @module_app.get_widget_style[@widget_path][:style] unless @widget_path.nil? or @module_app.nil?
|
||||
end
|
||||
|
||||
if @module_app.widgets.any?{|b| b.class == Array}
|
||||
|
||||
unless @module_app.nil?
|
||||
@categories = @module_app.get_categories
|
||||
@tags = @module_app.get_tags
|
||||
end
|
||||
|
||||
@widget_path = @part.widget_path ? @part.widget_path : (@module_app.widgets.keys[0] rescue nil)
|
||||
|
||||
if @module_app && @module_app.widgets.any?{|b| b.class == Array}
|
||||
@widget_style = @module_app.widgets[@widget_path] if !@widget_path.blank? && !@module_app.widgets.blank?
|
||||
end
|
||||
|
||||
case @module_app.key
|
||||
when 'announcement'
|
||||
@categories = BulletinCategory.all
|
||||
@tags = AnnouncementTag.all
|
||||
when 'gallery'
|
||||
@albums = GalleryAlbum.all
|
||||
@tags = []
|
||||
when 'web_resource'
|
||||
@categories = WebLinkCategory.all
|
||||
@tags = WebResourceTag.all
|
||||
when 'archive'
|
||||
@categories = ArchiveFileCategory.all
|
||||
@tags = ArchiveTag.all
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
|
@ -62,6 +59,9 @@ class Admin::PagePartsController < ApplicationController
|
|||
params[:page_part][:widget_field] = params[:page_part][:widget_field].zip( params[:page_part][:widget_field_type] ) if params[:page_part][:widget_field]
|
||||
params[:page_part][:widget_field_type] = nil
|
||||
|
||||
if params[:page_part][:module_app].blank?
|
||||
params[:page_part][:module_app] = nil
|
||||
end
|
||||
if @part.update_attributes(params[:page_part])
|
||||
set_children_sub_menu(@part) if @part.public_r_tag && @part.public_r_tag.eql?('sub_menu')
|
||||
flash.now[:notice] = t('update.success.content')
|
||||
|
@ -91,30 +91,14 @@ class Admin::PagePartsController < ApplicationController
|
|||
end
|
||||
|
||||
def reload_widgets
|
||||
@part = PagePart.find params[:part_id]
|
||||
@categories =[]
|
||||
@module_app = ModuleApp.find(params[:id])
|
||||
|
||||
@widget_path = @module_app.widgets.keys[0] if ( @module_app.widgets[0].blank? )
|
||||
|
||||
@part = PagePart.find params[:id]
|
||||
@module_app = ModuleApp.find(params[:module_app_id]) rescue nil
|
||||
@categories =@module_app ? @module_app.get_categories : []
|
||||
@tags =@module_app ? @module_app.get_tags : []
|
||||
@widget_path = @module_app.widgets.keys[0] if (@module_app && @module_app.widgets[0].blank? )
|
||||
@widget_style = @module_app.widgets[@widget_path] if ( !@widget_path.blank? )
|
||||
|
||||
case @module_app.key
|
||||
when 'announcement'
|
||||
@categories = BulletinCategory.all
|
||||
@tags = AnnouncementTag.all
|
||||
when 'gallery'
|
||||
@albums = GalleryAlbum.all
|
||||
@tags = []
|
||||
when 'web_resource'
|
||||
@categories = WebLinkCategory.all
|
||||
@tags = WebResourceTag.all
|
||||
when 'archive'
|
||||
@categories = ArchiveFileCategory.all
|
||||
@tags = ArchiveTag.all
|
||||
end
|
||||
|
||||
@part.widget_path = @module_app.widgets.first if @module_app.needs_to_widget_option?
|
||||
@part.widget_path = @module_app.widgets.first if( @module_app)
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
end
|
||||
|
@ -122,9 +106,11 @@ class Admin::PagePartsController < ApplicationController
|
|||
|
||||
def reload_widget_styles
|
||||
@module_app = ModuleApp.find(params[:module_app_id])
|
||||
@part = PagePart.find params[:part_id]
|
||||
@user_choose =@widget_path= params[:id]
|
||||
@widget_style = @module_app.widgets[params[:id]]
|
||||
|
||||
@part = PagePart.find params[:id]
|
||||
@user_choose =@widget_path= params[:frontend]
|
||||
@widget_style = @module_app.widgets[@widget_path]
|
||||
|
||||
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
|
|
|
@ -19,14 +19,20 @@ helper Admin::PagePartsHelper
|
|||
end
|
||||
|
||||
def edit
|
||||
@item = Page.find(params[:id])
|
||||
@item = @page =Page.find(params[:id])
|
||||
@user_choose = @item.app_frontend_url
|
||||
@apps = ModuleApp.excludes(app_pages: nil).entries
|
||||
|
||||
@module_apps = ModuleApp.excludes(widgets: nil).where(enable_frontend: true).order_by(:title, :asc)
|
||||
|
||||
@designs = Design.all.entries
|
||||
@design = @item.design ? @item.design : @designs.first
|
||||
@app_frontend_urls = @item.module_app.app_pages if @item.module_app
|
||||
|
||||
if @item.module_app
|
||||
@app_frontend_urls = @item.module_app.app_pages.map{|t| [I18n.t(t[0]),t[1]]}
|
||||
@app_frontend_urls << [I18n.t('default_widget.name'),'default_widget'] if @item.module_app.has_default_widget?
|
||||
end
|
||||
|
||||
|
||||
if @item.module_app
|
||||
@module_app = @item.module_app
|
||||
|
@ -124,6 +130,41 @@ helper Admin::PagePartsHelper
|
|||
end
|
||||
end
|
||||
|
||||
def reload_front_end_setting
|
||||
@page = Page.find params[:id]
|
||||
@module_app = ModuleApp.find params[:module_app_id]
|
||||
@chosen_frontend = @user_choose = params[:frontend]
|
||||
end
|
||||
|
||||
def reload_frontend_pages
|
||||
@page = Page.find params[:id] rescue nil
|
||||
# @categories =[]
|
||||
@module_app = ModuleApp.find(params[:module_app_id]) rescue nil
|
||||
@app_frontend_urls = @module_app.nil? ? nil : @module_app.app_pages.map{|t| [I18n.t(t[0]),t[1]]}
|
||||
@app_frontend_urls << [I18n.t('default_widget.name'),'default_widget'] if(@module_app && @module_app.has_default_widget?)
|
||||
|
||||
case (@module_app.nil? ? nil : @module_app.key )
|
||||
when 'announcement'
|
||||
@categories = BulletinCategory.all
|
||||
@tags = AnnouncementTag.all
|
||||
when 'news'
|
||||
@categories = NewsBulletinCategory.all
|
||||
@tags = NewsTag.all
|
||||
when 'web_resource'
|
||||
@categories = WebLinkCategory.all
|
||||
@tags = WebResourceTag.all
|
||||
when 'archive'
|
||||
@categories = ArchiveFileCategory.all
|
||||
@tags = ArchiveTag.all
|
||||
else
|
||||
@categories = []
|
||||
@tags = []
|
||||
end
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
end
|
||||
end
|
||||
|
||||
def reload_themes
|
||||
@design = Design.find(params[:id])
|
||||
@themes = @design.themes
|
||||
|
|
|
@ -4,7 +4,7 @@ class Admin::PluginsController < ApplicationController
|
|||
|
||||
def index
|
||||
|
||||
@plugins = OrbitApp::Module::Registration.all
|
||||
@plugins = OrbitApp::Plugin::Registration.all
|
||||
|
||||
if(!params[:show_plugin_profile].nil?)
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ class Admin::UsersNewInterfaceController < OrbitBackendController
|
|||
|
||||
def show
|
||||
@user = User.find(params[:id])
|
||||
@plugins = OrbitApp::Module::Registration.all
|
||||
@plugins = OrbitApp::Plugin::Registration.all
|
||||
|
||||
@profile_data = []
|
||||
@teacher_data = []
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
class DefaultWidgetController< OrbitWidgetController
|
||||
|
||||
def front_end_available(var)
|
||||
@page_part = PagePart.find params[:part_id]
|
||||
@page_part = case params[:item_type]
|
||||
when "page"
|
||||
Page.find params[:page_id]
|
||||
when "page_part"
|
||||
PagePart.find params[:part_id]
|
||||
end
|
||||
@page_part.module_app.enable_frontend?
|
||||
end
|
||||
|
||||
|
@ -9,10 +14,16 @@ class DefaultWidgetController< OrbitWidgetController
|
|||
@tag_class = nil
|
||||
|
||||
@default_widget = @page_part.module_app.get_default_widget
|
||||
@widget_image_field = @default_widget[:image]
|
||||
data_limit = @page_part.widget_data_count.is_a?(Fixnum) ? @page_part.widget_data_count : (@page_part.widget_data_count.to_i rescue 3)
|
||||
@data = eval(@default_widget["query"]).limit(data_limit).includes(@widget_image_field)
|
||||
@widget_image_field = @default_widget["image"] || @default_widget[:image]
|
||||
data_limit = case @page_part
|
||||
when Page
|
||||
@fields = @page_part.frontend_field
|
||||
@page_part.frontend_data_count.is_a?(Fixnum) ? @page_part.frontend_data_count : (@page_part.frontend_data_count.to_i rescue 3)
|
||||
when PagePart
|
||||
@fields = @page_part.widget_field
|
||||
@page_part.widget_data_count.is_a?(Fixnum) ? @page_part.widget_data_count : (@page_part.widget_data_count.to_i rescue 3)
|
||||
end
|
||||
@data = eval(@default_widget["query"]).limit(data_limit).includes(@widget_image_field)
|
||||
|
||||
case params[:type]
|
||||
when "typeA"
|
||||
|
@ -26,15 +37,6 @@ class DefaultWidgetController< OrbitWidgetController
|
|||
render "typeC"
|
||||
end
|
||||
|
||||
# {"inner"=>"true",
|
||||
# "category_id"=>"false",
|
||||
# "tag_id"=>"",
|
||||
# "page"=>"",
|
||||
# "search_query"=>"",
|
||||
# "part_title"=>"",
|
||||
# "part_id"=>"50ac426f83e75219d20000a7",
|
||||
# "controller"=>"default_widget",
|
||||
# "action"=>"default_widget",
|
||||
# "type"=>"typeA"}
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,75 +0,0 @@
|
|||
class DesktopPublicationsController< ApplicationController
|
||||
def journal_p
|
||||
render "desktop/journal_p", :layout => false
|
||||
end
|
||||
|
||||
def journal_p_list
|
||||
render "desktop/journal_pages/list", :layout => false
|
||||
end
|
||||
|
||||
def journal_p_add
|
||||
debugger
|
||||
render "desktop/journal_pages/add", :layout => false
|
||||
end
|
||||
|
||||
def books
|
||||
render "desktop/books", :layout => false
|
||||
end
|
||||
|
||||
def books_list
|
||||
render "desktop/books/list", :layout => false
|
||||
end
|
||||
|
||||
def books_add
|
||||
render "desktop/books/add", :layout => false
|
||||
end
|
||||
|
||||
def seminar_p
|
||||
render "desktop/seminar_p", :layout => false
|
||||
end
|
||||
|
||||
def seminar_p_list
|
||||
render "desktop/seminar_pages/list", :layout => false
|
||||
end
|
||||
|
||||
def seminar_p_add
|
||||
render "desktop/seminar_pages/add", :layout => false
|
||||
end
|
||||
|
||||
def create_journal
|
||||
Journal.create(user_id: current_user.id, title: "Ice Cream Sandwich")
|
||||
b = Array.new
|
||||
b << {"success"=>"true"}
|
||||
render :json=>b.to_json
|
||||
end
|
||||
|
||||
def getjournals
|
||||
@journals = current_user.journals
|
||||
data = Array.new
|
||||
@journals.each do |journal|
|
||||
@papers = journal.papers.all
|
||||
data << {"title" => journal.title, "papers" => @papers}
|
||||
end
|
||||
render :json=>data.to_json
|
||||
end
|
||||
|
||||
def delete_journal
|
||||
@journals = Journal.find("")
|
||||
@journals.delete
|
||||
b = Array.new
|
||||
b << {"success"=>"true"}
|
||||
render :json=>b.to_json
|
||||
end
|
||||
|
||||
def update_journal
|
||||
@journal = Journal.find("4ff2d6ebbd98eb02b9000017")
|
||||
@papers = @journal.papers
|
||||
@papers.each do |paper|
|
||||
paper.update_attributes(:user_id => current_user.id)
|
||||
end
|
||||
b = Array.new
|
||||
|
||||
b << {"success"=>"true"}
|
||||
render :json=>b.to_json
|
||||
end
|
||||
end
|
|
@ -1,10 +1,6 @@
|
|||
require 'mime/types'
|
||||
|
||||
class DesktopPublicationsController< ApplicationController
|
||||
#def journal_p
|
||||
# render "desktop/journal_p", :layout => false
|
||||
#end
|
||||
|
||||
def books
|
||||
render "desktop/books", :layout => false
|
||||
end
|
||||
|
@ -16,44 +12,4 @@ class DesktopPublicationsController< ApplicationController
|
|||
def books_add
|
||||
render "desktop/books/add", :layout => false
|
||||
end
|
||||
|
||||
def seminar_p
|
||||
render "desktop/seminar_p", :layout => false
|
||||
end
|
||||
|
||||
def seminar_p_list
|
||||
render "desktop/seminar_pages/list", :layout => false
|
||||
end
|
||||
|
||||
def seminar_p_add
|
||||
render "desktop/seminar_pages/add", :layout => false
|
||||
end
|
||||
|
||||
# def create_journal
|
||||
# Journal.create(user_id: current_user.id, title: "Ice Cream Sandwich")
|
||||
# b = Array.new
|
||||
# b << {"success"=>"true"}
|
||||
# render :json=>b.to_json
|
||||
# end
|
||||
#
|
||||
#
|
||||
# def delete_journal
|
||||
# @journals = Journal.find("")
|
||||
# @journals.delete
|
||||
# b = Array.new
|
||||
# b << {"success"=>"true"}
|
||||
# render :json=>b.to_json
|
||||
# end
|
||||
#
|
||||
# def update_journal
|
||||
# @journal = Journal.find("4ff2d6ebbd98eb02b9000017")
|
||||
# @papers = @journal.papers
|
||||
# @papers.each do |paper|
|
||||
# paper.update_attributes(:user_id => current_user.id)
|
||||
# end
|
||||
# b = Array.new
|
||||
#
|
||||
# b << {"success"=>"true"}
|
||||
# render :json=>b.to_json
|
||||
# end
|
||||
end
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
class OrbitBackendController < ApplicationController
|
||||
#before_filter :setup_vars
|
||||
#before_filter :set_current_user
|
||||
|
||||
# before_filter {|c| c.front_end_available(@app_title)}
|
||||
# before_filter :check_user_can_use
|
||||
include OrbitCoreLib::PermissionUnility
|
||||
include OrbitCoreLib::AppBackendUtility
|
||||
include OrbitCoreLib::PermissionUtility
|
||||
include AdminHelper
|
||||
include ApplicationHelper
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
class OrbitFrontendController< OrbitFrontendComponentController
|
||||
|
||||
|
||||
end
|
|
@ -1,3 +1,4 @@
|
|||
class OrbitWidgetController< OrbitFrontendComponentController
|
||||
|
||||
|
||||
end
|
|
@ -10,43 +10,85 @@ module Admin::PagePartsHelper
|
|||
end
|
||||
|
||||
def widget_field_options(i,local_item=nil)
|
||||
local_item = @part if local_item.nil?
|
||||
options = @module_app.widget_fields.collect{|widget_field| [I18n.t(widget_field[1]), widget_field[0]]}
|
||||
local_item = @part if local_item.nil? && @part
|
||||
local_item = @page if local_item.nil? && @page
|
||||
|
||||
options = @module_app.widget_fields.collect do |widget_field|
|
||||
label = I18n.t("#{@module_app.key}.default_widget.#{widget_field[0]}")
|
||||
[label, widget_field[0]]
|
||||
end
|
||||
|
||||
case local_item
|
||||
when Page
|
||||
options_for_select(options, (local_item[:frontend_field][i][0] if (local_item && !local_item[:frontend_field].blank? && !local_item[:frontend_field][i].blank?)) )
|
||||
when PagePart
|
||||
options_for_select(options, (local_item[:widget_field][i][0] if (local_item && !local_item[:widget_field].blank? && !local_item[:widget_field][i].blank?)) )
|
||||
end
|
||||
end
|
||||
|
||||
def widget_fiield_type_options(i,local_item=nil)
|
||||
options = LIST[:widget_field_type].collect{|widget_field| [widget_field.humanize, widget_field]}
|
||||
local_item = @part if local_item.nil?
|
||||
local_item = @part if local_item.nil? && @part
|
||||
local_item = @page if local_item.nil? && @page
|
||||
|
||||
case local_item
|
||||
when Page
|
||||
options_for_select(options, (local_item[:frontend_field][i][1] if (local_item && !local_item[:frontend_field].blank? && !local_item[:frontend_field][i].blank?)) )
|
||||
when PagePart
|
||||
options_for_select(options, (local_item[:widget_field][i][1] if (local_item && !local_item[:widget_field].blank? && !local_item[:widget_field][i].blank?)) )
|
||||
end
|
||||
end
|
||||
|
||||
def tag_checked_value(part,radio_value)
|
||||
part and (part[:tag] == radio_value) ? true : false
|
||||
if radio_value.blank?
|
||||
(part.nil? || part[:tag].blank?)? true : false
|
||||
else
|
||||
part and (part[:tag] == radio_value.to_s) ? true : false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def category_checked_value(part,radio_value)
|
||||
part and (part[:category] == radio_value) ? true : false
|
||||
if radio_value.blank?
|
||||
(part.nil? || part[:category].blank?)? true : false
|
||||
else
|
||||
part and (part[:category] == radio_value.to_s) ? true : false
|
||||
end
|
||||
end
|
||||
|
||||
def style_checked_value(part,radio_value)
|
||||
part and (part.widget_style == radio_value) ? true : false
|
||||
case part
|
||||
when Page
|
||||
if part.frontend_style.nil? && radio_value == "typeA"
|
||||
true
|
||||
else
|
||||
(part.frontend_style == radio_value) ? true : false
|
||||
end
|
||||
when PagePart
|
||||
if part.widget_style.nil? && radio_value == "typeA"
|
||||
true
|
||||
else
|
||||
(part.widget_style == radio_value) ? true : false
|
||||
end
|
||||
when nil
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def nil_radio_button(part,tag_or_cate)
|
||||
field_name = case part
|
||||
when PagePart
|
||||
'page_part'
|
||||
when Page
|
||||
'page'
|
||||
end
|
||||
content_tag :label,:class=>"radio inline" do
|
||||
op = radio_button("page_part", tag_or_cate, '' , :checked => eval("#{tag_or_cate}_checked_value(part,'')"))
|
||||
op = radio_button(field_name, tag_or_cate, '' , :checked => eval("#{tag_or_cate}_checked_value(part,'')"))
|
||||
op << I18n.t("default_widget.no_value")
|
||||
end
|
||||
end
|
||||
|
||||
def show_default_widget_setting_panel
|
||||
if @module_app.has_default_widget? && (!@user_choose.nil? && @user_choose== 'default_widget') #&& @part.widget_path == 'default_widget'
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
@module_app && @module_app.has_default_widget? && (!@user_choose.nil? && @user_choose== 'default_widget') #&& @part.widget_path == 'default_widget'
|
||||
end
|
||||
|
||||
def show_custom_widget_setting_panel
|
||||
|
|
|
@ -16,7 +16,7 @@ module AdminHelper
|
|||
end
|
||||
|
||||
def is_admin?
|
||||
current_or_guest_user.admin?
|
||||
current_or_guest_user.admin? rescue false
|
||||
end
|
||||
|
||||
def is_member?
|
||||
|
|
|
@ -54,8 +54,14 @@ module ApplicationHelper
|
|||
raw(formatted_messages.join)
|
||||
end
|
||||
|
||||
def link_back
|
||||
def link_back(custom_class=nil)
|
||||
case custom_class
|
||||
when nil
|
||||
link_to t('back'), get_go_back, :class => 'nav'
|
||||
else
|
||||
link_to t('back'), get_go_back, :class => custom_class
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# Clean the link back
|
||||
|
@ -197,7 +203,6 @@ module ApplicationHelper
|
|||
javascripts << "<script type='text/javascript' src='/static/jquery.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/bootstrap.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/jquery.tinyscrollbar.min.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/jquery.isotope.min.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/orbit-bar-member.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/orbit_bar.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/orbit-bar-search.js'></script>\n"
|
||||
|
|
|
@ -49,7 +49,8 @@ module DefaultWidgetHelper
|
|||
when nil
|
||||
eval method_entry
|
||||
else
|
||||
eval("#{method_entry}('#{object}')" )
|
||||
object = "'#{object.to_s}'" if object.class == BSON::ObjectId
|
||||
eval("#{method_entry}(#{object})" )
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ class Item
|
|||
include Mongoid::Timestamps
|
||||
include Mongoid::Tree
|
||||
include Mongoid::Tree::Ordering
|
||||
LIST = YAML.load(File.read('config/list.yml'))
|
||||
|
||||
field :name
|
||||
field :path
|
||||
|
@ -15,7 +16,7 @@ class Item
|
|||
|
||||
|
||||
validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/
|
||||
validates :name, :exclusion => { :in => LIST[:forbidden_item_names] }
|
||||
# validates :name, :exclusion => { :in => LIST[:forbidden_item_names] }
|
||||
validates_uniqueness_of :name, :scope => :parent_id
|
||||
validates_presence_of :name
|
||||
validates_associated :parent, :children
|
||||
|
|
|
@ -1,111 +1,130 @@
|
|||
class ModuleApp
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include OrbitCoreLib::ObjectTokenUnility
|
||||
include OrbitCoreLib::ObjectTokenUtility
|
||||
include OrbitApp::ModuleAppMembershipTools
|
||||
|
||||
field :key
|
||||
field :title
|
||||
field :version
|
||||
field :organization
|
||||
field :author
|
||||
field :intro
|
||||
field :update_info
|
||||
field :create_date
|
||||
field :enable_frontend, type: Boolean, :default => true
|
||||
field :sidebar_order#,type: Integer
|
||||
|
||||
def refetch_setting!(reg)
|
||||
# %w{module_label category base_url version organization author intro update_info create_date}.each do |field|
|
||||
# self[field.to_sym] = reg.send field
|
||||
# end
|
||||
self[:app_pages] = reg.get_app_pages
|
||||
self[:enable_frontend] = reg.get_enable_frontend
|
||||
self[:get_widget_style] = reg.get_widgets
|
||||
self[:using_default_widget] = !reg.get_default_widget.blank?
|
||||
self[:widgets] = reg.get_widgets
|
||||
end
|
||||
|
||||
|
||||
# def app_pages
|
||||
# get_registration.get_app_pages
|
||||
# end
|
||||
|
||||
|
||||
def enable_frontend?
|
||||
self[:enable_frontend]
|
||||
end
|
||||
|
||||
def get_default_widget
|
||||
raise 'Need to link with OrbitApp [type: Array]'
|
||||
end
|
||||
|
||||
|
||||
def get_widget_for_select
|
||||
widgets = get_widget_style
|
||||
ary = widgets.collect do |k,v|
|
||||
if k == 'default_widget'
|
||||
[I18n.t('widget.default_widget'),'default_widget']
|
||||
else
|
||||
[I18n.t(v[:label]),k]
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
# def get_widget_style
|
||||
# get_registration.get_widgets
|
||||
# end
|
||||
|
||||
def has_default_widget?
|
||||
self[:widgets].has_key? 'default_widget'
|
||||
end
|
||||
|
||||
def label
|
||||
I18n.t(label_i18n)
|
||||
end
|
||||
|
||||
def label_i18n
|
||||
reg = get_registration
|
||||
reg.nil? ? 'Init is not defined completely' : get_registration.get_label_i18n
|
||||
end
|
||||
|
||||
|
||||
# def needs_to_widget_option?
|
||||
# if self.widget_options
|
||||
# self.widget_options.has_key? widgets.first
|
||||
# else
|
||||
# false
|
||||
# end
|
||||
# end
|
||||
|
||||
def using_default_widget?
|
||||
# !get_registration.get_default_widget.blank?
|
||||
self[:get_default_widget]
|
||||
end
|
||||
|
||||
def widget_fields
|
||||
# binding.pry
|
||||
# raise 'Need to link with OrbitApp [type: Array]'
|
||||
get_registration.get_default_widget_fields
|
||||
end
|
||||
|
||||
# def widgets
|
||||
# # get_registration.get_widgets
|
||||
# # get_registration.get_default_widget
|
||||
# end
|
||||
|
||||
def widget_options(widget_path=nil)
|
||||
get_registration.get_widget_by_path(widget_path)
|
||||
# raise 'Need to link with OrbitApp [type: Hash]'
|
||||
end
|
||||
|
||||
def widget_options_fields_i18n
|
||||
raise 'Need to link with OrbitApp [type: Hash]'
|
||||
end
|
||||
|
||||
def widget_fields_link_method
|
||||
raise 'Need to link with OrbitApp [type: Hash]'
|
||||
end
|
||||
|
||||
field :app_pages ,type: Array
|
||||
# field :widgets ,type: Array
|
||||
field :widgets ,type: Hash
|
||||
field :widget_fields ,type: Array
|
||||
field :widget_options,type:Hash
|
||||
field :widget_options_fields_i18n,type:Hash
|
||||
field :widget_fields_link_method,type:Hash
|
||||
field :get_default_widget,type:Hash
|
||||
|
||||
has_many :managers,as: :managing_app ,:class_name => "AppManager" ,:dependent => :destroy#,:foreign_key => "managing_app_id",:inverse_of => :managing_app
|
||||
has_many :sub_managers,as: :sub_managing_app ,:class_name => "AppManager", :dependent => :destroy#,:foreign_key => "sub_managing_app_id",:inverse_of => :sub_managing_app
|
||||
|
||||
has_many :tags
|
||||
# # has_many :tags
|
||||
has_many :page_parts
|
||||
has_many :pages
|
||||
|
||||
has_one :app_auth,dependent: :delete
|
||||
|
||||
before_save :set_key
|
||||
|
||||
def is_manager?(user)
|
||||
managing_users.include?(user)
|
||||
def get_tags
|
||||
get_registration.get_tags
|
||||
end
|
||||
|
||||
def is_sub_manager?(user)
|
||||
sub_managing_users.include?(user) || is_manager?(user)
|
||||
def get_categories
|
||||
get_registration.get_categories
|
||||
end
|
||||
|
||||
def managing_users
|
||||
self.managers.collect{ |t| t.user }
|
||||
def module_name
|
||||
I18n.t(get_registration.get_label_i18n)
|
||||
end
|
||||
|
||||
def sub_managing_users
|
||||
self.sub_managers.collect{ |t| t.user }
|
||||
def get_registration
|
||||
OrbitApp::Module::Registration.find_by_key(key)
|
||||
end
|
||||
|
||||
def assign_manager(user,assigner)
|
||||
manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if manager.nil?
|
||||
manager = self.managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil))
|
||||
end
|
||||
manager
|
||||
end
|
||||
|
||||
def assign_sub_manager(user,assigner)
|
||||
submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if submanager.nil? && !self.managing_users.include?(user)
|
||||
submanager = self.sub_managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil) )
|
||||
end
|
||||
submanager
|
||||
end
|
||||
|
||||
def remove_manager(user)
|
||||
manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if manager
|
||||
manager.destroy
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def remove_sub_manager(user)
|
||||
submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if submanager
|
||||
submanager.destroy
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def needs_to_widget_option?
|
||||
if self.widget_options
|
||||
self.widget_options.has_key? widgets.first
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def has_default_widget?
|
||||
case self[:widgets]
|
||||
when Array
|
||||
false
|
||||
when Hash
|
||||
self[:widgets].has_key? 'default_widget'
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def set_key
|
||||
self.key = self.title.underscore.singularize if self.title
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class ObjectAuth < PrototypeAuth
|
||||
include OrbitCoreLib::ObjectTokenUnility
|
||||
include OrbitCoreLib::ObjectTokenUtility
|
||||
validates_uniqueness_of :title ,:scope => [:obj_authable_type,:obj_authable_id] #{ |c| }
|
||||
belongs_to :obj_authable, polymorphic: true
|
||||
after_save :check_user_has_can_access_app
|
||||
|
|
|
@ -23,6 +23,15 @@ class PagePart
|
|||
before_save :delete_empty_widget_field
|
||||
after_save :update_parent
|
||||
|
||||
# def module_app
|
||||
# if self[:module_app]
|
||||
# self[:module_app]
|
||||
# elsif self[:kind] == 'module_widget'
|
||||
# self.page.module_app
|
||||
# else
|
||||
# nil
|
||||
# end
|
||||
# end
|
||||
|
||||
protected
|
||||
|
||||
|
@ -37,5 +46,4 @@ class PagePart
|
|||
self.page.save
|
||||
end
|
||||
|
||||
|
||||
end
|
|
@ -0,0 +1,61 @@
|
|||
class LocationUploader < CarrierWave::Uploader::Base
|
||||
|
||||
# Include RMagick or ImageScience support:
|
||||
# include CarrierWave::RMagick
|
||||
# include CarrierWave::ImageScience
|
||||
include CarrierWave::MiniMagick
|
||||
|
||||
# Choose what kind of storage to use for this uploader:
|
||||
# storage :file
|
||||
# storage :s3
|
||||
|
||||
# Override the directory where uploaded files will be stored.
|
||||
# This is a sensible default for uploaders that are meant to be mounted:
|
||||
def store_dir
|
||||
"location/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||
end
|
||||
|
||||
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||
# def default_url
|
||||
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
||||
# end
|
||||
|
||||
# Process files as they are uploaded:
|
||||
# process :scale => [200, 300]
|
||||
#
|
||||
# def scale(width, height)
|
||||
# # do something
|
||||
# end
|
||||
|
||||
# Create different versions of your uploaded files:
|
||||
# version :thumb do
|
||||
# process :scale => [50, 50]
|
||||
# end
|
||||
|
||||
version :thumb do
|
||||
process :resize_to_fill => [150, 120]
|
||||
end
|
||||
|
||||
# Add a white list of extensions which are allowed to be uploaded.
|
||||
# For images you might use something like this:
|
||||
# def extension_white_list
|
||||
# %w(jpg jpeg gif png)
|
||||
# end
|
||||
|
||||
# Override the filename of the uploaded files:
|
||||
# def filename
|
||||
# "something.jpg" if original_filename
|
||||
# end
|
||||
|
||||
# def manipulate!
|
||||
# raise current_path.inspect
|
||||
# image = ::MiniMagick::Image.open(current_path)
|
||||
# image = yield(image)
|
||||
# image.write(current_path)
|
||||
# ::MiniMagick::Image.open(current_path)
|
||||
# rescue ::MiniMagick::Error, ::MiniMagick::Invalid => e
|
||||
# raise CarrierWave::ProcessingError.new("Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: #{e}")
|
||||
# end
|
||||
|
||||
end
|
||||
|
|
@ -1 +1 @@
|
|||
<%= f.select :module_app_id, @apps.collect { |t| [t.title.capitalize, t.id] }, {:include_blank => true} ,{:rel => admin_module_apps_path } %>
|
||||
<%= f.select :module_app_id, @apps.collect { |t| [t.module_name, t.id] }, {:include_blank => true} ,{:rel => admin_module_apps_path } %>
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
$('#app_page_url').html("<%= escape_javascript(select 'page', 'app_frontend_url', @module_app.app_pages) %>");
|
||||
$('#app_page_frontend_style').html("<%= escape_javascript(select 'page', 'frontend_style', @module_app.widgets[@frontend_path]) if !@frontend_path.blank? %>");
|
||||
$('#app_page_category').html("<%= j (select 'page', 'category', @categories.collect{|category| [category.title, category.id]}, {:include_blank => true}) if @categories %>");
|
||||
$('#app_page_tag').html("<%= j (select 'page', 'tag', @tags.collect{|tag| [tag[I18n.locale], tag.id]}, {:include_blank => true}) if @tags %>");
|
||||
$('#app_page_frontend_field').html("<%= j render '../admin/pages/frontend_fields' %>")
|
|
@ -1,12 +1,20 @@
|
|||
<div class="style_switch well">
|
||||
<label><%= t("default_widget.select_widget_style") %></label>
|
||||
<% if @module_app.widgets[@widget_path].blank? %>
|
||||
<div class="style_switch control-group">
|
||||
<label class="control-label">
|
||||
<%= t("default_widget.select_widget_style") %>
|
||||
</label>
|
||||
<div class="controls well">
|
||||
<% if @module_app.nil? || @module_app.widgets.nil? || (@module_app.widgets[@widget_path].blank? rescue true) %>
|
||||
<%= t("default_widget.no_support_setting")%>
|
||||
<%else%>
|
||||
<%= select('page_part', 'widget_style', @module_app.widgets[@widget_path]) %>
|
||||
<% end %>
|
||||
<% if(@module_app.widget_options && @module_app.widget_options.has_key?(@widget_path)) %>
|
||||
<label><%= t("default_widget.select_widget_ext_option") %></label>
|
||||
<%= render :partial=> "widget_ext_options" %>
|
||||
<%= select('page_part', 'widget_style', @module_app.widgets[@widget_path]["style"]) %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<% if(@module_app && @module_app.widget_options(@widget_path)) %>
|
||||
<div class="style_switch control-group">
|
||||
<label class="control-label"><%= t("default_widget.select_widget_ext_option") %></label>
|
||||
<div class="controls well" >
|
||||
<%= render :partial=> "widget_ext_options" %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
|
@ -1,4 +1,19 @@
|
|||
<div id="widget_field" class="well clear">
|
||||
<% case object%>
|
||||
<% when PagePart %>
|
||||
<% object_name = 'page_part' %>
|
||||
<% field_name = 'widget_field' %>
|
||||
<% data_count = 'widget_data_count' %>
|
||||
<% when Page %>
|
||||
<% object_name = 'page' %>
|
||||
<% field_name = 'frontend_field' %>
|
||||
<% data_count = 'frontend_data_count' %>
|
||||
<% end %>
|
||||
|
||||
<div class="style_switch control-group">
|
||||
<label class="control-label">
|
||||
<%= t("default_widget.fields_") %>
|
||||
</label>
|
||||
<div id="widget_field" class="well clear controls">
|
||||
|
||||
|
||||
<div class="rows clear">
|
||||
|
@ -16,19 +31,24 @@
|
|||
<div class="rows clear">
|
||||
<span class="span4">
|
||||
<%= i+1 %>
|
||||
<%= select_tag "page_part[widget_field][]", widget_field_options(i), :include_blank => true %>
|
||||
<%= select_tag "#{object_name}[#{field_name}][]", widget_field_options(i), :include_blank => true %>
|
||||
</span>
|
||||
<span class="span3">
|
||||
<%= select_tag "page_part[widget_field_type][]", widget_fiield_type_options(i), :include_blank => true %> <br />
|
||||
<%= select_tag "#{object_name}[#{field_name}_type][]", widget_fiield_type_options(i), :include_blank => true %> <br />
|
||||
</span>
|
||||
<span class="span5"></span>
|
||||
</div>
|
||||
</div><br/>
|
||||
<% end %>
|
||||
<br/>
|
||||
<div class="rows clear">
|
||||
<span class="span4"><%= label_tag t("default_widget.widget_data_count") %></span>
|
||||
<span class="span4">
|
||||
<%= label_tag t("default_widget.widget_data_count") %>
|
||||
</span>
|
||||
</div>
|
||||
<div class="rows clear">
|
||||
<span class="span4"><%= text_field_tag :widget_data_count,@part.widget_data_count %></span>
|
||||
<span class="span4">
|
||||
<%= text_field_tag "#{object_name}[#{data_count}]",object.send(data_count) %>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,45 +1,58 @@
|
|||
<div class="style_switch well">
|
||||
<label><%= t("default_widget.select_widget_style") %></label>
|
||||
<% field_name='' %>
|
||||
<% case object %>
|
||||
<% when Page %>
|
||||
<% field_name = "page[frontend_style]" %>
|
||||
<% when PagePart %>
|
||||
<% field_name = "page_part[widget_style]" %>
|
||||
<% end %>
|
||||
|
||||
<div class="style_switch control-group">
|
||||
<label class="control-label">
|
||||
<%= t("default_widget.select_widget_style") %>
|
||||
</label>
|
||||
<div class="controls well">
|
||||
<ul class="clear">
|
||||
<li>
|
||||
<label class="radio style_radio">
|
||||
<%= radio_button_tag :widget_style,"typeA",:checked => style_checked_value(@part,"typeA") %>
|
||||
<%= radio_button_tag field_name,"typeA",style_checked_value(object,"typeA") %>
|
||||
1
|
||||
</label>
|
||||
<span class="style_img"><%=image_tag 'module/default_widgets/style01.png'%></span>
|
||||
<span class="style_description"><%= t("default_widget.caption.typeA") %></span>
|
||||
</label>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<label class="radio style_radio">
|
||||
<%= radio_button_tag :widget_style,"typeB_style2",:checked => style_checked_value(@part,"typeB_style2") %>
|
||||
<%= radio_button_tag field_name,"typeB_style2",style_checked_value(object,"typeB_style2") %>
|
||||
2
|
||||
</label>
|
||||
<span class="style_img"><%=image_tag 'module/default_widgets/style02.png'%></span>
|
||||
<span class="style_description"><%= t("default_widget.caption.typeA") %></span>
|
||||
<span class="style_description"><%= t("default_widget.caption.typeB_style2") %></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="radio style_radio">
|
||||
<%= radio_button_tag :widget_style,"typeB_style3",:checked => style_checked_value(@part,"typeB_style3") %>
|
||||
<%= radio_button_tag field_name,"typeB_style3",style_checked_value(object,"typeB_style3") %>
|
||||
3
|
||||
</label>
|
||||
<span class="style_img"><%=image_tag 'module/default_widgets/style03.png'%></span>
|
||||
<span class="style_description"><%= t("default_widget.caption.typeB_style3") %></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="radio style_radio">
|
||||
<%= radio_button_tag :widget_style,"typeB_style4",:checked => style_checked_value(@part,"typeB_style4") %>
|
||||
<%= radio_button_tag field_name,"typeB_style4",style_checked_value(object,"typeB_style4") %>
|
||||
4
|
||||
</label>
|
||||
<span class="style_img"><%=image_tag 'module/default_widgets/style04.png'%></span>
|
||||
<span class="style_description"><%= t("default_widget.caption.typeB_style4") %></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="radio style_radio">
|
||||
<%= radio_button_tag :widget_style,"typeC",:checked => style_checked_value(@part,"typeC") %>
|
||||
<%= radio_button_tag field_name,"typeC",style_checked_value(object,"typeC") %>
|
||||
5
|
||||
</label>
|
||||
<span class="style_img"><%=image_tag 'module/default_widgets/style05.png'%></span>
|
||||
<span class="style_description"><%= t("default_widget.caption.typeC") %></span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
|
@ -1,18 +1,21 @@
|
|||
<%= stylesheet_link_tag "admin/default_widget_setting" %>
|
||||
|
||||
<%= form_for @part, :url => admin_page_part_path(@part) do |f| %>
|
||||
|
||||
<%= form_for @part, :url => admin_page_part_path(@part),:html=>{:class=>"clear form-horizontal edit_page_part"} do |f| %>
|
||||
<% LIST[:page_part_kinds].each do |kind| %>
|
||||
<%= label_tag '',:class=>'checkbox inline' do %>
|
||||
<%= f.radio_button :kind, kind, :class => 'part_kind' %>
|
||||
<%= t(kind, :scope => 'page_part_kinds') %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% LIST[:page_part_kinds].each do |kind| %>
|
||||
<div id='<%= "part_#{kind}" %>' class='part_kind_partial' style="display:<%= kind.eql?(@part.kind) ? 'block' : 'none' %>">
|
||||
<%= render :partial => kind, :locals => {:f => f} %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<p>
|
||||
<%= f.submit t(:update_) %> <%= link_back %>
|
||||
</p>
|
||||
<div class="form-actions form-fixed pagination-right">
|
||||
<%= f.submit t(:update_),:class=>"btn btn-primary" %>
|
||||
<%= link_back("btn") %>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
|
@ -1,39 +1,47 @@
|
|||
<div>
|
||||
<%= f.fields_for :title_translations do |f| %>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<p>
|
||||
<%= f.label :locale, "#{t(:title)} #{I18nVariable.from_locale(locale)}" %>
|
||||
<div class="control-group">
|
||||
<%= f.label :locale, "#{t(:title)} #{I18nVariable.from_locale(locale)}",:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.text_field locale, :value => (@part.title_translations[locale] rescue nil),:size=>30 %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<p id="module_app_list">
|
||||
<label for="age_part[module_app]"><%= t "default_widget.select_module_app" %></label>
|
||||
<%= f.select :module_app, options_from_collection_for_select(@module_apps, :id, :title, :selected => @module_app.id), {}, {:rel => admin_page_parts_path} %>
|
||||
</p>
|
||||
|
||||
<p id="widget_list">
|
||||
<label for="age_part[widget_path]"><%= t "default_widget.select_widget_path" %></label>
|
||||
<%= f.select :widget_path, @module_app.widgets.collect{|k,v| [k.humanize, k]}, {}, { :selected => @part.widget_path, :rel => admin_page_parts_path } %>
|
||||
</p>
|
||||
<div id="module_app_list" class="control-group">
|
||||
<label for="page_part[module_app]" class="control-label">
|
||||
<%= t "default_widget.select_module_app" %>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<%= f.select :module_app, options_from_collection_for_select(@module_apps, :id, :module_name, :selected => (@module_app.id rescue nil)), {:include_blank => true }, {:rel => admin_page_parts_path,:id=>"page_module_app_id"} %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="widget_list" class="control-group">
|
||||
<label for="page_part[widget_path]" class="control-label">
|
||||
<%= t "default_widget.select_widget_path" %>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<%= f.select :widget_path, @module_app ? @module_app.widgets.collect{|k,v| [I18n.t(v["i18n"]),k]} : [], {}, { :selected => @part.widget_path, :rel => admin_page_parts_path } %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="widget_option">
|
||||
<div id="widget_data_source_category" class="well">
|
||||
<%= render :partial => 'widget_data_source_category' %>
|
||||
<div id="widget_data_source_category" class="control-group">
|
||||
<%= render :partial => 'widget_data_source_category' ,:locals=>{:object=>@part}%>
|
||||
</div>
|
||||
<div id="widget_data_source_tag" class="well">
|
||||
<%= render :partial => 'widget_data_source_tag' %>
|
||||
<div id="widget_data_source_tag" class="control-group">
|
||||
<%= render :partial => 'widget_data_source_tag' ,:locals=>{:object=>@part} %>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div id="widget_setting">
|
||||
<%= render :partial => 'widget_setting' ,:locals=>{:f=>f} %>
|
||||
<%= render :partial => 'widget_setting' ,:locals=>{:f=>f,:object=>@part} %>
|
||||
</div>
|
||||
<!-- <span id="widget_options">
|
||||
|
||||
</span> -->
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<div class="style_switch control-group">
|
||||
<label class="control-label">
|
||||
<%= t(label_i18n) %>
|
||||
</label>
|
||||
<div class="controls well">
|
||||
<%= t('default_widget.no_support_setting') %>
|
||||
</div>
|
||||
</div>
|
|
@ -1,12 +1,22 @@
|
|||
<label><%= t "default_widget.data_source.tag" %></label>
|
||||
<% case object %>
|
||||
<% when Page %>
|
||||
<% field_name = 'page' %>
|
||||
<% when PagePart %>
|
||||
<% field_name = 'page_part' %>
|
||||
<% end %>
|
||||
|
||||
|
||||
<label class="control-label"><%= t "default_widget.data_source.category" %></label>
|
||||
<div class="well controls">
|
||||
<% if @categories %>
|
||||
<fieldset>
|
||||
<%= nil_radio_button(@part,:category) %>
|
||||
<%= nil_radio_button(object,:category) %>
|
||||
<%= content_tag_for(:label, @categories,:class=>"radio inline") do |category|%>
|
||||
<%= radio_button("page_part", "category", category.id, :checked => category_checked_value(@part,category.id) )%>
|
||||
<%= radio_button_tag("#{field_name}[category]", category.id, category_checked_value(object,category.id) )%>
|
||||
<%= category.title%>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
<% else %>
|
||||
<%= t("default_widget.no_support_setting")%>
|
||||
<% end %>
|
||||
</div>
|
|
@ -1,12 +1,22 @@
|
|||
<label><%= t "default_widget.data_source.category" %></label>
|
||||
<% case object %>
|
||||
<% when Page %>
|
||||
<% field_name = 'page' %>
|
||||
<% when PagePart %>
|
||||
<% field_name = 'page_part' %>
|
||||
<% end %>
|
||||
|
||||
|
||||
<label class="control-label"><%= t "default_widget.data_source.tag" %></label>
|
||||
<div class="well controls">
|
||||
<% if @categories %>
|
||||
<fieldset>
|
||||
<%= nil_radio_button(@part,:tag) %>
|
||||
<%= nil_radio_button(object,:tag) %>
|
||||
<%= content_tag_for(:label, @tags,:class=>"radio inline") do |tag|%>
|
||||
<%= radio_button("page_part", "tag", tag.id, :checked => tag_checked_value(@part,tag.id) )%>
|
||||
<%= radio_button_tag("#{field_name}[tag]", tag.id, tag_checked_value(object,tag.id) ) %>
|
||||
<%= tag[I18n.locale]%>
|
||||
<% end %>
|
||||
<% end if @tags%>
|
||||
</fieldset>
|
||||
<% else %>
|
||||
<%= t("default_widget.no_support_setting")%>
|
||||
<% end %>
|
||||
</div>
|
|
@ -1,5 +1,6 @@
|
|||
<% @module_app.widget_options[@widget_path].each do |key,options| %>
|
||||
<%= label_tag(t(@module_app.widget_options_fields_i18n[@widget_path][key]))%>
|
||||
<% @module_app.widget_options(@widget_path).get_options.each do |key,settings| %>
|
||||
<% options = settings[:opts] %>
|
||||
<%= label_tag(t(settings[:label_i18n]))%>
|
||||
<% case options%>
|
||||
<% when Hash%>
|
||||
<%= select_tag "page_part[widget_options][#{key}]", options_from_collection_for_select(eval(options["query"]), options["value"], options["label"].to_s, :selected => (@part.widget_options[key] rescue nil)) %>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<% if show_default_widget_setting_panel %>
|
||||
<div id="default_widget">
|
||||
<%= render :partial => 'default_widget_style_panel',:locals=>{:f=>f} %>
|
||||
<%= render :partial => 'default_widget_setting' %>
|
||||
<%= render :partial => 'admin/page_parts/default_widget_style_panel',:locals=>{:f=>f,:object=>object} %>
|
||||
<%= render :partial => 'admin/page_parts/default_widget_setting',:locals=>{:object=>object} %>
|
||||
</div>
|
||||
<% elsif show_custom_widget_setting_panel %>
|
||||
<div id="custom_widget">
|
||||
<%= render :partial => 'custom_widget_setting' %>
|
||||
<%= render :partial => 'admin/page_parts/custom_widget_setting',:locals=>{:object=>object} %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
<%= select 'page_part', 'category', @categories.collect{|category| [category.title, category.id]}, :selected => (@part ? @part[:category] : nil), :include_blank => true if @categories && @categories.size > 0 %>
|
|
@ -1 +0,0 @@
|
|||
<%= select 'page_part', 'tag', @tags.collect{|tag| [tag[I18n.locale], tag.id]}, :selected => (@part ? @part[:tag] : nil), :include_blank => true if @tags && @tags.size > 0 %>
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
<% if show_default_widget_setting_panel %>
|
||||
$('#widget_setting').html("<%= j render :partial => 'default_widget_style_panel' %>");
|
||||
$('#widget_setting').append("<%= j render :partial => 'default_widget_setting' %>");
|
||||
$('#widget_setting').html("<%= j render :partial => 'default_widget_style_panel',:locals=>{:object=>@part} %>");
|
||||
$('#widget_setting').append("<%= j render :partial => 'default_widget_setting',:locals=>{:object=>@part} %>");
|
||||
<% elsif show_custom_widget_setting_panel %>
|
||||
$('#widget_setting').html("<%= j render :partial => 'custom_widget_setting' %>");
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -1,13 +1,18 @@
|
|||
$('#widget_list select').html("<%= j options_for_select(@module_app.widgets.collect{|k,v| k},@part.widget_path) %>");
|
||||
$("#widget_data_source_category").html("<%= j render :partial => 'widget_data_source_category' %>");
|
||||
$("#widget_data_source_tag").html("<%= j render :partial => 'widget_data_source_tag' %>");
|
||||
<% if @module_app%>
|
||||
$('#widget_list select').html("<%= j options_for_select(@module_app.widgets.collect{|k,v| [I18n.t(v['i18n']),k]},@part.widget_path) %>");
|
||||
$("#widget_data_source_category").html("<%= j render :partial => 'widget_data_source_category',:locals=>{:object=>@part} %>");
|
||||
$("#widget_data_source_tag").html("<%= j render :partial => 'widget_data_source_tag',:locals=>{:object=>@part} %>");
|
||||
|
||||
<% if !@part.widget_path.blank? %>
|
||||
<% if @part %>
|
||||
<% if show_default_widget_setting_panel %>
|
||||
$('#widget_setting').html("<%= j render :partial => 'default_widget_style_panel' %>");
|
||||
$('#widget_setting').append("<%= j render :partial => 'default_widget_setting' %>");
|
||||
$('#widget_setting').append("<%= j render :partial => 'default_widget_setting',:locals=>{:object=>@part} %>");
|
||||
<% elsif show_custom_widget_setting_panel %>
|
||||
$('#widget_setting').html("<%= j render :partial => 'custom_widget_setting' %>");
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
$('#widget_option').find("div.well.controls").html("<%= t('default_widget.no_support_setting')%>");
|
||||
$('#widget_setting').html("<%=j render :partial=> 'reset',:locals=>{:label_i18n=>'default_widget.select_widget_style'}%>");
|
||||
$('#widget_list select').html("<%= j options_for_select([]) %>");
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
<%= f.select :module_app_id, @apps.collect { |t| [t.title.capitalize, t.id] }, {:include_blank => true} ,{:rel => admin_module_apps_path } %>
|
||||
<%= f.select :module_app_id, @apps.collect { |t| [t.module_name, t.id] }, {:include_blank => true} ,{:rel => admin_pages_path } %>
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<div class="control-group">
|
||||
<label class="control-label">
|
||||
<%= t("default_widget.select_widget_style") %>
|
||||
</label>
|
||||
<div class="controls well">
|
||||
<%= t("default_widget.no_support_setting")%>
|
||||
</div>
|
||||
</div>
|
|
@ -2,9 +2,12 @@
|
|||
<%= f.hidden_field :parent, :value => (@item.parent.id rescue nil) %>
|
||||
|
||||
<div class="control-group">
|
||||
<%= f.label :name, t(:name), :class => 'control-label' %>
|
||||
<%= f.label :name, '*'+t(:name), :class => 'control-label' %>
|
||||
|
||||
|
||||
<div class="controls">
|
||||
<%= f.text_field :name, :class => 'text input-xlarge' %>
|
||||
<span class="help-inline">請輸入數字或英文,不可使用空白</span>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
|
@ -35,36 +38,37 @@
|
|||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<%= f.label :name, t(:module), :class => 'control-label' %>
|
||||
|
||||
<div class="control-group" id="module_app_list">
|
||||
<%= f.label '',t("default_widget.select_module_app"), :class => 'control-label' %>
|
||||
<div class="controls">
|
||||
<%= render :partial => "app_selector", :locals => { :f => f } %>
|
||||
<span id="app_page_url">
|
||||
<%= select('page','app_frontend_url', @app_frontend_urls, :selected => @item.app_frontend_url ) rescue ''%>
|
||||
</span>
|
||||
<span id="app_page_frontend_style">
|
||||
<%= select('page','frontend_style', @frontend_style, :selected => @item[:frontend_style], :include_blank => true ) rescue ''%>
|
||||
</span>
|
||||
<span id="app_page_category">
|
||||
<%= select('page','category', @categories.collect{|category| [category.title, category.id]}, :selected => @item[:category], :include_blank => true ) rescue ''%>
|
||||
</span>
|
||||
<span id="app_page_tag">
|
||||
<%= select('page','tag', @tags.collect{|tag| [tag[I18n.locale], tag.id]}, :selected => @item[:tag], :include_blank => true ) rescue ''%>
|
||||
</span>
|
||||
<span id="app_page_frontend_field">
|
||||
<%= render 'frontend_fields' %>
|
||||
</span>
|
||||
<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<%= f.label :frontend_data_count, t(:frontend_data_count), :class => 'control-label' %>
|
||||
<div class="controls">
|
||||
<%= f.text_field :frontend_data_count %>
|
||||
|
||||
<div class="control-group" id="frontend_list">
|
||||
<%= f.label '', t("front_page.select_app_url"), :class => 'control-label' %>
|
||||
<div class="controls" id="app_page_url">
|
||||
<%= select('page','app_frontend_url', @app_frontend_urls || [], :selected => @item.app_frontend_url ) rescue ''%>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="app_page_category" class="control-group">
|
||||
<%= render :partial=>"admin/page_parts/widget_data_source_category",:locals=>{:object=>@item} %>
|
||||
</div>
|
||||
|
||||
<div id="app_page_tag" class="control-group">
|
||||
<%= render :partial=>"admin/page_parts/widget_data_source_tag" ,:locals=>{:object=>@item}%>
|
||||
</div>
|
||||
|
||||
<div id="frontend_setting">
|
||||
<%= render :partial => 'frontend_setting', :locals=>{:object=>@item,:f=>f} %>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="control-group">
|
||||
<%= f.label :is_published, "#{t(:is_published)} ?", :class => 'control-label' %>
|
||||
<%= f.label :is_published, "#{t('front_page.is_published')} ?", :class => 'control-label' %>
|
||||
<div class="controls">
|
||||
<label class="radio">
|
||||
<%= f.radio_button :is_published, true %>
|
||||
|
@ -78,7 +82,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<%= f.label :menu_enabled_for, "#{t(:menu_enabled_for)}:", :class => 'control-label' %>
|
||||
<%= f.label :menu_enabled_for, "#{t('front_page.menu_enable_lang')}:", :class => 'control-label' %>
|
||||
<div class="controls">
|
||||
<% @site_valid_locales.each do |valid_locale| %>
|
||||
<label class="checkbox">
|
||||
|
@ -92,7 +96,7 @@
|
|||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<%= f.label :enabled_for, "#{t(:enabled_for)}:", :class => 'control-label' %>
|
||||
<%= f.label :enabled_for, "#{t('front_page.link_enable_lang')}:", :class => 'control-label' %>
|
||||
<div class="controls">
|
||||
<% @site_valid_locales.each do |valid_locale| %>
|
||||
<label class="checkbox">
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
<% if show_default_widget_setting_panel %>
|
||||
<%= render :partial=>'admin/page_parts/widget_setting',:locals=>{:object=>object,:f=>f} %>
|
||||
<% end %>
|
|
@ -1,3 +1,4 @@
|
|||
<%= stylesheet_link_tag "admin/default_widget_setting" %>
|
||||
<% content_for :sidebar do %>
|
||||
<%= render 'admin/items/site_map_left_bar' %>
|
||||
<% end -%>
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<% if show_default_widget_setting_panel %>
|
||||
// $('#app_page_tag').html("<%= j render :partial => 'admin/page_parts/widget_data_source_tag',:locals=>{:object=>@page} %>");
|
||||
|
||||
$('#frontend_setting').html("<%= j render :partial => 'admin/page_parts/default_widget_style_panel',:locals=>{:object=>@page} %>");
|
||||
$('#frontend_setting').append("<%= j render :partial => 'admin/page_parts/default_widget_setting',:locals=>{:object=>@page} %>");
|
||||
<% else %>
|
||||
$('#frontend_setting').html("<%= j render :partial => 'custom_frontend_setting' %>");
|
||||
<% end %>
|
|
@ -0,0 +1,33 @@
|
|||
<% if @module_app %>
|
||||
$('#app_page_category').html("<%= j render :partial => 'admin/page_parts/widget_data_source_category' ,:locals=>{:object=>@page}%>");
|
||||
$('#app_page_tag').html("<%= j render :partial => 'admin/page_parts/widget_data_source_tag',:locals=>{:object=>@page} %>");
|
||||
|
||||
<% if !@module_app.app_pages.blank? %>
|
||||
$('#app_page_url').html("<%= escape_javascript(select 'page', 'app_frontend_url', options_for_select(@app_frontend_urls, @app_frontend_urls.first)) %>");
|
||||
<%else %>
|
||||
$('#app_page_url').html("<%= t('default_widget.no_support_setting')%>");
|
||||
<% end %>
|
||||
|
||||
<% if @app_frontend_urls.first =='default_widget' %>
|
||||
$('#app_page_frontend_style').html("<%= escape_javascript(select 'page', 'frontend_style', @module_app.widgets[@frontend_path]) if !@frontend_path.blank? %>");
|
||||
<% else %>
|
||||
$('#app_page_frontend_style').html("<%= t('default_widget.no_support_setting')%>");
|
||||
<% end %>
|
||||
|
||||
<% if show_default_widget_setting_panel %>
|
||||
$('#app_page_tag').html("<%= j render :partial => 'admin/page_parts/widget_data_source_tag',:locals=>{:object=>@page} %>");
|
||||
|
||||
$('#frontend_setting').html("<%= j render :partial => 'admin/page_parts/default_widget_style_panel',:locals=>{:object=>@page} %>");
|
||||
$('#frontend_setting').append("<%= j render :partial => 'admin/page_parts/default_widget_setting',:locals=>{:object=>@page} %>");
|
||||
<% else %>
|
||||
$('#frontend_setting').html("<%= j render :partial => 'custom_frontend_setting' %>");
|
||||
<% end %>
|
||||
<% else %>
|
||||
|
||||
$('#app_page_url').html("<%= t('default_widget.no_support_setting')%>");
|
||||
$('#app_page_category').find("div.well.controls").html("<%= t('default_widget.no_support_setting')%>");
|
||||
$('#app_page_tag').find("div.well.controls").html("<%= t('default_widget.no_support_setting')%>");
|
||||
|
||||
$('#app_page_url').html("<%= t('default_widget.no_support_setting')%>");
|
||||
$('#frontend_setting').html("<%= j render :partial => 'custom_frontend_setting' %>");
|
||||
<% end %>
|
|
@ -5,7 +5,6 @@
|
|||
<% content_for :page_specific_css do -%>
|
||||
<%= stylesheet_link_tag "member" %>
|
||||
<%= stylesheet_link_tag "site-map" %>
|
||||
<%= stylesheet_link_tag "isotope" %>
|
||||
<% end -%>
|
||||
<% content_for :page_specific_javascript do -%>
|
||||
<%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<% content_for :page_specific_css do -%>
|
||||
<%= stylesheet_link_tag "member" %>
|
||||
<%= stylesheet_link_tag "site-map" %>
|
||||
<%= stylesheet_link_tag "isotope" %>
|
||||
<% end -%>
|
||||
<% content_for :page_specific_javascript do -%>
|
||||
<%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<% content_for :page_specific_css do -%>
|
||||
<%= stylesheet_link_tag "member" %>
|
||||
<%= stylesheet_link_tag "site-map" %>
|
||||
<%= stylesheet_link_tag "isotope" %>
|
||||
<% end -%>
|
||||
<% content_for :page_specific_javascript do -%>
|
||||
<%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<li class="dock_item"><a callback-method='initializeJournalPapers' href="<%= panel_personal_journal_desktop_journal_p_path %>" class="widget_fn wh3 hh3" id='d_journal_p' custom-load="journal" onclick="return false;"><span class="widget_icon"><img src="" alt="Journal Papers" id="journal_p_icon" width="30" height="30"/></span></a></li>
|
||||
|
||||
<li class="dock_item"><a callback-method='initializeSeminar' href="<%= desktop_publications_seminar_p_path %>" class="widget_fn wh3 hh3" id='d_seminar_p' custom-load="seminar" onclick="return false;"><span class="widget_icon"><img src="" alt="Seminar Papers" id="seminar_p_icon" width="30" height="30"/></span></a></li>
|
||||
<li class="dock_item"><a callback-method='initializeConference' href="<%= panel_personal_conference_desktop_conference_p_path %>" class="widget_fn wh3 hh3" id='d_conference_p' custom-load="conference" onclick="return false;"><span class="widget_icon"><img src="" alt="Conference Papers" id="conference_p_icon" width="30" height="30"/></span></a></li>
|
||||
|
||||
<li class="dock_item"><a callback-method='initializeBooks' href="<%= desktop_publications_books_path %>" class="widget_fn wh3 hh3" id='d_books' onclick="return false;"><span class="widget_icon"><img src="" alt="Books" id="books_icon" width="30" height="30"/></span></a></li>
|
||||
|
||||
|
@ -103,3 +103,4 @@
|
|||
o.notify("Welcome "+o.currentUsername+"!!","alert",3);
|
||||
</script>
|
||||
<%= javascript_include_tag "personal_journal" %>
|
||||
<%= javascript_include_tag "personal_conference" %>
|
||||
|
|
|
@ -41,10 +41,10 @@
|
|||
<div class="overview">
|
||||
<div class="s_grid_con s_form">
|
||||
<ul>
|
||||
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Seminar Title</textarea></li>
|
||||
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Conference Title</textarea></li>
|
||||
<li class="s_grid_row">
|
||||
<label>Paper type</label><input type="radio" name="" value="Books" />Oral<input type="radio" name="" value="Chapter" />Poster</li>
|
||||
<li class="s_grid_row"><label>Seminar time</label></li>
|
||||
<li class="s_grid_row"><label>Conference time</label></li>
|
||||
|
||||
<li class="s_grid_row"><select name="" id="" class="s_grid s_grid_1">
|
||||
<option value=""></option>
|
||||
|
|
|
@ -41,10 +41,10 @@
|
|||
<div class="overview">
|
||||
<div class="s_grid_con s_form">
|
||||
<ul>
|
||||
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Seminar Title</textarea></li>
|
||||
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Conference Title</textarea></li>
|
||||
<li class="s_grid_row">
|
||||
<label>Paper type</label><input type="radio" name="" value="Books" />Oral<input type="radio" name="" value="Chapter" />Poster</li>
|
||||
<li class="s_grid_row"><label>Seminar time</label></li>
|
||||
<li class="s_grid_row"><label>Conference time</label></li>
|
||||
|
||||
<li class="s_grid_row"><select name="" id="" class="s_grid s_grid_1">
|
||||
<option value=""></option>
|
||||
|
|
|
@ -41,10 +41,10 @@
|
|||
<div class="overview">
|
||||
<div class="s_grid_con s_form">
|
||||
<ul>
|
||||
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Seminar Title</textarea></li>
|
||||
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Conference Title</textarea></li>
|
||||
<li class="s_grid_row">
|
||||
<label>Paper type</label><input type="radio" name="" value="Books" />Oral<input type="radio" name="" value="Chapter" />Poster</li>
|
||||
<li class="s_grid_row"><label>Seminar time</label></li>
|
||||
<li class="s_grid_row"><label>Conference time</label></li>
|
||||
|
||||
<li class="s_grid_row"><select name="" id="" class="s_grid s_grid_1">
|
||||
<option value=""></option>
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
<div id="seminar_p">
|
||||
<div id="content">
|
||||
<div id="header" class="hh3">
|
||||
<div class="dtitle w2 hh3 hp">
|
||||
<span class="thmtxth">Seminar</span>
|
||||
</div>
|
||||
<div id="search_app" class="hfn w2 hh2 hp thmc3">
|
||||
<input type="text" class="ini_input form" value="Search" id="searchbox" />
|
||||
<input type="submit" class="ini_input submit thmc1" value="Submit"/>
|
||||
</div>
|
||||
</div>
|
||||
<div id="holder">
|
||||
<div id="panel_l" class="ph">
|
||||
<div class="s_menu sm_v" content-type="menu">
|
||||
<ul id='setting_left_nav'>
|
||||
<li><a href="<%= desktop_publications_seminar_p_list_path %>" callback-method="list" class="hh2 w2 hp active thmc1 thmtxt" onclick='return false;'>List</a></li>
|
||||
<li><a href="<%= desktop_publications_seminar_p_add_path %>" callback-method="addseminar" custom-load="add" class="admtxt hh2 w2 hp" onclick='return false;'>Add/Edit</a></li>
|
||||
<li><a href="<%= desktop_publications_seminar_p_add_path %>" callback-method="seminar" class="admtxt hh2 w2 hp" onclick='return false;'>Seminar</a></li>
|
||||
<li><a href="<%= desktop_publications_seminar_p_list_path %>" callback-method="rues" class="admtxt hh2 w2 hp" onclick='return false;'>Co-Authors</a></li>
|
||||
<li><a href="" class="admtxt hh2 w2 hp" onclick='return false;'>Tags & Keywords</a></li>
|
||||
<li><a href="" class="admtxt hh2 w2 hp" onclick='return false;'>Analysis</a></li>
|
||||
<li><a href="" class="admtxt hh2 w2 hp" onclick='return false;'>Import</a></li>
|
||||
<li><a href="" class="admtxt hh2 w2 hp" onclick='return false;'>Export</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="panel_r" container="true" class="ph pw admbg hp">
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -10,25 +10,19 @@
|
|||
</div>
|
||||
<ul class="nav">
|
||||
<li><a href="<%= root_path %>" data-icons=""></a></li>
|
||||
<!-- <li><a href="<%= desktop_path %>" data-icons=""></a></li> -->
|
||||
<li><a href="<%= desktop_path %>" data-icons=""></a></li>
|
||||
</ul>
|
||||
<ul class="nav pull-right">
|
||||
<!--
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" data-icons="" href="#" data-toggle="dropdown"></a>
|
||||
<ul class="dropdown-menu">
|
||||
<% t('ntu.site_names').each do |site| %>
|
||||
<li><%= link_to site[1], get_link(site[0]) %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown language">
|
||||
<a class="dropdown-toggle" href="#" data-toggle="dropdown" data-icons=""></a>
|
||||
<ul class="dropdown-menu language-menu">
|
||||
<% @site_in_use_locales.each do |locale| %>
|
||||
<%= content_tag :li, (link_to t(:_locale, :locale => locale), add_locale(remove_locale((referer rescue request.fullpath)), locale)), :class => (I18n.locale.eql?(locale.to_sym) ? 'active' : nil) %>
|
||||
<% end %>
|
||||
<% #t('ntu.site_names').each do |site| %>
|
||||
<li><%#= link_to site[1], get_link(site[0]) %></li>
|
||||
<%# end %>
|
||||
</ul>
|
||||
</li>
|
||||
-->
|
||||
<li class="search clear" title="<%= t :search_google %>">
|
||||
<a class="orbit-bar-search" href="#" data-icons=""></a>
|
||||
<form class="navbar-search" method="get" action="http://www.google.com/custom">
|
||||
|
@ -41,6 +35,14 @@
|
|||
<%= text_field_tag 'q','',{:class => "search-query span3",:placeholder=> t(:search_google) ,:disabled=> ((@site.search["sitesearch"] || @site.search["domains"] ).blank? rescue true)}%>
|
||||
</form>
|
||||
</li>
|
||||
<li class="dropdown language">
|
||||
<a class="dropdown-toggle orbit-bar-language" href="#" data-toggle="dropdown" data-icons=""></a>
|
||||
<ul class="dropdown-menu language-menu">
|
||||
<% @site_in_use_locales.each do |locale| %>
|
||||
<%= content_tag :li, (link_to t(:_locale, :locale => locale), add_locale(remove_locale((referer rescue request.fullpath)), locale)), :class => (I18n.locale.eql?(locale.to_sym) ? 'active' : nil) %>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
<% if user_signed_in? %>
|
||||
<li class="dropdown active">
|
||||
<a class="orbit-bar-account" href="#" data-toggle="dropdown">
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<ul class="nav nav-list">
|
||||
<%= render ((local_assigns.has_key? :side_bar_content) ? side_bar_content : 'layouts/side_bar_content') %>
|
||||
<%= render :partial=> 'layouts/side_bar_content'%>
|
||||
<%#= render ((local_assigns.has_key? :side_bar_content) ? side_bar_content : 'layouts/side_bar_content') %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,78 +1,15 @@
|
|||
<%#= content_tag :li, :class => active_for_controllers('purchases') do -%>
|
||||
<%#= link_to content_tag(:i, nil, :class => 'icons-purchase') + t('admin.purchase'), admin_purchases_path %>
|
||||
<%# end -%>
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "/static/kernel.js" %>
|
||||
<% end %>
|
||||
|
||||
<%= content_tag :li, :class => (active_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals') || active_for_app_auth('Announcement') || active_for_ob_auths_object("BulletinCategory") ) do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-megaphone') + content_tag(:span, t('announcement.announcement')), panel_announcement_back_end_bulletins_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + (visible_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals')||active_for_ob_auths_object("BulletinCategory"))) do -%>
|
||||
<%= content_tag :li, link_to((t('announcement.all_articles') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_bulletins_path), :class => active_for_action('bulletins', 'index')if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t('announcement.add_new') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_announcement_back_end_bulletin_path), :class => active_for_action('bulletins', 'new') if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t('announcement.categories') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_bulletin_categorys_path), :class =>( active_for_action('bulletin_categorys', 'index') || active_for_ob_auths_object("BulletinCategory") )if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t('announcement.tags') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_tags_path), :class => active_for_action('/panel/announcement/back_end/tags', 'index')if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t('announcement.bulletin.approval_setting') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_approval_setting_path), :class => active_for_action('approvals', 'setting') if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "announcement"}))), :class => active_for_app_auth('Announcement') if (is_admin? rescue nil) %>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('page_contexts') || active_for_app_auth('page_content') || active_for_ob_auths_object("PageContext") do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-newspaper') + content_tag(:span, t(:page)), panel_page_content_back_end_page_contexts_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('page_contexts')) do -%>
|
||||
<%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "page_content"}))), :class => active_for_app_auth('page_content') if (is_admin? rescue nil) %>
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('ad_banners', 'ad_images') ||active_for_ob_auths_object("AdBanner") ||active_for_app_auth('ad_banner') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-landscape') + content_tag(:span, t(:ad_banner)), admin_ad_banners_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('ad_banners', 'ad_images') ) do -%>
|
||||
<%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "ad_banner"}))), :class => active_for_app_auth('ad_banners') if (is_admin? rescue nil) %>
|
||||
<% end -%>
|
||||
<% end %>
|
||||
<%OrbitApp::Module::SideBarRegisition.all.each do |t| %>
|
||||
<%= t.render(request,params,current_user,@module_app) %>
|
||||
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('web_links', '/panel/web_resource/back_end/tags', 'web_link_categorys') || active_for_app_auth('web_resource') || active_for_ob_auths_object("WebLinkCategory") do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-link') + content_tag(:span, t(:link)), panel_web_resource_back_end_web_links_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('web_links', '/panel/web_resource/back_end/tags', 'web_link_categorys')) do -%>
|
||||
<%= content_tag :li, link_to((t(:list_) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_web_links_path), :class => active_for_action('web_links', 'index')if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t(:link) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_web_resource_back_end_web_link_path), :class => active_for_action('web_links', 'new') if (is_manager? rescue nil)%>
|
||||
<%= content_tag :li, link_to((t(:categories) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_web_link_categorys_path), :class => (active_for_action('web_link_categorys', 'index') || active_for_ob_auths_object("WebLinkCategory")) if (is_manager? rescue nil)%>
|
||||
<%= content_tag :li, link_to((t(:tags) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_tags_path), :class => active_for_action('/panel/web_resource/back_end/tags', 'index') if (is_manager? rescue nil)%>
|
||||
<%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "web_resource"}))), :class => active_for_app_auth('web_resource') if (is_admin? rescue nil) %>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('albums','album_images','gallery_categories','/panel/gallery/back_end/tags') || active_for_app_auth("gallery") do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-pictures') + content_tag(:span, t("gallery.gallery")), panel_gallery_back_end_albums_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('albums') ) do -%>
|
||||
<%= content_tag(:li, link_to((t('gallery.categories') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_gallery_back_end_gallery_categories_path), :class => active_for_action('gallery_categories','index') )if (is_manager? rescue nil)%>
|
||||
<%= content_tag :li, link_to((t('gallery.tags') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_gallery_back_end_tags_path), :class => active_for_action('/panel/gallery/back_end/tags', 'index') if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "gallery"}))), :class => active_for_app_auth('gallery') if (is_admin? rescue nil) %>
|
||||
<% end -%>
|
||||
<% end %>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('archive_files', 'panel/archive/back_end/tags', 'archive_file_categorys') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-archive') + content_tag(:span, t(:archive)), panel_archive_back_end_archive_files_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('archive_files', 'tags', 'archive_file_categorys')) do -%>
|
||||
<%= content_tag :li, link_to((t(:all) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_archive_files_path), :class => active_for_action('archive_file', 'index')if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to((t(:add) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_archive_back_end_archive_file_path), :class => active_for_action('archive_file', 'new') if (is_admin? rescue nil)%>
|
||||
<%= content_tag(:li, link_to((t(:categories) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_archive_file_categorys_path), :class => active_for_action('archive_file_categorys', 'index'))if (is_manager? rescue nil)%>
|
||||
<%= content_tag :li, link_to((t(:tags) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_tags_path), :class => active_for_action('tags', 'index') if (is_manager? rescue nil)%>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('cals','panel/calendar/back_end/tags') || active_for_app_auth("calendar") do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-calendar') + content_tag(:span, t("calendar.calendar")), panel_calendar_back_end_cals_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('cals','calendar_categories') ) do -%>
|
||||
<%= content_tag :li, link_to((t('calendar.calendars') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_calendar_back_end_cal_path), :class => active_for_action('cals','new') if (is_manager? rescue nil)%>
|
||||
<%= content_tag :li, link_to(t(:tags), panel_calendar_back_end_tags_path), :class => active_for_action('/panel/calendar/back_end/tags', 'index')if (is_manager? rescue nil) %>
|
||||
<% end -%>
|
||||
<% end %>
|
||||
<%= content_tag :li, :class => active_for_controllers('locations') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-location') + content_tag(:span, t(:location)), panel_location_back_end_locations_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('locations') ) do -%>
|
||||
<% end -%>
|
||||
<% end %>
|
||||
|
||||
<div class="content">
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
<% else %>
|
||||
<%= render 'layouts/side_bar' %>
|
||||
<% end %>
|
||||
|
||||
<div id="main-wrap">
|
||||
<%= yield %>
|
||||
</div>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<%= render 'header_dialog_copyright' %>
|
||||
<% end %>
|
||||
|
||||
<p>本網站著作權屬於國立政治大學。</p>
|
||||
<p>RulingDigital 銳綸數位建置</p>
|
||||
<p><%= t('mobile.copytight') %></p>
|
||||
<p><%= t('mobile.copytight_orbit') %></p>
|
||||
|
|
|
@ -23,4 +23,5 @@
|
|||
<script type='text/javascript'>
|
||||
var $effect = "<%= @ad_banner.ad_fx.nil? ? 'fade': @ad_banner.ad_fx %>"
|
||||
var $timeout = "<%= @ad_banner.transition_msec %>"
|
||||
var $info = "<%= t('mobile.location_description').html_safe %>"
|
||||
</script>
|
||||
|
|
|
@ -3,3 +3,8 @@
|
|||
<% end %>
|
||||
|
||||
<div id='map_canvas'></div>
|
||||
|
||||
<script type='text/javascript'>
|
||||
var $map_center = "24.987449, 121.576117"
|
||||
var $map_zoom = 17
|
||||
</script>
|
|
@ -70,3 +70,10 @@ widget_field_type:
|
|||
- tag
|
||||
- viewcount
|
||||
- poster
|
||||
|
||||
default_widget_style:
|
||||
- style1
|
||||
- style2
|
||||
- style3
|
||||
- style4
|
||||
- style5
|
|
@ -4,8 +4,10 @@ en:
|
|||
bulletin: Bulletin
|
||||
contact: Contact
|
||||
copyright: Copyright
|
||||
copyright_text: National Chengchi University © All RIGHTS RESERVED.
|
||||
copyright_orbit: Developed by RulingDigital
|
||||
home: Home
|
||||
language: Language
|
||||
location: Location
|
||||
location_description: '<h3>國立政治大學</h3>11605 臺北市文山區指南路二段64號'
|
||||
location_description: '<h3>National Chengchi University</h3>NO.64,Sec.2,ZhiNan Rd.,Wenshan District,Taipei City 11605,Taiwan (R.O.C)'
|
||||
page: Page
|
|
@ -4,6 +4,8 @@ zh_tw:
|
|||
bulletin: 公告
|
||||
contact: 聯絡資訊
|
||||
copyright: 版權宣告
|
||||
copyright_text: 本網站著作權屬於國立政治大學。
|
||||
copyright_orbit: 銳綸數位建置
|
||||
home: 首頁
|
||||
language: 語言
|
||||
location: 地理位置
|
||||
|
|
|
@ -1,7 +1,16 @@
|
|||
zh_tw:
|
||||
|
||||
_locale: 中文
|
||||
|
||||
rulingcom:
|
||||
errors:
|
||||
init:
|
||||
app_page_noname: 未命名前台頁面
|
||||
module_app_noname: 未命名模組
|
||||
front_page:
|
||||
select_app_url: 模組前台樣式
|
||||
is_published: 是否公開
|
||||
menu_enable_lang: 選單啓用語系
|
||||
link_enable_lang: 連結生效語系
|
||||
access:
|
||||
denied:
|
||||
app:
|
||||
|
@ -14,27 +23,18 @@ zh_tw:
|
|||
academic_info: 學術資訊
|
||||
action: 操作
|
||||
ad:
|
||||
chinese_1: 在套圖中出現次數 1次請輸入1
|
||||
chinese_2: 輸入連結
|
||||
chinese_3: 輸入標題
|
||||
ab_fx: 轉場效果
|
||||
add_link: Add a reference link
|
||||
banner_best_size: 輪播圖片尺寸
|
||||
best_size: 最佳尺寸
|
||||
best_size_example: "Ex: 500px x 300px"
|
||||
new_image: 新增輪播圖片
|
||||
not_showing: 沒有顯示
|
||||
picture_list: 圖片列表
|
||||
sec_place_holder: 每張輪播圖片顯示秒數(3秒就請輸入3)
|
||||
select_fx: Select the effect type
|
||||
set_dates: Set the image to start and end dates
|
||||
set_range: Set the range time
|
||||
showing: 顯示中
|
||||
success_destroy_ad_image: 刪除圖片成功
|
||||
trans_unit_sec: 秒
|
||||
transition_sec: 轉場單位時間
|
||||
update_banner: 更新輪播
|
||||
upload_pictures: Upload pictures
|
||||
widget_info_for_ad_image_size: "此區塊圖片尺寸使用: %{best_size}"
|
||||
ad_banner: 廣告輪播
|
||||
add: 新增
|
||||
|
@ -53,7 +53,6 @@ zh_tw:
|
|||
addthis_tools:
|
||||
add_to_bookmark: 加入書籤
|
||||
admin: 管理員
|
||||
all: All
|
||||
all_content: 所有內容
|
||||
all_file: 所有檔案
|
||||
all_member: 成員列表
|
||||
|
@ -76,7 +75,6 @@ zh_tw:
|
|||
fail: 刪除次管理員失敗
|
||||
success: 刪除次管理員成功
|
||||
failed_no_user: 失敗,不是使用者
|
||||
operation_not_permitted: Operation not permitted
|
||||
approval:
|
||||
not_pass: 拒絕
|
||||
not_pass_reason: 拒絕原因
|
||||
|
@ -85,9 +83,7 @@ zh_tw:
|
|||
stat: 審核狀態
|
||||
user_list: 使用者列表
|
||||
approval_: 審核
|
||||
archive: Archive
|
||||
asset: 資產
|
||||
attributes: 屬性
|
||||
auth:
|
||||
add_manager: 新增管理員
|
||||
add_sub_manager: 新增次管理員
|
||||
|
@ -101,8 +97,6 @@ zh_tw:
|
|||
back: 回上一步
|
||||
basic: 基本
|
||||
browse: 瀏覽
|
||||
built_in: Built-in
|
||||
calendar: Calendar
|
||||
cancel: 取消
|
||||
cant_delete_self: 不可以刪除自己
|
||||
cant_empty_star: 不能為空白 (*)
|
||||
|
@ -111,9 +105,7 @@ zh_tw:
|
|||
category: 類別
|
||||
category_auth: 類別授權
|
||||
clear: 清除
|
||||
close: Close
|
||||
content: 內容
|
||||
courses: 開課數
|
||||
create:
|
||||
error:
|
||||
link: 建立連結時出錯
|
||||
|
@ -121,8 +113,6 @@ zh_tw:
|
|||
fail: 建立失敗
|
||||
success:
|
||||
asset_category: 資產類別已成功建立
|
||||
co_author: Co-author was successfully created.
|
||||
link: Link was successfully created.
|
||||
link: 連結已成功建立
|
||||
page: 頁面已成功建立
|
||||
user: 使用者已成功建立
|
||||
|
@ -145,21 +135,25 @@ zh_tw:
|
|||
dashboard:
|
||||
bulletin: 公告
|
||||
news_bulletin: 新聞
|
||||
page_context: 頁面
|
||||
web_link: 鏈接
|
||||
page_context: 頁面內容
|
||||
web_link: 連結
|
||||
dashboard_: 儀表版
|
||||
deadline: 最後期限
|
||||
default: Default
|
||||
default_css: 預設樣式表
|
||||
delete: 刪除
|
||||
delete_file: 刪除檔案
|
||||
default_widget:
|
||||
name: 預設樣式
|
||||
no_support_setting: 沒有可以使用的設定
|
||||
no_value: 不設定(全部)
|
||||
fields_: 前台輸出欄位
|
||||
fields_order: 輸出欄位順序
|
||||
fields_style: 輸出欄位樣式
|
||||
select_module_app: 外掛模組選擇
|
||||
select_module_app: 套用模組
|
||||
select_widget_path: 外掛樣版選擇
|
||||
select_widget_style: 排版樣式
|
||||
widget_data_count: 模組輸出則數
|
||||
widget_data_count: 顯示則數
|
||||
select_widget_ext_option: 模組延伸選項
|
||||
caption:
|
||||
typeA: 表格式排版,簡單明瞭呈現內容
|
||||
|
@ -178,7 +172,6 @@ zh_tw:
|
|||
description: 描述
|
||||
desktop: 桌面
|
||||
disable: 關閉
|
||||
disabled: Disabled
|
||||
dots: ●●●●●●
|
||||
download: 下載
|
||||
downloaded: 已下載
|
||||
|
@ -202,7 +195,6 @@ zh_tw:
|
|||
upload: 上傳檔案
|
||||
file_: 檔案
|
||||
file_type: 檔案類型
|
||||
followers: Followers
|
||||
forgot_password: 忘記密碼?
|
||||
frequency: 頻率
|
||||
frontend_data_count: Frontend data count
|
||||
|
@ -238,16 +230,25 @@ zh_tw:
|
|||
user: 使用者列表
|
||||
list_: 列表
|
||||
list_lower: 列表
|
||||
address_modal:
|
||||
default_title: 地址
|
||||
street_address: 街道地址
|
||||
city: 城市
|
||||
county: 縣市
|
||||
zip: 郵遞區號
|
||||
country: 國家/地區
|
||||
langs:
|
||||
zh_tw: 中文
|
||||
en: 英文
|
||||
lists:
|
||||
markups:
|
||||
address: 地址欄位
|
||||
text_field: 文字輸入框
|
||||
select: 下拉選單
|
||||
date: 日期
|
||||
text_area: 文字輸入方塊
|
||||
radio_button: 單選
|
||||
checkbox: 多選
|
||||
locale: Locale
|
||||
location: Location
|
||||
login: 登入
|
||||
logout: 登出
|
||||
mail:
|
||||
|
@ -265,22 +266,24 @@ zh_tw:
|
|||
markup: 輸入模式
|
||||
markup_options: Markup options
|
||||
markup_value: Markup value
|
||||
me: Me
|
||||
me: 我
|
||||
member: 成員
|
||||
member_authorization: 成員權限
|
||||
member_info: 基本資料表
|
||||
member_registration: 註冊審核
|
||||
member_role: 身份欄位
|
||||
menu_enabled_for: 選單啟用
|
||||
module: Module
|
||||
modal:
|
||||
close: 關閉
|
||||
preview: 預覽
|
||||
module: 模組
|
||||
module_authorization: 模組授權
|
||||
more_plus: 更多+
|
||||
most_visited_page: 最多瀏覽頁面
|
||||
multilingual: 多語系
|
||||
name: 名稱
|
||||
need_home: You need a home page
|
||||
neutral_title: Neutral title
|
||||
neutral_for: Neutral for
|
||||
nccu_c:
|
||||
nccu_ldap_uid: 政治大學LDAP帳號
|
||||
new:
|
||||
asset: 新增資產
|
||||
banner: 新增橫幅
|
||||
|
@ -321,8 +324,6 @@ zh_tw:
|
|||
postdate: 張貼日期
|
||||
posted_by: 張貼人
|
||||
preview: 預覽
|
||||
profile: Profile
|
||||
publications: Publications
|
||||
purchase: 購買
|
||||
quantity: 數量
|
||||
quick_edit: 快速編輯
|
||||
|
@ -345,15 +346,12 @@ zh_tw:
|
|||
sitesearch: 全站搜尋
|
||||
too_many: "搜尋有關 ' %{search_word} '尋找到超過 %{exceed_num} 筆資料,請嘗試加入更多關鍵字縮小搜尋範圍,以作更精確的搜尋?"
|
||||
unit_get: "列出由 :%{unit_name}發佈的資料,共有%{item_num}筆"
|
||||
search_: Search
|
||||
search_google: 搜尋Google
|
||||
search_nccu: 搜尋政治大學
|
||||
setup_member: 會員設定
|
||||
show: 顯示
|
||||
show_mode:
|
||||
index: 清單
|
||||
summary: 摘要
|
||||
thumbnail: 縮圖
|
||||
site:
|
||||
default_image: 預設圖像
|
||||
description: 網站描述
|
||||
description_help: ''
|
||||
footer: 網站頁尾
|
||||
|
@ -374,7 +372,6 @@ zh_tw:
|
|||
site_info: 網站資訊
|
||||
sitemap: 網站地圖
|
||||
site_name: 網站名稱
|
||||
size: Size
|
||||
start: 開始
|
||||
start_date: 開始日期
|
||||
statistics: 統計資訊
|
||||
|
@ -394,14 +391,13 @@ zh_tw:
|
|||
module_page_lang_not_support: "很抱歉,此頁面沒有開放中文版本"
|
||||
not_previewable: "不支援預覽"
|
||||
preview_only_for_img: "預覽僅支援:jpg,png,gif,bmp等圖片格式"
|
||||
sys_basic_form: 系統基本資料表
|
||||
system_info: 系統資訊
|
||||
tag_cloud: 標籤雲
|
||||
tags: 標籤
|
||||
template: 樣版
|
||||
template_name: 樣版名稱
|
||||
text: 內文
|
||||
theme: 主題
|
||||
theme: 套用頁面樣式
|
||||
themes: 主題
|
||||
title: 標題
|
||||
to_search: 加入搜尋條件
|
||||
|
@ -410,17 +406,17 @@ zh_tw:
|
|||
traffic: 流量
|
||||
type: 欄位類型
|
||||
unit_name: 單位名稱
|
||||
unzip_success: "App unzip procress is finished, please restart the server to apply effect"
|
||||
up_to_date: 最新版本
|
||||
update:
|
||||
error:
|
||||
link: 更新連接時出錯
|
||||
fail: 更新消息
|
||||
success:
|
||||
co_author: Co-author was successfully updated.
|
||||
content: 內容已更新成功
|
||||
link: 連結已更新成功
|
||||
page: 頁面已更新成功
|
||||
user: 使用者已更新成功
|
||||
# success_: 更新成功
|
||||
paper: Paper was successfully updated.
|
||||
user: User was successfully updated.
|
||||
success_: S使用者已更新成功
|
||||
|
@ -439,3 +435,571 @@ zh_tw:
|
|||
visitors_today: 今日造訪人次
|
||||
yes_: "是"
|
||||
|
||||
|
||||
nccu:
|
||||
date: 起迄日期
|
||||
file: 附加檔案
|
||||
file_description: 檔案描述
|
||||
file_name: 檔案名稱
|
||||
link_name: 連結名稱
|
||||
picture: 刊頭圖片
|
||||
selected_file: 選擇檔案
|
||||
tags: 頁籤
|
||||
url: 連結位置
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# : <<<<<<< HEAD
|
||||
# : =======
|
||||
errors:
|
||||
at_least_one: 必須至少有一個值
|
||||
admin:
|
||||
infos:
|
||||
add_attribute_field: 新增
|
||||
save: 儲存
|
||||
initial: 起始值
|
||||
markup: 輸入模式
|
||||
item_name: 資料表名稱
|
||||
name: 名稱
|
||||
options: 選項
|
||||
:cross_lang: 跨語言輸入
|
||||
add_more: 使用者可自行延伸欄位
|
||||
add: 新增
|
||||
placeholder: 輸入協助
|
||||
type: 類型
|
||||
placeholder: 提示內容
|
||||
list: 自定選單
|
||||
is_range: 是
|
||||
not_range: 否
|
||||
date:
|
||||
claendar: 紀年法
|
||||
range: 本欄為時間區段
|
||||
format: 格式
|
||||
tw_claendar: 民國
|
||||
minguo_calendar:
|
||||
after: 民國
|
||||
before: 民前
|
||||
first_year: 民國元年
|
||||
year: 年
|
||||
month: 月
|
||||
west_claendar: 西元
|
||||
access:
|
||||
denied:
|
||||
app:
|
||||
not_sub_manager: 拒絕存取因你不是此應用程式次管理員
|
||||
not_manager: 拒絕存取因你不是此應用程式管理員
|
||||
not_authed_user: 拒絕存取因你不是此應用程式授權使用者
|
||||
not_admin: 拒絕存取因你不是此應用程式次管理員
|
||||
object: 拒絕存取因你不是網站管理者
|
||||
action: 操作
|
||||
ad_banner: 廣告輪播
|
||||
orbit_gallery: 活動花絮
|
||||
ad:
|
||||
sec_place_holder: 3秒請輸入3
|
||||
ab_fx: 轉場特效
|
||||
all_banners: 輪播清單
|
||||
banner_best_size: Banner 尺寸
|
||||
best_size: 最佳尺寸
|
||||
cate_auth: 分類授權
|
||||
delete_banner: 刪除整組輪播
|
||||
new_banner: 新增輪播
|
||||
new_image: 新增橫幅
|
||||
showing: 顯示中
|
||||
not_showing: 沒有顯示
|
||||
picture_list: 圖片列表
|
||||
title: 標題
|
||||
transition_sec: 轉場單位時間
|
||||
trans_unit_sec: 秒
|
||||
update_banner: 更新輪播
|
||||
widget_info_for_ad_image_size: "此區塊圖片尺寸請使用 %{best_size}"
|
||||
add: 新增
|
||||
add_item: 新增項目
|
||||
add_language: 新增語言
|
||||
add_drop_down_item: +增加Orbit選單
|
||||
admin: 網站管理者
|
||||
all_articles: 列表
|
||||
always_display_title: 永遠顯示於標題列
|
||||
announcement: 公告管理
|
||||
asset: 資產
|
||||
assets:
|
||||
file: 檔案
|
||||
album: 相簿
|
||||
video: 影片
|
||||
book: 書籍
|
||||
attributes: 屬性
|
||||
author: 作者
|
||||
calendar: 行事曆
|
||||
cant_delete_self: 您不可以刪除自己。
|
||||
cant_revoke_self_admin: 您不可以撤銷自己的管理身份。
|
||||
category: 類別
|
||||
choose_file: 請選擇一個文件...
|
||||
class: 階級
|
||||
content: 內容
|
||||
contenteditable:
|
||||
update_done: 更新完成
|
||||
update_failed: 更新失敗
|
||||
create_error_link: 新增連接時出錯。
|
||||
create_error_page: 新增頁面時出錯。
|
||||
create_success_home: 首頁已成功新增。
|
||||
create_success_layout: 樣板已成功新增。
|
||||
create_success_link: 連結已成功新增。
|
||||
create_success_page: 頁面已成功新增。
|
||||
create_success_home: 首頁已成功新增。
|
||||
create_success_layout: 佈局已成功新增。
|
||||
create_success_link: 連結已成功新增。
|
||||
create_success_page: 頁面已成功新增。
|
||||
create_success_snippet: 片段已成功新增。
|
||||
create_success_user: 用戶已成功新增。。
|
||||
dashboard: 儀表板
|
||||
data: 選擇檔案
|
||||
delete_language: 刪除語言
|
||||
description: 描述
|
||||
design: 版型管理
|
||||
disable_language: 禁用語言
|
||||
edit: 編輯
|
||||
editing_home: 編輯首頁
|
||||
editing_layout: 編輯樣板
|
||||
editing_link: 編輯連結
|
||||
editing_page: 編輯頁面
|
||||
editing_snippet: 編輯片段
|
||||
editing_info: 編輯用戶資料
|
||||
editing_role: 編輯用戶身份
|
||||
email: Email
|
||||
enable_language: 啟用語言
|
||||
enabled_for: 啟用
|
||||
file_name: 檔名
|
||||
file_size: 檔案大小
|
||||
file_upload: 文件上載
|
||||
format: 格式
|
||||
home: 首頁
|
||||
id: ID
|
||||
info: 資料
|
||||
intro: 簡介
|
||||
is_published: 被出版
|
||||
item: 網站架構
|
||||
key: 關鍵
|
||||
keywords: 關鍵字
|
||||
language: 語言
|
||||
layout: 佈局
|
||||
layout_name: 佈局名字
|
||||
link: 連結管理
|
||||
links: 網路資源
|
||||
list_assets: 資產列表
|
||||
list_designs: 設計列表
|
||||
list_items: 項目列表
|
||||
list_puchases: 購買清單
|
||||
list_snippets: 斷片列表
|
||||
list_users: 使用列表
|
||||
list_infos: 用戶資料列表
|
||||
list_roles: 用戶身份列表
|
||||
mail_address: 郵件地址
|
||||
mail_port: 傳輸埠
|
||||
mail_domain: 網域名稱
|
||||
mail_authentication: 認證
|
||||
mail_user_name: 帳號
|
||||
mail_password: 密碼
|
||||
mail_tls: TLS
|
||||
mail_enable_starttls_auto: Enable Start TLS Auto
|
||||
member: 會員
|
||||
menu_enabled_for: 選單啟用
|
||||
module:
|
||||
authorization: 模組授權
|
||||
move_down: 往下移
|
||||
move_up: 往上移
|
||||
multilingual: 多種語言
|
||||
my_avatar: 我的頭像
|
||||
no_home_page: 您沒有首頁
|
||||
no_layout: 您沒有佈局
|
||||
name: 名稱
|
||||
new_admin:
|
||||
side_bar:
|
||||
all_user: 所有使用者
|
||||
add_user: 新增使用者
|
||||
user_roles: 角色
|
||||
user_info: 使用者資訊
|
||||
user: 會員
|
||||
users:
|
||||
all_plugin_summary: 全部
|
||||
profile: 基本資料
|
||||
roles:
|
||||
staff: 職員資料
|
||||
student: 學生資料
|
||||
teacher: 教師資料
|
||||
action:
|
||||
add: 新增
|
||||
edit: 編輯
|
||||
delete: 刪除
|
||||
quick_edit: 快速編輯
|
||||
next: 下一頁
|
||||
prev: 上一頁
|
||||
attributes:
|
||||
roles: 角色
|
||||
name: 名稱
|
||||
publications: 出版數
|
||||
courses: 開課數
|
||||
followers: 被關注數
|
||||
show_mode:
|
||||
index: 清單
|
||||
summary: 摘要
|
||||
thumbnail: 縮圖
|
||||
table_header:
|
||||
status: 狀態
|
||||
category: 分類
|
||||
tags: 標籤
|
||||
clear_filter: 重置
|
||||
new_asset: 新增資產
|
||||
new_component: 新增元件
|
||||
new_design: 新設計
|
||||
new_home: 新增首頁
|
||||
new_layout: 新增樣板
|
||||
new_link: 新增連結
|
||||
new_page: 新增頁面
|
||||
new_snippet: 新增片段
|
||||
new_user: 新增使用
|
||||
new_info: 新增用戶資料
|
||||
new_role: 新增用戶身份
|
||||
news: 新聞
|
||||
non_multilingual:
|
||||
object_auth:
|
||||
list_title_of_users: 授權清單-%{auth_title}
|
||||
update_done: 更新完成,結果顯示於清單
|
||||
update_failed: 更新失敗
|
||||
options: 選項
|
||||
orig_upload_file: 原上傳檔名
|
||||
page: 頁面管理
|
||||
page_context:
|
||||
edit: 編輯
|
||||
ob_auth:
|
||||
edit: 分類授權
|
||||
page_part_kinds:
|
||||
text: 文字區塊
|
||||
public_r_tag: 系統模塊
|
||||
module_widget: 外掛模塊
|
||||
position: 位置
|
||||
published?: 發布?
|
||||
purchase: 購買
|
||||
role: 身份
|
||||
roles: 身份
|
||||
site_description: 網站描述
|
||||
site_footer: 網站頁尾
|
||||
site_settings: 基本設定
|
||||
site_sub_menu: 網站次選單
|
||||
site_title: 網站標題
|
||||
setup_member: 成員設置
|
||||
setup_translations: 語系設定
|
||||
setup_designs: 版型設定
|
||||
site: 網站
|
||||
site_setting: 網站設定
|
||||
super_pages: 可編頁面
|
||||
structure: 網站結構
|
||||
tags: 標籤
|
||||
title: 標題
|
||||
translation: 翻譯
|
||||
type: 類型
|
||||
up_to_date: 最新版本
|
||||
update_error_link: 更新鏈接時出現錯誤。
|
||||
update_error_page: 更新頁面時出現錯誤。
|
||||
update_success_content: 內容已成功更新。
|
||||
update_success_home: 首頁已成功更新。
|
||||
update_success_layout: 樣板已成功更新。
|
||||
update_success_link: 連結已成功更新。
|
||||
update_success_page: 頁面已成功更新。
|
||||
update_success_snippet: 片段已成功更新。
|
||||
update_success_user: 用戶已成功更新
|
||||
upload_design: 上傳設計
|
||||
url: URL
|
||||
user: 用戶
|
||||
user_new_interface:
|
||||
sys_basic_form: 系統基本資料表
|
||||
password: 密碼
|
||||
password_confirmation: 確認密碼
|
||||
email: 使用者帳號信箱
|
||||
user_role:
|
||||
auth:
|
||||
all_member: 所有會員
|
||||
manager: 管理員
|
||||
sub_manager: 次管理員
|
||||
by_role: 根據身份
|
||||
by_sub_role: 根據次身份
|
||||
block_list: 封鎖名單
|
||||
add_manager: 增加到管理員
|
||||
add_sub_manager: 增加到次管理員
|
||||
add_to_block_list: 封鎖名單
|
||||
add_to_privilege_list: 特許名單
|
||||
auth_by: -由%{user_display_name}授權
|
||||
user: 使用會員
|
||||
info: 用戶資料
|
||||
panel: 用戶面板
|
||||
role: 用戶身份
|
||||
|
||||
dashboard:
|
||||
bulletin: 公告
|
||||
news_bulletin: 新聞
|
||||
page_context: 頁面
|
||||
web_link: 鏈接
|
||||
|
||||
panel:
|
||||
|
||||
|
||||
|
||||
# : >>>>>>> various_bugs
|
||||
# Chinese (Taiwan) translations for Ruby on Rails
|
||||
# by tsechingho (http://github.com/tsechingho)
|
||||
date:
|
||||
formats:
|
||||
default: "%Y-%m-%d"
|
||||
short: "%b%d日"
|
||||
long: "%Y年%b%d日"
|
||||
day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
|
||||
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
|
||||
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
|
||||
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
|
||||
order: [ :year, :month, :day ]
|
||||
|
||||
time:
|
||||
formats:
|
||||
default: "%Y年%b%d日 %A %H:%M:%S %Z"
|
||||
short: "%b%d日 %H:%M"
|
||||
long: "%Y年%b%d日 %H:%M"
|
||||
am: "上午"
|
||||
pm: "下午"
|
||||
|
||||
datetime:
|
||||
distance_in_words:
|
||||
half_a_minute: "半分鐘"
|
||||
less_than_x_seconds:
|
||||
one: "不到一秒"
|
||||
other: "不到 %{count} 秒"
|
||||
x_seconds:
|
||||
one: "一秒"
|
||||
other: "%{count} 秒"
|
||||
less_than_x_minutes:
|
||||
one: "不到一分鐘"
|
||||
other: "不到 %{count} 分鐘"
|
||||
x_minutes:
|
||||
one: "一分鐘"
|
||||
other: "%{count} 分鐘"
|
||||
about_x_hours:
|
||||
one: "大約一小時"
|
||||
other: "大約 %{count} 小時"
|
||||
x_days:
|
||||
one: "一天"
|
||||
other: "%{count} 天"
|
||||
about_x_months:
|
||||
one: "大約一個月"
|
||||
other: "大約 %{count} 個月"
|
||||
x_months:
|
||||
one: "一個月"
|
||||
other: "%{count} 個月"
|
||||
about_x_years:
|
||||
one: "大約一年"
|
||||
other: "大約 %{count} 年"
|
||||
over_x_years:
|
||||
one: "一年多"
|
||||
other: "%{count} 年多"
|
||||
almost_x_years:
|
||||
one: "接近一年"
|
||||
other: "接近 %{count} 年"
|
||||
prompts:
|
||||
year: "年"
|
||||
month: "月"
|
||||
day: "日"
|
||||
hour: "時"
|
||||
minute: "分"
|
||||
second: "秒"
|
||||
|
||||
number:
|
||||
format:
|
||||
separator: "."
|
||||
delimiter: ","
|
||||
precision: 3
|
||||
significant: false
|
||||
strip_insignificant_zeros: false
|
||||
currency:
|
||||
format:
|
||||
format: "%u %n"
|
||||
unit: "NT$"
|
||||
separator: "."
|
||||
delimiter: ","
|
||||
precision: 2
|
||||
significant: false
|
||||
strip_insignificant_zeros: false
|
||||
percentage:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision:
|
||||
format:
|
||||
delimiter: ""
|
||||
human:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision: 1
|
||||
significant: false
|
||||
strip_insignificant_zeros: false
|
||||
storage_units:
|
||||
format: "%n %u"
|
||||
units:
|
||||
byte:
|
||||
one: "Byte"
|
||||
other: "Bytes"
|
||||
kb: "KB"
|
||||
mb: "MB"
|
||||
gb: "GB"
|
||||
tb: "TB"
|
||||
decimal_units:
|
||||
format: "%n %u"
|
||||
units:
|
||||
# 10^-21 zepto, 10^-24 yocto
|
||||
atto: "渺" # 10^-18
|
||||
femto: "飛" # 10^-15 毫微微
|
||||
pico: "漠" # 10^-12 微微
|
||||
nano: "奈" # 10^-9 毫微
|
||||
micro: "微" # 10^-6
|
||||
mili: "毫" # 10^-3 milli
|
||||
centi: "厘" # 10^-2
|
||||
deci: "分" # 10^-1
|
||||
unit: ""
|
||||
ten:
|
||||
one: "十"
|
||||
other: "十" # 10^1
|
||||
hundred: "百" # 10^2
|
||||
thousand: "千" # 10^3 kilo
|
||||
million: "百萬" # 10^6 mega
|
||||
billion: "十億" # 10^9 giga
|
||||
trillion: "兆" # 10^12 tera
|
||||
quadrillion: "千兆" # 10^15 peta
|
||||
# 10^18 exa, 10^21 zetta, 10^24 yotta
|
||||
|
||||
support:
|
||||
array:
|
||||
words_connector: ", "
|
||||
two_words_connector: " 和 "
|
||||
last_word_connector: ", 和 "
|
||||
select:
|
||||
prompt: "請選擇"
|
||||
|
||||
search:
|
||||
not_found: "沒有搜尋結果"
|
||||
domains: Google Search Domains
|
||||
site_search: "全站搜尋"
|
||||
sitesearch: Google Site Search
|
||||
site_setting_help: 請輸入送交Google搜尋的參數
|
||||
result_get: "搜尋有關 ' %{search_word} ' 共搜尋到%{item_num}筆資料"
|
||||
too_many: "搜尋有關 ' %{search_word} ' 尋找到超過 %{exceed_num} 筆資料,請嘗試加入更多關鍵字縮小搜尋範圍,以作更精確的搜尋"
|
||||
|
||||
result_get: "搜尋標題有關 ' %{search_word} ' 共搜尋到%{item_num}筆資料"
|
||||
unit_get: "列出由:%{unit_name}發佈的資料,共有%{item_num}筆"
|
||||
activerecord:
|
||||
errors:
|
||||
template: # ~ 2.3.5 backward compatible
|
||||
header:
|
||||
one: "有 1 個錯誤發生使得「%{model}」無法被儲存。"
|
||||
other: "有 %{count} 個錯誤發生使得「%{model}」無法被儲存。"
|
||||
body: "以下欄位發生問題:"
|
||||
full_messages:
|
||||
format: "%{attribute} %{message}"
|
||||
messages:
|
||||
inclusion: "沒有包含在列表中"
|
||||
exclusion: "是被保留的關鍵字"
|
||||
invalid: "是無效的"
|
||||
confirmation: "不符合確認值"
|
||||
accepted: "必須是可被接受的"
|
||||
empty: "不能留空"
|
||||
blank: "不能是空白字元"
|
||||
too_long: "過長(最長是 %{count} 個字)"
|
||||
too_short: "過短(最短是 %{count} 個字)"
|
||||
wrong_length: "字數錯誤(必須是 %{count} 個字)"
|
||||
not_a_number: "不是數字"
|
||||
not_an_integer: "必須是整數"
|
||||
greater_than: "必須大於 %{count}"
|
||||
greater_than_or_equal_to: "必須大於或等於 %{count}"
|
||||
equal_to: "必須等於 %{count}"
|
||||
less_than: "必須小於 %{count}"
|
||||
less_than_or_equal_to: "必須小於或等於 %{count}"
|
||||
odd: "必須是奇數"
|
||||
even: "必須是偶數"
|
||||
taken: "已經被使用"
|
||||
record_invalid: "校驗失敗: %{errors}"
|
||||
|
||||
activemodel:
|
||||
errors:
|
||||
template:
|
||||
header:
|
||||
one: "有 1 個錯誤發生使得「%{model}」無法被儲存。"
|
||||
other: "有 %{count} 個錯誤發生使得「%{model}」無法被儲存。"
|
||||
body: "以下欄位發生問題:"
|
||||
|
||||
errors:
|
||||
format: "%{attribute} %{message}"
|
||||
messages:
|
||||
inclusion: "沒有包含在列表中"
|
||||
exclusion: "是被保留的關鍵字"
|
||||
invalid: "是無效的"
|
||||
confirmation: "不符合確認值"
|
||||
accepted: "必須是可被接受的"
|
||||
empty: "不能留空"
|
||||
blank: "不能是空白字元"
|
||||
too_long: "過長(最長是 %{count} 個字)"
|
||||
too_short: "過短(最短是 %{count} 個字)"
|
||||
wrong_length: "字數錯誤(必須是 %{count} 個字)"
|
||||
not_a_number: "不是數字"
|
||||
not_an_integer: "必須是整數"
|
||||
greater_than: "必須大於 %{count}"
|
||||
greater_than_or_equal_to: "必須大於或等於 %{count}"
|
||||
equal_to: "必須等於 %{count}"
|
||||
less_than: "必須小於 %{count}"
|
||||
less_than_or_equal_to: "必須小於或等於 %{count}"
|
||||
odd: "必須是奇數"
|
||||
even: "必須是偶數"
|
||||
template:
|
||||
header:
|
||||
one: "有 1 個錯誤發生使得「%{model}」無法被儲存。"
|
||||
other: "有 %{count} 個錯誤發生使得「%{model}」無法被儲存。"
|
||||
body: "以下欄位發生問題:"
|
||||
widget:
|
||||
default_widget: 系統預設Widget
|
||||
_default_widget:
|
||||
typeA: 表格列表
|
||||
typeB_style2: 單行列佐圖(同邊)
|
||||
typeB_style3: 多行列佐圖(同邊)
|
||||
typeB_style4: 多行列佐圖(異邊)
|
||||
typeC: 單行列佐單圖(同邊)
|
||||
mongoid:
|
||||
models:
|
||||
news_bulletin: 新聞
|
||||
bulletin: 公告
|
||||
ad_banner: 廣告輪播
|
||||
web_link: 連結管理
|
||||
attributes:
|
||||
news_bulletin:
|
||||
title: 新聞標題
|
||||
bulletin:
|
||||
title: 公告標題
|
||||
ad_banner:
|
||||
title: 標題
|
||||
web_link:
|
||||
title: 名稱
|
||||
url: 路徑
|
||||
helpers:
|
||||
select:
|
||||
prompt: "請選擇"
|
||||
submit:
|
||||
create: "新增%{model}"
|
||||
update: "更新%{model}"
|
||||
submit: "儲存%{model}"
|
||||
modal:
|
||||
save_and_close: "儲存並關閉"
|
||||
close: "關閉"
|
||||
preview: "預覽"
|
||||
sys:
|
||||
not_previewable: "不支援預覽"
|
||||
limit_of_upload_file_size: "上傳檔案大小限制: %{best_size}"
|
||||
preview_only_for_img: "預覽僅支援:jpg,png,gif,bmp...等圖片格式"
|
||||
can_not_display_due_to_no_context: "因為沒有中文版本,所以無法顯示"
|
||||
module_page_lang_not_support: "很抱歉,本頁沒有開放中文版本"
|
||||
object_disable:
|
||||
change_to_true: "設為停用"
|
||||
change_to_false: "重新啓用"
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
Orbit::Application.routes.draw do
|
||||
# get "robots.txt" => 'robots#index'
|
||||
|
||||
devise_for :users do
|
||||
match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put
|
||||
end
|
||||
|
@ -79,9 +81,15 @@ Orbit::Application.routes.draw do
|
|||
end
|
||||
|
||||
resources :pages do
|
||||
collection do
|
||||
get 'reload_after_module_changed', :action=>'reload_frontend_pages'
|
||||
get 'reload_after_list_changed',:action=> 'reload_front_end_setting'
|
||||
end
|
||||
member do
|
||||
get 'delete'
|
||||
get 'reload_themes'
|
||||
get 'reload_after_module_changed',:action=>'reload_frontend_pages'
|
||||
get 'reload_after_list_changed',:action=> 'reload_front_end_setting'
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -101,14 +109,13 @@ Orbit::Application.routes.draw do
|
|||
|
||||
match 'remove_manager/:app_manager_id' ,:action=> 'remove_manager',:via => "delete",:as =>:remove_manager
|
||||
match 'remove_sub_manager/:app_sub_manager_id' ,:action=> 'remove_sub_manager',:via => "delete",:as =>:remove_sub_manager
|
||||
get 'reload_frontend_pages'
|
||||
end
|
||||
end
|
||||
|
||||
resources :page_parts do
|
||||
member do
|
||||
get 'reload_widgets'
|
||||
get 'reload_widget_styles'
|
||||
get 'reload_after_module_changed',:action=>'reload_widgets'
|
||||
get 'reload_after_list_changed',:action=> 'reload_widget_styles'
|
||||
get 'reload_r_tag_options'
|
||||
end
|
||||
end
|
||||
|
@ -201,9 +208,9 @@ Orbit::Application.routes.draw do
|
|||
match 'desktop_publications/books_list'=>'desktop_publications#books_list'
|
||||
match 'desktop_publications/books_add'=>'desktop_publications#books_add'
|
||||
|
||||
match 'desktop_publications/seminar_p' => 'desktop_publications#seminar_p'
|
||||
match 'desktop_publications/seminar_p_list/'=>'desktop_publications#seminar_p_list'
|
||||
match 'desktop_publications/seminar_p_add/'=>'desktop_publications#seminar_p_add'
|
||||
match 'desktop_publications/conference_p' => 'desktop_publications#conference_p'
|
||||
match 'desktop_publications/conference_p_list/'=>'desktop_publications#conference_p_list'
|
||||
match 'desktop_publications/conference_p_add/'=>'desktop_publications#conference_p_add'
|
||||
# end
|
||||
|
||||
# namespace :desktop_research do
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
require 'factory_girl'
|
||||
require 'faker'
|
||||
|
||||
FactoryGirl.definition_file_paths = Dir["#{Rails.root}/vendor/built_in_modules/*/spec/factories"]
|
||||
|
||||
FactoryGirl.find_definitions
|
||||
|
||||
|
||||
CoAuthorRelation.destroy_all
|
||||
CoAuthor.destroy_all
|
||||
JournalLevelType.destroy_all
|
||||
|
@ -8,7 +13,8 @@ WritingJournalFile.destroy_all
|
|||
WritingJournal.destroy_all
|
||||
#Dir[Rails.root.join("spec/factories/*.rb")].each {|f| require f}
|
||||
|
||||
10.times do
|
||||
|
||||
10.size.times do
|
||||
FactoryGirl.create(:journal_level)
|
||||
end
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<li class="d_cate"><a href="" class="widget_fn wh3 hh3" id='d_publication' onclick="return false;"><span class="widget_icon"><img src="" alt="Publication" id="publication_icon" width="30" height="30"/></span></a>
|
||||
<ul class="dock_child hh3 thmc4" style="width: 180px;">
|
||||
<li class="dock_item"><a href="journal_p" class="widget_fn wh3 hh3" id='d_journal_p' onclick="return false;"><span class="widget_icon"><img src="" alt="Journal Papers" id="journal_p_icon" width="30" height="30"/></span></a></li>
|
||||
<li class="dock_item"><a href="seminar_p" class="widget_fn wh3 hh3" id='d_seminar_p' onclick="return false;"><span class="widget_icon"><img src="" alt="Seminar Papers" id="seminar_p_icon" width="30" height="30"/></span></a></li>
|
||||
<li class="dock_item"><a href="conference_p" class="widget_fn wh3 hh3" id='d_conference_p' onclick="return false;"><span class="widget_icon"><img src="" alt="Conference Papers" id="conference_p_icon" width="30" height="30"/></span></a></li>
|
||||
<li class="dock_item"><a href="books" class="widget_fn wh3 hh3" id='d_books' onclick="return false;"><span class="widget_icon"><img src="" alt="Books" id="books_icon" width="30" height="30"/></span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
require "orbit_app/summary"
|
||||
require "orbit_app/dsl"
|
||||
require "orbit_app/module/backend_side_bar"
|
||||
require "orbit_app/helper/renderer"
|
||||
require "orbit_app/helper/side_bar_renderer"
|
||||
require "orbit_app/helper/context_link_renderer"
|
||||
require "orbit_app/module/side_bar"
|
||||
require "orbit_app/module/widget"
|
||||
require "orbit_app/module/front_end"
|
||||
require "orbit_app/plugin/summary"
|
||||
require "orbit_app/plugin/registration"
|
||||
require "orbit_app/module/summary"
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
module ContextLinkRenderer
|
||||
include Renderer
|
||||
|
||||
def render(request,params,current_module_app,current_user,belong_module_app)
|
||||
@current_module_app = current_module_app
|
||||
@belong_module_app = belong_module_app
|
||||
@request = request
|
||||
@params = params
|
||||
@current_user = current_user
|
||||
if display?
|
||||
content_tag :li, link_to((I18n.t(@label_i18n) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, eval(@path)), :class => (active? ? 'active' : nil)
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
def display?
|
||||
@available_for.each do |available_for_in_sym|
|
||||
result = case available_for_in_sym
|
||||
when :all
|
||||
true
|
||||
when :manager
|
||||
@belong_module_app.is_manager? @current_user
|
||||
when :sub_manager
|
||||
@belong_module_app.is_sub_manager? @current_user
|
||||
else
|
||||
(eval(available_for_in_sym).include? @current_user rescue false)
|
||||
end # of case
|
||||
return true if result || (@current_user.admin? rescue false)
|
||||
end # of collect
|
||||
false
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,68 @@
|
|||
module Renderer
|
||||
include Rails.application.routes.url_helpers
|
||||
include ActionView::Helpers::UrlHelper
|
||||
include ActionView::Helpers::TagHelper
|
||||
include ActionView::Helpers::RenderingHelper
|
||||
include ActionView::Context
|
||||
include OrbitBasis::RenderAnywhere
|
||||
|
||||
protected
|
||||
def active_for_app_auth?
|
||||
module_app = get_module_app
|
||||
if module_app.nil?
|
||||
false
|
||||
else
|
||||
module_app.id.to_s == @params[:module_app_id] ? true : false
|
||||
end
|
||||
end
|
||||
|
||||
def active_for_ob_auths?
|
||||
|
||||
if @params.has_key? :object_auth_id
|
||||
oa = ObjectAuth.find @params[:object_auth_id]
|
||||
check_controller = @params[:controller] == 'admin/object_auths_new_interface'
|
||||
check_object_class = @active_for_object_auth.include? oa.obj_authable_type
|
||||
return (check_controller and check_object_class)
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
def current_user
|
||||
current_or_guest_user
|
||||
end
|
||||
|
||||
def current_or_guest_user
|
||||
@current_user
|
||||
end
|
||||
|
||||
def request
|
||||
@request
|
||||
end
|
||||
|
||||
def default_url_options
|
||||
_routes.default_url_options
|
||||
end
|
||||
|
||||
def _routes
|
||||
@request.env["action_dispatch.routes"]
|
||||
end
|
||||
|
||||
def controller
|
||||
@params[:controller]
|
||||
end
|
||||
|
||||
def action
|
||||
@params[:action]
|
||||
end
|
||||
|
||||
def check_user_available_for
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
def display?
|
||||
true
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,45 @@
|
|||
module SideBarRenderer
|
||||
include Renderer
|
||||
include AdminHelper
|
||||
|
||||
def render(request,params,user,current_module_app)
|
||||
@belong_module_app = get_module_app
|
||||
@current_module_app = current_module_app
|
||||
@request = request
|
||||
@params = params
|
||||
@current_user = user
|
||||
if display?
|
||||
content_tag :li, :class => (module_sidebar_active? ? 'active' : nil) do
|
||||
buf = link_to( content_tag(:i, nil, :class => @icon_class ) + content_tag(:span, I18n.t( @head_label )), eval(@head_link))
|
||||
buf << content_tag( :ul, :class => ("nav nav-list active") )do # visible_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals')||active_for_ob_auths_object("BulletinCategory"))
|
||||
@context_links.sort_by! {| obj | obj.priority}.collect do |link|
|
||||
link.render(request,params,@current_module_app,@current_user,@belong_module_app)
|
||||
end.join.html_safe
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def display? #控制sidebar 要不要算圖
|
||||
if is_manager? || is_admin? #如果是系統管理員 或 是模組管理員
|
||||
true
|
||||
elsif (@current_module_app.open rescue true) # 如果app 被設定成 開放
|
||||
true
|
||||
elsif is_member? #如果app 是封閉 那至少需要是 member
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def module_sidebar_active?
|
||||
active_for_controller? or active_for_app_auth? or active_for_ob_auths?
|
||||
end
|
||||
|
||||
def active_for_controller?
|
||||
@active_for_controllers.include? controller
|
||||
end
|
||||
|
||||
end
|
|
@ -1,17 +0,0 @@
|
|||
module OrbitApp
|
||||
module Module
|
||||
class BackendSideBar
|
||||
attr_reader :name
|
||||
|
||||
def initialize(name, &block)
|
||||
@name = name
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
# def personal_plugin(*args)
|
||||
# binding.pry
|
||||
# end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,67 @@
|
|||
module OrbitApp
|
||||
module Module
|
||||
module FrontendUtility
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@frontend_pages = []
|
||||
#Record all frontend pages of orbit
|
||||
|
||||
def add(var) #build @@frontend_pages
|
||||
@@frontend_pages << var
|
||||
end
|
||||
|
||||
def all #return all frontend_pages of orbit
|
||||
return @@frontend_pages
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class AppPageSet # From Registration
|
||||
def initialize(&block)
|
||||
@frontend_pages = []
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def app_page(name,&block)
|
||||
@frontend_pages << AppPage.new(name,&block)
|
||||
end
|
||||
|
||||
def to_module_app_format #For ModuleApp to fetch data
|
||||
@frontend_pages.collect{|t| [t.get_i18n,t.name]}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class AppPage
|
||||
attr_reader :name
|
||||
|
||||
def initialize(name,&block)
|
||||
@name = name
|
||||
@frontend_i18n = 'rulingcom.errors.init.app_page_noname'
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def frontend_i18n(i18n)
|
||||
@frontend_i18n = i18n
|
||||
end
|
||||
|
||||
def get_i18n
|
||||
@frontend_i18n
|
||||
end
|
||||
|
||||
def finalize!
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
end# of AppPage
|
||||
end # of FrontendUtility
|
||||
end # of Module
|
||||
end # of OrbitApp
|
|
@ -12,7 +12,7 @@ module OrbitApp
|
|||
|
||||
def find_by_key(key)
|
||||
@@registrations.each{|t|
|
||||
return t if t.name == key
|
||||
return t if t.key == key
|
||||
}
|
||||
return nil
|
||||
end
|
||||
|
@ -28,27 +28,107 @@ module OrbitApp
|
|||
end
|
||||
|
||||
class DataSheet
|
||||
attr_reader :name
|
||||
attr_reader :base_path
|
||||
attr_reader :name,:key,:base_path,:module_label
|
||||
|
||||
def initialize(name, &block)
|
||||
@name = name
|
||||
@key = name.underscore.singularize
|
||||
@side_bar = nil
|
||||
@front_end_app_pages = nil
|
||||
@module_label = 'rulingcom.errors.init.module_app_noname'
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
setup_module_app
|
||||
end
|
||||
|
||||
def plugin
|
||||
def get_module_app
|
||||
ModuleApp.first(conditions: {:key=>@key,:title=>name})
|
||||
end
|
||||
|
||||
def setup_module_app
|
||||
module_app = get_module_app
|
||||
module_app = ModuleApp.new(:key=>@key,:title=>name) if module_app.nil?
|
||||
module_app.refetch_setting!(self)
|
||||
begin
|
||||
module_app.save(:validate=>false)
|
||||
rescue
|
||||
retry
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def personal_plugin(params)
|
||||
def get_label_i18n
|
||||
@module_label
|
||||
end
|
||||
|
||||
def get_default_widget_fields
|
||||
return @widget_set.get_fields
|
||||
end
|
||||
|
||||
def get_default_widget
|
||||
if @widget_set.nil? # Init not defining widget
|
||||
return {}
|
||||
elsif @widget_set.get_default_widget.nil? # Init had defining widget,but say nothing about default_widget
|
||||
return {}
|
||||
else
|
||||
@widget_set.get_default_widget.to_module_app_format
|
||||
end
|
||||
end
|
||||
|
||||
def get_enable_frontend
|
||||
(@front_end_app_pages.nil? ? false : true)
|
||||
end
|
||||
|
||||
def get_app_pages
|
||||
@front_end_app_pages.nil? ? [] : @front_end_app_pages.to_module_app_format
|
||||
end
|
||||
|
||||
def get_widget_by_path(path)
|
||||
if @widget_set
|
||||
@widget_set.find_by_path(path)
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def get_widgets
|
||||
@widget_set.nil? ? {} : @widget_set.to_module_app_format
|
||||
end
|
||||
|
||||
def get_categories
|
||||
@widget_set.get_categories rescue []
|
||||
end
|
||||
|
||||
def get_tags
|
||||
@widget_set.get_tags rescue []
|
||||
end
|
||||
|
||||
def front_end(&block) #setter for front_end from init
|
||||
@front_end_app_pages = FrontendUtility::AppPageSet.new(&block)
|
||||
end
|
||||
|
||||
def side_bar(&block) #setter for side_bar from init
|
||||
@side_bar = SideBarRegisition::SideBar.new(@name,@key,method(:get_module_app),&block)
|
||||
end
|
||||
|
||||
def personal_plugin(params) #setter for personal_plugin from init
|
||||
# TODO 這裡要看是一些檔案是不是都有
|
||||
Plugin::Registration.new_from_module_app(@name,@base_path,params)
|
||||
end
|
||||
|
||||
def base_url(var)
|
||||
@base_path = var
|
||||
def widgets(&block) #setter for widget from init
|
||||
# @widgets = WidgetRegisition::WidgetSet.new(&block)
|
||||
@widget_set = WidgetUtility::WidgetSet.new(&block)
|
||||
|
||||
# @widgets = widget_set.widgets
|
||||
# @default_widget = widget_set.default_widget
|
||||
end
|
||||
|
||||
%w{module_label category base_url version organization author intro update_info}.each do |field|
|
||||
define_method(field){|var| instance_variable_set( "@" + field, var)}
|
||||
end
|
||||
|
||||
end # of class DataSheet
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,172 @@
|
|||
module OrbitApp
|
||||
module Module
|
||||
module SideBarRegisition
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@side_bars = []
|
||||
|
||||
def add(var)
|
||||
@@side_bars << var
|
||||
end
|
||||
|
||||
def find_by_key(key)
|
||||
@@side_bars.each{|t|
|
||||
return t if t.name == key
|
||||
}
|
||||
return nil
|
||||
end
|
||||
|
||||
def render_all(request,params,user,current_module_app)
|
||||
@@side_bars.collect{|t| t.render(request,params,user,current_module_app)}.join.html_safe
|
||||
end
|
||||
|
||||
def all
|
||||
return @@side_bars
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class SideBar
|
||||
# include ApplicationHelper
|
||||
# include AdminHelper
|
||||
include SideBarRenderer
|
||||
# def is_admin?
|
||||
# binding.pry
|
||||
# end
|
||||
# def is_manager?
|
||||
# binding.pry
|
||||
# end
|
||||
def initialize(name = '',key,get_module_app,&block)
|
||||
@head_label = name
|
||||
@context_links = []
|
||||
@available_for = []
|
||||
@active_for_controllers = []
|
||||
@active_for_object_auth = []
|
||||
@active_for_app_auth = []
|
||||
@head_link = ""
|
||||
@app_base_path = ''
|
||||
@module_app_key = key
|
||||
@get_module_app = get_module_app
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
# setup_module_app(module_app_key)
|
||||
finalize!
|
||||
SideBarRegisition.add(self)
|
||||
end
|
||||
|
||||
def get_module_app
|
||||
@get_module_app.call
|
||||
end
|
||||
|
||||
def head_label_i18n(var,options ={})
|
||||
@head_label = var
|
||||
@icon_class = options[:icon_class]
|
||||
end
|
||||
|
||||
def available_for(var)
|
||||
@available_for = var
|
||||
end
|
||||
|
||||
def active_for_controllers(var)
|
||||
@active_for_controllers = var
|
||||
end
|
||||
|
||||
def active_for_object_auth(var)
|
||||
@active_for_object_auth = var
|
||||
end
|
||||
|
||||
def head_link_path(var)
|
||||
@head_link = var
|
||||
end
|
||||
|
||||
def context_link(*var)
|
||||
var[1].merge!({:module_app_key=>@module_app_key,:get_module_app=>@get_module_app}) unless @module_app_key.nil?
|
||||
new_context_link = ContextLink.new(*var)
|
||||
@context_links << new_context_link
|
||||
end
|
||||
|
||||
def finalize!
|
||||
set_controllers_scope
|
||||
# set_default_active_app_auth
|
||||
@context_links.each do |t|
|
||||
# t.set_module_app = @module_app
|
||||
t.finalize!
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
# def setup_module_app(var)
|
||||
# @module_app_title = var
|
||||
# @module_app = ModuleApp.where(:key=>var).desc(:create_date).first
|
||||
# @module_app_key = @module_app.key
|
||||
# end
|
||||
|
||||
# def set_default_active_app_auth
|
||||
# @active_for_app_auth = @module_app.title
|
||||
# end
|
||||
|
||||
def set_controllers_scope
|
||||
var = @active_for_controllers
|
||||
@active_for_controllers = []
|
||||
var[:private].each do |controller|
|
||||
@active_for_controllers << "panel/#{@module_app_key}/back_end/"+controller
|
||||
end unless var[:private].nil?
|
||||
var[:public].each do |controller|
|
||||
@active_for_controllers << controller
|
||||
end unless var[:public].nil?
|
||||
end
|
||||
end
|
||||
|
||||
class ContextLink
|
||||
include ContextLinkRenderer
|
||||
attr_reader :label_i18n,:available_for,:priority,:path,:active_for_action
|
||||
|
||||
def initialize(label_i18n="NoNameLink",options={})
|
||||
@label_i18n = label_i18n
|
||||
@available_for = options[:available_for]
|
||||
@priority = options[:priority] || 0
|
||||
@path = options[:link_path] || ""
|
||||
@active_for_action = options[:active_for_action] || []
|
||||
@active_for_object_auth = options[:active_for_object_auth] || []
|
||||
@active_for_app_auth = options[:active_for_app_auth] || []
|
||||
@module_app_key = options[:module_app_key]
|
||||
@get_module_app = options[:get_module_app]
|
||||
end
|
||||
|
||||
def get_module_app
|
||||
@get_module_app.call
|
||||
end
|
||||
|
||||
def active?
|
||||
for_action = @active_for_action.blank? ? false : active_for_action?
|
||||
for_app_auth = @active_for_app_auth.blank? ? false : active_for_app_auth?
|
||||
for_ob_auth = @active_for_object_auth.blank? ? false : active_for_ob_auths?
|
||||
for_action || for_app_auth || for_ob_auth
|
||||
end
|
||||
|
||||
def active_for_action?
|
||||
@active_for_action[controller] == action
|
||||
end
|
||||
|
||||
# def set_module_app=(var)
|
||||
# @module_app = var
|
||||
# @module_app_key = var.key
|
||||
# end
|
||||
|
||||
def finalize!
|
||||
set_active_actions
|
||||
end
|
||||
|
||||
protected
|
||||
def set_active_actions
|
||||
controller_action_hash = @active_for_action
|
||||
@active_for_action = Hash[controller_action_hash.map{|controller,action| ["panel/#{@module_app_key}/back_end/"+controller.to_s,action.to_s]}]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,172 @@
|
|||
module OrbitApp
|
||||
module Module
|
||||
module WidgetUtility
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@widgets = []
|
||||
|
||||
def add(var)
|
||||
@@widgets << var
|
||||
end
|
||||
|
||||
def all
|
||||
return @@widgets
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class WidgetSet
|
||||
attr_reader :widgets,:categories_query,:tags_query
|
||||
def initialize(&block)
|
||||
@widgets = []
|
||||
@default_widget = nil
|
||||
@categories_query = ''
|
||||
@tags_query = ''
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
%w{categories_query tags_query}.each do |field|
|
||||
define_method(field){|var| instance_variable_set( "@" + field, var)}
|
||||
end
|
||||
|
||||
def find_by_path(path)
|
||||
@widgets.each do |widget|
|
||||
return widget if widget.name == path
|
||||
end
|
||||
end
|
||||
|
||||
def get_categories
|
||||
eval(@categories_query) rescue nil
|
||||
end
|
||||
|
||||
def get_tags
|
||||
eval(@tags_query) rescue nil
|
||||
end
|
||||
|
||||
def default_widget(&block)
|
||||
@default_widget = DefaultWidget.new(&block)
|
||||
end
|
||||
|
||||
def customize_widget(name,&block)
|
||||
@widgets << Widget.new(name,&block)
|
||||
end
|
||||
|
||||
# def customize_widget(name,label,options ={})
|
||||
# @widgets << Widget.new(name,label,options)
|
||||
# end
|
||||
|
||||
# def customize_widget_options_fields_i18n(settings)
|
||||
# @customize_widget_options_fields_i18n = settings
|
||||
# end
|
||||
|
||||
def to_module_app_format
|
||||
hash = {}
|
||||
@widgets.collect{|t| hash[t.name] = t.to_hash}
|
||||
hash["default_widget"]= DefaultWidget.get_interface_args unless @default_widget.blank?
|
||||
hash
|
||||
end
|
||||
|
||||
def get_fields
|
||||
get_default_widget.get_fields
|
||||
end
|
||||
|
||||
def get_default_widget
|
||||
return @default_widget
|
||||
end
|
||||
end
|
||||
|
||||
class DefaultWidget
|
||||
STYLE = ["typeA","typeB_style2","typeB_style3","typeB_style4","typeC"]
|
||||
|
||||
def initialize(&block)
|
||||
@query = nil
|
||||
@image = nil
|
||||
@more_link = {}
|
||||
@fields = []
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def more_link_to(label_i18n,path_method)
|
||||
@more_link[:label_i18n] = label_i18n
|
||||
@more_link[:path_method] = path_method
|
||||
end
|
||||
|
||||
def self.get_interface_args
|
||||
#will need to work with design
|
||||
{:name=>"default_widget",:field=>nil,:label=>'label',:style=>STYLE}
|
||||
end
|
||||
|
||||
def to_module_app_format
|
||||
{:query=>@query,:image=>@image} rescue nil
|
||||
end
|
||||
|
||||
def link_field(field_name,setting)
|
||||
@fields << [field_name,setting,:link]
|
||||
end
|
||||
|
||||
def field(field_name)
|
||||
@fields << [field_name,nil,:field]
|
||||
end
|
||||
|
||||
def get_fields
|
||||
@fields
|
||||
end
|
||||
|
||||
def query(var)
|
||||
@query = var
|
||||
end
|
||||
|
||||
def image(var)
|
||||
@image = var
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Widget
|
||||
attr_reader :name,:default_template,:fields
|
||||
|
||||
def initialize(name,&block)
|
||||
@name = name
|
||||
@options = {}
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
|
||||
# @fields = options[:fields]
|
||||
# @label = label
|
||||
# @style= options[:style]
|
||||
end
|
||||
|
||||
def widget_i18n(str) # "gallery.widget.widget1"
|
||||
@widget_i18n = str
|
||||
end
|
||||
|
||||
def style(ary)# []
|
||||
@style = ary
|
||||
end
|
||||
|
||||
def get_options
|
||||
@options
|
||||
end
|
||||
|
||||
def options(opt_name,*options) # "vertical",
|
||||
option = options[0]
|
||||
@options[opt_name] = {:label_i18n=>option[:i18n] , :opts=>option[:options_item]}
|
||||
# options => :i18n => "gallery.widget_option.vertical",:options_item=>[1, 2]
|
||||
# :i18n =>"gallery.widget_option.album",:options_item => {"query"=>"GalleryAlbum.all", "value"=>:id, "label"=>:name}
|
||||
end
|
||||
|
||||
|
||||
def to_hash
|
||||
{:name => @name,:fields=>@fields,:label=>@label,:style=>@style,:i18n=>@widget_i18n}
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
end# of widget
|
||||
end # of WidgetRegisition
|
||||
end # of Module
|
||||
end # of OrbitApp
|
|
@ -0,0 +1,73 @@
|
|||
module OrbitApp
|
||||
module ModuleAppMembershipTools
|
||||
def is_manager?(user)
|
||||
if user.nil?
|
||||
return false
|
||||
else
|
||||
m_users = managing_users
|
||||
if m_users.blank?
|
||||
false
|
||||
else
|
||||
m_users.include?(user)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def is_sub_manager?(user)
|
||||
if user.nil?
|
||||
return false
|
||||
else # when user is guest
|
||||
s_m_users = sub_managing_users
|
||||
result = false
|
||||
if s_m_users.blank?
|
||||
result = false
|
||||
else
|
||||
result = s_m_users.include?(user)
|
||||
end
|
||||
result || is_manager?(user)
|
||||
end
|
||||
end
|
||||
|
||||
def managing_users
|
||||
self.managers.collect{ |t| t.user }
|
||||
end
|
||||
|
||||
def sub_managing_users
|
||||
self.sub_managers.collect{ |t| t.user }
|
||||
end
|
||||
|
||||
def assign_manager(user,assigner)
|
||||
manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if manager.nil?
|
||||
manager = self.managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil))
|
||||
end
|
||||
manager
|
||||
end
|
||||
|
||||
def assign_sub_manager(user,assigner)
|
||||
submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if submanager.nil? && !self.managing_users.include?(user)
|
||||
submanager = self.sub_managers.create(:user_id => user.id,:rule_creator_id => (assigner.id rescue nil) )
|
||||
end
|
||||
submanager
|
||||
end
|
||||
|
||||
def remove_manager(user)
|
||||
manager = AppManager.first(conditions: {managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if manager
|
||||
manager.destroy
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def remove_sub_manager(user)
|
||||
submanager = AppManager.first(conditions: {sub_managing_app_id: self.id,user_id: user.id}) rescue nil
|
||||
if submanager
|
||||
submanager.destroy
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -10,8 +10,8 @@ module OrbitApp
|
|||
@@registrations << DataSheet.new(name,&block)
|
||||
end
|
||||
|
||||
def new_from_module_app(name,base_path,arg)
|
||||
@@registrations << DataSheet.new(name,arg,:base_path=>base_path)
|
||||
def new_from_module_app(name,base_path,*args)
|
||||
@@registrations << DataSheet.new(name,args,:base_path=>base_path)
|
||||
end
|
||||
|
||||
def find_by_key(key)
|
||||
|
@ -35,16 +35,23 @@ module OrbitApp
|
|||
attr_reader :name
|
||||
attr_reader :base_path
|
||||
|
||||
def name
|
||||
if @name.is_a? Proc
|
||||
@name.call
|
||||
else
|
||||
@name
|
||||
end
|
||||
end
|
||||
|
||||
def initialize(name,partial=nil,*args ,&block)
|
||||
@base_path = args[0][:base_path]
|
||||
@name = name
|
||||
@name = partial[0][:i18n].nil? ? name : lambda{ I18n.t(partial[0][:i18n]) }
|
||||
@partial_path = ''
|
||||
@admin_partial_path = ''
|
||||
|
||||
unless partial.nil?
|
||||
@partial_path = partial[:path]
|
||||
@admin_partial_path = partial[:admin_path]
|
||||
@partial_path = partial[0][:path]
|
||||
@admin_partial_path = partial[0][:admin_path]
|
||||
end
|
||||
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
|
|
|
@ -7,7 +7,7 @@ module OrbitApp
|
|||
|
||||
def new( name ,&block)
|
||||
@@summaries << Item.new(name,&block)
|
||||
binding.pry
|
||||
# binding.pry
|
||||
end
|
||||
|
||||
def all
|
||||
|
|
|
@ -81,7 +81,7 @@ module OrbitCoreLib
|
|||
end
|
||||
|
||||
query1 = auth_object_space.any_in({sub_role_ids: sub_role_ids_ary}).excludes(blocked_user_ids: user.id)
|
||||
query2 = auth_object_space.any_of({all: true},{privilege_user_ids: user.id},{role_ids: user.role.id}).excludes(blocked_user_ids: user.id)
|
||||
query2 = auth_object_space.any_of({all: true},{privilege_user_ids: user.id},{role_ids: user.role_ids}).excludes(blocked_user_ids: user.id)
|
||||
result = (query1 + query2).uniq
|
||||
result.collect{|t| t.obj_authable}.delete_if{|val| val==nil}
|
||||
end
|
||||
|
@ -128,7 +128,7 @@ module OrbitCoreLib
|
|||
end
|
||||
|
||||
end
|
||||
module ObjectTokenUnility
|
||||
module ObjectTokenUtility
|
||||
def self.included(base)
|
||||
base.instance_eval("field :s_token")
|
||||
base.instance_eval("after_create :generate_token")
|
||||
|
@ -145,7 +145,7 @@ module OrbitCoreLib
|
|||
end
|
||||
end
|
||||
|
||||
module PermissionUnility
|
||||
module PermissionUtility
|
||||
private
|
||||
def check_permission(type = :use)
|
||||
permission_grant = current_or_guest_user.admin?? true : false
|
||||
|
@ -168,4 +168,34 @@ module OrbitCoreLib
|
|||
ModuleApp.first(conditions: {s_token: token})
|
||||
end
|
||||
end
|
||||
|
||||
module AppBackendUtility
|
||||
def setup_vars
|
||||
@app_title ||= controller_path.split('/')[1].singularize
|
||||
@module_app ||= ModuleApp.first(conditions: {:key => @app_title} )
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def force_order_for_visitor
|
||||
setup_vars
|
||||
set_current_user
|
||||
end
|
||||
|
||||
|
||||
def force_order_for_user
|
||||
setup_vars
|
||||
set_current_user
|
||||
authenticate_user!
|
||||
check_user_can_use
|
||||
end
|
||||
|
||||
def check_user_can_use
|
||||
unless check_permission
|
||||
#redirect_to polymorphic_path(['panel',@app_title,'back_end','public'])
|
||||
redirect_to root_url
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -184,14 +184,20 @@ module ParserCommon
|
|||
# page_contents
|
||||
def parse_contents_edit(body, page, edit=nil)
|
||||
public_r_tags = []
|
||||
url = ''
|
||||
body.css('.page_content').each do |content|
|
||||
ret = ''
|
||||
category = params[:category_id].blank? ? page[:category] : params[:category_id]
|
||||
tag = params[:tag_id].blank? ? page[:tag] : params[:tag_id]
|
||||
if (content["main"] == "true" && !page.module_app.nil?)
|
||||
ret << "<div id='appfrontend' class='dymanic_load' path='/panel/#{page.module_app.key}/front_end/#{page.app_frontend_url}"
|
||||
if page.app_frontend_url == 'default_widget'
|
||||
url = "/panel/orbit_app/widget/#{page.frontend_style}?inner=true"
|
||||
else
|
||||
url = "/panel/#{page.module_app.key}/front_end/#{page.app_frontend_url}"
|
||||
end
|
||||
ret << "<div id='appfrontend' class='dymanic_load' path='#{url}"
|
||||
ret << "/#{params[:id]}" if params[:id] && !params[:id].eql?(page.id.to_s)
|
||||
ret << "?inner=true&page_id=#{page.id}&category_id=#{category}&tag_id=#{tag}&preview=#{params[:preview]}&page_main=#{params[:page_main]}&search_query=#{params[:search_query]}&name=#{params[:name]}"
|
||||
ret << "?inner=true&page_id=#{page.id}&category_id=#{category}&tag_id=#{tag}&preview=#{params[:preview]}&page_main=#{params[:page_main]}&search_query=#{params[:search_query]}&name=#{params[:name]}&item_type=page"
|
||||
ret << "'></div>"
|
||||
else
|
||||
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
||||
|
@ -213,7 +219,7 @@ module ParserCommon
|
|||
raise ModuleAppError,"PagePart can't find ModuleApp" if part.module_app.nil?
|
||||
"/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true"
|
||||
end
|
||||
options = "&part_id=#{part.id}&category_id=#{!part[:category].blank? ? part[:category].blank? : category}&tag_id=#{!part[:tag].blank? ? part[:tag] : tag}&page=#{params[:page]}&search_query=#{params[:search_query]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}"
|
||||
options = "&part_id=#{part.id}&category_id=#{!part[:category].blank? ? part[:category].blank? : category}&tag_id=#{!part[:tag].blank? ? part[:tag] : tag}&page=#{params[:page]}&search_query=#{params[:search_query]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&item_type=page_part"
|
||||
ret << "<div class='dymanic_load widget' path='#{url + options}'></div>"
|
||||
when 'public_r_tag'
|
||||
ret << "<r:#{part.public_r_tag} id='#{part.public_r_tag_object_id}'/>"
|
||||
|
|
|
@ -95,11 +95,18 @@ module ParserFrontEnd
|
|||
# page_contents
|
||||
def parse_contents(body, page, edit=nil, locale)
|
||||
public_r_tags = []
|
||||
url = ''
|
||||
body.css('.page_content').each do |content|
|
||||
ret = ''
|
||||
if (content["main"] == "true" && !page.module_app.nil?)
|
||||
if page.app_frontend_url == 'default_widget'
|
||||
url = "/panel/orbit_app/widget/#{page.frontend_style}?inner=true"
|
||||
else
|
||||
url = "/panel/#{page.module_app.key}/front_end/#{page.app_frontend_url}\#{(\"/\" + params[:id]) if params[:id] && !params[:id].eql?(page.id.to_s)}\#{(\"/\" + params[:controller_action]) if params[:controller_action] && params[:id]}?inner=true"
|
||||
options = "&page_id=#{page.id}&category_id=\#{category}&tag_id=\#{tag}&preview=\#{params[:preview]}&page_main=\#{params[:page_main]}&search_query=\#{params[:search_query]}&name=\#{params[:name]}"
|
||||
end
|
||||
|
||||
|
||||
options = "&page_id=#{page.id}&category_id=\#{category}&tag_id=\#{tag}&preview=\#{params[:preview]}&page_main=\#{params[:page_main]}&search_query=\#{params[:search_query]}&name=\#{params[:name]}&item_type=page"
|
||||
ret << "<orbit_front path='#{url + options}'></div>"
|
||||
else
|
||||
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
||||
|
@ -116,7 +123,9 @@ module ParserFrontEnd
|
|||
else
|
||||
"/panel/\#{part.module_app.key}/widget/\#{part.widget_path}?inner=true"
|
||||
end
|
||||
options = "&part_id=\#{part.id}&category_id=\#{!part[:category].blank? ? part[:category].blank? : category}&tag_id=\#{!part[:tag].blank? ? part[:tag] : tag}&page=\#{params[:page]}&search_query=\#{params[:search_query]}&part_title=\#{Rack::Utils.escape(part_title).gsub(\"\+\", \"\%20\") rescue nil}"
|
||||
|
||||
options = "&part_id=\#{part.id}&category_id=\#{!part[:category].blank? ? part[:category].blank? : category}&tag_id=\#{!part[:tag].blank? ? part[:tag] : tag}&page=\#{params[:page]}&search_query=\#{params[:search_query]}&part_title=\#{Rack::Utils.escape(part_title).gsub(\"\+\", \"\%20\") rescue nil}&item_type=page_part"
|
||||
|
||||
ret << "<orbit_front path='#{url + options}' part_id=#{part.id} class='dymanic_load widget'></orbit_front>"
|
||||
|
||||
when 'public_r_tag'
|
||||
|
|
|
@ -351,9 +351,11 @@ namespace :migrate do
|
|||
end
|
||||
|
||||
|
||||
task :make_default_widget_work_config => :environment do
|
||||
|
||||
task :make_default_widget_work_config_for_announcement => :environment do
|
||||
a = ModuleApp.where(:key=>'announcement').first
|
||||
a.widgets[:default_widget] = ['typeA','typeC','typeB_style2','typeB_style3','typeB_style4']
|
||||
a.widgets = {"index"=>["1", "2"], "default_widget"=>["typeA", "typeC", "typeB_style2", "typeB_style3", "typeB_style4"]}
|
||||
a.widget_fields = [
|
||||
["title","announcement.default_widget.title"],
|
||||
["bulletin_category_with_title","announcement.default_widget.bulletin_category_with_title"],
|
||||
|
@ -370,6 +372,24 @@ namespace :migrate do
|
|||
a.save
|
||||
end
|
||||
|
||||
task :make_default_widget_work_config_for_web_link => :environment do
|
||||
a = ModuleApp.where(:key=>'web_resource').first
|
||||
a.widgets = { "default_widget"=>["typeA", "typeC", "typeB_style2", "typeB_style3", "typeB_style4"]}
|
||||
a.widget_fields = [
|
||||
["title","web_link.default_widget.title"],
|
||||
["web_link_with_title","web_link.default_widget.bulletin_category_with_title"]
|
||||
]
|
||||
a.get_default_widget = {:query=>'WebLink.all'}
|
||||
a.widget_fields_link_method = {
|
||||
"title"=>{:method => 'panel_web_resource_front_end_web_link_path',
|
||||
:args=>:self},
|
||||
"web_link_with_title"=>{
|
||||
:method => 'panel_web_resource_front_end_web_link_path',
|
||||
:args=>{:category_id => [:web_link_category,:id]}}
|
||||
}
|
||||
a.save
|
||||
end
|
||||
|
||||
|
||||
task :reorder_items => :environment do
|
||||
reorder_children(Item.root)
|
||||
|
@ -392,12 +412,16 @@ namespace :migrate do
|
|||
|
||||
task :correct_gallery_and_web_resoure_config => :environment do
|
||||
a = ModuleApp.where(:key=>'web_resource').first
|
||||
if a
|
||||
a.widgets = {}
|
||||
a.widgets[:web_links] = []
|
||||
a.widgets[:home_list] = []
|
||||
a.app_pages = ["web_links"]
|
||||
a.save
|
||||
end
|
||||
|
||||
a = ModuleApp.where(:key=>'gallery').first
|
||||
if a
|
||||
a.widgets = {}
|
||||
a.widgets[:widget1] = []
|
||||
a.widget_options_fields_i18n = {"widget1"=>{"vertical"=>"gallery.widget_option.vertical", "horizontal"=>"gallery.widget_option.horizontal", "album_id"=>"gallery.widget_option.album"}}
|
||||
|
@ -405,4 +429,15 @@ namespace :migrate do
|
|||
a.save
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
task :clean_module_app_objects => :environment do
|
||||
ModuleApp.all.each do |ma|
|
||||
%w{intro widget_fields_link_method widgets get_default_widget app_pages author enable_frontend get_widget_style get_widget_style organization update_info using_default_widget version widget_fields version create_date}.each do |field|
|
||||
ma.unset field
|
||||
end
|
||||
ma.save
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,222 +0,0 @@
|
|||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: JNDI not configured for solr (NoInitialContextEx)
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: using system property solr.solr.home: /home/nccu/stage/NCCU/solr
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader <init>
|
||||
INFO: Solr home set to '/home/nccu/stage/NCCU/solr/'
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.servlet.SolrDispatchFilter init
|
||||
INFO: SolrDispatchFilter.init()
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: JNDI not configured for solr (NoInitialContextEx)
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: using system property solr.solr.home: /home/nccu/stage/NCCU/solr
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.CoreContainer$Initializer initialize
|
||||
INFO: looking for solr.xml: /home/nccu/stage/NCCU/solr/solr.xml
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader <init>
|
||||
INFO: Solr home set to '/home/nccu/stage/NCCU/solr/'
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrConfig initLibs
|
||||
INFO: Adding specified lib dirs to ClassLoader
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrConfig <init>
|
||||
INFO: Loaded SolrConfig: solrconfig.xml
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrCore <init>
|
||||
INFO: Opening new SolrCore at /home/nccu/stage/NCCU/solr/, dataDir=/home/nccu/stage/NCCU/solr/data/development/
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.schema.IndexSchema readSchema
|
||||
INFO: Reading Solr Schema
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.schema.IndexSchema readSchema
|
||||
INFO: Schema name=sunspot
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created string: org.apache.solr.schema.StrField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created tdouble: org.apache.solr.schema.TrieDoubleField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created rand: org.apache.solr.schema.RandomSortField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created null: org.apache.solr.analysis.CJKTokenizerFactory
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created null: org.apache.solr.analysis.StandardFilterFactory
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created null: org.apache.solr.analysis.LowerCaseFilterFactory
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created text: org.apache.solr.schema.TextField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created boolean: org.apache.solr.schema.BoolField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created date: org.apache.solr.schema.DateField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created sdouble: org.apache.solr.schema.SortableDoubleField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created sfloat: org.apache.solr.schema.SortableFloatField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created sint: org.apache.solr.schema.SortableIntField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created slong: org.apache.solr.schema.SortableLongField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created tint: org.apache.solr.schema.TrieIntField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created tfloat: org.apache.solr.schema.TrieFloatField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.util.plugin.AbstractPluginLoader load
|
||||
INFO: created tdate: org.apache.solr.schema.TrieDateField
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.schema.IndexSchema readSchema
|
||||
INFO: default search field is text
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.schema.IndexSchema readSchema
|
||||
INFO: query parser default operator is AND
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.schema.IndexSchema readSchema
|
||||
INFO: unique key field: id
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.JmxMonitoredMap <init>
|
||||
INFO: No JMX servers found, not exposing Solr information with JMX.
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrCore initListeners
|
||||
INFO: Added SolrEventListener: org.apache.solr.core.QuerySenderListener{queries=[]}
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrCore initListeners
|
||||
INFO: Added SolrEventListener: org.apache.solr.core.QuerySenderListener{queries=[{q=solr rocks,start=0,rows=10}, {q=static firstSearcher warming query from solrconfig.xml}]}
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.request.XSLTResponseWriter init
|
||||
INFO: xsltCacheLifetimeSeconds=5
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created standard: solr.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created dismax: solr.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created partitioned: solr.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /spell: solr.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created tvrh: org.apache.solr.handler.component.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: adding lazy requestHandler: org.apache.solr.handler.extraction.ExtractingRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /update/extract: org.apache.solr.handler.extraction.ExtractingRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /terms: org.apache.solr.handler.component.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: adding lazy requestHandler: solr.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /elevate: solr.SearchHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /update: solr.XmlUpdateRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /update/javabin: solr.BinaryUpdateRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /analysis/document: solr.DocumentAnalysisRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /analysis/field: solr.FieldAnalysisRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: adding lazy requestHandler: solr.CSVRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /update/csv: solr.CSVRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /admin/: org.apache.solr.handler.admin.AdminHandlers
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /admin/ping: PingRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /debug/dump: solr.DumpRequestHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.RequestHandlers initHandlersFromConfig
|
||||
INFO: created /mlt: solr.MoreLikeThisHandler
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.search.SolrIndexSearcher <init>
|
||||
INFO: Opening Searcher@6a510e39 main
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.update.DirectUpdateHandler2$CommitTracker <init>
|
||||
INFO: AutoCommit: disabled
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SpellCheckComponent inform
|
||||
INFO: Initializing spell checkers
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.spelling.AbstractLuceneSpellChecker init
|
||||
INFO: Using WhitespaceAnalzyer for dictionary: default
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SpellCheckComponent inform
|
||||
WARNING: No queryConverter defined, using default converter
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.QueryElevationComponent inform
|
||||
INFO: Loading QueryElevation from: /home/nccu/stage/NCCU/solr/conf/elevate.xml
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.QueryComponent@3cc70b0d
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.FacetComponent@2fa6a1a7
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@64bef361
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@345c98f3
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2b3d9460
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@57d840cd
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.QueryComponent@3cc70b0d
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.FacetComponent@2fa6a1a7
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@64bef361
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@345c98f3
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2b3d9460
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@57d840cd
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.QueryComponent@3cc70b0d
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.FacetComponent@2fa6a1a7
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@64bef361
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@345c98f3
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2b3d9460
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@57d840cd
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.QueryComponent@3cc70b0d
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.FacetComponent@2fa6a1a7
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@64bef361
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@345c98f3
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2b3d9460
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.SpellCheckComponent@36867fc9
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@57d840cd
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.QueryComponent@3cc70b0d
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.FacetComponent@2fa6a1a7
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.MoreLikeThisComponent@64bef361
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.HighlightComponent@345c98f3
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.StatsComponent@2b3d9460
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.TermVectorComponent@382f8116
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding debug component:org.apache.solr.handler.component.DebugComponent@57d840cd
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SearchHandler inform
|
||||
INFO: Adding component:org.apache.solr.handler.component.TermsComponent@36c3e82b
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.QuerySenderListener newSearcher
|
||||
INFO: QuerySenderListener sending requests to Searcher@6a510e39 main
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.CoreContainer register
|
||||
INFO: registering core:
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.servlet.SolrDispatchFilter init
|
||||
INFO: user.dir=/home/nccu/.rvm/gems/ruby-1.9.2-p318@stage/gems/sunspot_solr-1.3.3/solr
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.servlet.SolrDispatchFilter init
|
||||
INFO: SolrDispatchFilter.init() done
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.servlet.SolrServlet init
|
||||
INFO: SolrServlet.init()
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: JNDI not configured for solr (NoInitialContextEx)
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: using system property solr.solr.home: /home/nccu/stage/NCCU/solr
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.servlet.SolrServlet init
|
||||
INFO: SolrServlet.init() done
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: JNDI not configured for solr (NoInitialContextEx)
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrResourceLoader locateSolrHome
|
||||
INFO: using system property solr.solr.home: /home/nccu/stage/NCCU/solr
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.servlet.SolrUpdateServlet init
|
||||
INFO: SolrUpdateServlet.init() done
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrCore execute
|
||||
INFO: [] webapp=null path=null params={start=0&event=firstSearcher&q=solr+rocks&rows=10} hits=0 status=0 QTime=46
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrCore execute
|
||||
INFO: [] webapp=null path=null params={event=firstSearcher&q=static+firstSearcher+warming+query+from+solrconfig.xml} hits=0 status=0 QTime=4
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.QuerySenderListener newSearcher
|
||||
INFO: QuerySenderListener done.
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.handler.component.SpellCheckComponent$SpellCheckerListener newSearcher
|
||||
INFO: Loading spell index for spellchecker: default
|
||||
Sep 24, 2012 10:20:33 AM org.apache.solr.core.SolrCore registerSearcher
|
||||
INFO: [] Registered new searcher Searcher@6a510e39 main
|
|
@ -0,0 +1,49 @@
|
|||
module AdBanner
|
||||
OrbitApp.registration "AdBanner",:type=> 'ModuleApp' do
|
||||
module_label 'miss_module_i18n.ad_banner'
|
||||
base_url File.expand_path File.dirname(__FILE__)
|
||||
# personal_plugin :enable => true,:path=>"panel/ad_banner/plugin/profile",:i18n=>'admin.ad_banner'
|
||||
|
||||
version "0.1"
|
||||
organization "Rulingcom"
|
||||
author "RD dep"
|
||||
intro "I am intro"
|
||||
update_info 'some update_info'
|
||||
|
||||
# front_end do
|
||||
# app_page 'bulletins'
|
||||
# end
|
||||
|
||||
# category ["BulletinCategory"]
|
||||
|
||||
# widgets do
|
||||
# # default_widget do
|
||||
# # query 'Bulletin.all'
|
||||
# # image :image
|
||||
# # end
|
||||
|
||||
# # categories_query 'BulletinCategory.all'
|
||||
# # tags_query 'AdBannerTag.all'
|
||||
|
||||
# # customize_widget "index","ad_banner.widget.index",:fields=>["title","category","postdate"],:style=>["cu_style_1","cu_style_2","cu_style_3","cu_style_4","cu_style_5"]
|
||||
# # customize_widget "bulletins_and_web_links","ad_banner.widget.bulletins_and_web_links"
|
||||
|
||||
# # item "index","ad_banner.widget.index",:default_template=>true,:fields=>["title","category","postdate"]
|
||||
# # item "bulletins_and_web_links","ad_banner.widget.bulletins_and_web_links"
|
||||
# end
|
||||
|
||||
side_bar do
|
||||
head_label_i18n 'admin.ad_banner',:icon_class=>"icons-landscape"
|
||||
available_for [:admin,:guest,:manager,:sub_manager]
|
||||
active_for_controllers ({:public=>['admin/ad_banners', 'admin/ad_images']})
|
||||
|
||||
head_link_path "admin_ad_banners_path"
|
||||
|
||||
context_link 'module_authorization',
|
||||
:link_path=>"admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {title: 'AdBanner'}))",
|
||||
:priority=>6,
|
||||
:active_for_app_auth => 'ad_banners',
|
||||
:available_for => [:admin]
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,17 +1,24 @@
|
|||
{
|
||||
"title": "announcement",
|
||||
"version": "0.1",
|
||||
"organization": "Rulingcom",
|
||||
"author": "RD dep",
|
||||
"intro": "A simple blog……",
|
||||
"update_info": "Some info",
|
||||
"create_date": "11-11-2011",
|
||||
"app_pages": ["bulletins"],
|
||||
"widgets": {
|
||||
"index":["1","2","3","4","5"],
|
||||
"bulletins_and_web_links":[]
|
||||
},
|
||||
"category": ["BulletinCategory"],
|
||||
"widget_fields":["title","category","postdate"],
|
||||
"enable_frontend": true
|
||||
}
|
||||
{
|
||||
"app_pages":["bulletins"],
|
||||
"author":"RD dep",
|
||||
"create_date":"11-11-2011",
|
||||
"enable_frontend":true,
|
||||
"get_default_widget":{"query":"Bulletin.all","image":"image"},
|
||||
"intro":"A simple blog",
|
||||
"key":"announcement",
|
||||
"organization":"Rulingcom",
|
||||
"title":"Announcement",
|
||||
"update_info":"Some info",
|
||||
"version":"0.1",
|
||||
"widget_fields":[["title","announcement.default_widget.title"],
|
||||
["bulletin_category_with_title","announcement.default_widget.bulletin_category_with_title"],
|
||||
["postdate","announcement.default_widget.postdate"]],
|
||||
"widget_fields_link_method":{"title":{"method":"panel_announcement_front_end_bulletin_path","args":"self"},
|
||||
"bulletin_category_with_title":{"method":"panel_announcement_front_end_bulletins_path",
|
||||
"args":{"category_id":["bulletin_category","id"]}
|
||||
}},
|
||||
"widget_options":null,
|
||||
"widget_options_fields_i18n":null,
|
||||
"widgets":{"index":["1","2"],
|
||||
"default_widget":["typeA","typeC","typeB_style2","typeB_style3","typeB_style4"]
|
||||
}}
|
|
@ -1,7 +1,20 @@
|
|||
class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendController
|
||||
include OrbitControllerLib::DivisionForDisable
|
||||
# if someone want to use json format replace with rss, please add :get_bulletins_json to below
|
||||
before_filter :for_app_manager,:except => [:index,:get_categorys_json]
|
||||
|
||||
# <<<<<<< HEAD
|
||||
# before_filter :for_app_manager,:except => [:index,:get_categorys_json]
|
||||
# before_filter :set_module_app
|
||||
|
||||
# def set_module_app
|
||||
# @module_app = ModuleApp.where(:title=>'Announcement').first
|
||||
# end
|
||||
# =======
|
||||
before_filter :for_app_manager,:except => [:index,:get_categorys_json,:get_bulletins_json]
|
||||
|
||||
|
||||
before_filter :force_order_for_visitor,:only=>[:index,:get_categorys_json,:get_bulletins_json]
|
||||
before_filter :force_order_for_user,:except => [:index,:get_categorys_json,:get_bulletins_json]
|
||||
before_filter :for_app_sub_manager,:except => [:index,:get_categorys_json,:get_bulletins_json]
|
||||
|
||||
def index
|
||||
@bulletin_categorys = get_categories_for_index("BulletinCategory")
|
||||
|
|
|
@ -70,13 +70,6 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
|
|||
|
||||
end
|
||||
|
||||
def bulletins_and_web_links
|
||||
@tags = AnnouncementTag.any_in(key: ['students', 'alumni', 'employee', 'guest']).asc(:order)
|
||||
@selected_tag = AnnouncementTag.find(params[:id]) rescue @tags[0]
|
||||
@bulletins = @selected_tag.get_visible_bulletins(:postdate).available_for_lang(I18n.locale).can_display.page(params[:page]).per(5) rescue nil
|
||||
@web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links(:created_at).available_for_lang(I18n.locale).page(params[:page]).per(5) rescue nil
|
||||
end
|
||||
|
||||
def reload_bulletins
|
||||
@selected_tag = AnnouncementTag.find(params[:tag_id])
|
||||
@bulletins = @selected_tag.get_visible_bulletins(:postdate).available_for_lang(I18n.locale).can_display.page(params[:page]).per(5) rescue nil
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
<div class="tag_block">
|
||||
<ul id='bulletins_web_links_tags' class="tag_list">
|
||||
<%= render :partial => 'tag', :collection => @tags %>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="news_block">
|
||||
<h3 class="news_title2"><%= link_to t("announcement.bulletins"), panel_announcement_front_end_bulletins_path, :class => 'more' %></h3>
|
||||
<ul id='bulletins_web_links_bulletins' class="news_list">
|
||||
<%= render 'bulletins' if @bulletins %>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="links_block">
|
||||
<h3 class="links_title"><%= t(:related_links) %></h3>
|
||||
<ul id='bulletins_web_links_web_links' class="links_list">
|
||||
<%= render 'web_links' if @web_links %>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "news_link" %>
|
||||
<% end %>
|
|
@ -1,3 +0,0 @@
|
|||
$('#bulletins_web_links_tags').html("<%= j render :partial => 'tag', :collection => @tags %>")
|
||||
$('#bulletins_web_links_bulletins').html("<%= j render 'bulletins' if @bulletins %>")
|
||||
$('#bulletins_web_links_web_links').html("<%= j render 'web_links' if @web_links %>")
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue