Compare commits

..
Author SHA1 Message Date
Spen 4053ccbcdd sso for ntu mb all sites 2013-09-26 15:23:03 +08:00
saurabhbhatia 1021ac2e9b Merge branch '0917_ntu_mb' of https://github.com/Rulingcom/orbit into 0917_ntu_mb 2013-09-26 14:46:14 +08:00
saurabhbhatia ab04070a8e Updated show to remove test code 2013-09-26 14:45:43 +08:00
saurabhbhatia 5ec011a5ff Fixed Personal Plugins tabs for en locale 2013-09-26 14:45:43 +08:00
Spen cd8448d447 Add Brief intro. for all personal plugins
Add Share Setting for Personal Plugins ( if have old data must be add default value "field: is_hidden => false " )
Apply New UI to Member Plugin Edit Page
Personal Plugin Summary fix
Academic Info. list fix

Updated Import method in teachers to make all false positives.

Updated Data import and sync code

Updated Books,Conference, Journal to display properly in the frontend

Journal title being imported correctly now

Fixed Import data to import journal level types, fixed writing journal
2013-09-26 14:45:43 +08:00
saurabhbhatia 7990d4388c Import Announcements, Journal Paper, Conference Data, book data
Conflicts:
	app/models/user/user.rb

Updated import data controller to check for blank user_id

Updated import data controller to check the absense of title data

Updated route to get announcement data

Conflicts:
	config/routes.rb

Updated import data controller

Updated import data controller to import data correctly

Added method for importing page data

Updated import data with pages working

Updated Import data with page data importing successfully

Updated import controller

Updated import data to get complete teacher and announcement data
2013-09-26 14:45:42 +08:00
saurabhbhatia 367cf67928 Get data from database
Conflicts:
	app/controllers/admin/import_data_controller.rb

Conflicts:
	app/controllers/admin/import_data_controller.rb
	app/views/admin/import_data/get_teacher_data.html.erb
2013-09-26 14:45:42 +08:00
harrybomrah e7c04c6e6e small add question fix for survey module. 2013-09-26 09:33:25 +08:00
harrybomrah 6ac600fb5c brief added to desktop for all plugins 2013-09-26 09:33:18 +08:00
harrybomrah 42dcf0a2d2 survey edit completed 2013-09-26 09:33:10 +08:00
harrybomrah c35d42d671 external links and link widget fixed for development 2013-09-26 09:33:01 +08:00
saurabhbhatia 6fc47d7afd Updated show to remove test code 2013-09-25 17:33:05 +08:00
saurabhbhatia 79c4cd2075 Fixed Personal Plugins tabs for en locale 2013-09-25 17:07:15 +08:00
saurabhbhatia 2a41e3440e Fixed Import data to import journal level types, fixed writing journal 2013-09-25 12:58:37 +08:00
saurabhbhatia e29b08d0dc Journal title being imported correctly now 2013-09-24 17:13:00 +08:00
saurabhbhatia d5bb2a1889 Updated Books,Conference, Journal to display properly in the frontend 2013-09-24 15:07:49 +08:00
saurabhbhatia b535f2cf9c Updated Data import and sync code 2013-09-23 16:18:07 +08:00
saurabhbhatia f2a27c6b40 Updated Import method in teachers to make all false positives. 2013-09-23 09:52:33 +08:00
Spen 9613a52305 Add Brief intro. for all personal plugins
Add Share Setting for Personal Plugins ( if have old data must be add default value "field: is_hidden => false " )
Apply New UI to Member Plugin Edit Page
Personal Plugin Summary fix
Academic Info. list fix
2013-09-18 18:56:36 +08:00
saurabhbhatia dc8815d619 Fixed Pagination Errors in member module 2013-09-18 16:10:39 +08:00
harrybomrah b5b416d531 add page completed with attributes and reordering 2013-09-18 12:27:01 +08:00
harrybomrah f27f96b994 commit for survey questions 2013-09-18 12:26:52 +08:00
saurabhbhatia cd1d4356fb Updated import data to get complete teacher and announcement data 2013-09-17 11:36:50 +08:00
saurabhbhatia d5357ea63c Updated import controller 2013-09-17 11:36:45 +08:00
saurabhbhatia 50bb2a870c Updated Import data with page data importing successfully 2013-09-17 11:36:41 +08:00
saurabhbhatia a93945cd45 Updated import data with pages working 2013-09-17 11:36:38 +08:00
saurabhbhatia 249644e72c Added method for importing page data 2013-09-17 11:36:35 +08:00
saurabhbhatia f16d1908be Updated import data controller to import data correctly 2013-09-17 11:36:31 +08:00
saurabhbhatia c8be884291 Updated import data controller 2013-09-17 11:36:29 +08:00
saurabhbhatia 6280fdfba0 Updated route to get announcement data
Conflicts:
	config/routes.rb
2013-09-17 11:36:26 +08:00
saurabhbhatia 2a9948868f Updated import data controller to check the absense of title data 2013-09-17 11:36:24 +08:00
saurabhbhatia e4514a353a Updated import data controller to check for blank user_id 2013-09-17 11:36:07 +08:00
saurabhbhatia d2a07d9ffb Import Announcements, Journal Paper, Conference Data, book data
Conflicts:
	app/models/user/user.rb
2013-09-17 11:36:05 +08:00
saurabhbhatia 93909eeca0 Get data from database
Conflicts:
	app/controllers/admin/import_data_controller.rb

Conflicts:
	app/controllers/admin/import_data_controller.rb
	app/views/admin/import_data/get_teacher_data.html.erb
2013-09-17 11:36:02 +08:00
185 changed files with 1753 additions and 1598 deletions

No files matched your search

+3 -5
View File
@@ -11,8 +11,8 @@ gem "net-ldap", "~> 0.3.1"
gem 'devise', '1.5.3' gem 'devise', '1.5.3'
gem 'exception_notification' # Send error trace gem 'exception_notification' # Send error trace
gem 'execjs' gem 'execjs'
gem 'jquery-rails', '3.0.4' gem 'jquery-rails', '2.1.4'
gem 'jquery-ui-rails', "4.0.5" gem 'jquery-ui-rails'
gem "select2-rails", '3.3.1' gem "select2-rails", '3.3.1'
gem 'kaminari' gem 'kaminari'
gem 'time_difference' gem 'time_difference'
@@ -38,7 +38,7 @@ gem 'resque-scheduler' # job scheduling
gem 'resque-restriction' gem 'resque-restriction'
#gem 'rb-readline' #gem 'rb-readline'
# gem 'ruby-debug19' # gem 'ruby-debug19'
gem 'rubyzip', '< 1.0.0' gem 'rubyzip'
gem 'sunspot_mongo' gem 'sunspot_mongo'
gem 'sunspot_solr' gem 'sunspot_solr'
@@ -97,8 +97,6 @@ group :test, :development do
gem "watchr" gem "watchr"
gem "spork" gem "spork"
gem "capybara" gem "capybara"
#gem 'rack-mini-profiler'
gem "better_errors"
# gem 'yard' # gem 'yard'
# gem "bluecloth" # gem "bluecloth"
end end
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

+1 -1
View File
@@ -6,7 +6,7 @@
// //
//= require jquery //= require jquery
//= require jquery_ujs //= require jquery_ujs
//= require jquery.ui.all //= require jquery-ui
//= require desktop/jquery.form //= require desktop/jquery.form
//= require desktop/jquery.tinyscrollbar //= require desktop/jquery.tinyscrollbar
//= require desktop/jquery.miniColors.min //= require desktop/jquery.miniColors.min
+43 -77
View File
@@ -29,9 +29,6 @@
//column="true" this option is only for column layout... the columns will be formed on this column=true attribute and it should be a div //column="true" this option is only for column layout... the columns will be formed on this column=true attribute and it should be a div
//item=true this attribute should be present in the li tag. li with this attribute are considered as a separate item. //item=true this attribute should be present in the li tag. li with this attribute are considered as a separate item.
//enableLanguageSelect( dom ) children <a> will be binded with language, data-lang = string ex "en"|"zh_tw" will toggle all data-langunage throughout the page
//enableSharing( dom ) children <a> will be binded with share, data-mode = string ex "public"|"private" will change the mode for all the selected items. the dom with class should have data-link = url data-var = vaiable_name, default will be mode
$.extend($.expr[':'], { $.extend($.expr[':'], {
'containsi': function (elem, i, match, array) { 'containsi': function (elem, i, match, array) {
@@ -168,7 +165,7 @@ var orbitDesktop = function(dom){
o.loadIconCache(); o.loadIconCache();
var custom_load = window.location.hash; var custom_load = window.location.hash;
if(!custom_load){ if(!custom_load){
$(o.contentHolder).empty().load("/desktop/desktop_container",function(){ $(o.contentHolder).empty().load("/desktop/desktop",function(){
o.desktopData["d_desktop"] = ""; o.desktopData["d_desktop"] = "";
o.initializeDesktop("d_desktop","",false); o.initializeDesktop("d_desktop","",false);
}) })
@@ -226,8 +223,7 @@ var orbitDesktop = function(dom){
this.bindDesktopEvents = function(){ //this function will bind the global handlers to thd desktop, for example doc this.bindDesktopEvents = function(){ //this function will bind the global handlers to thd desktop, for example doc
$(".docklist a").click(function(){ $(".docklist a").click(function(){
if( !$( this ).parent().hasClass( 'disable' ) ) o.menu_item($(this));
o.menu_item($(this));
return false; return false;
}); });
@@ -275,11 +271,10 @@ var orbitDesktop = function(dom){
}); });
$("body").on("click","*[ajax-remote]",function(){ $("body").on("click","*[ajax-remote]",function(){
var $e = $(this), var $e = $(this);
t = $e.attr("ajax-remote"), var t = $e.attr("ajax-remote");
classes_to_toggle = $e.attr("toggle-onclick"), var classes_to_toggle = $e.attr("toggle-onclick");
responsetype = $e.attr('response-type') ? $e.attr('response-type') : "html", var exe = $e.attr("callback-method"); // (typeof $e.attr("callback-method") == "function"? $e.attr("callback-method") : "");
exe = $e.attr("callback-method"); // (typeof $e.attr("callback-method") == "function"? $e.attr("callback-method") : "");
if(classes_to_toggle){ if(classes_to_toggle){
$e.toggleClass(classes_to_toggle); $e.toggleClass(classes_to_toggle);
} }
@@ -291,9 +286,9 @@ var orbitDesktop = function(dom){
} }
var ca = $e.attr("content-holder"); var ca = $e.attr("content-holder");
var a = function(){ var a = function(){
$.ajax({ $.ajax({
type : t, type : t,
dataType : responsetype,
url : $e.attr("href"), url : $e.attr("href"),
success : function(data){ success : function(data){
if(typeof data == "string"){ if(typeof data == "string"){
@@ -304,7 +299,6 @@ var orbitDesktop = function(dom){
// $("div[container=true]").html(data); // $("div[container=true]").html(data);
} }
} }
if(exe) if(exe)
window.o[o.data_method][exe](data,$e); window.o[o.data_method][exe](data,$e);
if(t == "delete"){ if(t == "delete"){
@@ -605,11 +599,10 @@ var orbitDesktop = function(dom){
this.menu_item = function(dom,customload,submenuitem){ this.menu_item = function(dom,customload,submenuitem){
if(!customload)customload=false; if(!customload)customload=false;
var target = dom.attr("id"), var target = dom.attr("id");
url = dom.attr("href"), var url = dom.attr("href");
submenu_pass = ( dom.attr("sub-menu") == "false" ? false : true);
if(!url)return false; if(!url)return false;
o.data_method = dom.attr("callback-method"); o.data_method = dom.attr("callback-method");
if(o.currenthtml!=target){ if(o.currenthtml!=target){
if(o.desktopData[o.currentface] == "undefined"){ if(o.desktopData[o.currentface] == "undefined"){
@@ -630,37 +623,33 @@ var orbitDesktop = function(dom){
window.o[o.data_method](target,url,cache); window.o[o.data_method](target,url,cache);
} }
} }
if( submenu_pass ){ try {
try { if(!customload){
if(!customload){ o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),data);
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),data); } else {
if(submenuitem){
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]"));
} else { } else {
if(submenuitem){ o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),data);
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]"));
} else {
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),data);
}
} }
} catch(EX){} }
} } catch(EX){}
header_ani(); header_ani();
}); });
}else{ }else{
$(o.contentHolder).html(o.desktopData[o.currentface]); $(o.contentHolder).html(o.desktopData[o.currentface]);
if( submenu_pass ){ try{
try{ if(!customload){
if(!customload){ o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),o.desktopData[o.currentface]);
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),o.desktopData[o.currentface]); }else{
}else{ if(submenuitem)
if(submenuitem) o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]"),o.desktopData[o.currentface]);
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]"),o.desktopData[o.currentface]); else
else o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),o.desktopData[o.currentface]);
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),o.desktopData[o.currentface]); }
} }catch(EX){}
}catch(EX){}
}
// cache = (o.lastlink == "/desktop/app_manager" ? false : true); cache = (o.lastlink == "/desktop/app_manager" ? false : true);
if(typeof o.data_method != "undefined"){ if(typeof o.data_method != "undefined"){
if(o.data_method != ""){ if(o.data_method != ""){
window.o[o.data_method](target,url,cache); window.o[o.data_method](target,url,cache);
@@ -1100,7 +1089,7 @@ var orbitDesktop = function(dom){
data : options, data : options,
success : function(data){ success : function(data){
if(data.success == "true"){ if(data.success == "true"){
if(dom.is(":checked")){ if(dom.is(":checked")){ console.log("true");
elementSettingsData[$e.data("id")].sections.push({"id" : dom.data("section"),"name":sectionDetails.name}); elementSettingsData[$e.data("id")].sections.push({"id" : dom.data("section"),"name":sectionDetails.name});
o.notify("Added to " + sectionDetails.name,"success"); o.notify("Added to " + sectionDetails.name,"success");
}else{ }else{
@@ -1124,16 +1113,20 @@ var orbitDesktop = function(dom){
var info_open = function(){ var info_open = function(){
if($appinfo.is(":hidden")){ if($appinfo.is(":hidden")){
$('.overview').stop().animate({'width': '+=480'},0 , function(){ $('.overview').stop().animate({'width': '+=480'},0 , function(){
// $('.tinycanvas').tinyscrollbar_update('relative'); $('.tinycanvas').tinyscrollbar_update();
}); });
$appinfo $appinfo
.css({ .css({
'display': 'block',
'margin-left': -480 'margin-left': -480
}).fadeIn(200) })
.delay(300)
.animate({ .animate({
'margin-left': 0 'margin-left': 0
}, 500, 'easeInOutQuint'); }, 500, 'easeInOutQuint');
} } else {
$('.tinycanvas').tinyscrollbar_update();
}
} }
var info_close = function(){ var info_close = function(){
@@ -1144,11 +1137,13 @@ var orbitDesktop = function(dom){
'margin-left': -480 'margin-left': -480
},500 , 'easeInOutQuint', function(){ },500 , 'easeInOutQuint', function(){
$('.overview').animate({'width': '-=480'}, 0, function(){ $('.overview').animate({'width': '-=480'}, 0, function(){
// $('.tinycanvas').tinyscrollbar_update(); $('.tinycanvas').tinyscrollbar_update();
}); });
$(this).fadeOut(300).attr("style",""); $(this).attr("style","");
}); });
} } else {
$('.tinycanvas').tinyscrollbar_update();
}
} }
$(window).on('keydown', function(){ $(window).on('keydown', function(){
if($('#searchbox').val() == 'Search'){ if($('#searchbox').val() == 'Search'){
@@ -1886,35 +1881,6 @@ var orbitDesktop = function(dom){
return false; return false;
}); });
} }
this.enableSharing = function( dom ){
var el = $( dom ),
variable = ( el.data( 'var' ) ? el.data( "var" ) : "mode"),
_url = el.data( 'link' ) + "?" + variable + "=",
classes = [];
el.find( "a" ).each( function(){
classes.push( $( this ).attr( "item-class" ) ? $( this ).attr( "item-class" ) : $( this ).data( 'mode' ) );
})
el.find( "a" ).click( function(){
var ids = [],
mode = $( this ).data( 'mode' ),
inject_class = $( this ).attr( 'item-class' ) ? $( this ).attr( 'item-class' ) : mode;
$( ".overview li[item=true] a.icon-check" ).each( function(){
ids.push( $( this ).data( 'id' ) );
$( "li[data-id="+ $( this ).data( 'id' ) +"]").removeClass( classes.join( " " ) ).addClass( inject_class );
})
$.ajax({
url : _url + mode,
data : {"ids" : ids},
datatype : "json",
})
return false;
})
}
this.minimizeBarManager = function(){ this.minimizeBarManager = function(){
var minimizedApps = [], var minimizedApps = [],
minimizeBar = $("#minimizebar"); minimizeBar = $("#minimizebar");
@@ -43,14 +43,8 @@ $(function(){
placeholder: 'placeholder', placeholder: 'placeholder',
startCollapsed: true, startCollapsed: true,
disableNesting: 'no-nest', disableNesting: 'no-nest',
update: function(event, ui) { stop: function(event, ui) {
var position = null; $.post("<%= Rails.application.routes.url_helpers.admin_update_position_path %>", { id: ui.item.attr('id'), parent_id: (ui.item.parent().closest('li').attr('id') || ui.item.parent().closest('ol').attr('id')), position: ui.item.index() } );
if($(ui.item).closest('ol').hasClass('item-groups')) {
position = $(ui.item).index() - 1;
} else {
position = $(ui.item).index();
};
$.post("<%= Rails.application.routes.url_helpers.admin_update_position_path %>", { id: ui.item.attr('id'), parent_id: (ui.item.parent().closest('li').attr('id') || ui.item.parent().closest('ol').attr('id')), position: position } );
} }
}); });
$(".sortable").delegate(".brand, .delete", clickEvent, function(e){ $(".sortable").delegate(".brand, .delete", clickEvent, function(e){
@@ -55,13 +55,6 @@
} else { } else {
$viewPage.find('.content').load(url, function(){ $viewPage.find('.content').load(url, function(){
$viewPage.clone(true).appendTo( $pageslide.empty() ).show(); $viewPage.clone(true).appendTo( $pageslide.empty() ).show();
if($('#filter-default-tag').length) {
$('#filter-default-tag').fastLiveFilter('.add-default-tags-list', '.filter-item', '.tag');
addTagsTab();
$('#view-page .card').cardCheck({
item: $('#view-page input[type="checkbox"]'),
});
};
if(callback)callback.call(this,$viewPage,element); if(callback)callback.call(this,$viewPage,element);
}); });
} }
+20 -16
View File
@@ -80,22 +80,26 @@ $(function() {
_data.actionable ? $('#dialog').modal('show') : ""; _data.actionable ? $('#dialog').modal('show') : "";
e.preventDefault(); e.preventDefault();
}); });
$('.delete-item').on(clickEvent, function() {
var _v = []; $("#dialog").on('show', function (e) {
$("tbody .list-check").each(function() { $(this).find('.delete-item').on(clickEvent, function() {
this.checked && _v.push("ids[]="+this.value) var _v = [];
}); $("tbody .list-check").each(function() {
var _t = $t.attr("rel"); this.checked && _v.push("ids[]="+this.value)
if(_t.indexOf("?") > -1) {
$.ajax(_t + "&" + _v.join("&")).done(function() {
actionSuccess(_data.checkAction)
}); });
} else { var _t = $t.attr("rel");
$.ajax(_t + "?" + _v.join("&")).done(function() { if(_t.indexOf("?") > -1) {
actionSuccess(_data.checkAction) $.ajax(_t + "&" + _v.join("&")).done(function() {
}); actionSuccess(_data.checkAction)
} });
$('#dialog').modal('hide'); } else {
$('.list-active-btn').addClass('disabled').data('actionable', false); $.ajax(_t + "?" + _v.join("&")).done(function() {
actionSuccess(_data.checkAction)
});
}
$('#dialog').modal('hide');
$('.list-active-btn').addClass('disabled').data('actionable', false);
e.preventDefault();
})
}); });
}); });
@@ -1,56 +0,0 @@
function dragMode() {
$('#card-list').sortable({
placeholder: "highlight",
update: function( event, ui ) {
var _userPosition = {};
_userPosition.position = $(ui.item).index();
_userPosition.id = $(ui.item).data('user-id');
$.ajax({
url: "<%= Rails.application.routes.url_helpers.update_order_card_admin_users_new_interface_index_path %>",
type: 'POST',
dataType: 'script',
data: {users: _userPosition}
});
}
});
$('#card-list').disableSelection();
}
function typeMode() {
var _userPosition = [];
$('#list-view tbody tr').each(function(i) {
$(this).data('user-index', i);
});
$('#member-list').on(clickEvent, '.edit_position', function(e){
var $input = $('<input type="text">'),
$cross = $('<a class="btn btn-mini"><i class="icons-cross"/></a>');
if($(this).siblings('input').length) {
$(this).siblings('input').attr('type', 'text').after($cross);
} else {
$(this).after($cross);
$(this).after($input);
}
$(this).hide();
$input.val($(this).text());
e.preventDefault();
$cross.click(function(event) {
$input.remove();
$(this).siblings('a').show().end().remove();
});
});
$('.bottomnav').on(clickEvent, '.btn', function(e) {
_userPosition = [];
$('#member-list tbody input').each(function(i) {
_userPosition.push([$(this).val(), $(this).siblings('a').data('user-id')]);
});
$.ajax({
url: "<%= Rails.application.routes.url_helpers.update_order_list_admin_users_new_interface_index_path %>",
type: 'POST',
dataType: 'script',
data: {users: _userPosition}
});
e.preventDefault();
});
};
+1 -1
View File
@@ -1,5 +1,5 @@
//= require basic //= require basic
//= require jquery.ui.sortable //= require lib/jquery-ui-1.10.2.custom.min.js
//= require lib/jquery.ui.touch-punch.min.js //= require lib/jquery.ui.touch-punch.min.js
//= require lib/jquery.mjs.nestedSortable.js //= require lib/jquery.mjs.nestedSortable.js
//= require lib/items/items //= require lib/items/items
+3 -3
View File
@@ -191,7 +191,7 @@ legend {
} }
#sidebar .sidebar-nav > li i { #sidebar .sidebar-nav > li i {
font-size: 1.6em; font-size: 1.6em;
line-height: 45px; line-height: 60px;
} }
#sidebar .sidebar-nav > li.active i { #sidebar .sidebar-nav > li.active i {
font-size: 2.2em; font-size: 2.2em;
@@ -621,8 +621,8 @@ legend {
margin-bottom: 25px; margin-bottom: 25px;
} }
.sign-in .btn { .sign-in .btn {
padding: 4px 0;
display: block; display: block;
padding: 4px 0;
width: 100%; width: 100%;
margin-bottom: 10px; margin-bottom: 10px;
} }
@@ -650,7 +650,7 @@ legend {
.sign-in .checkbox { .sign-in .checkbox {
position: absolute; position: absolute;
text-align: left; text-align: left;
bottom: 37px; bottom: 47px;
} }
.sign-in .switchboard { .sign-in .switchboard {
color: #08C; color: #08C;
+65 -12
View File
@@ -2,16 +2,17 @@
top: 0px; top: 0px;
left: -10px; left: -10px;
right: -10px; right: -10px;
height: 40px;
z-index: 1041; z-index: 1041;
position: fixed; position: fixed;
margin-bottom: 0; margin-bottom: 0;
height: 40px;
} }
#orbit-bar .orbitlogo { #orbit-bar .orbitlogo {
width: 20px; width: 50px;
height: 20px; height: 40px;
padding: 0!important;
background-size: 70%; background-size: 70%;
display: inline-block; display: block;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
background-image: url(<%= asset_path 'orbit-logo.svg' %>); background-image: url(<%= asset_path 'orbit-logo.svg' %>);
@@ -19,8 +20,23 @@
/* For Suck IE */ /* For Suck IE */
background-image: url(<%= asset_path 'orbit-logo.png' %>)\9; background-image: url(<%= asset_path 'orbit-logo.png' %>)\9;
} }
#orbit-bar .dropdown-menu li > a {
padding: 0 20px;
display: block;
height: 30px;
line-height: 30px;
}
#orbit-bar .dropdown-menu li i {
float: left;
display: inline-block;
margin-right: 5px;
line-height: 30px;
height: 100%;
}
#orbit-bar.navbar .nav > li > a { #orbit-bar.navbar .nav > li > a {
color: #EEE; color: #EEE;
padding: 0 15px;
display: block;
text-shadow: 0 -1px 0 #000; text-shadow: 0 -1px 0 #000;
border-right: 1px solid #363636; border-right: 1px solid #363636;
box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.3); box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.3);
@@ -34,6 +50,11 @@
background-color: #0095CF; background-color: #0095CF;
text-shadow: 0 -1px 0 #014380; text-shadow: 0 -1px 0 #014380;
} }
#orbit-bar.navbar .nav > li > a > [class^="icon"],
#orbit-bar.navbar .nav > li > a > [class*=" icon"] {
line-height: 40px;
display: block;
}
#orbit-bar.navbar .nav li.dropdown.open > .dropdown-toggle, #orbit-bar.navbar .nav li.dropdown.open > .dropdown-toggle,
#orbit-bar.navbar .nav li.dropdown.active > .dropdown-toggle, #orbit-bar.navbar .nav li.dropdown.active > .dropdown-toggle,
#orbit-bar.navbar .nav li.dropdown.open.active > .dropdown-toggle { #orbit-bar.navbar .nav li.dropdown.open.active > .dropdown-toggle {
@@ -41,9 +62,7 @@
text-shadow: 0 -1px 0 #014380; text-shadow: 0 -1px 0 #014380;
} }
#orbit-bar .navbar-inner { #orbit-bar .navbar-inner {
height: 40px;
border-width: 0; border-width: 0;
min-height: 40px;
background-color: #333333; background-color: #333333;
-webkit-border-radius: 0px; -webkit-border-radius: 0px;
-moz-border-radius: 0px; -moz-border-radius: 0px;
@@ -66,6 +85,10 @@
right: auto; right: auto;
bottom: auto; bottom: auto;
} }
#orbit-bar .nav > li {
display: block;
line-height: 40px;
}
#orbit-bar .nav [class^="icon"], #orbit-bar .nav [class^="icon"],
#orbit-bar .nav [class*=" icon"] { #orbit-bar .nav [class*=" icon"] {
font-size: 1.5em; font-size: 1.5em;
@@ -92,17 +115,45 @@
#orbit-bar .modal .input-prepend { #orbit-bar .modal .input-prepend {
margin-bottom: 15px; margin-bottom: 15px;
} }
#orbit-bar .modal .other-sign-in {
position: relative;
text-align: center;
margin-top: 20px;
margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid #EDEDED;
}
#orbit-bar .modal .other-sign-in .btn {
padding: 4px 0;
display: block;
margin-bottom: 5px;
width: 100%;
}
#orbit-bar .modal .other-sign-in p {
position: absolute;
width: 30px;
height: 30px;
background-color: #FFF;
padding: 0 10px;
margin-bottom: 0;
margin-left: -25px;
line-height: 30px;
left: 50%;
bottom: -15px;
font-size: 1.3em;
color: #B1B1B1;
}
/*Search*/ /*Search*/
#orbit-bar #search { #orbit-bar #search {
margin-bottom: 0; margin-bottom: 0;
position: relative; position: relative;
padding: 8px 10px 0; padding: 0 10px;
border-right: 1px solid #363636; border-right: 1px solid #363636;
box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.3); box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.3);
} }
#orbit-bar #search form { #orbit-bar #search form {
margin-bottom: 8px; margin: 8px 0;
} }
#orbit-bar #search input[type="text"] { #orbit-bar #search input[type="text"] {
height: 14px; height: 14px;
@@ -110,6 +161,7 @@
font-size: 13px; font-size: 13px;
padding-left: 25px; padding-left: 25px;
padding-right: 25px; padding-right: 25px;
display: block;
-webkit-border-radius: 12px; -webkit-border-radius: 12px;
-moz-border-radius: 12px; -moz-border-radius: 12px;
-o-border-radius: 12px; -o-border-radius: 12px;
@@ -122,15 +174,16 @@
#orbit-bar #search .search-clear { #orbit-bar #search .search-clear {
position: absolute; position: absolute;
color: #A3A3A3; color: #A3A3A3;
top: 14px; top: 16px;
} }
#orbit-bar #search .icon-search { #orbit-bar #search .icon-search {
left: 13px; left: 15px;
top: 15px;
font-size: 1.2em; font-size: 1.2em;
width: 1.25em;
margin-top: 0;
} }
#orbit-bar #search .search-clear { #orbit-bar #search .search-clear {
right: 14px; right: 13px;
font-size: 1.3em; font-size: 1.3em;
} }
#orbit-bar #search .search-clear:hover { #orbit-bar #search .search-clear:hover {
@@ -19,18 +19,6 @@
margin-left: 0; margin-left: 0;
} }
} }
.form_fix {
textarea {
margin-bottom: 12px;
}
input[type="text"] {
margin-left: 0;
margin-top: 0;
}
input[type="text"] + input {
margin-top: 12px;
}
}
// fixed width column with 12px gutter // fixed width column with 12px gutter
// 276px width for 8 columns // 276px width for 8 columns
// 420px width for 12 columns // 420px width for 12 columns
@@ -323,29 +323,6 @@ a.admtxt.admbg2:hover {
float: left; } float: left; }
.docklist .d_cate:hover .dock_child { .docklist .d_cate:hover .dock_child {
display: block; } display: block; }
.disable {
opacity: .3;
}
.disable a {
cursor: not-allowed;
}
.private {
position: relative;
padding-right: 10px;
width: 300px;
opacity: .3 !important;
}
.private:after {
content: "\e073";
display: inline-block;
font-family: 'entypo';
font-size: 1.5em;
position: absolute;
right: 0;
text-align: center;
text-decoration: inherit;
top: 5px;
}
.fn_des.admtxt { .fn_des.admtxt {
line-height: 60px; line-height: 60px;
@@ -737,8 +714,7 @@ a.admtxt.admbg2:hover {
/* list item */ /* list item */
.list_t_item { .list_t_item {
overflow: hidden; overflow: hidden; }
height: 100px; }
.list_t_title { .list_t_title {
padding-bottom: 6px; padding-bottom: 6px;
@@ -772,8 +748,7 @@ a.admtxt.admbg2:hover {
-webkit-text-size-adjust: none; } -webkit-text-size-adjust: none; }
.list_item_function a :first-child { .list_item_function a :first-child {
margin-left: 0; } margin-left: 0; }
.datalist_item:hover .list_item_function, .datalist_item:hover .list_item_function {
.list_t_item:hover .list_item_function {
bottom: 0; } bottom: 0; }
/* App */ /* App */
@@ -125,14 +125,6 @@
} }
#list-view .checkbox-card li {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
/* Responsive */ /* Responsive */
@media (max-width: 767px) { @media (max-width: 767px) {
@@ -1,52 +0,0 @@
/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */
/*<!--breakpoint-->*/
.breakpoints {width: .8em;}
.breakpoint { color: #822; }
/*<!--match-->*/
span.CodeMirror-matchhighlight { background: #494949 }
.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; }
/*<!--activeline-->*/
.activeline {background: #253540 !important;}
.cm-s-midnight.CodeMirror {
background: #0F192A;
color: #D1EDFF;
}
.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
.cm-s-midnight div.CodeMirror-selected {background: #314D67 !important;}
.cm-s-midnight .CodeMirror-gutters {background: #0F192A; border-right: 1px solid;}
.cm-s-midnight .CodeMirror-linenumber {color: #D0D0D0;}
.cm-s-midnight .CodeMirror-cursor {
border-left: 1px solid #F8F8F0 !important;
}
.cm-s-midnight span.cm-comment {color: #428BDD;}
.cm-s-midnight span.cm-atom {color: #AE81FF;}
.cm-s-midnight span.cm-number {color: #D1EDFF;}
.cm-s-midnight span.cm-property, .cm-s-tropicaleve span.cm-attribute {color: #A6E22E;}
.cm-s-midnight span.cm-keyword {color: #E83737;}
.cm-s-midnight span.cm-string {color: #1DC116;}
.cm-s-midnight span.cm-variable {color: #FFAA3E;}
.cm-s-midnight span.cm-variable-2 {color: #FFAA3E;}
.cm-s-midnight span.cm-def {color: #4DD;}
.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;}
.cm-s-midnight span.cm-bracket {color: #D1EDFF;}
.cm-s-midnight span.cm-tag {color: #008;}
.cm-s-midnight span.cm-link {color: #AE81FF;}
.cm-s-midnight .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}
.typ { color: #FFAA3E; }
.atn { color: #606; }
.atv { color: #080; }
.dec { color: #606; }
+18 -20
View File
@@ -1,23 +1,21 @@
/* @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/ambiance-mobile.css);
*= require 'lib/codemirror/theme/ambiance-mobile' @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/ambiance.css);
*= require "lib/codemirror/theme/ambiance" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/blackboard.css);
*= require "lib/codemirror/theme/blackboard" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/cobalt.css);
*= require "lib/codemirror/theme/cobalt" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/eclipse.css);
*= require "lib/codemirror/theme/eclipse" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/elegant.css);
*= require "lib/codemirror/theme/elegant" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/erlang-dark.css);
*= require "lib/codemirror/theme/erlang-dark" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/midnight.css);
*= require "lib/codemirror/theme/midnight" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/monokai.css);
*= require "lib/codemirror/theme/monokai" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/neat.css);
*= require "lib/codemirror/theme/neat" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/night.css);
*= require "lib/codemirror/theme/night" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/rubyblue.css);
*= require "lib/codemirror/theme/rubyblue" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/solarized.css);
*= require "lib/codemirror/theme/solarized" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/theme.css);
*= require "lib/codemirror/theme/theme" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/twilight.css);
*= require "lib/codemirror/theme/twilight" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/vibrant-ink.css);
*= require "lib/codemirror/theme/vibrant-ink" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/xq-dark.css);
*= require "lib/codemirror/theme/xq-dark" @import url(/orbit_4.0.1/assets/stylesheets/lib/codemirror/theme/xq-light.css);
*= require "lib/codemirror/theme/xq-light"
*/
.cm-tab { .cm-tab {
border-left: 1px solid rgba(200, 200, 200, .2); border-left: 1px solid rgba(200, 200, 200, .2);
} }
+193
View File
@@ -0,0 +1,193 @@
/* Main List */
.main-list {
margin-bottom: 10px;
}
.main-list tbody {
border: 1px solid #dddddd;
}
.main-list thead {
border: 1px solid #454545;
}
.main-list thead th {
vertical-align: middle;
background-color: #454545;
white-space: nowrap;
color: #FFFFFF;
}
.main-list tbody tr.disable td {
color: #C5C5C5;
background-color: #eeeeee;
}
.main-list tbody tr.disable td .label-info {
background-color: #999999;
}
.main-list tbody tr.active td:first-child {
position: relative;
}
.main-list tbody tr.active td:first-child:before {
content: "";
width: 0px;
height: 0px;
left: -21px;
top: 50%;
margin-top: -6px;
position: absolute;
border-style: solid;
border-width: 6px 0 6px 6px;
border-color: transparent transparent transparent #333333;
}
.main-list td {
background-color: #FFFFFF;
}
.main-list td.action {
vertical-align: middle;
text-align: right;
}
.main-list td.preview img {
width: 100%;
}
.main-list td .banner-link {
width: 100px;
max-width: 120px;
display: inline-block;
text-overflow: ellipsis;
overflow: hidden;
}
.main-list td .file-list {
display: inline-block;
margin: 0 0 -6px;
}
.main-list td .file-list:after {
content: "";
clear: both;
display: block;
height: 0;
visibility: hidden;
}
.main-list td .file-type {
position: relative;
list-style: none;
float: left;
display: inline-block;
}
.main-list td .file-type a {
background-color: #A6A6A6;
color: #FFFFFF;
margin-right: 10px;
padding: 2px 5px 2px 3px;
border-radius: 3px;
text-decoration: none;
text-shadow: 0px -1px 0px rgba(100, 100, 100, .6);
}
.main-list td .file-type i,
.main-forms fieldset .input-area .controls .file-type i {
width: 16px;
height: 16px;
margin-bottom: -1px;
display: inline-block;
}
.main-list td .file-type[class^="type-"] i,
.main-list td .file-type[class*=" type-"] i,
.main-forms fieldset .input-area .controls .file-type[class*=" type-"] i,
.main-forms fieldset .input-area .controls .file-type[class^="type-"] i {
background-image: url(/orbit_4.0.1/assets/images/file_type.png);
}
.file-type.type-pdf i {background-position: 0px 0px;}
.file-type.type-psd i {background-position: -16px 0px;}
.file-type.type-ai i {background-position: -32px 0px;}
.file-type.type-fla i {background-position: -48px 0px;}
.file-type.type-in i {background-position: -64px 0px;}
.file-type.type-acc i {background-position: 0px -16px;}
.file-type.type-do i {background-position: -16px -16px;}
.file-type.type-xl i {background-position: -32px -16px;}
.file-type.type-pp i {background-position: -48px -16px;}
.file-type.type-zip i {background-position: -64px -16px;}
.file-type.type-txt i {background-position: 0px -32px;}
.file-type.type-jp i {background-position: -16px -32px;}
.file-type.type-gif i {background-position: -32px -32px;}
.file-type.type-png i {background-position: -48px -32px;}
.file-type.type-audio i {background-position: -64px -32px;}
.main-list td .quick-edit {
height: 24px;
margin-top: 5px;
}
.main-list td .quick-edit .nav {
display: none;
margin-bottom: 0;
}
.main-list tr:hover .quick-edit .nav {
display: block;
}
.main-list td .quick-edit .nav > li > a {
padding-top: 4px;
padding-bottom: 4px;
margin-top: 0px;
margin-bottom: 0px;
border: 1px dotted #d1d1d1;
}
.main-list td .quick-edit .nav > li > a:hover {
border: 1px dotted transparent;
}
.main-list thead tr.sort-header th a {
padding: 8px;
margin: -8px;
display: block;
color: #FFFFFF;
text-decoration: none;
}
.main-list thead tr.sort-header th.active a {
padding-bottom: 4px;
border-bottom: 4px solid #08c;
}
.main-list .footable-row-detail td {
padding: 0;
border-top: none;
}
.main-list .footable-row-detail td .footable-row-detail-inner {
display: none;
padding: 8px;
position: relative;
border-radius: 5px;
margin: 0 8px 8px;
background-color: #ededed;
}
.main-list .footable-row-detail td .footable-row-detail-inner:after {
display: block;
height: 0px;
width: 0px;
position: absolute;
top: -6px;
left: 50%;
margin-left: -3px;
content: "";
border-style: solid;
border-width: 0 6px 6px 6px;
border-color: transparent transparent #ededed transparent;
}
.main-list .footable-row-detail td .footable-row-detail-inner div {
margin: 10px 0;
}
#preview .preview {
margin: 0 auto;
}
/* For Retina */
@media screen and (-webkit-min-device-pixel-ratio: 2), screen and (max--moz-device-pixel-ratio: 2) {
.main-list td .file-type[class^="type-"] i,
.main-list td .file-type[class*=" type-"] i,
.main-forms fieldset .input-area .controls .file-type[class*=" type-"] i,
.main-forms fieldset .input-area .controls .file-type[class^="type-"] i {
background-image: url(/orbit_4.0.1/assets/images/file_type@2x.png);
background-size: 80px 48px;
}
}
/* Responsive */
@media (max-width: 480px) {
.main-list td .quick-edit .nav {
display: block;
}
}
@@ -39,13 +39,6 @@
.main-list td { .main-list td {
background-color: #FFFFFF; background-color: #FFFFFF;
} }
.main-list td input[type="text"] {
margin-bottom: 0;
margin-left: -.4em;
margin-right: 3px;
padding: 0 .3em;
width: 4em;
}
.main-list td.action { .main-list td.action {
vertical-align: middle; vertical-align: middle;
text-align: right; text-align: right;
-10
View File
@@ -10,12 +10,6 @@
} }
/* List */ /* List */
#list-view #member-list tr.highlight td {
background-color: #FFFAE5;
}
#list-view #member-list tr.highlight td:first-child {
padding: 0
}
#list-view #member-list .gender, #list-view #member-list .gender,
#list-view #member-list td[class^="gender-"] { #list-view #member-list td[class^="gender-"] {
width: 5px; width: 5px;
@@ -195,10 +189,6 @@
#list-view #member-card > li:hover .member-avatar .action { #list-view #member-card > li:hover .member-avatar .action {
visibility: visible; visibility: visible;
} }
#list-view #member-card .highlight {
background-color: #F0F0F0;
outline: 1px dashed #9E9E9E;
}
#list-view #member-card .member-avatar { #list-view #member-card .member-avatar {
width: 150px; width: 150px;
height: 150px; height: 150px;
-3
View File
@@ -29,9 +29,6 @@
.topnav .btn-group { .topnav .btn-group {
margin-left: 0; margin-left: 0;
} }
.topnav .view-switch {
margin-left: 10px;
}
/* Bottom Nav */ /* Bottom Nav */
.bottomnav { .bottomnav {
@@ -223,7 +223,7 @@
#orbit-bar { #orbit-bar {
margin: 0; margin: 0;
font-family: "Chivo"; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 12px; font-size: 12px;
line-height: 20px; line-height: 20px;
color: #333333; color: #333333;
@@ -22,10 +22,8 @@ class Admin::AdImagesController < Admin::AdBannersController
end end
def update def update
@ad_banner = AdBanner.find params[:ad_banner][:id] @ad_image = AdImage.find(params[:id])
@ad_image = AdImage.find(params[:ad_image][:id])
@ad_image.update_attributes(params[:ad_image]) @ad_image.update_attributes(params[:ad_image])
@ad_banner.ad_images << @ad_image
redirect_to admin_ad_images_path redirect_to admin_ad_images_path
end end
@@ -40,10 +38,10 @@ class Admin::AdImagesController < Admin::AdBannersController
end end
def create def create
@ad_banner = AdBanner.find params[:ad_banner][:id] # @ad_banner = AdBanner.find params[:ad_banner][:id]
@ad_image = AdImage.new params[:ad_image] @ad_image = AdImage.new params[:ad_image]
@ad_image.to_save = true #@ad_image.to_save = true
@ad_banner.ad_images << @ad_image #@ad_banner.ad_images << ad_image
if @ad_image.save if @ad_image.save
redirect_to admin_ad_images_path redirect_to admin_ad_images_path
@@ -0,0 +1,373 @@
# encoding: utf-8
require 'net/http'
require 'open-uri'
class Admin::ImportDataController < OrbitBackendController
helper Admin::PagePartsHelper
include Admin::FrontendWidgetInterface
def get_teacher_data
uri = URI("https://localhost:8000/teachers.xml")
#params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
#uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
@teacher_data = Hash.from_xml(res.body)
@teachers = @teacher_data["objects"]
@i = 5000
@teachers.each do |hash|
# @roles = Role.skip(1).first
@roles = Role.all
@teacher = User.new
I18n.locale = :zh_tw
if !hash['teacher_zh_tw'].blank?
@teacher.first_name = hash['teacher_zh_tw']
elsif hash['teacher_zh_tw'].blank? && !hash['teacher_en'].blank?
@teacher.first_name = hash['teacher_en']
elsif hash['teacher_zh_tw'].blank? && hash['teacher_en'].blank?
@teacher.first_name = "Please Fill the Name"
end
I18n.locale = :en
if !hash['teacher_en'].blank?
@teacher.first_name = hash['teacher_en']
elsif hash['teacher_en'].blank? && !hash['teacher_zh_tw'].blank?
@teacher.first_name = hash['teacher_zh_tw']
elsif hash['teacher_en'].blank? && hash['teacher_zh_tw'].blank?
@teacher.first_name = "Please Fill the Name"
end
#@teacher.first_name = hash['teacher_en']
@teacher.ntu_seq = hash['ntu_seq']
@teacher.sid = hash['ntu_seq']
@teacher.role_ids = ["#{@roles.skip(1).first.id}"]
@teacher.password = "testpass"
@i += 10
if !hash['email'].blank?
@user = User.where(email: "#{hash['email']}")
if @user.length == 0
@teacher.email = hash['email']
elsif @user.length > 0
@teacher.email = "#{@i}duplicate@ntu.edu.tw"
end
else
@teacher.email = "#{@i}@ntu.edu.tw"
end
if hash['teacher_zh_tw'].blank? && hash['teacher_en'].blank?
@teacher.user_id = "defaultuser"
elsif hash['teacher_en'].blank?
@teacher.user_id = hash['teacher_zh_tw']
elsif hash['teacher_zh_tw']
@teacher.user_id = hash['teacher_en']
end
@teacher.save!
end
end
def get_book_data
uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
teachers = User.all
teachers.each do |hash|
if hash.ntu_seq.present?
ntu_seq = hash.ntu_seq
books_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
@books = books_xml.xpath("//Book").map do |book_node|
{
author: (book_node>"Authors").text,
year: (book_node>"PublishYear").text,
title: (book_node>"DocTitle").text,
remarks: (book_node>"Remarks").text,
publisher: (book_node>"Publisher").text,
book_title: (book_node>"BookTitle").text
}
end
if @books.present?
@books.each do |b|
@book = WritingBook.new
I18n.locale = :zh_tw
@book.authors = b[:author]
@book.paper_title = b[:title]
@book.book_title = b[:book_title]
@book.note = b[:remarks]
@book.publisher = b[:publisher]
I18n.locale = :en
@book.authors = b[:author]
@book.paper_title = b[:title]
@book.book_title = b[:book_title]
@book.note = b[:remarks]
@book.publisher = b[:publisher]
@book.year = b[:year]
@book.create_user_id = hash.id
@book.save
end
else
puts "No books by Teacher"
end
end
end
end
def get_conference_data
uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
teachers = User.all
teachers.each do |hash|
if hash.ntu_seq.present?
ntu_seq = hash.ntu_seq
conference_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
@conference_papers = conference_xml.xpath("//Paper").map do |cp_node|
{
author: (cp_node>"Authors").text,
year: (cp_node>"PublishYear").text,
title: (cp_node>"PaperTitle").text,
conference: (cp_node>"PublishOn").text,
date: Date::MONTHNAMES[(cp_node>"PublishMonth").text.to_i],
location: "#{(cp_node>"Country").text} #{(cp_node>"location").text}",
conference_title: (cp_node>"PublishOn").text,
remarks: (cp_node>"Remarks").text
}
end
if @conference_papers.present?
@conference_papers.each do |b|
@conference_paper = WritingConference.new
I18n.locale = :zh_tw
@conference_paper.authors = b[:author]
if b[:title].blank?
@conference_paper.paper_title = "No Title Present"
else
@conference_paper.paper_title = b[:title]
end
if b[:conference_title].blank?
@conference_paper.conference_title = "No Title Present"
else
@conference_paper.conference_title = b[:conference_title]
end
@conference_paper.note = b[:remarks]
I18n.locale = :en
@conference_paper.authors = b[:author]
if b[:title].blank?
@conference_paper.paper_title = "No Title Present"
else
@conference_paper.paper_title = b[:title]
end
if b[:conference_title].blank?
@conference_paper.conference_title = "No Title Present"
else
@conference_paper.conference_title = b[:conference_title]
end
@conference_paper.note = b[:remarks]
@conference_paper.location = b[:location]
@conference_paper.year = b[:year]
@conference_paper.create_user_id = hash.id
@conference_paper.save!
end
else
puts "No conference by Teacher"
end
end
end
end
def get_journal_paper_data
uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
teachers = User.all
teachers.each do |hash|
if hash.ntu_seq.present?
ntu_seq = hash.ntu_seq
paper_xml = Nokogiri::XML( \
#open("http://versatile.management.ntu.edu.tw/publication1/journal/#{ntuseq}.xml"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
@journal_papers = paper_xml.xpath("//Paper").map do |paper_node|
{
author: (paper_node>"Authors").text,
year: (paper_node>"PublishYear").text,
title: (paper_node>"PaperTitle").text,
journal: (paper_node>"PublishOn").text,
volume:(paper_node>"Volume").text,
volumeno:(paper_node>"VolumeNo").text,
beginpage:(paper_node>"BeginPage").text,
endpage:(paper_node>"EndPage").text,
subgroup:(paper_node>"subgroup").text,
remarks: (paper_node>"Remarks").text,
cate: ((paper_node>"subgroup")>"Group").text
}
end
if @journal_papers.present?
@journal_papers.each do |b|
@journal_paper = WritingJournal.new
I18n.locale = :zh_tw
@journal_paper.authors = b[:author]
if b[:title].blank?
@journal_paper.paper_title = "No Title Present"
else
@journal_paper.paper_title = b[:title]
end
@journal_paper.journal_title = b[:journal]
@journal_paper.note = b[:remarks]
I18n.locale = :en
@journal_paper.authors = b[:author]
if b[:title].blank?
@journal_paper.paper_title = "No Title Present"
else
@journal_paper.paper_title = b[:title]
end
@journal_paper.journal_title = b[:journal]
@journal_paper.note = b[:remarks]
@journal_paper.year = b[:year]
@journal_paper.vol_no = b[:volumeno]
@journal_paper.form_to_start = b[:beginpage]
@journal_paper.form_to_end = b[:endpage]
if !b[:cate].blank?
@level_type = JournalLevelType.where(:key => b[:cate])
if @level_type.present?
@journal_paper.journal_level_type_ids = ["#{@level_type.first.id}"]
end
end
@journal_paper.create_user_id = hash.id
@journal_paper.save!
end
else
puts "No journal paper by Teacher"
end
end
end
end
def get_announcement_data
uri = URI("https://localhost:8000/announcements.xml")
#params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
#uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
@announcement_data = Hash.from_xml(res.body)
@announcements = @announcement_data["objects"]
@announcements.each do |hash|
@bulletin = Bulletin.new
I18n.locale = :zh_tw
if hash['announcement_title_zh_tw'].blank?
@bulletin.title = hash['announcement_title_en']
@bulletin.text = hash['announcement_content_zh_tw']
elsif hash['announcement_title_zh_tw'].blank? && hash['announcement_title_en'].blank?
@bulletin.title = "Please Fill the Name"
@bulletin.text = hash['announcement_content_zh_tw']
else
@bulletin.title = hash['announcement_title_zh_tw']
@bulletin.text = hash['announcement_content_zh_tw']
end
I18n.locale = :en
if hash['announcement_title_zh_tw'].blank? && hash['announcement_title_en'].blank?
@bulletin.title = "Please Fill the Name"
@bulletin.text = hash['announcement_content_en']
elsif hash['announcement_title_en'].blank?
@bulletin.title = hash['announcement_zh_tw']
@bulletin.text = hash['announcement_content_en']
elsif hash['announcement_title_zh_tw'].blank?
@bulletin.title = hash['announcement_title_en']
@bulletin.text = hash['announcement_content_en']
end
@bulletin.category_id = "51d2a16438178423c2000001"
@bulletin.is_pending = true
@bulletin.save!
end
end
def get_page_data
f = File.open("/home/rwub/orbit-db/ntu_mb/pages/management_pages.xml")
page_xml = Nokogiri::XML(f)
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
@pages = page_xml.xpath("//management-page").map do |cp_node|
{
menu_title: (cp_node>"menu-title").text,
content: (cp_node>"content").text
}
end
if @pages.present?
@i=0
@pages.each do |b|
get_variables_for_new
@page = Page.new
@page.parent = "4f45f3b9e9d02c5db900005d"
@page.design = "50ac424983e75219d2000021"
@page.theme_id = "50ac424a83e75219d2000025"
@page.menu_enabled_for= ["en", "zh_tw", ""]
@page.enabled_for= ["en", "zh_tw", ""]
@page.is_published = false
if b[:menu_title].blank?
@page.title = 'No Title Present'
@i += 1
@page.name = "#{@i}Page"
else
@i += 1
@page.title = b[:menu_title]
@page.name = "#{@i}Page"
end
if b[:content].blank?
@page.content = "No Content Present"
else
@page.content = b[:content]
end
@page.save!
end
else
puts "No Page Data"
end
end
def get_variables_for_new
@designs = Design.all.entries
@themes = Design.first.themes
@module_apps = ModuleApp.for_frontend_select
@app_frontend_urls = nil
@categories = nil
@tags = nil
@page_frontend_data_counts = nil
@frontend_styles = nil
@selected={
:design => @designs.first,
:theme=> @themes.first,
:module_app=>nil,#@module_apps.first
:app_frontend_url=> nil, #@module_apps.first
:category=>nil,
:tag=>nil,
:page_frontend_data_count=>nil,
:frontend_style => nil
}
end
end
+2 -2
View File
@@ -27,8 +27,8 @@ class Admin::ItemsController < OrbitBackendController
def update_position def update_position
item = Item.find(params[:id]) item = Item.find(params[:id])
item.shift_to(params[:parent_id], params[:position].to_i) item.shift_to(params[:parent_id], params[:position])
render :nothing => true, status: 200 render :nothing => true
end end
end end
+1 -1
View File
@@ -95,7 +95,7 @@ class Admin::PagesController < Admin::ItemsController
if @item.module_app && @item.module_app.key == 'page_content' if @item.module_app && @item.module_app.key == 'page_content'
@item.page_contexts.build(:create_user_id => current_user.id, :update_user_id => current_user.id ) @item.page_contexts.build(:create_user_id => current_user.id, :update_user_id => current_user.id )
end end
if @item.save if @item.save
flash.now[:notice] = t('create.success.page') flash.now[:notice] = t('create.success.page')
respond_to do |format| respond_to do |format|
+9 -9
View File
@@ -4,19 +4,19 @@ class Admin::PluginsController < ApplicationController
def index def index
@plugins = OrbitApp::Plugin::Registration.all @plugins = OrbitApp::Plugin::Registration.all
if(!params[:show_plugin_profile].nil?) if(!params[:show_plugin_profile].nil?)
@right_partial = OrbitApp::Plugin::Registration.find_by_app_name(params[:show_plugin_profile]).admin_partial_path @right_partial = OrbitApp::Plugin::Registration.find_by_key(params[:show_plugin_profile]).admin_partial_path
if !@right_partial.blank? if !@right_partial.blank?
respond_to do |format| respond_to do |format|
format.html { redirect_to( @right_partial ) } format.html { redirect_to( @right_partial ) }
end end
else else
@right_partial = "" @right_partial = ""
end end
else else
@right_partial = "" @right_partial = ""
@@ -83,18 +83,9 @@ class Admin::UsersNewInterfaceController < OrbitMemberController
end end
def show def show
@user = User.find(params[:id]) @user = User.find(params[:id])
@plugins = OrbitApp::Plugin::Registration.all @plugins = OrbitApp::Plugin::Registration.all
@ppname = Array.new
@plugins.each do |aa|
@ppname << [aa.sort_number.to_i, [aa.name, aa.app_name, aa.intro_app_name, aa.front_partial_path]]
end
@plugin_shows = @ppname.sort.collect {|v| {"name"=>v[1][0],"app_name"=>v[1][1],"intro_app_name"=>v[1][2],"front_partial_path"=>v[1][3]} }
@profile_data = [] @profile_data = []
@teacher_data = [] @teacher_data = []
@student_data = [] @student_data = []
@@ -249,58 +240,6 @@ class Admin::UsersNewInterfaceController < OrbitMemberController
end end
end end
def edit_order_card
@users = User.not_guest_user
@type = 'card'
render 'edit_order'
end
def edit_order_list
@users = User.not_guest_user
@type = 'list'
render 'edit_order'
end
def update_order_card
@error = false
if params[:users].present?
to_go = params[:users][:position].to_i
user_at_position = User.where(position: to_go).first
user = User.find(params[:users][:id])
if user_at_position
if user.position > user_at_position.position
user.move_above(user_at_position)
else
user.move_below(user_at_position)
end
end
end
render nothing: true, status: 200
end
def update_order_list
@error = []
if params[:users].present?
params[:users].values.sort.each do |pair|
to_go = pair[0].to_i
if to_go > 0
user_at_position = User.where(position: to_go - 1).first
user = User.find(pair[1])
if user_at_position && !(user_at_position == user)
if user.position > user_at_position.position
user.move_above(user_at_position)
else
user.move_below(user_at_position)
end
elsif to_go > User.count
user.move_to_bottom
end
end
end
end
@users = User.not_guest_user
end
protected protected
def get_tags def get_tags
+2 -2
View File
@@ -18,7 +18,7 @@ class ApplicationController < ActionController::Base
helper_attr :site_valid_locales helper_attr :site_valid_locales
def check_backend_openness def check_backend_openness
if Site.first.backend_openness_on if !Me.backend_openness_on
redirect_to '/users/sign_in' if not (authenticate_user! and is_member? ) redirect_to '/users/sign_in' if not (authenticate_user! and is_member? )
end end
end end
@@ -321,7 +321,7 @@ class ApplicationController < ActionController::Base
a << object if (value.include?(object.category.id.to_s) rescue nil) a << object if (value.include?(object.category.id.to_s) rescue nil)
end end
objects = a.uniq objects = a.uniq
when 'tags' when 'tag'
a = Array.new a = Array.new
objects.each do |object| objects.each do |object|
object.tags.each do |tag| object.tags.each do |tag|
+1 -1
View File
@@ -1,4 +1,4 @@
class DesktopAppsController < ApplicationController class DesktopAppsController < OrbitBackendController
require "net/http" require "net/http"
require "uri" require "uri"
require 'zip/zip' require 'zip/zip'
+1 -1
View File
@@ -19,7 +19,7 @@ class DesktopController< ApplicationController
render :layout => "compatibility" render :layout => "compatibility"
end end
def desktop_container def desktop
render :layout => false render :layout => false
end end
@@ -1,4 +1,4 @@
class DesktopWidgetsController < ApplicationController class DesktopWidgetsController < OrbitBackendController
require "net/http" require "net/http"
require "uri" require "uri"
require 'zip/zip' require 'zip/zip'
+2 -24
View File
@@ -12,16 +12,7 @@ class FrontController < ApplicationController
end end
def show_footer def show_footer
@page = Page.find(:all, :conditions => {:name => /terms/i}) render :text => @site.footer
@name = @page.first.name
@url = "/#{@name}"
if !@site.enable_terms_of_use
render :text => (@site.footer + "<a href='#{@url}'>Terms of Use</a>")
else
render :text => @site.footer
end
end end
def show_menu def show_menu
@@ -30,15 +21,7 @@ class FrontController < ApplicationController
end end
def show_site_sub_menu def show_site_sub_menu
@page = Page.find(:all, :conditions => {:name => /sitemap/i}) render :text => @site.sub_menu
@name = @page.first.name
@url = "/#{@name}"
if !@site.sitemap_menu_in_header
render :text => (@site.sub_menu + "<a href='#{@url}'>Sitemap</a>")
else
render :text => @site.sub_menu
end
end end
def show_sitemap def show_sitemap
@@ -60,11 +43,6 @@ class FrontController < ApplicationController
@tags = module_app.sorted_tags_for_cloud @tags = module_app.sorted_tags_for_cloud
end end
def show_terms_of_use
@site = Site.first rescue nil
@terms = @site.terms_of_use
end
private private
def menu_level(page, current_page, current, menu) def menu_level(page, current_page, current, menu)
+1 -9
View File
@@ -43,7 +43,7 @@ class MobileController < ApplicationController
def page def page
@page_title = t('mobile.page') @page_title = t('mobile.page')
@page_contexts = get_sorted_page_from_structure @page_contexts = PageContext.where(:archived => false).page(params[:page_main]).per(15)
end end
def page_content def page_content
@@ -57,12 +57,4 @@ class MobileController < ApplicationController
@no_footer = true if request.path =~ /app/ @no_footer = true if request.path =~ /app/
end end
def get_sorted_page_from_structure
page_contexts = Item.structure_ordered_items.inject([]){ |pages, page|
pages << page.page_contexts.where(archived: false).limit(1)[0] if page.is_a?(Page) && !page.page_contexts.blank?
pages
}
Kaminari.paginate_array(page_contexts).page(params[:page]).per(15)
end
end end
+3 -4
View File
@@ -9,7 +9,7 @@ class PagesController < ApplicationController
if @item if @item
delayed_impressionist(@item) delayed_impressionist(@item)
render_page render_page
else else
redirect_to '/admin/dashboards',:notice=>t(:need_home) redirect_to '/admin/dashboards',:notice=>t(:need_home)
# render :text => t(:need_home) # render :text => t(:need_home)
@@ -19,7 +19,6 @@ class PagesController < ApplicationController
def show def show
#begin #begin
@item = Item.first(:conditions => {:path => params[:page_name]}) @item = Item.first(:conditions => {:path => params[:page_name]})
if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s)) if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s))
delayed_impressionist(@item) delayed_impressionist(@item)
case @item.class.to_s case @item.class.to_s
@@ -27,7 +26,7 @@ class PagesController < ApplicationController
if params[:clicked_field_name] if params[:clicked_field_name]
render_page({"clicked_field_name"=>params["clicked_field_name"]}) unless save_from_no_lang_for_page render_page({"clicked_field_name"=>params["clicked_field_name"]}) unless save_from_no_lang_for_page
else else
render_page(params.except(:controller, :action, :page_name)) unless save_from_no_lang_for_page render_page(params) unless save_from_no_lang_for_page
end end
when 'Link' when 'Link'
redirect_to(@item[:url]) unless save_from_no_lang_for_page redirect_to(@item[:url]) unless save_from_no_lang_for_page
@@ -114,7 +113,7 @@ class PagesController < ApplicationController
end end
def check_frontend_open def check_frontend_open
if Site.first.frontend_open && current_user.nil? #Need to be change if Me.frontend_closed && current_user.nil? #Need to be change
redirect_to '/admin/dashboards' redirect_to '/admin/dashboards'
end end
end end
+40
View File
@@ -0,0 +1,40 @@
# encoding: utf-8
class SessionsController < Devise::SessionsController
prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
def create
@site = Site.first
private_key = OpenSSL::PKey::RSA.new(@site.private_key)
wresult = private_key.private_decrypt(request.params['wresult'])
@ids = wresult.split("@")
login_uid = @ids[0]
resource = User.first(conditions:{user_id: login_uid})
if !resource.blank?
resource_name = resource.class.to_s.downcase
sign_in(resource_name, resource)
session[:user_id_type] = "myntumb"
redirect_to after_sign_in_path_for(resource)
else
flash[:error] = "很抱歉,您無此權限或帳號登入本站,請洽本站管理員<br />Sorry, you don't have the account or authority to login. Please contact the website administrator."
redirect_to :root
end
end
def destroy
@user_id_type = session[:user_id_type]
sign_out
if @user_id_type == "myntumb"
redirect_to "https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignout1.0&wreply=https://management.ntu.edu.tw"
else
redirect_to root_path
end
end
end
+5 -1
View File
@@ -271,7 +271,11 @@ module ApplicationHelper
end end
def show_avatar(user) def show_avatar(user)
image_tag(user.avatar.thumb.url) if (user.avatar? rescue false)
image_tag(user.avatar.thumb.url)
else
image_tag "person.png"
end
end end
# NTU link # NTU link
+8 -11
View File
@@ -45,18 +45,15 @@ class Item
end end
def shift_to(new_parent, position) def shift_to(new_parent, position)
position = position.to_i unless self.parent_id.to_s.eql?(new_parent) && self.position.eql?(position.to_i)
new_parent = Item.find(new_parent) new_parent = Item.find(new_parent)
current_position_sibling = find_by_parent_and_position(new_parent, position) current_position_sibling = find_by_parent_and_position(new_parent, position.to_i)
if current_position_sibling if current_position_sibling
if self.position > current_position_sibling.position move_above(current_position_sibling)
self.move_above(current_position_sibling) elsif self.parent != new_parent
else self.parent = new_parent
self.move_below(current_position_sibling) save
end end
elsif self.parent != new_parent
self.parent = new_parent
save
end end
end end
+3 -3
View File
@@ -185,18 +185,18 @@ class ModuleApp
user_ids = self.auth_approvals.inject([]) do |users, auth| user_ids = self.auth_approvals.inject([]) do |users, auth|
users += auth.authorized_users.map{|user| user.id} users += auth.authorized_users.map{|user| user.id}
end end
self.update_attribute(:auth_approval_users, user_ids.uniq) update_attribute(:auth_approval_users, user_ids.uniq)
end end
def update_auth_manager_users def update_auth_manager_users
self.update_attribute(:auth_manager_users, self.auth_manager_authorized_users.map{|user| user.id}) update_attribute(:auth_manager_users, self.auth_manager_authorized_users.map{|user| user.id})
end end
def update_auth_sub_manager_users def update_auth_sub_manager_users
user_ids = self.auth_sub_managers.inject([]) do |users, auth| user_ids = self.auth_sub_managers.inject([]) do |users, auth|
users += auth.authorized_users.map{|user| user.id} users += auth.authorized_users.map{|user| user.id}
end end
self.update_attribute(:auth_sub_manager_users, user_ids.uniq) update_attribute(:auth_sub_manager_users, user_ids.uniq)
end end
def managers def managers
+2 -4
View File
@@ -12,11 +12,9 @@ class Site
field :private_key, :type => Binary field :private_key, :type => Binary
field :public_key, :type => Binary field :public_key, :type => Binary
field :frontend_open, :type => Boolean, :default => true field :frontend_closed, :type => Boolean, :default => false
field :backend_openness_on, :type => Boolean, :default => false field :backend_openness_on, :type => Boolean, :default => false
field :desktop_closed, :type => Boolean, :default => false field :desktop_closed, :type => Boolean, :default => false
field :sitemap_menu_in_header, :type => Boolean, :default => false
field :enable_terms_of_use, :type => Boolean, :default => false
field :title_always_on, :type => Boolean, :default => false field :title_always_on, :type => Boolean, :default => false
field :dashbroad_allow_visitor, :type => Boolean, :default => false field :dashbroad_allow_visitor, :type => Boolean, :default => false
@@ -36,7 +34,7 @@ class Site
field :title, localize: true field :title, localize: true
field :footer, localize: true field :footer, localize: true
field :sub_menu, localize: true field :sub_menu, localize: true
field :terms_of_use, localize: true field :terms_of_user, localize: true
field :google_analytics field :google_analytics
field :default_locale field :default_locale
+3 -9
View File
@@ -1,8 +1,6 @@
class User class User
include Mongoid::Document include Mongoid::Document
include Mongoid::Tree
include Mongoid::Tree::Ordering # use mongoid-tree because mongoid-ordering needs mongoid(~>3.0)
include Mongoid::Timestamps include Mongoid::Timestamps
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :registerable, :validatable #, :timeoutable devise :database_authenticatable, :recoverable, :rememberable, :trackable, :registerable, :validatable #, :timeoutable
@@ -20,6 +18,8 @@ class User
field :office_tel field :office_tel
field :cache_dept,type: Hash field :cache_dept,type: Hash
field :status_record,type: Hash field :status_record,type: Hash
field :ntu_seq
#validates :ntu_seq, :uniqueness => true
has_and_belongs_to_many :approving_apps, class_name: 'AuthApproval', inverse_of: 'authorized_users' has_and_belongs_to_many :approving_apps, class_name: 'AuthApproval', inverse_of: 'authorized_users'
has_and_belongs_to_many :managing_apps, class_name: 'AuthManager', inverse_of: 'authorized_users' has_and_belongs_to_many :managing_apps, class_name: 'AuthManager', inverse_of: 'authorized_users'
@@ -52,7 +52,6 @@ class User
accepts_nested_attributes_for :attribute_values, :allow_destroy => true accepts_nested_attributes_for :attribute_values, :allow_destroy => true
before_create :initialize_desktop before_create :initialize_desktop
before_save :assign_default_position, :if => :assign_default_position?
before_save :rebuild_status_record before_save :rebuild_status_record
scope :remote_account, where(:nccu_id.ne => nil) scope :remote_account, where(:nccu_id.ne => nil)
scope :not_guest_user, all_of(:name.ne => "guest") scope :not_guest_user, all_of(:name.ne => "guest")
@@ -290,7 +289,7 @@ class User
end end
end end
private protected
def rebuild_status_record def rebuild_status_record
self.status_record = {} self.status_record = {}
@@ -300,9 +299,4 @@ class User
end end
end end
# override mongoid-tree's method
def assign_default_position?
!self['name'].eql?('guest') && (self.position.nil? || self.parent_id_changed?)
end
end end
-3
View File
@@ -21,9 +21,6 @@ class AvatarUploader < CarrierWave::Uploader::Base
# def default_url # def default_url
# "/images/fallback/" + [version_name, "default.png"].compact.join('_') # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
# end # end
def default_url
[version_name, (Site.first.default_image.file.url rescue "person.png")].compact.join('_')
end
# Process files as they are uploaded: # Process files as they are uploaded:
# process :scale => [200, 300] # process :scale => [200, 300]
+1 -2
View File
@@ -55,7 +55,7 @@
<div class="control-group"> <div class="control-group">
<label class="control-label muted">Banner</label> <label class="control-label muted">Banner</label>
<div class="controls"> <div class="controls">
<%= select_tag 'ad_banner[id]',options_from_collection_for_select(AdBanner.all, "id", "title", @ad_image.ad_banner_id) , :class=>"input-medium" %> <%= select_tag 'ad_banner[id]',options_from_collection_for_select(AdBanner.all, "id", "title",params[:ad_banner_id]) , :class=>"input-medium" %>
</div> </div>
</div> </div>
@@ -244,7 +244,6 @@
</div> </div>
<!-- Form Actions --> <!-- Form Actions -->
<%= f.hidden_field :id, :value => @ad_image.id %>
<div class="form-actions"> <div class="form-actions">
<%= f.submit t("submit"),:class=>"btn btn-primary" %> <%= f.submit t("submit"),:class=>"btn btn-primary" %>
<%= f.submit t("cancel"),:class=>"btn ",:type => 'reset' %> <%= f.submit t("cancel"),:class=>"btn ",:type => 'reset' %>
@@ -10,7 +10,7 @@
<li><%= link_to show_toggle_archive_btn(category) , toggle_admin_module_app_category_path(@module_app_id, category), method: :post, remote: true, class: "archive_toggle" %></li> <li><%= link_to show_toggle_archive_btn(category) , toggle_admin_module_app_category_path(@module_app_id, category), method: :post, remote: true, class: "archive_toggle" %></li>
<% end %> <% end %>
<% if is_manager? || is_admin? %> <% if is_manager? || is_admin? %>
<li><%= link_to t(:category_auth), admin_authorizations_path(@module_app.key, 'category_authorization', category.id) %></li> <li><%= link_to t(:category_auth), admin_authorizations_path(@module_app.key, 'category', category.id) %></li>
<% end %> <% end %>
</ul> </ul>
</div> </div>
+1 -1
View File
@@ -9,7 +9,7 @@
</ul> </ul>
</div> </div>
</td> </td>
<td class="span1"><%= radio_button_tag 'design_default', design.id, (@site.design.id.to_s.eql?(design.id.to_s) ? true : false), :class => 'design_default', :rel => admin_sites_path %></td>
<td class="span7"><%= design.intro %></td> <td class="span7"><%= design.intro %></td>
<td class="span2"><%= design.author %></td> <td class="span2"><%= design.author %></td>
<td class="span1 active"><%= radio_button_tag 'design_default', design.id, (@site.design.id.to_s.eql?(design.id.to_s) ? true : false), :class => 'design_default toggle-check', :rel => admin_sites_path %></td>
</tr> </tr>
+7 -8
View File
@@ -1,12 +1,11 @@
<thead> <thead>
<tr class="sort-header"> <tr>
<th></th> <th class="span1 strong"></th>
<th class="first span3"><a href="#">Templates Title</a></th> <th class="span2"></th>
<th data-hide="phone" class="active span3">Active</th> <th class="span1"></th>
<th data-hide="phone" class="active span3">Date of purchase</th> <th class="span7"></th>
<th data-hide="phone" class="active span3">Designer</th> <th class="span2"></th>
<th class="span1"></th> </tr>
</tr>
</thead> </thead>
<tbody> <tbody>
<tbody id="tbody_designs" class="sort-holder"> <tbody id="tbody_designs" class="sort-holder">
+1 -1
View File
@@ -18,5 +18,5 @@
<%= f.text_field :intro %> <%= f.text_field :intro %>
</div> </div>
</div> </div>
<%= f.submit t(:update_), :class=>"btn btn-primary" %> <%= f.submit t(:update_) %>
<% end %> <% end %>
+1 -21
View File
@@ -2,27 +2,7 @@
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :side_bar_content => 'admin/sites/side_bar'} %> <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :side_bar_content => 'admin/sites/side_bar'} %>
<% end %> <% end %>
<head> <h1><%= t('editing.design') %></h1>
<%= stylesheet_link_tag "lib/wrap-nav"%>
<%= stylesheet_link_tag "lib/main-list"%>
<%= stylesheet_link_tag "lib/mt-list"%>
<%= stylesheet_link_tag "lib/filter"%>
<%= stylesheet_link_tag "lib/codemirror/theme/theme"%>
<%= javascript_include_tag 'codemirror/codemirror' %>
<%= javascript_include_tag 'codemirror/jquery.codemirror' %>
<%= javascript_include_tag 'codemirror/mode/css' %>
<%= javascript_include_tag 'codemirror/mode/xml' %>
<%= javascript_include_tag 'codemirror/mode/vbscript' %>
<%= javascript_include_tag 'codemirror/mode/javascript' %>
<%= javascript_include_tag 'codemirror/mode/htmlmixed' %>
<%= javascript_include_tag 'codemirror/addon/edit/closetag' %>
<%= javascript_include_tag 'codemirror/addon/edit/closebrackets' %>
<%= javascript_include_tag 'codemirror/util/formatting' %>
<%= javascript_include_tag 'lib/templates_code' %>
</head>
<h1><%= @design.title %></h1>
<ul class="nav nav-tabs" id="myTab"> <ul class="nav nav-tabs" id="myTab">
<li class="active"><a href="#info" data-toggle="tab"><%= t(:info) %></a></li> <li class="active"><a href="#info" data-toggle="tab"><%= t(:info) %></a></li>
-15
View File
@@ -2,21 +2,6 @@
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :side_bar_content => 'admin/sites/side_bar'} %> <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :side_bar_content => 'admin/sites/side_bar'} %>
<% end %> <% end %>
<head>
<%= stylesheet_link_tag "lib/wrap-nav"%>
<%= stylesheet_link_tag "lib/main-list"%>
<%= stylesheet_link_tag "lib/mt-list"%>
<%= stylesheet_link_tag "lib/filter"%>
<%= stylesheet_link_tag "lib/togglebox"%>
<%= javascript_include_tag 'lib/footable-0.1' %>
<%= javascript_include_tag 'lib/all-list' %>
<%= javascript_include_tag 'lib/retina' %>
<%= javascript_include_tag 'lib/mudole_templates_status' %>
</head>
<%= render 'filter' %> <%= render 'filter' %>
<table class="table main-list"> <table class="table main-list">
<%= render 'designs' %> <%= render 'designs' %>
@@ -0,0 +1 @@
<p>Successfully Imported Announcement Data!</p>
@@ -0,0 +1 @@
<p>Successfully Journal Paper Data!</p>
@@ -0,0 +1 @@
<p>Successfully Imported Page Data!</p>
@@ -0,0 +1 @@
<p>Successfully Imported Teacher Data!</p>
+2 -2
View File
@@ -1,9 +1,9 @@
<% node = Item.root %> <% node = Item.root %>
<% unless node.nil? %>
<ol id='<%= node.id %>' class="sortable item-groups"> <ol id='<%= node.id %>' class="sortable item-groups">
<%= render 'node_and_children', node: node %> <%= render 'node_and_children', node: node %>
</ol> </ol>
<% end %>
<%= render 'layouts/delete_modal', delete_options: {remote: true} %> <%= render 'layouts/delete_modal', delete_options: {remote: true} %>
<%= javascript_include_tag "lib/jquery.pageslide.js" %> <%= javascript_include_tag "lib/jquery.pageslide.js" %>
+82 -80
View File
@@ -2,84 +2,86 @@
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :icon => 'icons-cog', :side_bar_content => 'admin/sites/side_bar'} %> <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :icon => 'icons-cog', :side_bar_content => 'admin/sites/side_bar'} %>
<% end %> <% end %>
<head> <% content_for :page_specific_css do %>
<%= stylesheet_link_tag "lib/wrap-nav"%> <%= stylesheet_link_tag 'normalize' %>
<%= stylesheet_link_tag "lib/main-list"%> <%= stylesheet_link_tag 'bootstrap-responsive' %>
<%= stylesheet_link_tag "lib/mt-list"%> <%= stylesheet_link_tag 'rulingorbit' %>
<%= stylesheet_link_tag "lib/filter"%> <%= stylesheet_link_tag 'module-store' %>
<%= stylesheet_link_tag "lib/togglebox"%> <% end %>
<% content_for :page_specific_javascript do %>
<%= javascript_include_tag "jquery.cycle" %>
<%= javascript_include_tag "modules" %>
<% end %>
<%= javascript_include_tag 'lib/footable-0.1' %> <div class="wrapper">
<%= javascript_include_tag 'lib/all-list' %> <div id="toolbar">
<%= javascript_include_tag 'lib/retina' %> <div class="filter fn">
<%= javascript_include_tag 'lib/mudole_templates_status' %> <span class="label">Price</span>
</head> <div class="drop-menu ui">
<a href="" class="controller">
<table id="mt-list" class="table main-list"> <span class="option-default">All</span>
<thead> <span class="arrow down"></span>
<tr class="sort-header"> </a>
<th class="first"><a href="#">Module Title</a></th> <ul class="option-list">
<th data-hide="phone" class="active span3">Date of purchase</th> <li><a class="option-item" href="">All</a></li>
<th data-hide="all" class="active"><a href="#">Description</a></th> <li><a class="option-item" href="">3000</a></li>
<th class="span2">Active</th> <li><a class="option-item" href="">4000</a></li>
</tr> <li><a class="option-item" href="">5000</a></li>
</thead> </ul>
<tbody> </div>
<tr> </div>
<td class="detail-row"> <div class="filter fn">
<div class="module_icon pull-left"> <span class="label">Category</span>
<%= image_tag "module_icon.png"%> <div class="drop-menu ui">
</div> <a href="" class="controller">
<h5 class="mt_title"><span>Module Title</span><span class="muted">2.0.1</span></h5> <span class="option-default">All</span>
<p class="mt_dev muted">Rulingcom</p> <span class="arrow down"></span>
</td> </a>
<td class="detail-row">2013/07/12</td> <ul class="option-list">
<td> <li><a class="option-item" href="">All</a></li>
@detail <li><a class="option-item" href="">National Taiwan University</a></li>
</td> <li><a class="option-item" href="">Category 1</a></li>
<td class="active"><button class="act btn btn-mini" type="button">Uninstall</button></td> <li><a class="option-item" href="">Category 2</a></li>
</tr> <li><a class="option-item" href="">Category 3</a></li>
<tr class="download"> </ul>
<td class="detail-row"> </div>
<div class="module_icon pull-left"> </div>
<%= image_tag "module_icon.png"%> <div class="filter fn">
</div> <span class="label">Sort by</span>
<h5 class="mt_title"><span>Module Title Module Title Module Title</span><span class="muted">2.0.1</span></h5> <div class="drop-menu ui">
<p class="mt_dev muted">Rulingcom</p> <a href="" class="controller">
</td> <span class="option-default">Date</span>
<td class="detail-row">2013/07/12</td> <span class="arrow down"></span>
<td> </a>
@detail <ul class="option-list">
</td> <li><a class="option-item" href="">Date</a></li>
<td class="active"><button class="act btn btn-mini btn-success" type="button">Download</button></td> <li><a class="option-item" href="">Popular</a></li>
</tr> <li><a class="option-item" href="">Recent Upload</a></li>
<tr class="install"> </ul>
<td class="detail-row"> </div>
<div class="module_icon pull-left"> </div>
<%= image_tag "module_icon.png"%> </div>
</div> <div id="feature" class="clearfix">
<h5 class="mt_title"><span>Module Title</span><span class="muted">2.0.1</span></h5> <div id="feature-nav">
<p class="mt_dev muted">Rulingcom</p> <ul>
</td> <li><a href=""><img class="item-thumb" src="<%= asset_path "f1.jpg"%>" alt="Thumbnail 1" width="228" height="67"></a></li>
<td class="detail-row">2013/07/12</td> <li><a href=""><img class="item-thumb" src="<%= asset_path "f2.jpg"%>" alt="Thumbnail 2" width="228" height="67"></a></li>
<td> <li><a href=""><img class="item-thumb" src="<%= asset_path "f3.jpg"%>" alt="Thumbnail 3" width="228" height="67"></a></li>
@detail </ul>
</td> </div>
<td class="active"><button class="act btn btn-mini btn-primary" type="button">Install</button></td> <div class="holder">
</tr> <ul>
<tr class="update"> <li><a href=""><img class="item-thumb" src="<%= asset_path "f1.jpg"%>" alt="Thumbnail 1" width="740" height="220"></a></li>
<td class="detail-row"> <li><a href=""><img class="item-thumb" src="<%= asset_path "f2.jpg"%>" alt="Thumbnail 2" width="740" height="220"></a></li>
<div class="module_icon pull-left"> <li><a href=""><img class="item-thumb" src="<%= asset_path "f3.jpg"%>" alt="Thumbnail 3" width="740" height="220"></a></li>
<%= image_tag "module_icon.png"%> </ul>
</div> </div>
<h5 class="mt_title"><span>Module Title</span><span class="muted">2.0.1</span></h5> </div>
<p class="mt_dev muted">Rulingcom</p> <div id="item-list">
</td> <ul class="clearfix">
<td class="detail-row">2013/07/12</td> <% 12.times do |i| %>
<td> <li><a href="module_store/show?m=<%= i + 1 %>"><img src="/assets/module/thumb/mt<%= i + 1 %>.jpg" alt="" class="item-thumb"><span class="item-info"><b class="item-name">Module <%= i + 1 %></b><span class="item-price">Free</span></span></a></li>
@detail <% end %>
</td> </ul>
<td class="active"><button class="act btn btn-mini btn-info" type="button">Update</button></td> </div>
</tr> </div>
</tbody>
</table>
+1 -1
View File
@@ -5,6 +5,6 @@ $("#tags_index").html("<%= j render 'index' %>")
$.pageslide.close(); $.pageslide.close();
openSlide(); openSlide();
$('.card').cardCheck({ $('.card').cardCheck({
item: $('.card input[type="checkbox"]'), check: $('.card input[type="checkbox"]'),
}); });
checkedLength() checkedLength()
@@ -7,7 +7,6 @@
<%= f.hidden_field :public_r_tag_object_id, :value => @part.page.id %> <%= f.hidden_field :public_r_tag_object_id, :value => @part.page.id %>
<%#= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %> <%#= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %>
<% elsif @r_tag.eql?('sitemap') %> <% elsif @r_tag.eql?('sitemap') %>
<% elsif @r_tag.eql?('terms_of_use') %>
<% elsif @r_tag.eql?('breadcrumb') %> <% elsif @r_tag.eql?('breadcrumb') %>
<% else %> <% else %>
<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %> <%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %>
@@ -7,8 +7,8 @@
<%= link_to t(:all_plugin_summary)%> <%= link_to t(:all_plugin_summary)%>
<% end -%> <% end -%>
<% @plugins.each do |plugin| %> <% @plugins.each do |plugin| %>
<%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin.app_name ? "active" : nil) do %> <%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin.name ? "active" : nil) do %>
<%= link_to plugin.name, admin_plugins_path(:show_plugin_profile => plugin.app_name) %> <%= link_to plugin.name, admin_plugins_path(:show_plugin_profile => plugin.name) %>
<% end -%> <% end -%>
<% end -%> <% end -%>
+6 -12
View File
@@ -1,16 +1,10 @@
<li class="map-block <%= 'disabled' if !sitemap_block.show_in_sitemap_for(temp_locale) %>"> <% sitemap_block.children.each_with_index do |child, i| %>
<h6> <li "<%= 'disabled' if !child.show_in_sitemap_for(temp_locale) %>">
<input type="checkbox" id="<%= sitemap_block.id %>" class="toggle-check onoff" temp_locale="<%= temp_locale %>" data-deploy="right">
<span><%= sitemap_block_counter + 1 %> <%= sitemap_block.title_translations[temp_locale] %></span>
</h6>
<ul>
<% sitemap_block.children.each_with_index do |child, i| %>
<li "clear <%= 'disabled' if !child.show_in_sitemap_for(temp_locale) %>">
<h6> <h6>
<input type="checkbox" id="<%= child.id %>" class="toggle-check onoff" temp_locale="<%= temp_locale %>" data-deploy="right"> <%= content_tag :button, :id => child.id, :temp_locale => temp_locale, :disabled => !child.show_in_sitemap_for(temp_locale) do %>
<% end %>
<input type="checkbox" class="toggle-check" data-deploy="right">
<span><%= "#{sitemap_block_counter + 1}-#{i + 1}" %> <%= child.title_translations[temp_locale] %></span> <span><%= "#{sitemap_block_counter + 1}-#{i + 1}" %> <%= child.title_translations[temp_locale] %></span>
</h6> </h6>
</li> </li>
<% end if sitemap_block.children %> <% end if sitemap_block.children %>
</ul>
</li>
+6 -5
View File
@@ -20,7 +20,8 @@
<!-- Input Area --> <!-- Input Area -->
<div class="input-area"> <div class="input-area">
<div class="nav-name"><strong>Classification</strong></div>
<div class="nav-name"><strong>Classification</strong></div>
<ul class="nav nav-pills language-nav"> <ul class="nav nav-pills language-nav">
<li class="active"> <li class="active">
<a href="#sidebar-nav" data-toggle="tab">Sidebar Nav</a> <a href="#sidebar-nav" data-toggle="tab">Sidebar Nav</a>
@@ -113,10 +114,10 @@
<!-- Openness --> <!-- Openness -->
<div id="openness" class="tab-pane fade"> <div id="openness" class="tab-pane fade">
<div class="control-group"> <div class="control-group">
<label class="control-label muted"><%= I18n.t('site.frontend_open')%></label> <label class="control-label muted"><%= I18n.t('site.frontend_closed')%></label>
<div class="controls"> <div class="controls">
<%= f.check_box :frontend_open , :class=>"toggle-check"%> <%= f.check_box :frontend_closed , :class=>"toggle-check"%>
<span class="help-block">If Checked, the frontend will be open for all users.</span> <span class="help-block">Only can be viewed by users logged in</span>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
@@ -190,7 +191,7 @@
<a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Cancel</a> <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Cancel</a>
<div class="controls" data-toggle="buttons-checkbox"> <div class="controls" data-toggle="buttons-checkbox">
<label class="checkbox inline btn btn-danger fileupload-remove"> <label class="checkbox inline btn btn-danger fileupload-remove">
<% if @site.default_image.file.present? %> <% if @site.default_image.file %>
<label class="checkbox"> <label class="checkbox">
<%= check_box_tag 'site[remove_default_image]' %> <%= check_box_tag 'site[remove_default_image]' %>
<%= t(:delete_) %> <%= t(:delete_) %>
+42 -41
View File
@@ -43,48 +43,49 @@
<hr> <hr>
<!-- Description --> <% @site_valid_locales.each do |locale|%>
<div class="control-group"> <%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
<label class="control-label muted">Keywords</label> <div class="control-group">
<div class="controls"> <label class="control-label muted">Site Keywords</label>
<div class="tab-content textarea-lang"> <div class="controls">
<div class="btn-group" data-toggle="buttons-radio"> <div class="tab-content textarea-lang">
<% @site_valid_locales.each_with_index do |locale, i| %> <div class="btn-group" data-toggle="buttons-radio">
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#textarea_<%= locale %>_0" data-toggle="tab"><%= I18nVariable.from_locale(locale) %></a> <% @site_valid_locales.each do |locale|%>
<% end %> <%= content_tag :li, link_to(I18nVariable.from_locale(locale), ".#{locale}", :data => {:toggle => "tab"}), :class => "btn #{(active_when_current_locale_eq locale)}" %>
<% end %>
</div>
<div class="tab-pane fade active in" id="keywords_en_0">
<%= f.fields_for :keywords do |f| %>
<%= f.text_area locale, :class => "resizable",:rows=>3, :value => (@site.keywords(locale) rescue nil) %>
<% end %>
</div>
</div>
</div>
</div>
<%end%>
<%end%>
<% @site_valid_locales.each do |locale|%>
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
<div class="control-group">
<label class="control-label muted">Site Description</label>
<div class="controls">
<div class="tab-content textarea-lang">
<div class="btn-group" data-toggle="buttons-radio">
<% @site_valid_locales.each do |locale|%>
<%= content_tag :li, link_to(I18nVariable.from_locale(locale), ".#{locale}", :data => {:toggle => "tab"}), :class => "btn #{(active_when_current_locale_eq locale)}" %>
<% end %>
</div>
<div class="tab-pane fade active in" id="description_en_0">
<%= f.fields_for :description do |f| %>
<%= f.text_area locale, :class => "resizable",:rows=>3, :value => (@site.description(locale) rescue nil) %>
<% end %>
</div>
</div>
</div>
</div> </div>
<% @site_valid_locales.each_with_index do |locale, i| %> <%end%>
<div class="tab-pane fade in <%= ( i == 0 ) ? "active" : '' %>" id="textarea_<%= locale %>_0"> <%end%>
<%= f.fields_for :keywords do |f| %>
<%= f.text_area locale, :class=>'resizable', :value => (@site.keywords(locale) rescue nil), :placeholder => I18nVariable.from_locale(locale), :rows=>"3" %>
<% end %>
</div>
<% end %>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label muted">Description</label>
<div class="controls">
<div class="tab-content textarea-lang">
<div class="btn-group" data-toggle="buttons-radio">
<% @site_valid_locales.each_with_index do |locale, i| %>
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#textarea_<%= locale %>_0" data-toggle="tab"><%= I18nVariable.from_locale(locale) %></a>
<% end %>
</div>
<% @site_valid_locales.each_with_index do |locale, i| %>
<div class="tab-pane fade in <%= ( i == 0 ) ? "active" : '' %>" id="textarea_<%= locale %>_0">
<%= f.fields_for :description do |f| %>
<%= f.text_area locale, :class=>'resizable', :value => (@site.description(locale) rescue nil), :placeholder => I18nVariable.from_locale(locale), :rows=>"3" %>
<% end %>
</div>
<% end %>
</div>
</div>
</div>
</div> </div>
<!-- Form Actions --> <!-- Form Actions -->
<div class="form-actions"> <div class="form-actions">
+12 -26
View File
@@ -47,7 +47,7 @@
<!-- Always shoe in the title bar --> <!-- Always shoe in the title bar -->
<div class="control-group"> <div class="control-group">
<label class="control-label muted"><%= t :always_display_title %> <label class="control-label muted">Always show in the title bar
</label> </label>
<div class="controls"> <div class="controls">
<%= f.check_box :title_always_on, :class => "toggle-check" %> <%= f.check_box :title_always_on, :class => "toggle-check" %>
@@ -70,28 +70,12 @@
<%end%> <%end%>
<%end%> <%end%>
<hr>
<!-- CKeditor Site Footer -->
<% @site_valid_locales.each do |locale|%>
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
<label class="control-label muted"><%= t('site.footer')%></label>
<div class="controls">
<div class="textarea">
<%= f.fields_for :footer_translations do |f| %>
<%= f.text_area locale, :class => "ckeditor input-block-level", :value => (@site.footer_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
<%end%>
<%end%>
<!-- Sitemap menu in Header --> <!-- Sitemap menu in Header -->
<div class="control-group"> <div class="control-group">
<label class="control-label muted">Sitemap menu in header <label class="control-label muted">Sitemap menu in header
</label> </label>
<div class="controls"> <div class="controls">
<%= f.check_box :sitemap_menu_in_header, :class => "toggle-check" %> <input type="checkbox" class="toggle-check" data-disabled="true">
</div> </div>
</div> </div>
@@ -102,25 +86,27 @@
<label class="control-label muted">Terms of Use <label class="control-label muted">Terms of Use
</label> </label>
<div class="controls"> <div class="controls">
<%= f.check_box :enable_terms_of_use, :class => "toggle-check" %> <input type="checkbox" class="toggle-check terms" data-disabled="true" checked="checked">
</div> </div>
</div> </div>
<!-- CKeditor Site Footer --> <!-- CKeditor Default Terms of Use -->
<div class="control-group input-content hide">
<% @site_valid_locales.each do |locale|%> <% @site_valid_locales.each do |locale|%>
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %> <%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
<label class="control-label muted"><%= t('site.default_terms_of_use')%></label> <label class="control-label muted">Default Terms of Use</label>
<div class="controls"> <div class="controls">
<div class="textarea"> <div class="textarea">
<%= f.fields_for :terms_of_use_translations do |f| %> <%= f.fields_for :terms_of_user_translations do |f| %>
<%= f.text_area locale, :class => "ckeditor input-block-level", :value => (@site.terms_of_use_translations[locale] rescue nil) %> <%= f.text_area locale, :class => "ckeditor input-block-level", :value => (@site.terms_of_user_translations[locale] rescue nil) %>
<% end %> <% end %>
</div>
</div> </div>
</div> </div>
<%end%> <%end%>
<%end%> <%end%>
</div>
<!-- Form Actions --> <!-- Form Actions -->
<div class="form-actions"> <div class="form-actions">
<%= f.submit t("submit"), :class => "btn btn-primary" %> <%= f.submit t("submit"), :class => "btn btn-primary" %>
+56 -42
View File
@@ -1,4 +1,9 @@
<head> <head>
<!-- Meta -->
<!--#include virtual="/orbit_4.0.1/include/meta.html"-->
<!-- Basic CSS -->
<!--#include virtual="/orbit_4.0.1/include/basic_css.html"-->
<%= stylesheet_link_tag "lib/wrap-nav"%> <%= stylesheet_link_tag "lib/wrap-nav"%>
<%= stylesheet_link_tag "lib/filter"%> <%= stylesheet_link_tag "lib/filter"%>
<%= stylesheet_link_tag "lib/sitemap"%> <%= stylesheet_link_tag "lib/sitemap"%>
@@ -12,45 +17,23 @@
<% content_for :side_bar do %> <% content_for :side_bar do %>
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :icon => 'icons-cog', :side_bar_content => 'admin/sites/side_bar'} %> <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :icon => 'icons-cog', :side_bar_content => 'admin/sites/side_bar'} %>
<% end %> <% end %>
<h3>Sitemap</h3>
<div id="sitemap"> <% content_for :page_specific_javascript do %>
<ul id="map-tree-language" class="nav nav-pills"> <%= javascript_include_tag "lib/jquery.masonry.min.js" %>
<% @site_valid_locales.each_with_index do |locale, i| %> <script>
<li <%= ( i == 0 ) ? "class=active" : '' %>> $(document).ready(function(){
<a data-toggle="tab" href="#<%= locale %>"> $('.site-map').masonry({
<%= I18nVariable.from_locale(locale) %> itemSelector: '.map-block',
</a> columnWidth: 260
</li> });
<% end %> $('a[data-toggle="tab"]').on('shown', function (e) {
</ul>
<div class="tab-content map-tree-content">
<div class="line"></div>
<% @site_valid_locales.each_with_index do |temp_locale, i| %>
<ul id="<%= temp_locale %>" class="map-tree tab-pane fade in <%= ( i == 0 ) ? "in active" : '' %>">
<%= render :partial => 'sitemap_block', :collection => @items, :locals => {:temp_locale => temp_locale} %>
</ul>
<% end %>
</div>
</div>
<% content_for :page_specific_javascript do %>
<script>
$(document).ready(function(){
$('.site-map').masonry({
itemSelector: '.map-block',
columnWidth: 260
});
$('a[data-toggle="tab"]').on('shown', function (e) {
$('.site-map').masonry({ $('.site-map').masonry({
itemSelector: '.map-block', itemSelector: '.map-block',
columnWidth: 260 columnWidth: 260
}); });
}) })
}); });
$(document).on('click', 'li .onoff', function () { $(document).on('click', 'li .onoff', function () {
$(this).parents("li").toggleClass("disabled"); $(this).parents("li").toggleClass("disabled");
if($(this).parents("li").attr("class").indexOf("disabled") > 0){ if($(this).parents("li").attr("class").indexOf("disabled") > 0){
$(this).text("<%= t('off_upcase') %>") $(this).text("<%= t('off_upcase') %>")
@@ -59,20 +42,51 @@
} }
$.getScript('<%= admin_sites_path %>' + '/' + $(this).attr('id') + '/sitemap_toggle?temp_locale=' + $(this).attr('temp_locale')); $.getScript('<%= admin_sites_path %>' + '/' + $(this).attr('id') + '/sitemap_toggle?temp_locale=' + $(this).attr('temp_locale'));
}); });
$(document).on('click', 'h6 .onoff', function () { $(document).on('click', 'h4 .onoff', function () {
$(this).parents(".map-block").toggleClass("disabled"); $(this).parents(".map-block").toggleClass("disabled");
if($(this).parents("h6").parents("li").attr("class").indexOf("disabled") > 0){ if($(this).parents("h4").parents("div").attr("class").indexOf("disabled") > 0){
$(this).text("<%= t('off_upcase') %>") $(this).text("<%= t('off_upcase') %>")
$(this).parents(".map-block").find('li').addClass('disabled') $(this).parents(".map-block").find('li').addClass('disabled')
$(this).parents(".map-block").find('checkbox').text("<%= t('off_upcase') %>") $(this).parents(".map-block").find('button').text("<%= t('off_upcase') %>")
// $(this).parents(".map-block").find('li checkbox').attr('disabled', 'disabled') $(this).parents(".map-block").find('li button').attr('disabled', 'disabled')
} else { } else {
$(this).text("<%= t('on_upcase') %>") $(this).text("<%= t('on_upcase') %>")
$(this).parents(".map-block").find('li').removeClass('disabled') $(this).parents(".map-block").find('li').removeClass('disabled')
$(this).parents(".map-block").find('checkbox').text("<%= t('on_upcase') %>") $(this).parents(".map-block").find('button').text("<%= t('on_upcase') %>")
// $(this).parents(".map-block").find('li checkbox').removeAttr("disabled") $(this).parents(".map-block").find('li button').removeAttr("disabled")
} }
$.getScript('<%= admin_sites_path %>' + '/' + $(this).attr('id') + '/sitemap_toggle?parent=true&temp_locale=' + $(this).attr('temp_locale')); $.getScript('<%= admin_sites_path %>' + '/' + $(this).attr('id') + '/sitemap_toggle?parent=true&temp_locale=' + $(this).attr('temp_locale'));
}); });
</script> </script>
<% end %> <% end %>
<section id="main-wrap">
<div class="wrap-inner">
<div id="sitemap">
<ul id="map-tree-language" class="nav nav-pills">
<% @site_valid_locales.each_with_index do |locale, i| %>
<li <%= ( i == 0 ) ? " class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
<% end %>
</ul>
<% @site_valid_locales.each_with_index do |temp_locale, i| %>
<div class="tab-content map-tree-content">
<div class="line"></div>
<ul id="<%= temp_locale %>" class="map-tree tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
<%= render :partial => 'sitemap_block', :collection => @items, :locals => {:temp_locale => temp_locale} %>
</ul>
<% end %>
<br/><br/><br/>
<% @site_valid_locales.each_with_index do |temp_locale, i| %>
<div class="tab-pane site-map <%= temp_locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
<%= render :partial => 'sitemap_block', :collection => @items, :locals => {:temp_locale => temp_locale} %>
</div>
<% end %>
</div>
</div>
</div>
</section>
+1 -1
View File
@@ -4,6 +4,6 @@ $("#tags_index").html("<%= j render 'index' %>")
$.pageslide.close(); $.pageslide.close();
openSlide(); openSlide();
$('.card').cardCheck({ $('.card').cardCheck({
item: $('.card input[type="checkbox"]'), check: $('.card input[type="checkbox"]'),
}); });
checkedLength() checkedLength()
@@ -1,23 +0,0 @@
<div id="list-view">
<div id="member-card" class="mini-layout-body">
<ul id="card-list" class="checkbox-card clearfix">
<% @users.each do |user| %>
<li class="filter-item" data-user-id="<%= user.id %>">
<label>
<div class="user-pic">
<%= show_avatar(user) %>
</div>
<span class="user-name"><%= user.name %></span>
<span><%= user.email %></span>
</label>
</li>
<% end %>
</ul>
</div>
</div>
<script>
$(function() {
dragMode();
});
</script>
@@ -1,44 +0,0 @@
<div id="list-view">
<table id="member-list" class="table main-list">
<thead>
<tr class="sort-header">
<th class="gender"></th>
<th class="span2"><a href="#"><%= t(:position) %></a></th>
<th class="span4"><a href="#"><%= t(:name) %></a></th>
<th><a href="#"><%= t(:email) %></a></th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<%
case user.sex
when 'male'
user_sex = 'gender-man'
when 'female'
user_sex = 'gender-woman'
else
user_sex = 'gender-none'
end
%>
<tr id="<%= dom_id user %>">
<td class="<%= user_sex %>"></td>
<td><%= link_to user.position + 1, '#', class: 'edit_position', 'data-user-id' => user.id %></td>
<td><%= link_to user.name, admin_users_new_interface_path(user) %></td>
<td><%= user.email %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
<div class="bottomnav clearfix">
<div class="action pull-right">
<%= link_to t(:update_), '#', class: "btn btn-primary pull-right" %>
</div>
</div>
<script>
$(function() {
typeMode();
});
</script>
@@ -1,13 +1,12 @@
<div class="bottomnav clearfix"> <div class="bottomnav clearfix">
<div class="action pull-right"> <div class="action pull-right">
<% if is_admin? %> <% if is_admin? %>
<%= link_to t(:edit_order), edit_order_list_admin_users_new_interface_index_path, :class => "btn btn-primary" %> <%= link_to(new_admin_users_new_interface_path,:class=> "btn btn-primary pull-right") do%>
<%= link_to(new_admin_users_new_interface_path,:class=> "btn btn-primary") do %> <i class="icon-plus"></i><%= t(:add)%>
<i class="icon-plus"></i><%= t(:add) %> <% end -%>
<% end -%> <%end -%>
<% end -%> </div>
</div> <div class="pagination pagination-centered">
<div class="pagination pagination-centered"> <%= paginate @users, :params => {:inner => false}%>
<%= paginate @users, :params => {:inner => false} %> </div>
</div> </div>
</div>
@@ -15,7 +15,7 @@
<%= link_to(content_tag(:i, nil, :class => 'icon-key'),'#',:class=>"key" ) if is_admin?%> <%= link_to(content_tag(:i, nil, :class => 'icon-key'),'#',:class=>"key" ) if is_admin?%>
<%= link_to(content_tag(:i, nil, :class => 'icon-trash'), admin_users_new_interface_path(user_for_summary, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"trash", :remote => true) if is_admin? %> <%= link_to(content_tag(:i, nil, :class => 'icon-trash'), admin_users_new_interface_path(user_for_summary, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"trash", :remote => true) if is_admin? %>
</div> </div>
<%= image_tag(user_for_summary.avatar) %> <%= show_avatar(user_for_summary) %>
</div> </div>
<div class="member-info"> <div class="member-info">
<h4 class="member-name"><%= link_to user_for_summary.name,admin_users_new_interface_path(user_for_summary)%></h4> <h4 class="member-name"><%= link_to user_for_summary.name,admin_users_new_interface_path(user_for_summary)%></h4>
@@ -16,7 +16,7 @@
<%= link_to(content_tag(:i, nil, :class => 'icon-trash'), admin_users_new_interface_path(user_for_thumbnail, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"trash", :remote => true) if is_admin? %> <%= link_to(content_tag(:i, nil, :class => 'icon-trash'), admin_users_new_interface_path(user_for_thumbnail, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"trash", :remote => true) if is_admin? %>
</div> </div>
<%= image_tag(user_for_thumbnail.avatar) %> <%= show_avatar(user_for_thumbnail) %>
</div> </div>
<h4 class="member-name text-center"><%= link_to user_for_thumbnail.name,admin_users_new_interface_path(user_for_thumbnail)%></h4> <h4 class="member-name text-center"><%= link_to user_for_thumbnail.name,admin_users_new_interface_path(user_for_thumbnail)%></h4>
</li> </li>
@@ -1,30 +0,0 @@
<% content_for :side_bar do %>
<%= render :partial => 'admin/users_new_interface/side_bar' %>
<% end %>
<% content_for :page_specific_css do %>
<%= stylesheet_link_tag "lib/member" %>
<%= stylesheet_link_tag "lib/checkbox-card" %>
<% end %>
<% content_for :right_nav do %>
<div class="view-switch btn-group pull-right" data-toggle="buttons-radio">
<%= link_to content_tag(:i, nil, class: 'icon-list'), edit_order_list_admin_users_new_interface_index_path, class: "btn btn-small#{' active' if @type.eql?('list')}" %>
<%= link_to content_tag(:i, nil, class: 'icon-th'), edit_order_card_admin_users_new_interface_index_path, class: "btn btn-small#{' active' if @type.eql?('card')}" %>
</div>
<% end %>
<div id="order_content">
<% case @type %>
<% when 'card' %>
<%= render 'edit_order_card' %>
<% when 'list' %>
<%= render 'edit_order_list' %>
<% end %>
</div>
<% content_for :page_specific_javascript do %>
<%= javascript_include_tag "jquery.ui.sortable" %>
<%= javascript_include_tag "lib/jquery.ui.touch-punch.min.js" %>
<%= javascript_include_tag "lib/jquery.lite.image.resize.js" %>
<%= javascript_include_tag "lib/member/sort.js.erb" %>
<% end %>
@@ -21,6 +21,7 @@
</form> </form>
</div> </div>
<ul class="nav nav-pills filter-nav pull-right"> <ul class="nav nav-pills filter-nav pull-right">
<li class="accordion-group"> <li class="accordion-group">
<div class="accordion-heading"> <div class="accordion-heading">
@@ -5,6 +5,7 @@
<%= render :partial => "js_and_css"%> <%= render :partial => "js_and_css"%>
<% content_for :page_specific_javascript do -%> <% content_for :page_specific_javascript do -%>
<%= javascript_include_tag "lib/jquery.lite.image.resize.js" %>
<%= javascript_include_tag "lib/member/member.js" %> <%= javascript_include_tag "lib/member/member.js" %>
<%= javascript_include_tag "lib/footable-0.1.js" %> <%= javascript_include_tag "lib/footable-0.1.js" %>
<% end -%> <% end -%>
@@ -50,9 +51,9 @@
<a data-toggle="dropdown" class="dropdown-toggle" href="#">Module List <b class="caret"></b></a> <a data-toggle="dropdown" class="dropdown-toggle" href="#">Module List <b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<% @plugin_shows.each do |plugin| %> <% @plugins.each do |plugin| %>
<%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin["app_name"] ? "active" : nil) do %> <%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin.app_name ? "active" : nil) do %>
<%= link_to plugin["name"], :show_plugin_profile => plugin["app_name"] %> <%= link_to plugin.name, :show_plugin_profile => plugin.app_name %>
<% end -%> <% end -%>
<% end -%> <% end -%>
@@ -1 +0,0 @@
$('#order_content').html("<%= j render 'edit_order_list' %>")
@@ -1,9 +1,8 @@
<% if @data.present? %> <%= render :partial => 'shared/search_header',:locals=>{:items=>@data} %>
<%= render :partial => 'shared/search_header',:locals=>{:items=>@data} %>
<%= render @partial %> <%= render @partial %>
<% if @paginate %> <% if @paginate and !@data.blank? %>
<%= paginate @data, :param_name => :page_main, :params => {:same_page_id => @page_id} %> <%= paginate @data, :param_name => :page_main, :params => {:same_page_id => @page_id} %>
<% elsif @page_part.module_app %> <% elsif @page_part.module_app %>
<%= @page_part.module_app.get_registration.default_widget_setting.link_to_more_tag(request,params) %> <%= @page_part.module_app.get_registration.default_widget_setting.link_to_more_tag(request,params) %>
<% end %>
<% end %> <% end %>
+17 -29
View File
@@ -2,9 +2,9 @@
<div id="side"> <div id="side">
<div id="rwidget" class="wh2 thmc4"> <div id="rwidget" class="wh2 thmc4">
<ul class="docklist"> <ul class="docklist">
<li class="d_cate"><a callback-method='initializeDesktop' href="desktop/desktop_container" class="widget_fn wh2 hh2" id='home' onclick="return false;" sub-menu="false"><span class="widget_icon"><img src="" alt="Home" id="home_icon" width="30" height="30"/></span></a> <li class="d_cate"><a callback-method='initializeDesktop' href="desktop/desktop" class="widget_fn wh2 hh2" id='home' onclick="return false;"><span class="widget_icon"><img src="" alt="Home" id="home_icon" width="30" height="30"/></span></a>
<ul class="dock_child hh2 thmc4" style="width: 120px;"> <ul class="dock_child hh2 thmc4" style="width: 120px;">
<li class="dock_item"><a callback-method='initializeAppManager' href="<%= desktop_app_manager_path %>" class="widget_fn wh2 hh2" id="d_app_manager" onclick="return false;" sub-menu="false"><span class="widget_icon"><img src="" alt="App Manager" id="app_manager_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='initializeAppManager' href="<%= desktop_app_manager_path %>" class="widget_fn wh2 hh2" id="d_app_manager" onclick="return false;"><span class="widget_icon"><img src="" alt="App Manager" id="app_manager_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializeSettings' href="<%= desktop_settings_path %>" custom-load="settings" class="widget_fn wh2 hh2" id="d_settings" onclick="return false;"><span class="widget_icon"><img src="" alt="Settings" id="settings_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='initializeSettings' href="<%= desktop_settings_path %>" custom-load="settings" class="widget_fn wh2 hh2" id="d_settings" onclick="return false;"><span class="widget_icon"><img src="" alt="Settings" id="settings_icon" width="30" height="30"/></span></a></li>
</ul> </ul>
</li> </li>
@@ -32,32 +32,32 @@
<li class="dock_item"><a callback-method='initializePersonalExperience' href="<%= panel_personal_experience_desktop_experience_window_path %>" class="widget_fn wh2 hh2" id='d_working' onclick="return false;"><span class="widget_icon"><img src="" alt="Working" id="working_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='initializePersonalExperience' href="<%= panel_personal_experience_desktop_experience_window_path %>" class="widget_fn wh2 hh2" id='d_working' onclick="return false;"><span class="widget_icon"><img src="" alt="Working" id="working_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalDiploma' href="<%= panel_personal_diploma_desktop_diploma_window_path %>" class="widget_fn wh2 hh2" id='d_education' onclick="return false;"><span class="widget_icon"><img src="" alt="Education" id="education_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='initializePersonalDiploma' href="<%= panel_personal_diploma_desktop_diploma_window_path %>" class="widget_fn wh2 hh2" id='d_education' onclick="return false;"><span class="widget_icon"><img src="" alt="Education" id="education_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalHonor' href="<%= panel_personal_honor_desktop_honor_window_path %>" class="widget_fn wh2 hh2" id='d_honors' onclick="return false;"><span class="widget_icon"><img src="" alt="Honors" id="honors_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='initializePersonalHonor' href="<%= panel_personal_honor_desktop_honor_window_path %>" class="widget_fn wh2 hh2" id='d_honors' onclick="return false;"><span class="widget_icon"><img src="" alt="Honors" id="honors_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="activities" class="widget_fn wh2 hh2" id='d_activities' onclick="return false;"><span class="widget_icon disable"><img src="" alt="Activities" id="activities_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="activities" class="widget_fn wh2 hh2" id='d_activities' onclick="return false;"><span class="widget_icon"><img src="" alt="Activities" id="activities_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="clubs" class="widget_fn wh2 hh2" id='d_clubs' onclick="return false;"><span class="widget_icon"><img src="" alt="Clubs" id="clubs_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="clubs" class="widget_fn wh2 hh2" id='d_clubs' onclick="return false;"><span class="widget_icon"><img src="" alt="Clubs" id="clubs_icon" width="30" height="30"/></span></a></li>
</ul> </ul>
</li> </li>
<li class="d_cate"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_landt' onclick="return false;"><span class="widget_icon"><img src="" alt="Learning & Teaching" id="landt_icon" width="30" height="30"/></span></a> <li class="d_cate"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_landt' onclick="return false;"><span class="widget_icon"><img src="" alt="Learning & Teaching" id="landt_icon" width="30" height="30"/></span></a>
<ul class="dock_child hh2 thmc4" style="width: 180px;"> <ul class="dock_child hh2 thmc4" style="width: 180px;">
<li class="dock_item disable"><a callback-method='' href="courses" class="widget_fn wh2 hh2" id='d_courses' onclick="return false;"><span class="widget_icon"><img src="" alt="Courses" id="courses_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="courses" class="widget_fn wh2 hh2" id='d_courses' onclick="return false;"><span class="widget_icon"><img src="" alt="Courses" id="courses_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="homework" class="widget_fn wh2 hh2" id='d_homework' onclick="return false;"><span class="widget_icon"><img src="" alt="Homework" id="homework_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="homework" class="widget_fn wh2 hh2" id='d_homework' onclick="return false;"><span class="widget_icon"><img src="" alt="Homework" id="homework_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="certification" class="widget_fn wh2 hh2" id='d_certification' onclick="return false;"><span class="widget_icon"><img src="" alt="Certification" id="certification_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="certification" class="widget_fn wh2 hh2" id='d_certification' onclick="return false;"><span class="widget_icon"><img src="" alt="Certification" id="certification_icon" width="30" height="30"/></span></a></li>
</ul> </ul>
</li> </li>
<li class="d_cate"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_personal' onclick="return false;"><span class="widget_icon"><img src="" alt="Personal" id="personal_icon" width="30" height="30"/></span></a> <li class="d_cate"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_personal' onclick="return false;"><span class="widget_icon"><img src="" alt="Personal" id="personal_icon" width="30" height="30"/></span></a>
<ul class="dock_child hh2 thmc4" style="width: 300px;"> <ul class="dock_child hh2 thmc4" style="width: 300px;">
<li class="dock_item disable"><a callback-method='' href="mypage" class="widget_fn wh2 hh2" id='d_mypage' onclick="return false;"><span class="widget_icon"><img src="" alt="myPage" id="mypage_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="mypage" class="widget_fn wh2 hh2" id='d_mypage' onclick="return false;"><span class="widget_icon"><img src="" alt="myPage" id="mypage_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="blog" class="widget_fn wh2 hh2" id='d_blog' onclick="return false;"><span class="widget_icon"><img src="" alt="Blog" id="blog_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="blog" class="widget_fn wh2 hh2" id='d_blog' onclick="return false;"><span class="widget_icon"><img src="" alt="Blog" id="blog_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="album" class="widget_fn wh2 hh2" id='d_album' onclick="return false;"><span class="widget_icon"><img src="" alt="Album" id="album_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="album" class="widget_fn wh2 hh2" id='d_album' onclick="return false;"><span class="widget_icon"><img src="" alt="Album" id="album_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="calendar" class="widget_fn wh2 hh2" id='d_calendar' onclick="return false;"><span class="widget_icon"><img src="" alt="Calendar" id="calendar_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="calendar" class="widget_fn wh2 hh2" id='d_calendar' onclick="return false;"><span class="widget_icon"><img src="" alt="Calendar" id="calendar_icon" width="30" height="30"/></span></a></li>
<li class="dock_item disable"><a callback-method='' href="files" class="widget_fn wh2 hh2" id='d_files' onclick="return false;"><span class="widget_icon"><img src="" alt="Files" id="files_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="files" class="widget_fn wh2 hh2" id='d_files' onclick="return false;"><span class="widget_icon"><img src="" alt="Files" id="files_icon" width="30" height="30"/></span></a></li>
</ul> </ul>
</li> </li>
<li class="d_cate"><a callback-method='initializeOrbitTimeline' href="<%= desktop_orbit_orbit_path %>" class="widget_fn wh2 hh2" id='d_orbit' onclick="return false;"><span class="widget_icon"><img src="" alt="Orbit" id="orbit_icon" width="30" height="30"/></span></a> <li class="d_cate"><a callback-method='initializeOrbitTimeline' href="<%= desktop_orbit_orbit_path %>" class="widget_fn wh2 hh2" id='d_orbit' onclick="return false;"><span class="widget_icon"><img src="" alt="Orbit" id="orbit_icon" width="30" height="30"/></span></a>
<ul class="dock_child hh2 thmc4" style="width: 60px;"> <ul class="dock_child hh2 thmc4" style="width: 60px;">
<li class="dock_item disable"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_connection' onclick="return false;"><span class="widget_icon"><img src="" alt="Academia Connection" id="connection_icon" width="30" height="30"/></span></a></li> <li class="dock_item"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_connection' onclick="return false;"><span class="widget_icon"><img src="" alt="Academia Connection" id="connection_icon" width="30" height="30"/></span></a></li>
</ul> </ul>
</li> </li>
<li class="d_cate disable"><a callback-method='initializeAppstore' href="<%= desktop_appstore_appstore_path %>" class="widget_fn wh2 hh2" id='d_appstore' onclick="return false;"><span class="widget_icon"><img src="" alt="AppStore" id="appstore_icon" width="30" height="30"/></span></a></li> <li class="d_cate"><a callback-method='initializeAppstore' href="<%= desktop_appstore_appstore_path %>" class="widget_fn wh2 hh2" id='d_appstore' onclick="return false;"><span class="widget_icon"><img src="" alt="AppStore" id="appstore_icon" width="30" height="30"/></span></a></li>
</ul> </ul>
<div class="fn_des hh2 admbg admtxt"></div> <div class="fn_des hh2 admbg admtxt"></div>
</div> </div>
@@ -92,22 +92,10 @@
orbitDesktop.prototype.sectionId = "<%= @section.id %>"; orbitDesktop.prototype.sectionId = "<%= @section.id %>";
orbitDesktop.prototype.currentLanguage = "<%= I18n.locale %>"; orbitDesktop.prototype.currentLanguage = "<%= I18n.locale %>";
orbitDesktop.prototype.currentUsername = "<%= @currentusername %>"; orbitDesktop.prototype.currentUsername = "<%= @currentusername %>";
//uselessfunction();
var od = new orbitDesktop("#ajax_container"); var od = new orbitDesktop("#ajax_container");
var getInternetExplorerVersion = function(){ if($.browser.msie){
var rv = -1; // Return value assumes failure. if($.browser.version < 9){
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
var version = getInternetExplorerVersion();
if( version != -1){
if(version < 9){
$.fx.off = true; $.fx.off = true;
o.notify("We turn off the animation (javascript) for you, but still you can turn it on",10); o.notify("We turn off the animation (javascript) for you, but still you can turn it on",10);
} }
+27 -29
View File
@@ -1,44 +1,42 @@
<!-- Orbit Bar -->
<!--#include virtual="include/orbit_bar.html"-->
<section id="main-wrap">
<div class="sign-in have-other-sign-in"> <div class="sign-in have-other-sign-in">
<!-- <p class="alert alert-error in fade">You need to sign in.</p>
--> <% flash.each do |key, msg| %>
<% flash.each do |key, msg| %> <%= content_tag :p, msg, :class => [key, "alert alert-error"] %>
<%= content_tag :p, msg, :class => [key, "alert alert-error in fade"] %>
<% end %> <% end %>
<div class="form">
<h3 class="login-logo">Log In to Orbit</h3> <div class="form">
<div> <h3 class="login-logo"><%= t(:login) %></h3>
<input name="utf8" type="hidden" value="" /> <div class="other-sign-in">
<input name="authenticity_token" type="hidden" value="" /> <% @request_hosts = request.host_with_port.split(".") %>
</div> <a class="btn btn-primary" type="submit" href="https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignin1.0&wtrealm=https://management.ntu.edu.tw/saml_login&wctx=<%= @request_hosts[0] %>">使用計中帳號登入</a>
<!-- <div class="other-sign-in">
<a class="btn btn-primary" type="submit">Other Sign In</a>
<p>or</p> <p>or</p>
</div> --> </div>
<div class="form-block"> <div class="form-block">
<div class="form-list clearfix"> <div class="form-list clearfix">
<form class="content" accept-charset="UTF-8" action="/users/sign_in" method="post"> <%= form_for resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'content'} do |f| %>
<%= form_for resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'content'} do |f| %>
<div class="control-group clear"> <div class="control-group clear">
<label for="user_email"> <label for="user_email">
<i class="icon-user"></i> <i class="icon-user"></i>
</label> </label>
<%= f.text_field :user_id, :placeholder => t("users.user_id"), :id=>"user_email" %> <%= f.text_field :user_id, :placeholder => t("users.user_id") %>
</div> </div>
<div class="control-group clear"> <div class="control-group clear">
<label for="user_password"> <label for="user_password">
<i class="icon-lock"></i> <i class="icon-lock"></i>
</label> </label>
<%= f.password_field :password, :placeholder => t(:dots), :id=>"user_password" %> <%= f.password_field :password, :placeholder => t(:dots) %>
</div> </div>
<%= content_tag :button, t(:login), :type => :submit, :class => 'btn btn-primary' %> <!-- <label class="checkbox">
</form> <input type="checkbox" value="">
<small>Remember me</small>
</label> -->
<%= content_tag :button, t(:login), :type => :submit, :class => 'btn btn-primary' %>
<% end %>
<form class="content" accept-charset="UTF-8" action="/users/sign_in" method="post"> <!-- <form class="content" accept-charset="UTF-8" action="/users/sign_in" method="post">
<div class="control-group clear"> <div class="control-group clear">
<label for="user_email"> <label for="user_email">
<i class="icon-user"></i> <i class="icon-user"></i>
@@ -51,14 +49,14 @@
</label> </label>
<input type="text" id="user_email" name="user[email]" placeholder="電子郵件" /> <input type="text" id="user_email" name="user[email]" placeholder="電子郵件" />
</div> </div>
</form> <button class="btn btn-primary" type="submit">Submit</button>
</form> -->
</div> </div>
<!-- <div class="switchboard"><span>Forgot Password ?</span> <i class="icons-arrow-left-2"></i></div> -->
</div> </div>
<!-- <div class="register"> <!-- <div class="register">
<button class="btn btn-inverse" type="submit">Register</button> <button class="btn btn-inverse" type="submit">Register</button>
</div> --> </div> -->
<% end %>
</div> </div>
</div> </div>
</section>
+2 -2
View File
@@ -1,4 +1,4 @@
<%= javascript_include_tag "lib/jquery.cycle.all.latest.js"%> <script type='text/javascript' src='/assets/jquery.cycle.all.latest.js'></script>
<div style='position:relative'> <div style='position:relative'>
<ul id='banner_nav' class='clear banner_nav-<%= @ad_banner.title.dehumanize %>'></ul> <ul id='banner_nav' class='clear banner_nav-<%= @ad_banner.title.dehumanize %>'></ul>
<div id='slideshow-<%= @ad_banner.title.dehumanize %>' class='slideshow'> <div id='slideshow-<%= @ad_banner.title.dehumanize %>' class='slideshow'>
@@ -24,4 +24,4 @@ $(document).ready(function(){
}); });
}); });
}); });
</script> </script>
@@ -1 +0,0 @@
<%= @terms.html_safe %>
+1 -17
View File
@@ -27,20 +27,4 @@
</a> </a>
</li> </li>
</ul> </ul>
<% @url_path = "#{request.fullpath}".scan(/admin/)%>
<% if (@site.default_image.present? && (!@url_path.include? "admin"))%>
<style>
#orbit-bar .orbitlogo {
width: 20px;
height: 20px;
background-size: 70%;
display: inline-block;
background-position: center;
background-repeat: no-repeat;
background-image: url(<%= @site.default_image %>);
/* For Suck IE */
background-image: url(<%= @site.default_image%>)\9;
}
</style>
<% end %>
+5
View File
@@ -53,6 +53,11 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<%= form_for :user, url: user_session_path, html: {class: 'container'} do |f| %> <%= form_for :user, url: user_session_path, html: {class: 'container'} do |f| %>
<div class="other-sign-in">
<% @request_hosts = request.host_with_port.split(".") %>
<a class="btn btn-primary" type="submit" href="https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignin1.0&wtrealm=https://management.ntu.edu.tw/saml_login&wctx=<%= @request_hosts[0] %>">使用計中帳號登入</a>
<p>or</p>
</div>
<div class="input-prepend"> <div class="input-prepend">
<span class="add-on"> <span class="add-on">
<i class="icon-user"></i> <i class="icon-user"></i>
+1
View File
@@ -3,4 +3,5 @@
<%= link_to content_tag(:i, nil, :class => (local_assigns.has_key? :icon) ? icon : 'icons-gauge'), (local_assigns.has_key? :link_url) ? link_url : admin_dashboards_path %> <%= link_to content_tag(:i, nil, :class => (local_assigns.has_key? :icon) ? icon : 'icons-gauge'), (local_assigns.has_key? :link_url) ? link_url : admin_dashboards_path %>
</h2> </h2>
<%= render ((local_assigns.has_key? :side_bar_content) ? side_bar_content : 'layouts/side_bar_content') %> <%= render ((local_assigns.has_key? :side_bar_content) ? side_bar_content : 'layouts/side_bar_content') %>
<div class="sub-nav-arrow"></div>
</nav> </nav>
@@ -6,7 +6,6 @@
<% end %> <% end %>
</ul> </ul>
</div> </div>
<div class="sub-nav-arrow"></div>
</div> </div>
<div class="sub-nav-block-list"> <div class="sub-nav-block-list">
+7 -14
View File
@@ -6,23 +6,16 @@
<!--[if lt IE 9]> <!--[if lt IE 9]>
<%= javascript_include_tag "html5" %> <%= javascript_include_tag "html5" %>
<![endif]--> <![endif]-->
<%= render 'layouts/meta' %> <%= stylesheet_link_tag "devise" %>
<%= render 'layouts/google_font' %> <%= javascript_include_tag "devise" %>
<%= stylesheet_link_tag "basic/global" %> <%= csrf_meta_tag %>
<%= stylesheet_link_tag "basic" %>
<%= render 'layouts/ie_html5_fix' %>
<%= javascript_include_tag "basic" %>
<%= yield :page_specific_css %>
<%= yield :page_specific_javascript %>
<style>
</style>
<%= csrf_meta_tag %>
</head> </head>
<body> <body>
<%= render 'layouts/orbit_bar' %> <%= render 'layouts/orbit_bar' %>
<%= yield %> <%= yield %>
<!--<div id="sign-footer">
<p>Rulingcom</p>
</div>
-->
</body> </body>
</html> </html>
-1
View File
@@ -44,7 +44,6 @@ public_r_tags:
- sitemap - sitemap
- breadcrumb - breadcrumb
- tag_cloud - tag_cloud
- terms_of_use
page_part_kinds: page_part_kinds:
- text - text
-1
View File
@@ -390,7 +390,6 @@ en:
footer: Site footer footer: Site footer
footer_help: Footer Guide footer_help: Footer Guide
frontend_closed: Frontend Closed frontend_closed: Frontend Closed
frontend_open: Frontend Open
header: Site header header: Site header
info: Site information info: Site information
keywords: Site keywords keywords: Site keywords
+1 -5
View File
@@ -2,7 +2,6 @@ en:
add_category: Add category add_category: Add category
add_link: Add link add_link: Add link
add_page: Add page add_page: Add page
add_tags: Add Tags
add_to_default: Add to default add_to_default: Add to default
alternative: Alternative alternative: Alternative
approval_setting: Approval Setting approval_setting: Approval Setting
@@ -17,7 +16,6 @@ en:
deselect_all: Deselect all deselect_all: Deselect all
detail: Detail detail: Detail
edit_category: Edit Categorie edit_category: Edit Categorie
edit_order: Edit order
editing: editing:
tag: Editing tag tag: Editing tag
file: file:
@@ -39,7 +37,6 @@ en:
no_date: No date no_date: No date
no_file: No file no_file: No file
path: Path path: Path
position: Position
previous: Previous previous: Previous
remove: Remove remove: Remove
remove_default: Remove default remove_default: Remove default
@@ -71,5 +68,4 @@ en:
error: error:
tag: Error when updating category tag: Error when updating category
tag: Error when updating tag tag: Error when updating tag
url_alt: Alternative text url_alt: Alternative text
use_default: Use Default
-75
View File
@@ -1,75 +0,0 @@
zh_tw:
add_category: 新增類別
add_link: 新增連結
add_page: 新增頁面
add_tags: Add Tags
add_to_default: 加入預設
alternative: 註解
approval_setting: 審核設定
authorization_: 授權
change: 更換
change_file: 更換檔案
create:
error:
category: 建立類別時發生錯誤
tag: 建立標籤時發生錯誤
delete_warning: 刪除後無法還原,您確定要刪除嗎?
deselect_all: 取消全選
detail: 細節
edit_category: 編輯類別
edit_order: 編輯排序
editing:
tag: 編輯標籤
file:
name: 檔案名稱
front_page:
name_language: 網站標題
select_template: 選擇樣版
select_themes: 選擇主題
select_module: 選擇模組
language: 語言
login_orbit: 登入 Orbit
merge: 合併
new:
tag: 新增標籤
next: 下一頁
no_app: 無模組
no_category: 無可用類別
no_data: 無資料
no_date: 無日期
no_file: 無檔案
path: 路徑
position: 排序
previous: 上一頁
remove: 移除
remove_default: 移除預設
restful_actions:
create: 建立
delete: 刪除
edit: 編輯
index: Index
new: 新增
show: Show
update: 更新
search:
tags: 搜尋標籤
select_all: 全選
select_file: 選擇檔案
select_image: 選擇圖片
sort_number: 排序數
tag:
add: 新增標籤
delete: 刪除標籤
new_name: 新標籤名稱
merge_help: 自訂新標籤名稱或點選下方標籤
merger: 合併標籤
remove_default: 移除預設標籤
warning:
delete: 刪除後無法還原,您確定要刪除嗎?
remove_default: 您確定要移除此預設標籤嗎?
update:
error:
tag: 更新類別時發生錯誤
tag: 更新標籤時發生錯誤
url_alt: 註解
use_default: Use Default
-1
View File
@@ -385,7 +385,6 @@ zh_tw:
thumbnail: 縮圖 thumbnail: 縮圖
site: site:
frontend_closed: 前台關閉? frontend_closed: 前台關閉?
frontend_open: 前台關閉 ?
backend_openness_on: 開啟開放式後台(訪客可遊覽) backend_openness_on: 開啟開放式後台(訪客可遊覽)
default_image: 預設圖像 default_image: 預設圖像
description: 網站描述 description: 網站描述
+1 -1
View File
@@ -8,7 +8,7 @@ defaults: &defaults
development: development:
<<: *defaults <<: *defaults
database: test_site database: ntu_mb_orbit_test
+18 -8
View File
@@ -9,6 +9,14 @@ Orbit::Application.routes.draw do
match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put
end end
devise_scope :user do
get 'user_login' => 'sessions#create'
match 'user_logout' => 'sessions#destroy'
end
match "saml_login" => 'saml_logins#index'
mount Resque::Server, :at => "/admin/resque" mount Resque::Server, :at => "/admin/resque"
mount Rack::GridFS::Endpoint.new(:db => Mongoid.database,:lookup=>:path), :at => "gridfs" mount Rack::GridFS::Endpoint.new(:db => Mongoid.database,:lookup=>:path), :at => "gridfs"
@@ -200,6 +208,14 @@ Orbit::Application.routes.draw do
get 'change_design' get 'change_design'
get 'preference' get 'preference'
end end
get "import_data/get_teacher_data"
get "import_data/get_book_data"
get "import_data/get_conference_data"
get "import_data/get_journal_paper_data"
get "import_data/get_announcement_data"
get "import_data/get_page_data"
resources :tags do resources :tags do
collection do collection do
@@ -214,12 +230,6 @@ Orbit::Application.routes.draw do
member do member do
get 'temp_edit' get 'temp_edit'
end end
collection do
get 'edit_order_card'
get 'edit_order_list'
post 'update_order_card'
post 'update_order_list'
end
match "edit_passwd" => "users_new_interface#edit_passwd" ,:as => :edit_passwd match "edit_passwd" => "users_new_interface#edit_passwd" ,:as => :edit_passwd
end end
@@ -273,7 +283,7 @@ Orbit::Application.routes.draw do
match "/desktop/compatibility" => "desktop#compatibility" match "/desktop/compatibility" => "desktop#compatibility"
match "desktop" => "desktop#index" match "desktop" => "desktop#index"
match "/desktop/desktop_container" => "desktop#desktop_container" match "/desktop/desktop" => "desktop#desktop"
match '/desktop/appactivation'=>'desktop#appactivation' match '/desktop/appactivation'=>'desktop#appactivation'
match '/desktop/app_manager'=>'desktop#app_manager' match '/desktop/app_manager'=>'desktop#app_manager'
match '/desktop/allsections'=>'desktop#allsections' match '/desktop/allsections'=>'desktop#allsections'
@@ -328,7 +338,7 @@ Orbit::Application.routes.draw do
end end
end end
controller_paths :front, %w[show_breadcrumb show_banner show_footer show_menu show_page_sub_menu show_site_sub_menu show_sitemap show_tag_cloud show_terms_of_use] controller_paths :front, %w[show_breadcrumb show_banner show_footer show_menu show_page_sub_menu show_site_sub_menu show_sitemap show_tag_cloud]
# controller_paths :mobile, %w[index announcement announcement_content dialog_contact dialog_copyright dialog_language map page page_content] # controller_paths :mobile, %w[index announcement announcement_content dialog_contact dialog_copyright dialog_language map page page_content]
# scope 'app' do # scope 'app' do
+1 -1
View File
@@ -112,7 +112,7 @@ module OrbitApp
current_priority = @context_links.count current_priority = @context_links.count
if @approvable_with_link if @approvable_with_link
context_link 'approval_setting', context_link 'approval_setting',
:link_path => "admin_authorizations_path(get_module_app.key, 'category_approval')", :link_path => "admin_authorizations_path(get_module_app.key, 'approval')",
:priority => current_priority + 1, :priority => current_priority + 1,
:available_for => [:manager] :available_for => [:manager]
end end
-5
View File
@@ -53,7 +53,6 @@ module OrbitApp
def initialize(name,partial=nil,*args ,&block) def initialize(name,partial=nil,*args ,&block)
@base_path = args[0][:base_path] @base_path = args[0][:base_path]
@name = partial[0][:i18n].nil? ? name : lambda{ I18n.t(partial[0][:i18n]) } @name = partial[0][:i18n].nil? ? name : lambda{ I18n.t(partial[0][:i18n]) }
@sort_number = partial[0][:sort_number]
@app_name = partial[0][:app_name] @app_name = partial[0][:app_name]
@intro_app_name = partial[0][:intro_app_name] @intro_app_name = partial[0][:intro_app_name]
@partial_path = '' @partial_path = ''
@@ -69,10 +68,6 @@ module OrbitApp
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
end end
def sort_number
return @sort_number
end
def app_name def app_name
return @app_name return @app_name
end end
+27 -41
View File
@@ -197,48 +197,37 @@ module OrbitCoreLib
end end
end end
def skip_authorization(arg = nil)
if arg
key = arg.shift
prepend_before_filter key[0] => key[1] {|f| f.no_authorization}
else
prepend_before_filter {|f| f.no_authorization}
end
end
end end
module InstanceMethods module InstanceMethods
protected protected
def can_use def can_use
setup_vars setup_vars
unless @no_authorization set_current_user
if @user_type if @user_type
@user_type.each do |user_type| @user_type.each do |user_type|
open = false open = false
visitor = false visitor = false
case user_type case user_type
when :admin when :admin
open ||= check_admin open ||= check_admin
when :manager when :manager
open ||= check_manager open ||= check_manager
when :sub_manager when :sub_manager
open ||= check_sub_manager open ||= check_sub_manager
when :approver when :approver
open ||= check_sub_manager open ||= check_sub_manager
when :visitor when :visitor
set_current_user open ||= true
open ||= true visitor ||= true
visitor ||= true
end
check_backend_openness if visitor
authenticate_user! unless visitor
redirect_to root_url unless open
end end
else check_backend_openness if visitor
authenticate_user! authenticate_user! unless visitor
check_user_can_use redirect_to root_url unless open
end end
else
authenticate_user!
check_user_can_use
end end
end end
@@ -259,14 +248,10 @@ module OrbitCoreLib
end end
def open_for(var) def open_for(var)
@user_type ||= [] @user_type ||= []
@user_type << var @user_type << var
end end
def no_authorization
@no_authorization = true
end
def check_user_can_use def check_user_can_use
unless current_or_guest_user.admin? || @module_app.is_manager?(current_or_guest_user) || @module_app.is_sub_manager?(current_or_guest_user) || @module_app.can_approve?(current_or_guest_user) unless current_or_guest_user.admin? || @module_app.is_manager?(current_or_guest_user) || @module_app.is_sub_manager?(current_or_guest_user) || @module_app.can_approve?(current_or_guest_user)
redirect_to root_url redirect_to root_url
@@ -274,8 +259,9 @@ module OrbitCoreLib
end end
def setup_vars def setup_vars
@app_title ||= controller_path.split('/')[1].singularize rescue nil @app_title ||= controller_path.split('/')[1].singularize
@module_app ||= ModuleApp.first(conditions: {:key => @app_title} ) rescue nil @module_app ||= ModuleApp.first(conditions: {:key => @app_title} )
# raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
end end
end end
end end
+1 -1
View File
@@ -46,7 +46,7 @@ module OrbitTag
def tags=(tag_ids) def tags=(tag_ids)
tag_ids = [tag_ids].flatten tag_ids = [tag_ids].flatten
tag_ids.delete_if{|e| e.match(/^[0-1]$|^$/)} tag_ids.delete('')
ids = self.taggings.blank? ? [] : self.taggings.map{|t| t.tag.id} ids = self.taggings.blank? ? [] : self.taggings.map{|t| t.tag.id}
tag_ids.each do |tag_id| tag_ids.each do |tag_id|
unless ids.include? tag_id unless ids.include? tag_id
+2 -12
View File
@@ -125,7 +125,6 @@ module ParserCommon
def parse_sub_menus_edit(body = nil, page = nil, edit=nil) def parse_sub_menus_edit(body = nil, page = nil, edit=nil)
body.css('sub_menu').each do |sub_menu| body.css('sub_menu').each do |sub_menu|
menu_page = Page.find(sub_menu['id']) rescue nil menu_page = Page.find(sub_menu['id']) rescue nil
res = '' res = ''
if menu_page && menu_page.visible_children.size > 0 if menu_page && menu_page.visible_children.size > 0
res << "<div class='category_list'>" res << "<div class='category_list'>"
@@ -246,15 +245,6 @@ module ParserCommon
sitemap.swap(fragment) sitemap.swap(fragment)
end end
# terms_of_use
def parse_terms_of_uses_edit(body = nil, page = nil, edit=nil)
terms_of_use = body.css('terms_of_use').first
url = front_show_terms_of_use_path
options = "?inner=true"
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>")
terms_of_use.swap(fragment)
end
# page_contents # page_contents
def parse_contents_edit(body, page, edit=nil) def parse_contents_edit(body, page, edit=nil)
public_r_tags = [] public_r_tags = []
@@ -296,8 +286,8 @@ module ParserCommon
when 'default_widget' when 'default_widget'
"/panel/orbit_app/widget/#{part.widget_style}?inner=true" "/panel/orbit_app/widget/#{part.widget_style}?inner=true"
else else
# raise ModuleAppError,"PagePart can't find ModuleApp" if part.module_app.nil? raise ModuleAppError,"PagePart can't find ModuleApp" if part.module_app.nil?
"/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true" rescue '' "/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true"
end end
categories_str=(!part[:category].blank? ? part[:category] : category).collect{|t| "category_id[]=#{t}"}.join('&') categories_str=(!part[:category].blank? ? part[:category] : category).collect{|t| "category_id[]=#{t}"}.join('&')
-5
View File
@@ -222,9 +222,4 @@ module ParserFrontEnd
def generate_tag_clouds(*args) def generate_tag_clouds(*args)
"<div class='dymanic_load' path='#{front_show_tag_cloud_path(args[0])}'></div>" "<div class='dymanic_load' path='#{front_show_tag_cloud_path(args[0])}'></div>"
end end
# tag_cloud
def generate_terms_of_uses(*args)
"<div class='dymanic_load' path='#{front_show_terms_of_use_path}'></div>"
end
end end
-7
View File
@@ -91,11 +91,4 @@ namespace :new_ui do
end end
end end
task :reset_user_position => :environment do
User.where(email: /guest/).each{|d|d.update_attribute(:position, nil)}
User.not_guest_user.each_with_index do |user, i|
user.update_attribute(:position, i)
end
end
end end
Loaded 100 of 185 files, more files were not shown because too many files have changed in this diff. Show more