Compare commits
98
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2945e14385 | ||
|
|
c68c563fb0 | ||
|
|
697944a029 | ||
|
|
12e39b4d77 | ||
|
|
a0478f2a8f | ||
|
|
b198b1a17b | ||
|
|
62fa589e8a | ||
|
|
5ff7dfbac6 | ||
|
|
11067ef34f | ||
|
|
536f0d30af | ||
|
|
41168f4c99 | ||
|
|
7e9fce0c2d | ||
|
|
2416030adc | ||
|
|
38d5a193e0 | ||
|
|
fcfdd562a6 | ||
|
|
989e5aa974 | ||
|
|
4cbf2fd8b9 | ||
|
|
c94a86c3a4 | ||
|
|
aedab01ae6 | ||
|
|
e3782c9cf7 | ||
|
|
e2802d94d0 | ||
|
|
055d758769 | ||
|
|
0734f73291 | ||
|
|
a4ebe31ada | ||
|
|
3098496083 | ||
|
|
28f0df5da8 | ||
|
|
3de4591413 | ||
|
|
d177fe0369 | ||
|
|
d288972035 | ||
|
|
c6868bf2e0 | ||
|
|
95e308e046 | ||
|
|
425a320c02 | ||
|
|
dc5f24ab22 | ||
|
|
bc0477a5ed | ||
|
|
0781779ac0 | ||
|
|
e7bffe4c0f | ||
|
|
dd10b3147c | ||
|
|
cae43e8acd | ||
|
|
793d739726 | ||
|
|
c8aa50ee87 | ||
|
|
0f6f5aafce | ||
|
|
f6b600df59 | ||
|
|
6af375efa4 | ||
|
|
1709773b0a | ||
|
|
95805cfdee | ||
|
|
84afbfa86c | ||
|
|
44fede2b71 | ||
|
|
764f83d58c | ||
|
|
8dee211ab4 | ||
|
|
27ad25ccca | ||
|
|
f9e7cefc94 | ||
|
|
df220397b2 | ||
|
|
b5fd6c7a1a | ||
|
|
65e306a854 | ||
|
|
41643d1f61 | ||
|
|
aad4119892 | ||
|
|
54af5e8bd4 | ||
|
|
6db9e70132 | ||
|
|
dabceec3ea | ||
|
|
52789fa032 | ||
|
|
dc68f40cb4 | ||
|
|
228dd1b767 | ||
|
|
dae3f069ff | ||
|
|
5f2c669568 | ||
|
|
1b12412596 | ||
|
|
b1d7d5345e | ||
|
|
6efef253a6 | ||
|
|
0d5ab20efa | ||
|
|
9815950083 | ||
|
|
50449b55e8 | ||
|
|
00db66b8c4 | ||
|
|
b8ee2fd559 | ||
|
|
401c75c0de | ||
|
|
1ebae504dc | ||
|
|
323fadc210 | ||
|
|
69a49a69aa | ||
|
|
5178ce3bde | ||
|
|
95128a3465 | ||
|
|
8783b8e5fe | ||
|
|
a3de4cc2d4 | ||
|
|
bdaef3af0f | ||
|
|
625f2e9ad6 | ||
|
|
db60a3bcfa | ||
|
|
a7667d586a | ||
|
|
e9ddb85734 | ||
|
|
d840b82fa9 | ||
|
|
84dfb44e78 | ||
|
|
4a08a1992b | ||
|
|
15be80a35f | ||
|
|
1d06bcaae7 | ||
|
|
8e98cb3ec9 | ||
|
|
6cd97adf21 | ||
|
|
0189d1c2c0 | ||
|
|
3e96cfe514 | ||
|
|
468555a037 | ||
|
|
da8a5123c2 | ||
|
|
4ebc8cbb77 | ||
|
|
ec1605358b |
No files matched your search
+4
-1
@@ -17,4 +17,7 @@ uploads/**/*
|
||||
|
||||
*.swp
|
||||
*.pid
|
||||
*.lck
|
||||
*.lck
|
||||
|
||||
.sass-cache/*
|
||||
*.supported
|
||||
@@ -26,6 +26,7 @@ gem "mongo_session_store-rails3", '3.0.6'
|
||||
gem 'nokogiri'
|
||||
|
||||
gem 'fb_graph'
|
||||
gem 'rack-gridfs'
|
||||
gem 'radius'
|
||||
gem 'rake'
|
||||
# gem 'remotipart'
|
||||
|
||||
@@ -194,6 +194,10 @@ GEM
|
||||
rack (1.4.5)
|
||||
rack-cache (1.2)
|
||||
rack (>= 0.4)
|
||||
rack-gridfs (0.4.1)
|
||||
mime-types
|
||||
mongo (~> 1.2)
|
||||
rack
|
||||
rack-oauth2 (1.0.0)
|
||||
activesupport (>= 2.3)
|
||||
attr_required (>= 0.0.5)
|
||||
@@ -373,6 +377,7 @@ DEPENDENCIES
|
||||
pry-debugger
|
||||
pry-remote
|
||||
pry-stack_explorer
|
||||
rack-gridfs
|
||||
radius
|
||||
rails (~> 3.2.9)
|
||||
rake
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 824 B |
@@ -0,0 +1,34 @@
|
||||
function append_id(){
|
||||
if ($("#object_id").length == 1) {
|
||||
return "&id="+$("#object_id").val();
|
||||
}
|
||||
else{
|
||||
return '';
|
||||
};
|
||||
}
|
||||
|
||||
$("#page_design").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?design_id=' + $(this).val() + append_id());
|
||||
});
|
||||
|
||||
|
||||
$("#module_app_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?module_app_id='+$(this).val() + append_id());
|
||||
});
|
||||
|
||||
$("#widget_list select,#frontend_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') +'?frontend=' + $(this).val() + '&module_app_id=' + $("#module_app_list select").val() + append_id() );
|
||||
});
|
||||
|
||||
$("#tag_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?type=' + $(this).val() + append_id() );
|
||||
});
|
||||
|
||||
$("select.widget_field_select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?widget_field_value='+ $(this).val()+'&dom_id=' + $(this).attr("id") + '&field_seri=' +$(this).attr('field_seri')+ '&module_app_id=' +$("#page_module_app_id,page_part_module_app_id").val() + append_id() );
|
||||
});
|
||||
|
||||
$('.part_kind').live('click', function() {
|
||||
$('.part_kind_partial').hide();
|
||||
$('#part_' + $(this).attr('value')).show();
|
||||
});
|
||||
File diff suppressed because it is too large.
Load diff
@@ -147,7 +147,7 @@ var orbitDesktopAPI = function(){
|
||||
return;
|
||||
}
|
||||
}
|
||||
var whtml =$('<div id="app_frame_'+o.windowcounter+'" class="thmc2 app_frame" data-app="'+settings.appid+'"><div id="content"><div id="header" class="hh3"><div class="dtitle w2 hh3 hp" style="text-transform:capitalize;"><span class="thmtxth">'+settings.title+'</span></div><span class="icon-remove hh3 hp thmtxt"></span></div><div id="holder_'+o.windowcounter+'" class="app_holder"><iframe src="'+appurl+'" frameborder="0" scrolling="auto"></iframe><div class="clear"></div></div></div></div>');
|
||||
var whtml =$('<div id="app_frame_'+o.windowcounter+'" class="thmc2 app_frame" data-app="'+settings.appid+'"><div id="content"><div id="header" class="hh3"><div class="dtitle hh3 hp" style="text-transform:capitalize;"><span class="thmtxth">'+settings.title+'</span></div><span class="icon-remove hh3 hp thmtxt"></span></div><div id="holder_'+o.windowcounter+'" class="app_holder"><iframe src="'+appurl+'" frameborder="0" scrolling="auto"></iframe><div class="clear"></div></div></div></div>');
|
||||
$(o.contentHolder).append(whtml);
|
||||
var parentwindow = $(o.contentHolder).find("div#app_frame_"+o.windowcounter);
|
||||
var app_holder_height = parentwindow.height() - 72;
|
||||
@@ -206,12 +206,6 @@ var orbitDesktopAPI = function(){
|
||||
}
|
||||
}
|
||||
};
|
||||
this.use_select2 = function(){
|
||||
$('select:not(.select2-offscreen)').select2({
|
||||
minimumResultsForSearch: -1
|
||||
// minimumInputLength: -1
|
||||
});
|
||||
}
|
||||
};
|
||||
orbitDesktopAPI.prototype.notifyImgPath = "temp";
|
||||
orbitDesktopAPI.prototype.wallpaperPath = "temp";
|
||||
@@ -1,42 +1,3 @@
|
||||
function append_id(){
|
||||
if ($("#object_id").length == 1) {
|
||||
return "&id="+$("#object_id").val();
|
||||
}
|
||||
else{
|
||||
return '';
|
||||
};
|
||||
}
|
||||
|
||||
$("div.editable").live("mouseenter mouseleave", function (event) {
|
||||
$(this).children('.edit_link').toggle();
|
||||
});
|
||||
|
||||
$("#page_design").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?design_id=' + $(this).val() + append_id());
|
||||
});
|
||||
|
||||
|
||||
$("#module_app_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?module_app_id='+$(this).val() + append_id());
|
||||
});
|
||||
|
||||
$("#widget_list select,#frontend_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') +'?frontend=' + $(this).val() + '&module_app_id=' + $("#module_app_list select").val() + append_id() );
|
||||
});
|
||||
|
||||
$("#tag_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?type=' + $(this).val() + append_id() );
|
||||
});
|
||||
|
||||
$("select.widget_field_select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '?widget_field_value='+ $(this).val()+'&dom_id=' + $(this).attr("id") + '&field_seri=' +$(this).attr('field_seri')+ '&module_app_id=' +$("#page_module_app_id,page_part_module_app_id").val() + append_id() );
|
||||
});
|
||||
|
||||
$('.part_kind').live('click', function() {
|
||||
$('.part_kind_partial').hide();
|
||||
$('#part_' + $(this).attr('value')).show();
|
||||
});
|
||||
|
||||
$(document).ready(function(){
|
||||
bindTreeDragHandle();
|
||||
});
|
||||
@@ -60,4 +21,8 @@ var bindTreeDragHandle = function(){
|
||||
$.post("<%= Rails.application.routes.url_helpers.admin_update_position_path %>", { id: ui.item.attr('id'), parent_id: ui.item.parent().closest('li').attr('id'), position: ui.item.index() } );
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$("div.editable").live("mouseenter mouseleave", function (event) {
|
||||
$(this).children('.edit_link').toggle();
|
||||
});
|
||||
@@ -3,12 +3,10 @@ $gray: #ddd;
|
||||
@mixin font-main($font-size) {
|
||||
font-family: "Source Sans Pro", sans-serif;
|
||||
font-size: #{$font-size}px;
|
||||
font-weight: 300;
|
||||
}
|
||||
@mixin font-sub($font-size) {
|
||||
font-family: "Source Sans Pro", Arial, sans-serif;
|
||||
font-size: #{$font-size}px;
|
||||
font-weight: 300;
|
||||
}
|
||||
@mixin transition-type($property, $sec) {
|
||||
-webkit-transition: #{$property} #{$sec}s ease;
|
||||
|
||||
@@ -92,20 +92,28 @@
|
||||
z-index: 9;
|
||||
left: 0;
|
||||
top: 60px;
|
||||
font-size: 15px; }
|
||||
|
||||
.sdm_o li {
|
||||
border-top: solid 1px #f2f2f2; }
|
||||
|
||||
.sdm_o li:first-child {
|
||||
border: none; }
|
||||
|
||||
.sdm_o a {
|
||||
display: block; }
|
||||
|
||||
.sdm_o .admtxt {
|
||||
display: block;
|
||||
line-height: 36px; }
|
||||
font-size: 15px;
|
||||
width: 120px;
|
||||
border: solid 2px #dddddd;
|
||||
-webkit-box-sizing: border-box;
|
||||
/* webkit */
|
||||
-khtml-box-sizing: border-box;
|
||||
/* konqueror */
|
||||
-moz-box-sizing: border-box;
|
||||
/* firefox */
|
||||
-ms-box-sizing: border-box;
|
||||
/* ie */
|
||||
box-sizing: border-box;
|
||||
/* css3 */ }
|
||||
.sdm_o li {
|
||||
border-top: solid 1px #f7f7f7; }
|
||||
.sdm_o li:first-child {
|
||||
border: none; }
|
||||
.sdm_o a {
|
||||
display: block; }
|
||||
.sdm_o .admtxt {
|
||||
display: block;
|
||||
line-height: 36px; }
|
||||
|
||||
/* simple dropdown menu with indicator */
|
||||
.sdm_mdr .sdm_t {
|
||||
@@ -119,15 +127,12 @@
|
||||
.s_menu {
|
||||
font-size: 15px;
|
||||
line-height: 36px; }
|
||||
|
||||
.s_menu li {
|
||||
border-top: solid 1px #dddddd; }
|
||||
|
||||
.s_menu li:first-child {
|
||||
border: none; }
|
||||
|
||||
.s_menu a {
|
||||
display: block; }
|
||||
.s_menu li {
|
||||
border-top: solid 1px #dddddd; }
|
||||
.s_menu li:first-child {
|
||||
border: none; }
|
||||
.s_menu a {
|
||||
display: block; }
|
||||
|
||||
/* simple tabs */
|
||||
.s_tab {
|
||||
@@ -157,7 +162,7 @@
|
||||
font-size: 15px; }
|
||||
.s_form label {
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 100px;
|
||||
@@ -197,7 +202,8 @@
|
||||
.s_form input[type=text]:focus,
|
||||
.s_form input[type=password]:focus,
|
||||
.s_form textarea:focus {
|
||||
background-color: #f7f7f7; }
|
||||
background-color: #f7f7f7;
|
||||
border-color: #c4c4c4; }
|
||||
.s_form textarea {
|
||||
resize: none; }
|
||||
.s_form textarea.full_height {
|
||||
@@ -250,27 +256,22 @@
|
||||
line-height: 36px;
|
||||
position: relative;
|
||||
z-index: 9; }
|
||||
|
||||
.toolbar .sdm, .toolbar .fn_g {
|
||||
display: inline-block;
|
||||
vertical-align: top; }
|
||||
|
||||
.toolbar .sdm_o {
|
||||
top: 36px;
|
||||
background-color: #f0f0f0; }
|
||||
|
||||
.toolbar button {
|
||||
border: none;
|
||||
outline: none;
|
||||
padding: 0 16px;
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: 15px;
|
||||
vertical-align: top; }
|
||||
|
||||
.toolbar .fn_btn {
|
||||
display: inline-block;
|
||||
vertical-align: top; }
|
||||
.toolbar .sdm, .toolbar .fn_g {
|
||||
display: inline-block;
|
||||
vertical-align: top; }
|
||||
.toolbar .sdm_o {
|
||||
top: 36px; }
|
||||
.toolbar button {
|
||||
border: none;
|
||||
outline: none;
|
||||
padding: 0 16px;
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: 15px;
|
||||
vertical-align: top; }
|
||||
.toolbar .fn_btn {
|
||||
display: inline-block;
|
||||
vertical-align: top; }
|
||||
|
||||
/* tiny scrollbar */
|
||||
.tinycanvas {
|
||||
@@ -368,10 +369,7 @@
|
||||
.tinycanvas:hover .scrollbar {
|
||||
visibility: visible;
|
||||
opacity: 1; }
|
||||
|
||||
.toolbar + .tinycanvas,
|
||||
.s_tab + .tinycanvas {
|
||||
height: 480px; }
|
||||
|
||||
#panel_r .tinycanvas {
|
||||
padding: 12px 0; }
|
||||
.toolbar + .tinycanvas, .s_tab + .tinycanvas {
|
||||
height: 480px; }
|
||||
#panel_r .tinycanvas {
|
||||
padding: 12px 0; }
|
||||
@@ -58,19 +58,23 @@
|
||||
left: 0;
|
||||
top: 60px;
|
||||
font-size: 15px;
|
||||
width: 120px;
|
||||
border: solid 2px $gray;
|
||||
@include box-sizing;
|
||||
|
||||
li {
|
||||
border-top: solid 1px lighten( $gray, 10% );
|
||||
}
|
||||
li:first-child {
|
||||
border: none;
|
||||
}
|
||||
a {
|
||||
display: block;
|
||||
}
|
||||
.admtxt {
|
||||
display: block;
|
||||
line-height: 36px;
|
||||
}
|
||||
.sdm_o li {
|
||||
border-top: solid 1px #f2f2f2;
|
||||
}
|
||||
.sdm_o li:first-child {
|
||||
border: none;
|
||||
}
|
||||
.sdm_o a {
|
||||
display: block;
|
||||
}
|
||||
.sdm_o .admtxt {
|
||||
display: block;
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
/* simple dropdown menu with indicator */
|
||||
@@ -86,15 +90,16 @@
|
||||
.s_menu {
|
||||
font-size: 15px;
|
||||
line-height: 36px;
|
||||
}
|
||||
.s_menu li {
|
||||
border-top: solid 1px #ddd;
|
||||
}
|
||||
.s_menu li:first-child {
|
||||
border: none;
|
||||
}
|
||||
.s_menu a {
|
||||
display: block;
|
||||
|
||||
li {
|
||||
border-top: solid 1px $gray;
|
||||
}
|
||||
li:first-child {
|
||||
border: none;
|
||||
}
|
||||
a {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
/* simple tabs */
|
||||
@@ -130,7 +135,7 @@
|
||||
// basic style
|
||||
label {
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 100px;
|
||||
@@ -165,6 +170,7 @@
|
||||
|
||||
&:focus {
|
||||
background-color: lighten($gray, 10%);
|
||||
border-color: darken($gray, 10%);
|
||||
}
|
||||
}
|
||||
textarea {
|
||||
@@ -228,27 +234,27 @@
|
||||
line-height: 36px;
|
||||
position: relative;
|
||||
z-index: 9;
|
||||
}
|
||||
.toolbar .sdm, .toolbar .fn_g {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
.toolbar .sdm_o {
|
||||
top: 36px;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
.toolbar button {
|
||||
border: none;
|
||||
outline: none;
|
||||
padding: 0 16px;
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: 15px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.toolbar .fn_btn {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
|
||||
.sdm, .fn_g {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
.sdm_o {
|
||||
top: 36px;
|
||||
}
|
||||
button {
|
||||
border: none;
|
||||
outline: none;
|
||||
padding: 0 16px;
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: 15px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.fn_btn {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
}
|
||||
|
||||
/* tiny scrollbar */
|
||||
@@ -351,11 +357,11 @@
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.toolbar + .tinycanvas,
|
||||
.s_tab + .tinycanvas {
|
||||
height: 480px;
|
||||
}
|
||||
#panel_r .tinycanvas {
|
||||
padding: 12px 0;
|
||||
.toolbar + &,
|
||||
.s_tab + & {
|
||||
height: 480px;
|
||||
}
|
||||
#panel_r & {
|
||||
padding: 12px 0;
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,6 @@ table {
|
||||
body {
|
||||
font-family: "Source Sans Pro", sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
background-color: #000; }
|
||||
|
||||
a, a:hover {
|
||||
@@ -70,11 +69,13 @@ a:focus {
|
||||
.clear:after {
|
||||
display: table;
|
||||
width: 100%;
|
||||
content: ''; }
|
||||
content: '';
|
||||
clear: both; }
|
||||
|
||||
.o-loading {
|
||||
font-size: 13px;
|
||||
font-weight: normal; }
|
||||
font-size: 13px; }
|
||||
.fullsize .o-loading {
|
||||
padding: 12px; }
|
||||
.o-loading i {
|
||||
font-size: 20px; }
|
||||
|
||||
@@ -294,7 +295,7 @@ a:focus {
|
||||
|
||||
.fn_des.admtxt {
|
||||
line-height: 60px;
|
||||
padding: 0 6px;
|
||||
padding: 0 12px;
|
||||
font-size: 15px;
|
||||
position: absolute;
|
||||
z-index: 9;
|
||||
@@ -333,8 +334,7 @@ a:focus {
|
||||
.section_label li {
|
||||
font-size: 15px; }
|
||||
.section_label li:first-child {
|
||||
font-size: 18px;
|
||||
font-weight: normal; }
|
||||
font-size: 18px; }
|
||||
|
||||
/* panel */
|
||||
#panel_l {
|
||||
@@ -369,8 +369,7 @@ a:focus {
|
||||
#orbitnote .note_holder .note_message {
|
||||
color: #333;
|
||||
margin: 10px 0 0 48px;
|
||||
font-size: 15px;
|
||||
font-weight: normal; }
|
||||
font-size: 15px; }
|
||||
|
||||
/* Desktop Dialogue */
|
||||
#orbitdiag {
|
||||
@@ -401,7 +400,6 @@ a:focus {
|
||||
margin: 0 6px;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
line-height: 36px; }
|
||||
#orbitdiag .diag_holder .diag_holder_inner .diag_btn:hover {
|
||||
outline: solid 2px white; }
|
||||
@@ -418,12 +416,12 @@ a:focus {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 3; }
|
||||
z-index: 3;
|
||||
white-space: nowrap; }
|
||||
[data-sizex="1"] .appname, .w1.h1 .appname {
|
||||
text-align: center; }
|
||||
[data-sizey="2"] .appname {
|
||||
font-size: 21px;
|
||||
font-weight: normal; }
|
||||
font-size: 21px; }
|
||||
.hh2 .appname {
|
||||
position: relative;
|
||||
width: auto;
|
||||
@@ -475,8 +473,12 @@ a:focus {
|
||||
left: 0;
|
||||
top: 0; }
|
||||
|
||||
.gridster ul {
|
||||
margin: -6px 0 0 -6px; }
|
||||
|
||||
.widget.gs_w {
|
||||
cursor: move; }
|
||||
cursor: move;
|
||||
overflow: hidden; }
|
||||
|
||||
/* header drop menu */
|
||||
.sdm_mdr .sdm_o {
|
||||
@@ -507,7 +509,6 @@ a:focus {
|
||||
|
||||
.theme_preview {
|
||||
width: 528px;
|
||||
height: 150px;
|
||||
line-height: 36px;
|
||||
font-size: 15px; }
|
||||
|
||||
@@ -518,15 +519,24 @@ a:focus {
|
||||
margin-right: 12px; }
|
||||
.theme_plate > div:first-child {
|
||||
margin-right: 48px; }
|
||||
.theme_plate .g_sep {
|
||||
margin-right: 0; }
|
||||
|
||||
#color_input th {
|
||||
vertical-align: bottom; }
|
||||
|
||||
.stock_wallpaper .ssl_item {
|
||||
margin-bottom: 6px; }
|
||||
|
||||
.s_title {
|
||||
font-size: 21px;
|
||||
font-weight: normal;
|
||||
line-height: 60px;
|
||||
text-align: left; }
|
||||
.s_title.size_large {
|
||||
font-size: 36px; }
|
||||
.s_title.size_small {
|
||||
font-size: 15px;
|
||||
line-height: 2em; }
|
||||
|
||||
.s_subtitle {
|
||||
font-size: 15px;
|
||||
@@ -545,7 +555,6 @@ a:focus {
|
||||
display: block;
|
||||
float: right;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
border: 0; }
|
||||
@@ -560,8 +569,18 @@ a:focus {
|
||||
max-width: 340px; }
|
||||
|
||||
.g_sep {
|
||||
width: 11px;
|
||||
border-left: solid 1px white; }
|
||||
width: 12px;
|
||||
border-left: solid 1px white;
|
||||
-webkit-box-sizing: border-box;
|
||||
/* webkit */
|
||||
-khtml-box-sizing: border-box;
|
||||
/* konqueror */
|
||||
-moz-box-sizing: border-box;
|
||||
/* firefox */
|
||||
-ms-box-sizing: border-box;
|
||||
/* ie */
|
||||
box-sizing: border-box;
|
||||
/* css3 */ }
|
||||
|
||||
.grp {
|
||||
height: 528px;
|
||||
@@ -586,14 +605,12 @@ a:focus {
|
||||
|
||||
/* list item */
|
||||
.list_t_item {
|
||||
/*padding: 2px;*/
|
||||
overflow: hidden; }
|
||||
|
||||
.list_t_title {
|
||||
margin-bottom: 6px;
|
||||
color: #333;
|
||||
font-size: 15px;
|
||||
font-weight: normal; }
|
||||
font-size: 15px; }
|
||||
|
||||
.list_t_des {
|
||||
line-height: 1.5em;
|
||||
@@ -607,118 +624,74 @@ a:focus {
|
||||
font-size: 11px;
|
||||
-webkit-text-size-adjust: none; }
|
||||
|
||||
/* Connection Page */
|
||||
#connection_setting {
|
||||
height: 492px; }
|
||||
|
||||
#connection_setting .s_form {
|
||||
float: left;
|
||||
margin: 0 12px 0 0;
|
||||
padding-left: 24px;
|
||||
height: 100%;
|
||||
border-left: solid 1px #dddddd; }
|
||||
|
||||
#connection_setting .s_form:first-child {
|
||||
padding-left: 0;
|
||||
border: none; }
|
||||
|
||||
#connection_setting .s_form label {
|
||||
line-height: 30px; }
|
||||
|
||||
#connection_setting .s_form .c_icon, #connection_setting .s_form .c_name {
|
||||
display: inline-block;
|
||||
vertical-align: middle; }
|
||||
|
||||
#connection_setting .s_form .c_name {
|
||||
padding: 0 12px;
|
||||
font-size: 18px; }
|
||||
|
||||
#connection_setting .s_form input[type=text], #connection_setting .s_form input[type=password] {
|
||||
width: 202px; }
|
||||
|
||||
#connection_setting .setting_btn {
|
||||
margin-left: 12px; }
|
||||
|
||||
#connection_setting .setting_btn.disable {
|
||||
background-color: #ddd;
|
||||
cursor: default; }
|
||||
|
||||
#connection_setting .c_status {
|
||||
float: right;
|
||||
padding: 6px;
|
||||
background-color: #eee;
|
||||
color: #ccc;
|
||||
font-size: 9px;
|
||||
font-weight: normal;
|
||||
-webkit-text-size-adjust: none;
|
||||
-webkit-transition: background-color 0.5s ease;
|
||||
-moz-transition: background-color 0.5s ease;
|
||||
transition: background-color 0.5s ease; }
|
||||
|
||||
#connection_setting .c_status_on {
|
||||
background-color: #51A351;
|
||||
color: #fff; }
|
||||
|
||||
#connection_setting .c_info {
|
||||
padding: 7px 6px;
|
||||
background-color: #fcfcfc;
|
||||
cursor: default;
|
||||
font-size: 18px;
|
||||
font-weight: normal; }
|
||||
|
||||
/* Journal Papers */
|
||||
[page-name="journal_p_list"] .list_t_item .inner {
|
||||
padding-left: 30px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_item_action {
|
||||
font-size: 12px;
|
||||
float: left;
|
||||
margin-left: -30px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_item_action a {
|
||||
display: block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin: 1px 1px 6px 1px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_item_action .icon-star-empty {
|
||||
color: #999;
|
||||
font-size: 20px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_item_action .icon-star {
|
||||
color: #faa732;
|
||||
font-size: 20px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_item_action .icon-check-empty {
|
||||
color: #999;
|
||||
font-size: 20px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_item_action .icon-check {
|
||||
color: #333;
|
||||
font-size: 20px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_t_item.file_view {
|
||||
height: 148px; }
|
||||
|
||||
[page-name="journal_p_list"] .list_item_action a {
|
||||
display: block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin: 1px 1px 6px 1px; }
|
||||
[page-name="journal_p_list"] .list_item_action .icon-star-empty {
|
||||
color: #999;
|
||||
font-size: 20px; }
|
||||
[page-name="journal_p_list"] .list_item_action .icon-star {
|
||||
color: #faa732;
|
||||
font-size: 20px; }
|
||||
[page-name="journal_p_list"] .list_item_action .icon-check-empty {
|
||||
color: #999;
|
||||
font-size: 20px; }
|
||||
[page-name="journal_p_list"] .list_item_action .icon-check {
|
||||
color: #333;
|
||||
font-size: 20px; }
|
||||
[page-name="journal_p_list"] .file_view .list_t_des {
|
||||
overflow: hidden; }
|
||||
[page-name="journal_p_list"] .file_view .file {
|
||||
display: inline-block;
|
||||
width: 62px;
|
||||
float: left;
|
||||
width: 120px;
|
||||
height: 50px;
|
||||
text-align: center; }
|
||||
|
||||
[page-name="journal_p_list"] .file_view .file:hover {
|
||||
background-color: #ddd; }
|
||||
|
||||
[page-name="journal_p_list"] .file_view .file img {
|
||||
width: 24px;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
margin-top: 4px; }
|
||||
|
||||
[page-name="journal_p_list"] .file_view .filetitle {
|
||||
font-size: 11px;
|
||||
-webkit-text-size-adjust: none; }
|
||||
padding: 6px;
|
||||
margin: 1px;
|
||||
position: relative;
|
||||
-webkit-box-sizing: border-box;
|
||||
/* webkit */
|
||||
-khtml-box-sizing: border-box;
|
||||
/* konqueror */
|
||||
-moz-box-sizing: border-box;
|
||||
/* firefox */
|
||||
-ms-box-sizing: border-box;
|
||||
/* ie */
|
||||
box-sizing: border-box;
|
||||
/* css3 */ }
|
||||
[page-name="journal_p_list"] .file_view .file:hover {
|
||||
background-color: #f7f7f7; }
|
||||
[page-name="journal_p_list"] .file_view .file img {
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
position: absolute;
|
||||
left: 6px;
|
||||
top: 6px; }
|
||||
[page-name="journal_p_list"] .file_view .file .filetitle {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 38px;
|
||||
padding-left: 40px;
|
||||
overflow: hidden;
|
||||
-webkit-box-sizing: border-box;
|
||||
/* webkit */
|
||||
-khtml-box-sizing: border-box;
|
||||
/* konqueror */
|
||||
-moz-box-sizing: border-box;
|
||||
/* firefox */
|
||||
-ms-box-sizing: border-box;
|
||||
/* ie */
|
||||
box-sizing: border-box;
|
||||
/* css3 */ }
|
||||
|
||||
/* Journal Paper Add */
|
||||
#paper_add .s_grid_con {
|
||||
@@ -727,27 +700,22 @@ a:focus {
|
||||
margin-left: 12px;
|
||||
padding-left: 12px;
|
||||
border-left: solid 1px #eeeeee; }
|
||||
|
||||
#paper_add .s_grid_con:first-child {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
border: none; }
|
||||
|
||||
#paper_add .s_grid_con:first-child {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
border: none; }
|
||||
#paper_add .f_w {
|
||||
width: 336px; }
|
||||
|
||||
#paper_add label {
|
||||
margin-right: 0; }
|
||||
|
||||
/* Journal Journal list */
|
||||
[page-name="journal_p_journal"] .datalist_item .inner {
|
||||
padding-left: 30px; }
|
||||
|
||||
[page-name="journal_p_journal"] .list_item_action {
|
||||
font-size: 12px;
|
||||
float: left;
|
||||
margin-left: -30px; }
|
||||
|
||||
[page-name="journal_p_journal"] .list_item_action i {
|
||||
color: #999;
|
||||
font-size: 20px;
|
||||
@@ -756,7 +724,6 @@ a:focus {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin: 1px 1px 6px 1px; }
|
||||
|
||||
[page-name="journal_p_journal"] .list_t_desc {
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
@@ -765,21 +732,17 @@ a:focus {
|
||||
/* Journal Co-Author */
|
||||
[page-name="journal_p_coauthor"] .list_t_item {
|
||||
height: 110px; }
|
||||
|
||||
[page-name="journal_p_coauthor"] .list_item_function a {
|
||||
display: inline-block;
|
||||
padding: 4px;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 11px;
|
||||
-webkit-text-size-adjust: none; }
|
||||
|
||||
[page-name="journal_p_coauthor"] .info {
|
||||
font-family: Arial, sans-serif; }
|
||||
|
||||
[page-name="journal_p_coauthor"] .info li {
|
||||
margin-bottom: 8px;
|
||||
color: #999; }
|
||||
|
||||
[page-name="journal_p_coauthor"] .info .name {
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
@@ -788,7 +751,6 @@ a:focus {
|
||||
/* Journal Co-Author Relationship*/
|
||||
[page-name="journal_p_coauthor_relation"] .edit_co_author_relation {
|
||||
/*margin-left: -10px;*/ }
|
||||
|
||||
[page-name="journal_p_coauthor_relation"] .form_space {
|
||||
margin-bottom: 10px;
|
||||
font-size: 18px;
|
||||
@@ -809,18 +771,16 @@ a:focus {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 12; }
|
||||
|
||||
.app_frame .app_holder {
|
||||
background-color: #fff;
|
||||
position: absolute;
|
||||
width: 100%; }
|
||||
|
||||
.app_frame #header .icon-remove {
|
||||
display: block;
|
||||
float: right;
|
||||
line-height: 60px;
|
||||
font-size: 20px;
|
||||
cursor: pointer; }
|
||||
.app_frame .app_holder {
|
||||
background-color: #fff;
|
||||
position: absolute;
|
||||
width: 100%; }
|
||||
.app_frame #header .icon-remove {
|
||||
display: block;
|
||||
float: right;
|
||||
line-height: 60px;
|
||||
font-size: 20px;
|
||||
cursor: pointer; }
|
||||
|
||||
/*Tooltip popup */
|
||||
.desktop_toolpopup {
|
||||
|
||||
@@ -66,11 +66,15 @@ a:focus { outline: none; }
|
||||
display: table;
|
||||
width: 100%;
|
||||
content: '';
|
||||
clear: both;
|
||||
}
|
||||
.o-loading {
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
|
||||
.fullsize & {
|
||||
padding: 12px;
|
||||
}
|
||||
i {
|
||||
font-size: 20px;
|
||||
}
|
||||
@@ -227,7 +231,7 @@ a:focus { outline: none; }
|
||||
}
|
||||
.fn_des.admtxt {
|
||||
line-height: 60px;
|
||||
padding: 0 6px;
|
||||
padding: 0 12px;
|
||||
font-size: 15px;
|
||||
position: absolute;
|
||||
z-index: 9;
|
||||
@@ -273,10 +277,9 @@ a:focus { outline: none; }
|
||||
}
|
||||
li:first-child {
|
||||
font-size: 18px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
/* panel */
|
||||
#panel_l {
|
||||
background-color: #f0f0f0;
|
||||
@@ -317,7 +320,7 @@ a:focus { outline: none; }
|
||||
color: #333;
|
||||
margin: 10px 0 0 48px;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -357,7 +360,7 @@ a:focus { outline: none; }
|
||||
margin: 0 6px;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
line-height: 36px;
|
||||
|
||||
&:hover {
|
||||
@@ -382,6 +385,7 @@ a:focus { outline: none; }
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 3;
|
||||
white-space: nowrap;
|
||||
|
||||
[data-sizex="1"] &,
|
||||
.w1.h1 & {
|
||||
@@ -389,7 +393,7 @@ a:focus { outline: none; }
|
||||
}
|
||||
[data-sizey="2"] & {
|
||||
font-size: 21px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
}
|
||||
.hh2 & {
|
||||
position: relative;
|
||||
@@ -417,8 +421,6 @@ a:focus { outline: none; }
|
||||
margin-right: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.appholder {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
@@ -442,7 +444,7 @@ a:focus { outline: none; }
|
||||
margin: 0 12px 0 0;
|
||||
position: relative;
|
||||
z-index: 9;
|
||||
}
|
||||
}
|
||||
.tile {
|
||||
display: block;
|
||||
width: 100%;
|
||||
@@ -450,10 +452,19 @@ a:focus { outline: none; }
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
.gridster ul {
|
||||
margin: -6px 0 0 -6px;
|
||||
}
|
||||
.widget.gs_w {
|
||||
cursor: move;
|
||||
overflow: hidden;
|
||||
}
|
||||
// .app.gs_w:active {
|
||||
// -webkit-transform: scale(0.9);
|
||||
// -moz-transform: scale(0.9);
|
||||
// transform: scale(0.9);
|
||||
// }
|
||||
|
||||
/* header drop menu */
|
||||
.sdm_mdr .sdm_o { top: 36px; }
|
||||
@@ -484,7 +495,6 @@ a:focus { outline: none; }
|
||||
}
|
||||
.theme_preview {
|
||||
width: 528px;
|
||||
height: 150px;
|
||||
line-height: 36px;
|
||||
font-size: 15px;
|
||||
}
|
||||
@@ -498,6 +508,12 @@ a:focus { outline: none; }
|
||||
> div:first-child {
|
||||
margin-right: 48px;
|
||||
}
|
||||
.g_sep {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
#color_input th {
|
||||
vertical-align: bottom
|
||||
}
|
||||
.stock_wallpaper {
|
||||
.ssl_item {
|
||||
@@ -507,9 +523,17 @@ a:focus { outline: none; }
|
||||
|
||||
.s_title {
|
||||
font-size: 21px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
line-height: 60px;
|
||||
text-align: left;
|
||||
|
||||
&.size_large {
|
||||
font-size: 36px;
|
||||
}
|
||||
&.size_small {
|
||||
font-size: 15px;
|
||||
line-height: 2em;
|
||||
}
|
||||
}
|
||||
.s_subtitle {
|
||||
font-size: 15px;
|
||||
@@ -528,7 +552,7 @@ a:focus { outline: none; }
|
||||
display: block;
|
||||
float: right;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
border: 0;
|
||||
@@ -546,9 +570,9 @@ a:focus { outline: none; }
|
||||
max-width: 340px;
|
||||
}
|
||||
.g_sep {
|
||||
width: 11px;
|
||||
border-left:
|
||||
solid 1px #fff;
|
||||
width: 12px;
|
||||
border-left: solid 1px #fff;
|
||||
@include box-sizing;
|
||||
}
|
||||
|
||||
|
||||
@@ -572,12 +596,12 @@ a:focus { outline: none; }
|
||||
}
|
||||
|
||||
/* list item */
|
||||
.list_t_item { /*padding: 2px;*/ overflow: hidden; }
|
||||
.list_t_item { overflow: hidden; }
|
||||
.list_t_title {
|
||||
margin-bottom: 6px;
|
||||
color: #333;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
// font-weight: normal;
|
||||
}
|
||||
.list_t_des {
|
||||
line-height: 1.5em;
|
||||
@@ -592,155 +616,145 @@ a:focus { outline: none; }
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
/* Connection Page */
|
||||
#connection_setting { height: 492px; }
|
||||
#connection_setting .s_form {
|
||||
float: left;
|
||||
margin: 0 12px 0 0;
|
||||
padding-left: 24px;
|
||||
height: 100%;
|
||||
border-left: solid 1px #ddd;
|
||||
}
|
||||
#connection_setting .s_form:first-child { padding-left: 0; border: none; }
|
||||
#connection_setting .s_form label { line-height: 30px; }
|
||||
#connection_setting .s_form .c_icon, #connection_setting .s_form .c_name {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
#connection_setting .s_form .c_name { padding: 0 12px; font-size: 18px; }
|
||||
#connection_setting .s_form input[type=text], #connection_setting .s_form input[type=password] { width: 202px; }
|
||||
#connection_setting .setting_btn { margin-left: 12px; }
|
||||
#connection_setting .setting_btn.disable { background-color: #ddd; cursor: default; }
|
||||
#connection_setting .c_status {
|
||||
float: right;
|
||||
padding: 6px;
|
||||
background-color: #eee;
|
||||
color: #ccc;
|
||||
font-size: 9px;
|
||||
font-weight: normal;
|
||||
-webkit-text-size-adjust: none;
|
||||
@include transition-type("background-color",0.5);
|
||||
}
|
||||
#connection_setting .c_status_on { background-color: #51A351; color: #fff; }
|
||||
#connection_setting .c_info {
|
||||
padding: 7px 6px;
|
||||
background-color: #fcfcfc;
|
||||
cursor: default;
|
||||
font-size: 18px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* Journal Papers */
|
||||
[page-name="journal_p_list"] .list_t_item .inner { padding-left: 30px; }
|
||||
[page-name="journal_p_list"] .list_item_action {
|
||||
font-size: 12px;
|
||||
float: left;
|
||||
margin-left: -30px;
|
||||
}
|
||||
[page-name="journal_p_list"] .list_item_action a {
|
||||
display: block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin: 1px 1px 6px 1px;
|
||||
}
|
||||
[page-name="journal_p_list"] .list_item_action .icon-star-empty { color: #999; font-size: 20px; }
|
||||
[page-name="journal_p_list"] .list_item_action .icon-star { color: #faa732; font-size: 20px; }
|
||||
[page-name="journal_p_list"] .list_item_action .icon-check-empty { color: #999; font-size: 20px; }
|
||||
[page-name="journal_p_list"] .list_item_action .icon-check { color: #333; font-size: 20px; }
|
||||
[page-name="journal_p_list"] {
|
||||
.list_t_item .inner { padding-left: 30px; }
|
||||
.list_item_action {
|
||||
font-size: 12px;
|
||||
float: left;
|
||||
margin-left: -30px;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin: 1px 1px 6px 1px;
|
||||
}
|
||||
.icon-star-empty { color: #999; font-size: 20px; }
|
||||
.icon-star { color: #faa732; font-size: 20px; }
|
||||
.icon-check-empty { color: #999; font-size: 20px; }
|
||||
.icon-check { color: #333; font-size: 20px; }
|
||||
}
|
||||
|
||||
.file_view {
|
||||
.list_t_des {
|
||||
overflow: hidden;
|
||||
}
|
||||
.file {
|
||||
float: left;
|
||||
width: 120px;
|
||||
height: 50px;
|
||||
padding: 6px;
|
||||
margin: 1px;
|
||||
position: relative;
|
||||
@include box-sizing;
|
||||
|
||||
[page-name="journal_p_list"] .list_t_item.file_view {
|
||||
height: 148px;
|
||||
}
|
||||
[page-name="journal_p_list"] .file_view .file {
|
||||
display: inline-block;
|
||||
width: 62px;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
}
|
||||
[page-name="journal_p_list"] .file_view .file:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
[page-name="journal_p_list"] .file_view .file img {
|
||||
width: 24px;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
margin-top: 4px;
|
||||
}
|
||||
[page-name="journal_p_list"] .file_view .filetitle {
|
||||
font-size: 11px;
|
||||
-webkit-text-size-adjust: none;
|
||||
&:hover {
|
||||
background-color: lighten($gray, 10%);
|
||||
}
|
||||
img {
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
position: absolute;
|
||||
left: 6px;
|
||||
top: 6px;
|
||||
}
|
||||
.filetitle {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 38px;
|
||||
padding-left: 40px;
|
||||
overflow: hidden;
|
||||
@include box-sizing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Journal Paper Add */
|
||||
#paper_add .s_grid_con {
|
||||
float: left;
|
||||
height: 456px;
|
||||
margin-left: 12px;
|
||||
padding-left: 12px;
|
||||
border-left: solid 1px #eee;
|
||||
#paper_add {
|
||||
.s_grid_con {
|
||||
float: left;
|
||||
height: 456px;
|
||||
margin-left: 12px;
|
||||
padding-left: 12px;
|
||||
border-left: solid 1px #eee;
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
.f_w { width: 336px; }
|
||||
label { margin-right: 0; }
|
||||
}
|
||||
#paper_add .s_grid_con:first-child { margin-left: 0; padding-left: 0; border: none; }
|
||||
#paper_add .f_w { width: 336px; }
|
||||
#paper_add label { margin-right: 0; }
|
||||
|
||||
/* Journal Journal list */
|
||||
[page-name="journal_p_journal"] .datalist_item .inner {
|
||||
padding-left: 30px;
|
||||
}
|
||||
[page-name="journal_p_journal"] .list_item_action {
|
||||
font-size: 12px;
|
||||
float: left;
|
||||
margin-left: -30px;
|
||||
}
|
||||
[page-name="journal_p_journal"] .list_item_action i {
|
||||
color: #999;
|
||||
font-size: 20px;
|
||||
display: block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin: 1px 1px 6px 1px;
|
||||
}
|
||||
[page-name="journal_p_journal"] .list_t_desc {
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
[page-name="journal_p_journal"] {
|
||||
|
||||
.datalist_item .inner {
|
||||
padding-left: 30px;
|
||||
}
|
||||
.list_item_action {
|
||||
font-size: 12px;
|
||||
float: left;
|
||||
margin-left: -30px;
|
||||
}
|
||||
.list_item_action i {
|
||||
color: #999;
|
||||
font-size: 20px;
|
||||
display: block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin: 1px 1px 6px 1px;
|
||||
}
|
||||
.list_t_desc {
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
/* Journal Co-Author */
|
||||
[page-name="journal_p_coauthor"] {}
|
||||
[page-name="journal_p_coauthor"] .list_t_item {
|
||||
height: 110px;
|
||||
}
|
||||
[page-name="journal_p_coauthor"] .list_item_function {}
|
||||
[page-name="journal_p_coauthor"] .list_item_function a {
|
||||
display: inline-block;
|
||||
padding: 4px;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 11px;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
[page-name="journal_p_coauthor"] .info {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
[page-name="journal_p_coauthor"] .info li {
|
||||
margin-bottom: 8px;
|
||||
color: #999;
|
||||
}
|
||||
[page-name="journal_p_coauthor"] .info .name {
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
color: #333;
|
||||
[page-name="journal_p_coauthor"] {
|
||||
.list_t_item {
|
||||
height: 110px;
|
||||
}
|
||||
.list_item_function {}
|
||||
.list_item_function a {
|
||||
display: inline-block;
|
||||
padding: 4px;
|
||||
font-family: Arial, sans-serif;
|
||||
font-size: 11px;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
.info {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
.info li {
|
||||
margin-bottom: 8px;
|
||||
color: #999;
|
||||
}
|
||||
.info .name {
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
|
||||
/* Journal Co-Author Relationship*/
|
||||
[page-name="journal_p_coauthor_relation"] .edit_co_author_relation {
|
||||
/*margin-left: -10px;*/
|
||||
}
|
||||
[page-name="journal_p_coauthor_relation"] .form_space {
|
||||
margin-bottom: 10px;
|
||||
font-size: 18px;
|
||||
font-family: Arial, sans-serif;
|
||||
[page-name="journal_p_coauthor_relation"]{
|
||||
.edit_co_author_relation {
|
||||
/*margin-left: -10px;*/
|
||||
}
|
||||
.form_space {
|
||||
margin-bottom: 10px;
|
||||
font-size: 18px;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
}
|
||||
/* Journal New Co-Author */
|
||||
#new_co_author label {
|
||||
@@ -759,18 +773,19 @@ a:focus { outline: none; }
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 12;
|
||||
}
|
||||
.app_frame .app_holder {
|
||||
background-color: #fff;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
.app_frame #header .icon-remove {
|
||||
display: block;
|
||||
float: right;
|
||||
line-height: 60px;
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
|
||||
.app_holder {
|
||||
background-color: #fff;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
#header .icon-remove {
|
||||
display: block;
|
||||
float: right;
|
||||
line-height: 60px;
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
/*Tooltip popup */
|
||||
|
||||
+27
-30
@@ -65,7 +65,7 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
font-size: 1px;
|
||||
text-decoration: none;
|
||||
border: 0;
|
||||
background: url(<%= asset_path "desktop/select2/select2.png" %>) right top no-repeat;
|
||||
background: url("select2/select2.png") right top no-repeat;
|
||||
cursor: pointer;
|
||||
outline: 0; }
|
||||
|
||||
@@ -86,24 +86,21 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
position: absolute;
|
||||
z-index: 9999;
|
||||
top: 100%;
|
||||
background: #fff;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
border: 1px solid #dddddd;
|
||||
border-top: 0; }
|
||||
border: 2px solid #dddddd; }
|
||||
|
||||
.select2-drop.select2-drop-above {
|
||||
margin-top: 1px;
|
||||
border-top: 1px solid #dddddd;
|
||||
border-bottom: 0; }
|
||||
margin-top: 1px; }
|
||||
|
||||
.select2-container .select2-choice div {
|
||||
display: block;
|
||||
width: 20px;
|
||||
width: 21px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
background: #ccc;
|
||||
border-left: solid 1px #dddddd;
|
||||
-webkit-box-sizing: border-box;
|
||||
/* webkit */
|
||||
-khtml-box-sizing: border-box;
|
||||
@@ -119,7 +116,7 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url(<%= asset_path "desktop/select2/select2.png" %>) no-repeat 0 1px; }
|
||||
background: url("select2/select2.png") no-repeat 0 50%; }
|
||||
|
||||
.select2-search {
|
||||
display: inline-block;
|
||||
@@ -152,29 +149,25 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
margin-top: 4px; }
|
||||
|
||||
.select2-search input.select2-active {
|
||||
background: white image-url(<%= asset_path "desktop/select2/select2-spinner.gif" %>) no-repeat 100%; }
|
||||
background: white image-url("select2-spinner.gif") no-repeat 100%; }
|
||||
|
||||
.select2-container-active .select2-choice,
|
||||
.select2-container-active .select2-choices {
|
||||
outline: none; }
|
||||
|
||||
.select2-dropdown-open .select2-choice {
|
||||
border-bottom-color: transparent;
|
||||
background-color: #eee; }
|
||||
border-bottom-color: transparent; }
|
||||
|
||||
.select2-dropdown-open .select2-choice div {
|
||||
background: transparent;
|
||||
border-left: none;
|
||||
background-color: #dddddd;
|
||||
filter: none; }
|
||||
|
||||
.select2-dropdown-open .select2-choice div b {
|
||||
background-position: -18px 1px; }
|
||||
background-position: -20px 50%; }
|
||||
|
||||
/* results */
|
||||
.select2-results {
|
||||
max-height: 200px;
|
||||
padding: 0 0 0 4px;
|
||||
margin: 4px 4px 4px 0;
|
||||
font-size: 13px;
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
@@ -208,13 +201,16 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
.select2-results li {
|
||||
list-style: none;
|
||||
display: list-item;
|
||||
background-image: none; }
|
||||
background-image: none;
|
||||
border-top: solid 1px #f7f7f7; }
|
||||
.select2-results li :first-child {
|
||||
border-top: 0; }
|
||||
|
||||
.select2-results li.select2-result-with-children > .select2-result-label {
|
||||
font-weight: bold; }
|
||||
|
||||
.select2-results .select2-result-label {
|
||||
padding: 4px 6px;
|
||||
padding: 6px;
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
-webkit-touch-callout: none;
|
||||
@@ -265,7 +261,7 @@ disabled look for disabled choices in the results dropdown
|
||||
display: none; }
|
||||
|
||||
.select2-more-results.select2-active {
|
||||
background: #f4f4f4 image-url(<%= asset_path "desktop/select2/select2-spinner.gif" %>) no-repeat 100%; }
|
||||
background: #f4f4f4 image-url("select2-spinner.gif") no-repeat 100%; }
|
||||
|
||||
.select2-more-results {
|
||||
background: #f4f4f4;
|
||||
@@ -327,7 +323,7 @@ disabled look for disabled choices in the results dropdown
|
||||
background: transparent !important; }
|
||||
|
||||
.select2-container-multi .select2-choices .select2-search-field input.select2-active {
|
||||
background: white image-url(<%= asset_path "desktop/select2/select2-spinner.gif" %>) no-repeat 100% !important; }
|
||||
background: white image-url("select2-spinner.gif") no-repeat 100% !important; }
|
||||
|
||||
.select2-default {
|
||||
color: #999999 !important; }
|
||||
@@ -356,23 +352,23 @@ disabled look for disabled choices in the results dropdown
|
||||
|
||||
.select2-search-choice-close {
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 13px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 4px;
|
||||
top: 5px;
|
||||
font-size: 1px;
|
||||
outline: none;
|
||||
background: url(<%= asset_path "desktop/select2/select2.png" %>) right top no-repeat; }
|
||||
background: url("select2/select2.png") right top no-repeat; }
|
||||
|
||||
.select2-container-multi .select2-search-choice-close {
|
||||
left: 3px; }
|
||||
|
||||
.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
|
||||
background-position: right -11px; }
|
||||
background-position: right -20px; }
|
||||
|
||||
.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
|
||||
background-position: right -11px; }
|
||||
background-position: right -20px; }
|
||||
|
||||
/* disabled styles */
|
||||
.select2-container-multi.select2-container-disabled .select2-choices {
|
||||
@@ -397,12 +393,13 @@ disabled look for disabled choices in the results dropdown
|
||||
|
||||
.select2-offscreen {
|
||||
position: absolute;
|
||||
left: -10000px; }
|
||||
left: -10000px;
|
||||
top: 0; }
|
||||
|
||||
/* Retina-ize icons */
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
|
||||
.select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice div b {
|
||||
background-image: url(<%= asset_path "desktop/select2/select2x2.png" %>) !important;
|
||||
background-image: url("select2/select2x2.png") !important;
|
||||
background-repeat: no-repeat !important;
|
||||
background-size: 60px 40px !important; }
|
||||
|
||||
@@ -86,27 +86,26 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
position: absolute;
|
||||
z-index: 9999;
|
||||
top: 100%;
|
||||
|
||||
background: #fff;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
border: 1px solid $gray;
|
||||
border-top: 0;
|
||||
border: 2px solid $gray;
|
||||
// border-top: 0;
|
||||
}
|
||||
|
||||
.select2-drop.select2-drop-above {
|
||||
margin-top: 1px;
|
||||
border-top: 1px solid $gray;
|
||||
border-bottom: 0;
|
||||
// border-top: 1px solid $gray;
|
||||
// border-bottom: 0;
|
||||
}
|
||||
|
||||
.select2-container .select2-choice div {
|
||||
display: block;
|
||||
width: 20px;
|
||||
width: 21px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
background: #ccc;
|
||||
border-left: solid 1px $gray;
|
||||
@include box-sizing;
|
||||
}
|
||||
|
||||
@@ -114,7 +113,7 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('select2/select2.png') no-repeat 0 1px;
|
||||
background: url('select2/select2.png') no-repeat 0 50%;
|
||||
}
|
||||
|
||||
.select2-search {
|
||||
@@ -167,23 +166,22 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
|
||||
.select2-dropdown-open .select2-choice {
|
||||
border-bottom-color: transparent;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.select2-dropdown-open .select2-choice div {
|
||||
background: transparent;
|
||||
border-left: none;
|
||||
background-color: $gray;
|
||||
// border-left: none;
|
||||
filter: none;
|
||||
}
|
||||
.select2-dropdown-open .select2-choice div b {
|
||||
background-position: -18px 1px;
|
||||
background-position: -20px 50%;
|
||||
}
|
||||
|
||||
/* results */
|
||||
.select2-results {
|
||||
max-height: 200px;
|
||||
padding: 0 0 0 4px;
|
||||
margin: 4px 4px 4px 0;
|
||||
// padding: 0 0 0 4px;
|
||||
// margin: 4px 4px 4px 0;
|
||||
font-size: 13px;
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
@@ -207,6 +205,11 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
list-style: none;
|
||||
display: list-item;
|
||||
background-image: none;
|
||||
border-top: solid 1px lighten($gray, 10%);
|
||||
|
||||
:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.select2-results li.select2-result-with-children > .select2-result-label {
|
||||
@@ -214,7 +217,7 @@ Version: 3.3.1 Timestamp: Wed Feb 20 09:57:22 PST 2013
|
||||
}
|
||||
|
||||
.select2-results .select2-result-label {
|
||||
padding: 4px 6px;
|
||||
padding: 6px;
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
|
||||
@@ -377,11 +380,11 @@ disabled look for disabled choices in the results dropdown
|
||||
|
||||
.select2-search-choice-close {
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 13px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 4px;
|
||||
top: 5px;
|
||||
font-size: 1px;
|
||||
outline: none;
|
||||
background: url('select2/select2.png') right top no-repeat;
|
||||
@@ -392,10 +395,10 @@ disabled look for disabled choices in the results dropdown
|
||||
}
|
||||
|
||||
.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
|
||||
background-position: right -11px;
|
||||
background-position: right -20px;
|
||||
}
|
||||
.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
|
||||
background-position: right -11px;
|
||||
background-position: right -20px;
|
||||
}
|
||||
|
||||
/* disabled styles */
|
||||
@@ -427,6 +430,7 @@ disabled look for disabled choices in the results dropdown
|
||||
.select2-offscreen {
|
||||
position: absolute;
|
||||
left: -10000px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* Retina-ize icons */
|
||||
|
||||
@@ -5,8 +5,9 @@ class Admin::DashboardsController < OrbitBackendController
|
||||
# before_filter :is_admin?
|
||||
|
||||
def index
|
||||
@module_app_contents, @module_app_contents_total = get_module_app_count('bulletin', 'page_context', 'web_link')
|
||||
@recent_updated = get_recently_updated('bulletin', 'page_context', 'web_link')
|
||||
check_backend_openness
|
||||
@module_app_contents, @module_app_contents_total = get_module_app_count('bulletin', 'page_context', 'web_link')
|
||||
@recent_updated = get_recently_updated('bulletin', 'page_context', 'web_link')
|
||||
@most_visited = get_most_visited('bulletin', 'page_context')
|
||||
end
|
||||
|
||||
|
||||
@@ -148,7 +148,22 @@ include Admin::FrontendWidgetInterface
|
||||
else
|
||||
flash.now[:error] = t('create.error.page')
|
||||
@designs = Design.all.entries
|
||||
@design = Design.first
|
||||
@design = Design.find(params[:page][:design]) || Design.first
|
||||
@themes = @design.themes
|
||||
@module_apps = ModuleApp.for_frontend_select
|
||||
@selected={
|
||||
:design => params[:page][:design],
|
||||
:theme=> (Theme.find(params[:page][:theme_id]) rescue nil),
|
||||
:module_app=> (ModuleApp.find(params[:page][:module_app_id]) rescue nil) ,#@module_apps.first
|
||||
:app_frontend_url=> params[:page][:app_frontend_url], #@module_apps.first
|
||||
:category=>params[:page][:category],
|
||||
:tag=>params[:page][:tag],
|
||||
:page_frontend_data_count=>params[:page][:page_frontend_data_count],
|
||||
:frontend_style => params[:page][:frontend_style]
|
||||
}
|
||||
@app_frontend_urls = @item.module_app ? select_array_for_app_frontend_urls(@item.module_app.app_pages) : nil
|
||||
get_categories_and_tags
|
||||
get_frontend_data_count
|
||||
render :action => "new"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
class Admin::RoleCategorysController < Admin::RoleFiltersController
|
||||
|
||||
def initialize
|
||||
super
|
||||
@app_type = 'role_category'
|
||||
@app_type_name = 'category'
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,144 @@
|
||||
class Admin::RoleFiltersController < OrbitBackendController
|
||||
|
||||
include OrbitControllerLib::DivisionForDisable
|
||||
|
||||
layout "new_admin"
|
||||
|
||||
before_filter :authenticate_user!
|
||||
before_filter :is_admin?
|
||||
# before_filter :set_attribute, :only => [:index, :show, :new, :edit]
|
||||
helper Admin::AttributeValuesViewHelper
|
||||
|
||||
def index
|
||||
get_types
|
||||
@role = Role.find(params[:role_id])
|
||||
@role_filters = @types.where(:role_id=>params[:role_id])
|
||||
@role_filter = @types.new(:display => 'List')
|
||||
|
||||
# @url = admin_role_filter_role_filters_path
|
||||
|
||||
if @app_type == 'role_statuses'
|
||||
@url = eval("admin_#{@app_type}_path")
|
||||
else
|
||||
@url = eval("admin_#{@app_type}s_path")
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.js
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def show
|
||||
|
||||
get_types
|
||||
|
||||
@role_filter = @types.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
format.html # show.html.erb
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def new
|
||||
|
||||
get_types
|
||||
|
||||
@role_filter = @types.new(:display => 'List')
|
||||
|
||||
@verb = :post
|
||||
|
||||
respond_to do |format|
|
||||
format.html # new.html.erb
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def edit
|
||||
|
||||
get_types
|
||||
|
||||
@role_filter = @types.find(params[:id])
|
||||
|
||||
@url = polymorphic_path([:admin, @role_filter])
|
||||
|
||||
@verb = :put
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def create
|
||||
|
||||
get_types
|
||||
|
||||
@role_filter = @types.new(params[:role_filter])
|
||||
|
||||
respond_to do |format|
|
||||
if @role_filter.save
|
||||
format.html { redirect_to(admin_role_filter_url(params[:role_filter][:role_id])) }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def update
|
||||
|
||||
get_types
|
||||
|
||||
@role_filter = @types.find(params[:id])
|
||||
# debugger
|
||||
# @url = admin_role_filter_role_filter_path(@role_filter)
|
||||
# @url = eval("admin_role_filter_#{@app_type}_path(#{@role_filter})")
|
||||
@url = polymorphic_path([:admin, @role_filter])
|
||||
|
||||
respond_to do |format|
|
||||
if @role_filter.update_attributes(params[:role_filter])
|
||||
format.html { redirect_to(admin_role_filter_role_filters_url(params[:role_id]), :notice => t('role_filter.update_role_filter_success')) }
|
||||
# format.xml { head :ok }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "edit" }
|
||||
format.js { render :action => "edit" }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def destroy
|
||||
|
||||
get_types
|
||||
|
||||
@role_filter = @types.find(params[:id])
|
||||
@role_filter.disable = @role_filter.disable ? false : true
|
||||
|
||||
if @role_filter.save!
|
||||
respond_to do |format|
|
||||
format.html { redirect_to(admin_role_filter_role_filters_url) }
|
||||
# format.xml { head :ok }
|
||||
format.js
|
||||
end
|
||||
else
|
||||
flash[:error] = t("role_filter.update_failed")
|
||||
format.html { render :action => "index" }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def get_types
|
||||
@types = @app_type.classify.constantize
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
class Admin::RoleStatusesController < Admin::RoleFiltersController
|
||||
|
||||
def initialize
|
||||
super
|
||||
@app_type = 'role_statuses'
|
||||
@app_type_name = 'status'
|
||||
end
|
||||
|
||||
end
|
||||
@@ -17,35 +17,34 @@ class Admin::RolesController < OrbitBackendController
|
||||
|
||||
def role_field
|
||||
|
||||
@field_name = 'role'
|
||||
@field_name = 'role'
|
||||
|
||||
@attribute = Role.find(params[:role_id])
|
||||
@attribute = Role.find(params[:role_id])
|
||||
|
||||
end
|
||||
|
||||
def sub_role
|
||||
|
||||
@attribute = Role.find(params[:role_id])
|
||||
@attribute_fields_upper_object = @attribute.sub_roles
|
||||
|
||||
@attribute = Role.find(params[:role_id])
|
||||
@attribute_fields_upper_object = @attribute.sub_roles
|
||||
|
||||
end
|
||||
|
||||
def add_sub_role
|
||||
|
||||
@attribute = Role.find(params[:role_id])
|
||||
# @sub_attribute = Role.find(params[:role_id])
|
||||
@attribute = Role.find(params[:role_id])
|
||||
# @sub_attribute = Role.find(params[:role_id])
|
||||
|
||||
@sub_attribute = SubRole.new
|
||||
@sub_attribute = SubRole.new
|
||||
@sub_attribute.role_id = params[:role_id]
|
||||
|
||||
end
|
||||
|
||||
def edit_sub_role
|
||||
|
||||
@sub_attribute = SubRole.find(params[:role_id])
|
||||
@sub_attribute = SubRole.find(params[:role_id])
|
||||
|
||||
@attribute = Role.find(@sub_attribute.role_id)
|
||||
@attribute = Role.find(@sub_attribute.role_id)
|
||||
|
||||
@sub_attribute.role_id = @sub_attribute.role_id
|
||||
|
||||
@@ -55,53 +54,52 @@ class Admin::RolesController < OrbitBackendController
|
||||
|
||||
@field_name = 'sub_role'
|
||||
|
||||
@sub_attribute = SubRole.find(params[:role_id])
|
||||
@sub_attribute = SubRole.find(params[:role_id])
|
||||
|
||||
@attribute = Role.find(@sub_attribute.role_id)
|
||||
@attribute = Role.find(@sub_attribute.role_id)
|
||||
|
||||
end
|
||||
|
||||
def add_attribute_field
|
||||
|
||||
if params[:sub_role]
|
||||
if params[:sub_role]
|
||||
|
||||
@field_name = 'sub_role'
|
||||
@field_name = 'sub_role'
|
||||
|
||||
attribute = SubRole.find(params[:sub_role][:id]) rescue nil
|
||||
@attribute_field_counter = attribute.attribute_fields.count
|
||||
@attribute_field = attribute.attribute_fields.build
|
||||
@attribute_field.save
|
||||
attribute = SubRole.find(params[:sub_role][:id]) rescue nil
|
||||
@attribute_field_counter = attribute.attribute_fields.count
|
||||
@attribute_field = attribute.attribute_fields.build
|
||||
@attribute_field.save
|
||||
|
||||
@attribute_field[:af_count] = @attribute_field_counter
|
||||
@attribute_field[:af_count] = @attribute_field_counter
|
||||
|
||||
@attribute = SubRole.find(params[:sub_role][:id])
|
||||
@attribute = SubRole.find(params[:sub_role][:id])
|
||||
|
||||
else
|
||||
else
|
||||
|
||||
@field_name = 'role'
|
||||
@field_name = 'role'
|
||||
|
||||
attribute = Role.find(params[:role_id]) rescue nil
|
||||
@attribute_field_counter = attribute.attribute_fields.count
|
||||
@attribute_field = attribute.attribute_fields.build
|
||||
@attribute_field.save
|
||||
attribute = Role.find(params[:role_id]) rescue nil
|
||||
@attribute_field_counter = attribute.attribute_fields.count
|
||||
@attribute_field = attribute.attribute_fields.build
|
||||
@attribute_field.save
|
||||
|
||||
@attribute_field[:af_count] = @attribute_field_counter
|
||||
@attribute_field[:af_count] = @attribute_field_counter
|
||||
|
||||
@attribute = Role.find(params[:role_id])
|
||||
@attribute = Role.find(params[:role_id])
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
respond_to do |format|
|
||||
format.js { render 'add_attribute_field' }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def new
|
||||
@attribute = Role.new
|
||||
|
||||
if !params[:parent_id]
|
||||
if !params[:parent_id]
|
||||
render :template => 'admin/attributes/new'
|
||||
end
|
||||
|
||||
@@ -165,17 +163,17 @@ class Admin::RolesController < OrbitBackendController
|
||||
|
||||
def destroy
|
||||
|
||||
if params[:sub_role]
|
||||
if params[:sub_role]
|
||||
|
||||
@sub_role = SubRole.find(params[:sub_role][:id])
|
||||
@sub_role = SubRole.find(params[:sub_role][:id])
|
||||
|
||||
respond_to do |format|
|
||||
if @sub_role.destroy
|
||||
format.html { redirect_to(admin_role_sub_role_url(@sub_role.role_id)) }
|
||||
format.html { redirect_to(admin_role_sub_role_url(@sub_role.role_id)) }
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
else
|
||||
|
||||
@attribute = Role.find(params[:id])
|
||||
@attribute.destroy
|
||||
|
||||
@@ -14,8 +14,16 @@ class Admin::SitesController < OrbitBackendController
|
||||
# @site = Site.new
|
||||
# end
|
||||
|
||||
def show_system_preference
|
||||
@git_commit_list_file = File.new(OrbitSystemPreference::GitCommitListPath, "r") rescue nil
|
||||
@db_backup_list_file = File.new(OrbitSystemPreference::ArchiveDbListPath, "r") rescue nil
|
||||
@resque_logs_file = File.new(OrbitSystemPreference::ResqueLogFile, "r") rescue nil
|
||||
@site = Site.first
|
||||
end
|
||||
|
||||
def update
|
||||
@site.update_attributes(params[:site])
|
||||
site_restart
|
||||
redirect_to :back
|
||||
end
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class Admin::UsersNewInterfaceController < OrbitBackendController
|
||||
|
||||
helper MemberHelper
|
||||
|
||||
layout "new_admin"
|
||||
# before_filter :authenticate_user!
|
||||
@@ -23,13 +25,13 @@ class Admin::UsersNewInterfaceController < OrbitBackendController
|
||||
|
||||
render case params[:at]
|
||||
when 'summary'
|
||||
@users=User.not_guest_user.page(page_num).per(12).includes('avatar')
|
||||
@users=User.not_guest_user.page(page_num).per(12).asc("_id").includes('avatar')
|
||||
"index_summary"
|
||||
when 'thumbnail'
|
||||
@users=User.not_guest_user.page(page_num).per(36).includes('avatar')
|
||||
@users=User.not_guest_user.page(page_num).per(36).asc("_id").includes('avatar')
|
||||
"index_thumbnail"
|
||||
else
|
||||
@users=User.not_guest_user.page(page_num).per(10).includes('avatar')
|
||||
@users=User.not_guest_user.page(page_num).per(10).asc("_id").includes('avatar')
|
||||
"index"
|
||||
end
|
||||
end
|
||||
@@ -43,7 +45,7 @@ class Admin::UsersNewInterfaceController < OrbitBackendController
|
||||
@student_data = []
|
||||
@staff_data = []
|
||||
|
||||
attribute_values = @user.attribute_values
|
||||
attribute_values = @user.attribute_values.asc("_id")
|
||||
attribute_values.each{|att_val|
|
||||
@profile_data.push({:name => att_val.attribute_field.title,:value =>att_val.get_value_by_locale(I18n.locale.to_s)}) if att_val.attribute_field.attribute.key=="profile" rescue false
|
||||
}
|
||||
@@ -80,21 +82,29 @@ class Admin::UsersNewInterfaceController < OrbitBackendController
|
||||
end
|
||||
|
||||
def create
|
||||
puts params.to_yaml
|
||||
# puts params.to_yaml
|
||||
# attribute_values_key = params[:user].has_key?('new_attribute_values') ? 'new_attribute_values' : 'attribute_values'
|
||||
# attribute_values = params[:user].delete(attribute_values_key)
|
||||
@user = User.new(params["user"])
|
||||
|
||||
@checkuser = User.where(:user_id => params[:user][:user_id]).first
|
||||
|
||||
if !@checkuser.blank?
|
||||
flash.now[:error] = t("users.user_id_error")
|
||||
end
|
||||
|
||||
# attribute_values.to_hash.each{|key,value|
|
||||
# @user.attribute_values.build(value)
|
||||
# }
|
||||
# @user.rebuild_sub_roles_from_attribute_values!(attribute_values)
|
||||
# binding.pry
|
||||
if @user.save
|
||||
if !flash.now[:error] && @user.save
|
||||
flash[:notice] = t('create.success.user')
|
||||
redirect_to :action => :index
|
||||
else
|
||||
@user.attribute_values = nil
|
||||
@form_index = 0
|
||||
render :action => :new
|
||||
render :action => :new , :notice => flash.now[:error]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -110,16 +120,46 @@ class Admin::UsersNewInterfaceController < OrbitBackendController
|
||||
@form_index = 0
|
||||
get_info_and_roles
|
||||
end
|
||||
|
||||
def edit_passwd
|
||||
# @disable_all_field = false
|
||||
@user = User.find(params[:users_new_interface_id])
|
||||
end
|
||||
|
||||
def update
|
||||
|
||||
@user = User.find(params[:id])
|
||||
|
||||
if params[:edit_type] == 'edit_passwd'
|
||||
|
||||
@checkuser = User.where(:user_id => params[:user][:user_id]).first
|
||||
|
||||
if !@checkuser.blank? && @checkuser.id != @user.id
|
||||
flash.now[:error] = t("users.user_id_error")
|
||||
elsif @user.admin && current_user.id == @user.id
|
||||
flash.now[:error] = t("users.admin_change_password")
|
||||
end
|
||||
|
||||
if !flash.now[:error] && @user.update_attributes(params[:user])
|
||||
redirect_to :action => :show
|
||||
else
|
||||
render :action => :edit_passwd, :notice => flash.now[:error]
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
@user.update_attributes(params[:user])
|
||||
|
||||
attribute_values_key = params[:user].has_key?('new_attribute_values') ? 'new_attribute_values' : 'attribute_values'
|
||||
attribute_values = params[:user].delete(attribute_values_key)
|
||||
# @user.rebuild_sub_roles_from_attribute_values!(attribute_values)
|
||||
@user.save
|
||||
|
||||
redirect_to :action => :show
|
||||
|
||||
end
|
||||
|
||||
|
||||
@user.update_attributes(params[:user])
|
||||
attribute_values_key = params[:user].has_key?('new_attribute_values') ? 'new_attribute_values' : 'attribute_values'
|
||||
attribute_values = params[:user].delete(attribute_values_key)
|
||||
# @user.rebuild_sub_roles_from_attribute_values!(attribute_values)
|
||||
@user.save
|
||||
redirect_to :action => :show
|
||||
# # Update changes to the avatar
|
||||
# @user.remove_avatar! if params[:file]
|
||||
# @user.avatar = params[:file] if params[:file]
|
||||
|
||||
@@ -17,7 +17,15 @@ class ApplicationController < ActionController::Base
|
||||
|
||||
helper_attr :site_valid_locales
|
||||
|
||||
def check_backend_openness
|
||||
if !Me.backend_openness_on
|
||||
redirect_to '/users/sign_in' if not (authenticate_user! and is_member? )
|
||||
end
|
||||
end
|
||||
|
||||
def site_restart
|
||||
Resque.enqueue(RestartServer)
|
||||
end
|
||||
|
||||
def set_current_user
|
||||
User.current = current_or_guest_user
|
||||
@@ -101,10 +109,10 @@ class ApplicationController < ActionController::Base
|
||||
end
|
||||
|
||||
# Render the page
|
||||
def render_page
|
||||
def render_page(args=nil)
|
||||
if @item
|
||||
respond_to do |format|
|
||||
format.html { render :text => parse_page_content(@item), :layout => 'page_layout' }
|
||||
format.html { render :text => parse_page_content(@item,args), :layout => 'page_layout' }
|
||||
format.rss { render_main_rss }
|
||||
format.mobile { redirect_to mobile_path(:app => params[:app]) }
|
||||
end
|
||||
|
||||
@@ -36,12 +36,13 @@ class DefaultWidgetController< OrbitWidgetController
|
||||
result = eval("#{ori_class_name}.where(:#{get_category_field_name(ori_class_name)}.in=>params['category_id'])")
|
||||
end
|
||||
date_now = Time.now
|
||||
result.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, :postdate)
|
||||
result.available_for_lang(I18n.locale).can_display.desc(:is_top, :postdate)
|
||||
end
|
||||
|
||||
def default_widget
|
||||
if !params[:id].blank?
|
||||
redirect_to eval("#{@page_part.module_app.widget_fields_link_method[:title][:method]}('#{params[:id]}', {inner: #{params[:inner] || true}})")
|
||||
clicked_field_name = params["clicked_field_name"].to_sym
|
||||
redirect_to eval("#{@page_part.module_app.widget_fields_link_method[clicked_field_name][:method]}('#{params[:id]}', {inner: #{params[:inner] || true}})")
|
||||
else
|
||||
@tag_class = nil
|
||||
@default_widget = @page_part.module_app.get_default_widget
|
||||
|
||||
@@ -15,6 +15,7 @@ class OrbitBackendController < ApplicationController
|
||||
private
|
||||
|
||||
def force_order_for_visitor
|
||||
check_backend_openness
|
||||
setup_vars
|
||||
set_current_user
|
||||
end
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
class PagesController < ApplicationController
|
||||
include ApplicationHelper
|
||||
before_filter :get_item, :only => [:index_from_link, :show_from_link]
|
||||
before_filter :check_frontend_open, :only => [:index,:show]
|
||||
# caches_page :index
|
||||
|
||||
def check_frontend_open
|
||||
if Me.frontend_closed
|
||||
redirect_to '/admin/dashboards'
|
||||
end
|
||||
end
|
||||
|
||||
def index
|
||||
@item = Page.find_by_name('home')
|
||||
|
||||
@@ -14,14 +21,18 @@ class PagesController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
def show
|
||||
#begin
|
||||
@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))
|
||||
impressionist(@item)
|
||||
case @item.class.to_s
|
||||
when 'Page'
|
||||
render_page unless save_from_no_lang_for_page
|
||||
if params[:clicked_field_name]
|
||||
render_page({"clicked_field_name"=>params["clicked_field_name"]}) unless save_from_no_lang_for_page
|
||||
else
|
||||
render_page unless save_from_no_lang_for_page
|
||||
end
|
||||
when 'Link'
|
||||
redirect_to(@item[:url]) unless save_from_no_lang_for_page
|
||||
end
|
||||
@@ -54,6 +65,7 @@ class PagesController < ApplicationController
|
||||
options << "#{options.blank? ? '?' : '&'}tag_id=#{params[:tag_id]}" unless params[:tag_id].blank?
|
||||
options << "#{options.blank? ? '?' : '&'}preview=#{params[:preview]}" unless params[:preview].blank?
|
||||
options << "#{options.blank? ? '?' : '&'}controller_action=#{params[:controller_action]}" unless params[:controller_action].blank?
|
||||
options << "#{options.blank? ? '?' : '&'}clicked_field_name=#{params[:clicked_field_name]}" unless params[:clicked_field_name].blank?
|
||||
redirect_to(url + options) unless save_from_no_lang_for_page
|
||||
end
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@ module DefaultWidgetHelper
|
||||
def link_to_field(row_data,field, switch, options=nil)
|
||||
method_ary = @page_part.module_app.widget_fields_link_method
|
||||
field = field.to_sym
|
||||
if(method_ary.has_key?(field) and (switch == true))
|
||||
options = options || {}
|
||||
options[:clicked_field_name] = field
|
||||
if(method_ary.has_key?(field) and (switch.to_s == "true"))
|
||||
url = case method_ary[field][:args]
|
||||
when nil # no args
|
||||
get_data_link(method_ary[field][:method], options)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
module MemberHelper
|
||||
def nl2br(val)
|
||||
val.gsub(/\r\n/, '<br />').html_safe
|
||||
end
|
||||
end
|
||||
@@ -5,9 +5,13 @@ class BackupServer
|
||||
#CronMail.time_check("Going to backup Orbit").deliver
|
||||
dbhost = Mongoid.config.database.connection.primary.join ':'
|
||||
dbname = Mongoid.config.database.name
|
||||
archive_db_list_path = OrbitSystemPreference::ArchiveDbListPath
|
||||
dbdirectory = "#{Rails.root}/tmp/#{dbname}-"+Time.now.strftime("%Y-%m-%d-%H-%M")
|
||||
%x[mongodump -h #{dbhost} -d #{dbname} -o #{dbdirectory} ]
|
||||
|
||||
# %x[touch #{Rails.root}/tmp/restart]
|
||||
%x[rm #{archive_db_list_path}]
|
||||
%x[ls #{Rails.root}/tmp/#{dbname}* | du -h --max-depth=1 --block-size=1M |sort -h >> #{archive_db_list_path}]
|
||||
OrbitJobLogger.info "DB backup done Path:#{dbdirectory}"
|
||||
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,36 @@
|
||||
class DashboardCounter < Resque::Plugins::RestrictionJob
|
||||
@queue = :high
|
||||
|
||||
def self.perform(*args)
|
||||
site = Site.first
|
||||
obj = new(*args)
|
||||
site.dashboard_counter[:visitors_this_week] = obj.display_visitors_this_week
|
||||
site.dashboard_counter[:visitors_this_month] = obj.display_visitors_this_month
|
||||
site.dashboard_counter[:visitors_this_year] = obj.display_visitors_this_year
|
||||
site.save
|
||||
OrbitJobLogger.info "DashboardCounter done #{site.dashboard_counter.to_s}"
|
||||
end
|
||||
|
||||
|
||||
def display_visitors(options={})
|
||||
impressions = Impression.where(options).and(:referrer.ne => nil)
|
||||
impressions.map{|i| i[:session_hash]}.uniq.count
|
||||
end
|
||||
|
||||
def display_visitors_today
|
||||
display_visitors(created_at: {'$gte' => Date.today.beginning_of_day, '$lte' => Date.today.end_of_day})
|
||||
end
|
||||
|
||||
def display_visitors_this_week
|
||||
display_visitors(created_at: {'$gte' => Date.today.beginning_of_week, '$lte' => Date.today.end_of_week})
|
||||
end
|
||||
|
||||
def display_visitors_this_month
|
||||
display_visitors(created_at: {'$gte' => Date.today.beginning_of_month, '$lte' => Date.today.end_of_month})
|
||||
end
|
||||
|
||||
def display_visitors_this_year
|
||||
display_visitors(created_at: {'$gte' => Date.today.beginning_of_year, '$lte' => Date.today.end_of_year})
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,46 @@
|
||||
class GenerateSystemSummary
|
||||
@queue = :high
|
||||
|
||||
def self.perform()
|
||||
@site = Site.first
|
||||
get_disk_free
|
||||
get_git_log_list
|
||||
get_package_info
|
||||
@site.save
|
||||
end
|
||||
|
||||
def self.get_package_info
|
||||
@info = {}
|
||||
get_nginx_version
|
||||
get_MongoDB_version
|
||||
get_Linux_version
|
||||
@site.system_package_info = @info
|
||||
end
|
||||
|
||||
def self.get_git_log_list
|
||||
git_commit_list_path = OrbitSystemPreference::GitCommitListPath
|
||||
%x[rm #{git_commit_list_path}]
|
||||
%x[cd #{Rails.root};#{OrbitSystemPreference::GitLogCommend} >>#{git_commit_list_path} ]
|
||||
end
|
||||
|
||||
def self.get_disk_free
|
||||
@site.disk_space= %x[#{OrbitSystemPreference::DiskFree}]
|
||||
end
|
||||
|
||||
def self.get_nginx_version
|
||||
@info[:nginx] = %x[#{OrbitSystemPreference::SystemPackage::NginxVersion} ]
|
||||
end
|
||||
|
||||
def self.get_MongoDB_version
|
||||
@info[:mongodb] = %x[#{OrbitSystemPreference::SystemPackage::MongodbVersion} ]
|
||||
end
|
||||
|
||||
def self.get_Linux_version
|
||||
@info[:linux] = %x[#{OrbitSystemPreference::SystemPackage::SystemVersion} ]
|
||||
end
|
||||
|
||||
def self.check_system_has_enough_space( limit =OrbitSystemPreference::DefaultDiskSpaceLimit )
|
||||
binding.pry
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1,21 +0,0 @@
|
||||
class NccuCalendar
|
||||
require 'open-uri'
|
||||
require 'tempfile'
|
||||
|
||||
@queue = :high
|
||||
|
||||
def self.perform()
|
||||
# temp_file = Tempfile.new('new_cal')
|
||||
# open('http://events.nccu.edu.tw/Month').read{|data|
|
||||
# temp_file << data
|
||||
# }
|
||||
|
||||
open(File.join(Rails.root, 'public/static', 'nccu_calendar.xml'), 'wb') do |fo|
|
||||
fo.print open('http://events.nccu.edu.tw/Month').read
|
||||
end
|
||||
|
||||
# FileUtils.mv(temp_file, File.join(Rails.root, 'public/static', 'nccu_calendar.xml'))
|
||||
|
||||
puts "[#{ DateTime.now.strftime("%Y %D %H:%M")}]NccuCalendar Synced #{File.join(Rails.root, 'public/static', 'nccu_calendar.xml')}"
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,8 @@
|
||||
class RestartServer
|
||||
@queue = :high
|
||||
|
||||
def self.perform()
|
||||
temp_directory = "#{Rails.root}/tmp/"
|
||||
%x[touch #{temp_directory}restart.txt ]
|
||||
end
|
||||
end
|
||||
@@ -1,25 +0,0 @@
|
||||
class SyncDb
|
||||
|
||||
@queue = :high
|
||||
|
||||
def self.perform()
|
||||
puts "[ #{DateTime.now.strftime("%Y %D %H:%M") }]\t SyncDb Starting"
|
||||
self.start_sync
|
||||
self.set_admin
|
||||
end
|
||||
|
||||
def self.start_sync
|
||||
task = 'mid_site:sync'
|
||||
args = []
|
||||
%x[rake #{task} --trace >> #{Rails.root}/log/rake.log]
|
||||
User.all.each{|ur| ur.create_dept_cache}
|
||||
puts "[#{ DateTime.now.strftime("%Y %D %H:%M")}]\tSyncDb Synced"
|
||||
end
|
||||
|
||||
def self.set_admin
|
||||
task = 'mid_site:install_admin'
|
||||
args = []
|
||||
%x[rake #{task} --trace >> #{Rails.root}/log/rake.log]
|
||||
puts "[#{ DateTime.now.strftime("%Y %D %H:%M")}]\tAdmin done"
|
||||
end
|
||||
end
|
||||
@@ -5,5 +5,6 @@ class UpdateTagCloud
|
||||
Tag.all.each do |tag|
|
||||
tag.update_attribute(:cloud_view_count, tag.impressionist_count(:created_at.gte => 14.days.ago, :created_at.lte => Time.now))
|
||||
end
|
||||
OrbitJobLogger.info "UpdateTagCloud Done"
|
||||
end
|
||||
end
|
||||
+1
-1
@@ -17,7 +17,7 @@ class Item
|
||||
|
||||
validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/
|
||||
# validates :name, :exclusion => { :in => LIST[:forbidden_item_names] }
|
||||
validates_uniqueness_of :name, :scope => :parent_id
|
||||
validates_uniqueness_of :name #, :scope => :parent_id
|
||||
validates_presence_of :name
|
||||
validates_associated :parent, :children
|
||||
|
||||
|
||||
+8
-1
@@ -11,10 +11,17 @@ class Site
|
||||
field :roaming_id
|
||||
field :private_key, :type => Binary
|
||||
field :public_key, :type => Binary
|
||||
|
||||
field :frontend_closed, :type => Boolean, :default => false
|
||||
field :backend_openness_on, :type => Boolean, :default => false
|
||||
|
||||
field :title_always_on, :type => Boolean, :default => false
|
||||
field :dashbroad_allow_visitor, :type => Boolean, :default => false
|
||||
field :mail_settings, :type => Hash
|
||||
|
||||
|
||||
field :disk_space, :type => String
|
||||
field :system_package_info, :type => Hash,:default=>{}
|
||||
|
||||
field :school
|
||||
field :department
|
||||
|
||||
|
||||
@@ -11,9 +11,14 @@ class Role < Attribute
|
||||
|
||||
has_many :sub_roles, :autosave => true, :dependent => :destroy
|
||||
has_many :users
|
||||
has_many :statuses, :autosave => true, :dependent => :destroy
|
||||
# has_many :statuses, :autosave => true, :dependent => :destroy
|
||||
# has_many :attribute_fields, :autosave => true, :dependent => :destroy
|
||||
has_many :role_statuses, :autosave => true, :dependent => :destroy
|
||||
has_many :role_categorys, :autosave => true, :dependent => :destroy
|
||||
|
||||
accepts_nested_attributes_for :sub_roles, :allow_destroy => true
|
||||
accepts_nested_attributes_for :role_statuses, :allow_destroy => true
|
||||
accepts_nested_attributes_for :role_categorys, :allow_destroy => true
|
||||
|
||||
def is_built_in?
|
||||
self.built_in
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
class RoleCategory < RoleFilter
|
||||
|
||||
has_and_belongs_to_many :users
|
||||
belongs_to :role
|
||||
|
||||
def self.get_role_data(role_key)
|
||||
|
||||
@role = Role.where(:key =>role_key).first
|
||||
|
||||
return @role.id
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,26 @@
|
||||
class RoleFilter
|
||||
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
# include OrbitCoreLib::ObjectAuthable
|
||||
include OrbitCoreLib::ObjectDisable
|
||||
|
||||
|
||||
field :key
|
||||
field :title, localize: true
|
||||
|
||||
# belongs_to :role
|
||||
|
||||
def pp_object
|
||||
title
|
||||
end
|
||||
|
||||
def self.from_id(id)
|
||||
RoleFilter.find(id) rescue nil
|
||||
end
|
||||
|
||||
def self.is_localized?(field_name)
|
||||
self.fields[field_name.to_s].localized?
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
class RoleStatus < RoleFilter
|
||||
|
||||
has_and_belongs_to_many :users
|
||||
belongs_to :role
|
||||
|
||||
scope :can_display,where(disable: false)
|
||||
|
||||
def self.get_role_data(role_key)
|
||||
|
||||
@role = Role.where(:key =>role_key).first
|
||||
|
||||
return @role.id
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
+62
-5
@@ -9,7 +9,13 @@ class User
|
||||
|
||||
field :admin, :type => Boolean, :default => true
|
||||
field :active_role
|
||||
field :user_id
|
||||
field :sid
|
||||
field :first_name, localize: true
|
||||
field :last_name, localize: true
|
||||
field :email
|
||||
field :sex, :default => 'unknown'
|
||||
field :office_tel
|
||||
field :cache_dept,type: Hash
|
||||
field :status_record,type: Hash
|
||||
|
||||
@@ -25,9 +31,11 @@ class User
|
||||
# has_many :papers, :autosave => true, :dependent => :destroy
|
||||
has_and_belongs_to_many :sub_role_tags
|
||||
|
||||
has_and_belongs_to_many :statuses
|
||||
# has_and_belongs_to_many :statuses
|
||||
has_and_belongs_to_many :roles
|
||||
has_and_belongs_to_many :sub_roles
|
||||
has_and_belongs_to_many :role_statuses
|
||||
has_and_belongs_to_many :role_categorys
|
||||
accepts_nested_attributes_for :attribute_values, :allow_destroy => true
|
||||
|
||||
before_create :initialize_desktop
|
||||
@@ -36,6 +44,9 @@ class User
|
||||
scope :remote_account, where(:nccu_id.ne => nil)
|
||||
scope :not_guest_user, all_of(:name.ne => "guest")
|
||||
|
||||
validates :user_id,
|
||||
:presence => { :message => I18n.t("users.user_id_not_null") } ,
|
||||
:length => {:minimum => 3, :maximum => 50, :message => I18n.t("users.user_id_length") }
|
||||
# validates_uniqueness_of :email,:message=> I18n.t("devise.registrations.email_not_unique")
|
||||
|
||||
# def new_attribute_values=(vars)
|
||||
@@ -101,6 +112,24 @@ class User
|
||||
end
|
||||
end
|
||||
|
||||
def role_status=(var)
|
||||
self.role_statuses = []
|
||||
var[:id].each do |id,val|
|
||||
if (val=="true")
|
||||
self.role_statuses << RoleStatus.find(id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def role_category=(var)
|
||||
self.role_categorys = []
|
||||
var[:id].each do |id,val|
|
||||
if (val=="true")
|
||||
self.role_categorys << RoleCategory.find(id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
def set_sub_role(sub_role_id,status_id)
|
||||
@@ -144,6 +173,17 @@ class User
|
||||
}.uniq!
|
||||
end
|
||||
|
||||
def self.get_member_list_attribute_field_name(role_type,field_key)
|
||||
@attribute = ::Attribute.where(:key => role_type).first
|
||||
return ::AttributeField.where(:key => field_key, :attribute_id => @attribute.id).first.title
|
||||
end
|
||||
|
||||
def self.get_member_list_attribute_value(user_id,role_type,field_key)
|
||||
@attribute = ::Attribute.where(:key => role_type).first
|
||||
@AttributeField = ::AttributeField.where(:key => field_key, :attribute_id => @attribute.id).first
|
||||
return ::AttributeValue.where(attribute_field_id: @AttributeField.id, :user_id => user_id).first[I18n.locale.to_s]
|
||||
end
|
||||
|
||||
def create_dept_cache
|
||||
dept_hash = {}
|
||||
|
||||
@@ -170,12 +210,30 @@ class User
|
||||
(query1 + query2).uniq
|
||||
end
|
||||
|
||||
# def name
|
||||
# info = Class::Info.first(:conditions => {:key => 'profile'})
|
||||
# if info
|
||||
# first_name = get_attribute_values.detect {|value| value.key.to_s.eql?('first_name') }[I18n.locale.to_s] rescue nil
|
||||
# last_name = get_attribute_values.detect {|value| value.key.to_s.eql?('last_name') }[I18n.locale.to_s] rescue nil
|
||||
# full_name = "#{last_name} #{first_name}"
|
||||
|
||||
# if full_name.strip.empty?
|
||||
# full_name = email
|
||||
# end
|
||||
|
||||
# return full_name
|
||||
# else
|
||||
# return nil
|
||||
# end
|
||||
# end
|
||||
|
||||
def name
|
||||
info = Class::Info.first(:conditions => {:key => 'profile'})
|
||||
if info
|
||||
first_name = get_attribute_values.detect {|value| value.key.to_s.eql?('first_name') }[I18n.locale.to_s] rescue nil
|
||||
last_name = get_attribute_values.detect {|value| value.key.to_s.eql?('last_name') }[I18n.locale.to_s] rescue nil
|
||||
full_name = "#{last_name} #{first_name}"
|
||||
# first_name = get_attribute_values.detect {|value| value.key.to_s.eql?('first_name') }[I18n.locale.to_s] rescue nil
|
||||
# last_name = get_attribute_values.detect {|value| value.key.to_s.eql?('last_name') }[I18n.locale.to_s] rescue nil
|
||||
# full_name = (I18n.locale != 'zh_tw') ? "#{self.last_name} #{self.first_name}" : "#{self.first_name} #{self.last_name}"
|
||||
full_name = (I18n.locale.to_s == 'zh_tw') ? "#{self.last_name} #{self.first_name}" : "#{self.first_name} #{self.last_name}"
|
||||
|
||||
if full_name.strip.empty?
|
||||
full_name = email
|
||||
@@ -211,7 +269,6 @@ class User
|
||||
self.roles = self.roles.uniq
|
||||
end
|
||||
|
||||
|
||||
def rebuild_status_record
|
||||
self.status_record = {}
|
||||
self.attribute_values.reject{|t| t.key!='status'}.each do |status|
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
<% if @attribute_type == 'role' %>
|
||||
<li><%= link_to t(:role_field), eval("admin_#{@attribute_type}_role_field_path(attribute)") %></li>
|
||||
<li><%= link_to t(:sub_role), eval("admin_#{@attribute_type}_sub_role_path(attribute)") %></li>
|
||||
<li><%= link_to t(:status), eval("admin_role_statuses_path(:role_id=>attribute)") %></li>
|
||||
<li><%= link_to t(:category), eval("admin_role_categorys_path(:role_id=>attribute)") %></li>
|
||||
<% end %>
|
||||
<li><%= link_to t(:enable), eval("admin_#{@attribute_type}_path(attribute, :authenticity_token => form_authenticity_token, :#{@attribute_type} => {:disabled => true})"), :remote => true, :method => :put, :id => "disable_#{attribute.id}", :style => "display:#{attribute.is_disabled? ? 'none' : ''}", :class => 'switch' %></li>
|
||||
<li><%= link_to t(:disable), eval("admin_#{@attribute_type}_path(attribute, :authenticity_token => form_authenticity_token, :#{@attribute_type} => {:disabled => false})"), :remote => true, :method => :put, :id => "enable_#{attribute.id}", :style => "display:#{attribute.is_disabled? ? '' : 'none'}", :class => 'switch' %></li>
|
||||
|
||||
@@ -2,5 +2,14 @@
|
||||
<%= render_node_and_children(Item.first(:conditions => {:parent_id => nil})) %>
|
||||
</ol>
|
||||
<script type="text/javascript">
|
||||
$.ajaxSetup({
|
||||
error: function(xhr, status, err) {
|
||||
if (xhr.status == 401){
|
||||
alert("<%= I18n.t('access.denied.ajax_401_error') %>");
|
||||
window.location.href = '/';
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
bindTreeDragHandle();
|
||||
</script>
|
||||
@@ -19,5 +19,6 @@
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%=javascript_include_tag "inc/update_cates_and_tags.js" %>
|
||||
|
||||
<%=javascript_include_tag "inc/update_cates_and_tags.js" %>
|
||||
<%= javascript_include_tag "inc/page_widget_edit_interface.js" %>
|
||||
@@ -2,8 +2,4 @@
|
||||
<%= render 'admin/items/site_map_left_bar' %>
|
||||
<% end -%>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<%= render 'edit' %>
|
||||
@@ -112,4 +112,5 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%=javascript_include_tag "inc/update_cates_and_tags.js" %>
|
||||
<%=javascript_include_tag "inc/update_cates_and_tags.js" %>
|
||||
<%= javascript_include_tag "inc/page_widget_edit_interface.js" %>
|
||||
@@ -3,4 +3,4 @@
|
||||
<%= render 'admin/items/site_map_left_bar' %>
|
||||
<% end -%>
|
||||
|
||||
<%= render 'edit' %>
|
||||
<%= render 'edit' %>
|
||||
@@ -0,0 +1,31 @@
|
||||
<% # encoding: utf-8 %>
|
||||
|
||||
<%= form_for(:role_filter, :remote => true, :url => @url, :method => @verb, :html => { :id => 'form_role_filter' } ) do |f| %>
|
||||
|
||||
<h2><%= (@role_filter.new_record? ? 'Add' : 'Edit') %></h2>
|
||||
|
||||
<div id="widget-title">
|
||||
<%= f.label :key %>
|
||||
<%= f.text_field :key %>
|
||||
</div>
|
||||
|
||||
<div id="widget-title">
|
||||
<%= f.fields_for :title_translations do |f| %>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<div class="control-group">
|
||||
<%= label_tag "name-#{locale}", "Name-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %>
|
||||
<div class="controls">
|
||||
<%= f.text_field locale, :class =>' input-xxlarge', :value => (@role_filter.title_translations[locale] rescue nil) %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<%= f.hidden_field :role_id, :value => params[:role_id] if !params[:role_id].blank? %>
|
||||
<%= f.submit 'Submit/送出', :class=>'btn btn-primary' %>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
<tr id="<%= dom_id role_filter %>" class="with_action">
|
||||
<td>
|
||||
<%= role_filter.key %>
|
||||
<div class="quick-edit">
|
||||
<ul class="nav nav-pills hide">
|
||||
<% if is_admin?%>
|
||||
<li><%= link_to t('role_filter.edit'),
|
||||
polymorphic_path([:admin, role_filter], {:action => :edit}), :remote => true %></li>
|
||||
<li><%= link_to show_toggle_archive_btn(role_filter),
|
||||
polymorphic_path([:admin, role_filter]), :confirm => t('sure?'), :method => :delete, :remote => true,:class=>"archive_toggle" %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
<% if @types.is_localized?(:title) %>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<td><%= role_filter.title_translations[locale] rescue nil %></td>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<td><%= role_filter.title %></td>
|
||||
<% end %>
|
||||
</tr>
|
||||
@@ -0,0 +1,2 @@
|
||||
$('<%= j render :partial => 'role_filter', :collection => [@role_filter] %>').appendTo('#role_filters').hide().fadeIn();
|
||||
$("#form_role_filter")[0].reset();
|
||||
@@ -0,0 +1 @@
|
||||
$("#<%= dom_id @role_filter %>").find(".archive_toggle").text("<%= show_toggle_archive_btn(@role_filter) %> ");
|
||||
@@ -0,0 +1 @@
|
||||
$("#form > form").replaceWith("<%= j render "form" %>");
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
<% content_for :side_bar do %>
|
||||
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:member), :link_url => admin_site_site_info_path(@site), :icon => 'icons-group', :side_bar_content => 'admin/users_new_interface/side_bar'} %>
|
||||
<% end %>
|
||||
|
||||
<div class="subnav">
|
||||
<ul class="breadcrumb">
|
||||
<li><%= link_to( t("role"), admin_roles_path ) %> <span class="divider">/</span></li>
|
||||
<li class="active">( <%= @role.title %> ) <%= t(@app_type_name) %></li>
|
||||
</ul>
|
||||
<div id="accordion">
|
||||
<div class="accordion-group filters">
|
||||
<div class="table-label">
|
||||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr class="sort-header">
|
||||
|
||||
<th id="sort-name" class="sort span1-2 select"><span><a href="#"><%= t('role_filters.key') %><b class="web-symbol"></b></a></span></th>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<th id="sort-name" class="sort span1-2 select"><span><a href="#"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %><b class="web-symbol"></b></a></span></th>
|
||||
<% end %>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table id="role_filters" class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span1-2"></th>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<th class="span1-2"></th>
|
||||
<% end %>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<%= render :partial => 'role_filter', :collection => @role_filters %>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div id="form"><%= render :partial => "form" %></div>
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
$("#form > form").replaceWith("<%= j render "form" %>");
|
||||
@@ -0,0 +1,4 @@
|
||||
$("#<%= dom_id @role_filter %>").replaceWith("<%= j render :partial => 'role_filter', :collection => [@role_filter] %>");
|
||||
<% @role_filter = @types.new(:display => 'List') # reset for new form %>
|
||||
$("#form_role_filter").replaceWith("<%= j render "form" %>")
|
||||
$("#form_role_filter")[0].reset();
|
||||
@@ -1,3 +1,9 @@
|
||||
|
||||
<% content_for :side_bar do %>
|
||||
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:member), :link_url => admin_site_site_info_path(@site), :icon => 'icons-group', :side_bar_content => 'admin/users_new_interface/side_bar'} %>
|
||||
<% end %>
|
||||
|
||||
|
||||
<%= form_for @sub_attribute,:url => eval("admin_#{@attribute_type}s_path") ,:class=> "form-horizontal" do |f| %>
|
||||
<div class="site-map role-block">
|
||||
<div class="map-block back">
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
|
||||
<% content_for :side_bar do %>
|
||||
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:member), :link_url => admin_site_site_info_path(@site), :icon => 'icons-group', :side_bar_content => 'admin/users_new_interface/side_bar'} %>
|
||||
<% end %>
|
||||
|
||||
|
||||
<%= form_for @sub_attribute,:url => eval("admin_#{@attribute_type}_path(@attribute)") ,:class=> "form-horizontal" do |f| %>
|
||||
<div class="site-map role-block">
|
||||
<div class="map-block back">
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<h1><%= I18n.t("site.system_preference") %></h1>
|
||||
<ul class="nav nav-tabs" id="myTab">
|
||||
<li class="active"><a href="#summary" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_summary") %></a></li>
|
||||
<li><a href="#commits" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_commits") %></a></li>
|
||||
<li><a href="#backups" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_backups") %></a></li>
|
||||
<li><a href="#resque_logs" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_logs") %></a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active in" id="summary">
|
||||
<h2><%= I18n.t("site.system_preference_.summary.disk_space") %>:</h2>
|
||||
<%= content_tag :p,@site.disk_space %>
|
||||
<h2><%= I18n.t("site.system_preference_.summary.code_update_at") %>: </h2>
|
||||
<% @site.system_package_info.each do |index,value| %>
|
||||
<h2><%= index.titleize %> <%= I18n.t("site.system_preference_.summary.version") %>:</h2>
|
||||
<%= content_tag :p,value %>
|
||||
<% end %>
|
||||
<h2><%= I18n.t("site.system_preference_.summary.weekness_report") %>:<%= '' %></h2>
|
||||
</div>
|
||||
<div class="tab-pane" id="commits">
|
||||
<% if @git_commit_list_file %>
|
||||
<% @git_commit_list_file.lines do |line|%>
|
||||
<%= (line + "<br/>").html_safe %>
|
||||
<% end%>
|
||||
<% else %>
|
||||
<div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="tab-pane" id="backups">
|
||||
<%if @db_backup_list_file %>
|
||||
<% @db_backup_list_file.lines do |line|%>
|
||||
<%=(line + "<br/>").html_safe %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="tab-pane" id="resque_logs">
|
||||
<%if @db_backup_list_file %>
|
||||
<% @resque_logs_file.lines do |line|%>
|
||||
<%=(line + "<br/>").html_safe %>
|
||||
<% end if @resque_logs_file%>
|
||||
<%else %>
|
||||
<div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
@@ -35,6 +35,14 @@
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'site.openness' %></label>
|
||||
<div class="controls">
|
||||
<%= f.check_box :frontend_closed %><%= I18n.t('site.frontend_closed') %><br/>
|
||||
<%= f.check_box :backend_openness_on %><%= I18n.t('site.backend_openness_on') %>
|
||||
<p class="help-block"><%= (t 'site.search_help').html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label"><%= t 'site.search' %></label>
|
||||
<div class="controls">
|
||||
|
||||
@@ -4,12 +4,34 @@
|
||||
|
||||
<div class="groups map-block back <%= role_disable ? 'disabled' : '' %>">
|
||||
<h4>
|
||||
<button for=<%=@form_index%> class="onoff pull-right"><%= role_disable ? 'OFF' : 'ON' %></button><span><%= role.title %></span>
|
||||
<button for=<%=@form_index%> class="onoff pull-right"><%= role_disable ? 'OFF' : 'ON' %></button><span><%= role.title %><%= t(:role_info)%></span>
|
||||
<%= hidden_field_tag("user[disable_role][id][#{role.id}]",role_disable,:for=>@form_index,:class=>"subrole_disable_field",:value=>role_disable)%>
|
||||
</h4>
|
||||
|
||||
<div class="form-horizontal <%= role_disable ? 'hide' : '' %>">
|
||||
|
||||
|
||||
<% @form_index = @form_index +1 %>
|
||||
|
||||
<div class="control-group">
|
||||
|
||||
<%= label_tag t(:status), nil, {:func=>"field_label", :for=>"1", :class=>"control-label"} %>
|
||||
<% role.role_statuses.where(:disable => false).each_with_index do |rrs, i|%>
|
||||
<%= hidden_field_tag("user[role_status][id][#{rrs.id}]", false,:for=>"#{@form_index}")%>
|
||||
<%= label_tag(i,check_box_tag( "user[role_status][id][#{rrs.id}]", true, @user.role_statuses.include?(rrs))+rrs.title,:class=>"control-label") %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% @form_index = @form_index +1 %>
|
||||
|
||||
<div class="control-group">
|
||||
<%= label_tag t(:category), nil, {:func=>"field_label", :for=>"1", :class=>"control-label"} %>
|
||||
<% role.role_categorys.where(:disable => false).each_with_index do |rrcg, i|%>
|
||||
<%= hidden_field_tag("user[role_category][id][#{rrcg.id}]", false,:for=>"#{@form_index}")%>
|
||||
<%= label_tag(i,check_box_tag( "user[role_category][id][#{rrcg.id}]", true, @user.role_categorys.include?(rrcg))+rrcg.title,:class=>"control-label") %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
|
||||
<% role.attribute_fields.each do |rf|%>
|
||||
|
||||
<%= rf.block_helper(@user,@form_index)%>
|
||||
|
||||
@@ -1,14 +1,22 @@
|
||||
<div class="roles <%= show_roles.key %>">
|
||||
<%= show_roles.title %>
|
||||
<%= show_roles.title %><%= t(:role_info)%>
|
||||
<div class="label-line">
|
||||
<hr />
|
||||
</div>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="span1"><%= t('status') %></td>
|
||||
<td><%= show_attribute_value(@user.role_statuses.where(:role_id=>show_roles.id).map{|t|t.title.to_s}.join(',')) rescue '' %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="span1"><%= t('category') %></td>
|
||||
<td><%= show_attribute_value(@user.role_categorys.where(:role_id=>show_roles.id).map{|t|t.title.to_s}.join(',')) rescue '' %></td>
|
||||
</tr>
|
||||
<% show_roles.attribute_fields.where(:disabled=>false).each do |rf| %>
|
||||
<tr>
|
||||
<td class="span1"><%= rf.title %></td>
|
||||
<td><%= show_attribute_value(@user.get_attribute_value(rf).get_value_by_locale(I18n.locale)) rescue '' %></td>
|
||||
<td><%= nl2br(show_attribute_value(@user.get_attribute_value(rf).get_value_by_locale(I18n.locale))) rescue '' %></td>
|
||||
</tr>
|
||||
<% end -%>
|
||||
<%= render :partial => 'show_sub_role',:collection=> @user.get_sub_roles_by_role(show_roles)%>
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
<% show_sub_role.attribute_fields.each do |item|%>
|
||||
<tr>
|
||||
<td class="span1"><%= item.title %></td>
|
||||
<td><%= show_attribute_value(@user.get_attribute_value(item).get_value_by_locale(I18n.locale)) rescue '' %></td>
|
||||
<td><%= nl2br(show_attribute_value(@user.get_attribute_value(item).get_value_by_locale(I18n.locale))) rescue '' %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
@@ -1,32 +1,120 @@
|
||||
<%#= devise_error_messages! %>
|
||||
|
||||
<div class="map-block back">
|
||||
<h4><span><%=t(:sys_basic_form)%></span></h4>
|
||||
<h4><span><%=t(:sys_basic_form)%></span></h4>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t(:email),:class=>"control-label" %><br />
|
||||
<div class="controls">
|
||||
<%= f.email_field :email %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t(:password),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.password_field :password %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="controls-block" >
|
||||
<div class="control-group language-swich">
|
||||
<%= f.label t("users.first_name"),{:class=>"control-label", :func=>"field_label"} %>
|
||||
<div class="controls">
|
||||
<div class="tabbable">
|
||||
<div class="tab-content">
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<div class="tab-pane fade <%= locale %> user-attribute_values-first_name <%= ( i == 0 ) ? "in active" : '' %>">
|
||||
<%= f.fields_for :first_name_translations do |f| %>
|
||||
<%= f.text_field locale, :func=>'input_unit', :value => (@user.first_name_translations[locale] rescue nil) %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<ul class="nav nav-pills">
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<li <%= ( i == 0 ) ? "class=active" : '' %> for="<%= locale %>">
|
||||
<a data-toggle="tab" href=".user-attribute_values-first_name.<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t(:password_confirmation),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.password_field :password_confirmation %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-horizontal">
|
||||
<div class="controls-block" >
|
||||
<div class="control-group language-swich">
|
||||
<%= f.label t("users.last_name"),{:class=>"control-label", :func=>"field_label"} %>
|
||||
<div class="controls">
|
||||
<div class="tabbable">
|
||||
<div class="tab-content">
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<div class="tab-pane fade <%= locale %> user-attribute_values-last_name <%= ( i == 0 ) ? "in active" : '' %>">
|
||||
<%= f.fields_for :last_name_translations do |f| %>
|
||||
<%= f.text_field locale, :func=>'input_unit', :value => (@user.last_name_translations[locale] rescue nil) %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<ul class="nav nav-pills">
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<li <%= ( i == 0 ) ? "class=active" : '' %> for="<%= locale %>">
|
||||
<a data-toggle="tab" href=".user-attribute_values-last_name.<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.email"),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.email_field :email %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.sid"),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.text_field :sid %>
|
||||
<span>( <%= t("users.sid_note")%> )</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.office_tel"),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.text_field :office_tel %>
|
||||
<span>( <%= t("users.office_tel_note")%> )</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.avatar"),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.file_field :avatar %>
|
||||
<% if @user.avatar.file %>
|
||||
<%= f.check_box :remove_avatar %>
|
||||
<%= t('delete.file') %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.sex"),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<label func="input_unit" for="0" class=" radio inline">
|
||||
<%= f.radio_button :sex, "male" %><%= t('users.male')%>
|
||||
</label>
|
||||
<label func="input_unit" for="1" class=" radio inline">
|
||||
<%= f.radio_button :sex, "female" %><%= t('users.female')%>
|
||||
</label>
|
||||
<label func="input_unit" for="2" class=" radio inline">
|
||||
<%= f.radio_button :sex, "unknown" %><%= t('users.unknown')%>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
<%#= devise_error_messages! %>
|
||||
<%= flash_messages %>
|
||||
|
||||
<div class="map-block back">
|
||||
<h4><span><%=t(:sys_basic_id_form)%></span></h4>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.user_id"),:class=>"control-label" %>
|
||||
<%#= f.label t(:user_id),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.text_field :user_id %>
|
||||
<span>( <%= t("users.user_id_note")%> )</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.new_password"),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.password_field :password %>
|
||||
<span>( <%= t("users.new_password_note")%> )</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<%= f.label t("users.new_password_confirmation"),:class=>"control-label" %>
|
||||
<div class="controls">
|
||||
<%= f.password_field :password_confirmation %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -18,7 +18,10 @@
|
||||
<%= link_to user_for_summary.name,admin_users_new_interface_path(user_for_summary)%>
|
||||
</p>
|
||||
<div class="user-title">
|
||||
<span>#TODO 教授兼系主任</span><span>#TODO 大學部校友</span>
|
||||
<% user_for_summary.roles.each do |rf| %>
|
||||
<% @roledata = Role.find(rf.id) %>
|
||||
<span><%= @roledata.title %></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<ul class="user-itemborder clear">
|
||||
<li class="pull-left"><span>#TODO 258</span>Publications</li>
|
||||
|
||||
@@ -5,6 +5,32 @@
|
||||
</div>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="span1"><%= t('users.first_name')%></td>
|
||||
<td><%= @user.first_name %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="span1"><%= t('users.last_name')%></td>
|
||||
<td><%= @user.last_name %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="span1"><%= t('users.email')%></td>
|
||||
<td><%= @user.email %></td>
|
||||
</tr>
|
||||
<% if !@user.sid.blank? %>
|
||||
<tr>
|
||||
<td class="span1"><%= t('users.sid')%></td>
|
||||
<td><%= @user.sid %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="span1"><%= t('users.office_tel')%></td>
|
||||
<td><%= @user.office_tel %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td class="span1"><%= t('users.sex')%></td>
|
||||
<td><%= t("users.#{@user.sex}") %></td>
|
||||
</tr>
|
||||
<% items.each do |item| %>
|
||||
<tr>
|
||||
<td class="span1"><%= item[:name] %></td>
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<% content_for :side_bar do %>
|
||||
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:member), :link_url => admin_site_site_info_path(@site), :icon => 'icons-users', :side_bar_content => 'admin/users_new_interface/side_bar'} %>
|
||||
<% end %>
|
||||
|
||||
<% content_for :page_specific_css do -%>
|
||||
<%= stylesheet_link_tag "member" %>
|
||||
<%= stylesheet_link_tag "site-map" %>
|
||||
<% end -%>
|
||||
<% content_for :page_specific_javascript do -%>
|
||||
<%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %>
|
||||
<%= javascript_include_tag "inc/modal-preview" %>
|
||||
<%= javascript_include_tag "lib/contenteditable" %>
|
||||
<%= javascript_include_tag "inc/ploy_input_field" %>
|
||||
<%= javascript_include_tag "inc/input_module" %>
|
||||
<%= javascript_include_tag "inc/attribute_panel_select" %>
|
||||
<%= javascript_include_tag "inc/attribute_onoff" %>
|
||||
<% end -%>
|
||||
|
||||
|
||||
<%= content_tag :div,:class=>"user-role site-map role-block" do%>
|
||||
|
||||
<%= form_for @user, :url => admin_users_new_interface_path(@user), :html => { :multipart => true } do |f| %>
|
||||
<%= f.error_messages %>
|
||||
<%= render :partial => 'user_basic_passwd', :locals => {:f => f}%>
|
||||
<div class="button_bar">
|
||||
<%= link_back %>
|
||||
<%= hidden_field_tag 'edit_type', 'edit_passwd' %>
|
||||
<%= link_to t(:update_), "#", :onclick=>"$('#edit_user_#{@user.id}').submit()" %>
|
||||
</div>
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
@@ -21,6 +21,7 @@
|
||||
<%= form_for @user, :url => admin_users_new_interface_index_path, :html => { :multipart => true },:method => :post do |f| %>
|
||||
|
||||
<%= f.error_messages %>
|
||||
<%= render :partial => 'user_basic_passwd', :locals => {:f => f}%>
|
||||
<%= render :partial => 'user_basic', :locals => {:f => f}%>
|
||||
<%= render :partial => 'form', :locals => { :f => f } %>
|
||||
<div class="button_bar">
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
<%= @user.email %>
|
||||
</p>
|
||||
<%= link_to("<i class='icon-pencil'></i>#{t(:edit)}".html_safe,edit_admin_users_new_interface_path(@user),:class=>"btn btn-small" ) if is_admin?%>
|
||||
<%= link_to("<i class='icon-pencil'></i>#{t("users.change_passwd")}".html_safe,admin_users_new_interface_edit_passwd_path(@user),:class=>"btn btn-small" ) if is_admin?%>
|
||||
</div>
|
||||
<div class="user-roles my_scroll">
|
||||
<div class="scrollbar">
|
||||
|
||||
@@ -2,13 +2,9 @@
|
||||
<div id="content">
|
||||
<div id="header" class="hh2">
|
||||
<div class="dtitle w2 hh2 hp sdm">
|
||||
<div class="thmtxth sdm_t" id="section_heading">Loading...</div>
|
||||
<div class="admbg sdm_o">
|
||||
<div class="thmtxth sdm_t" id="section_heading"></div>
|
||||
<div class="admbg sdm_o w2">
|
||||
<ul id="section_list">
|
||||
<!-- <li><a class="admtxt hp w2 hh2" href="">Campus</a></li>
|
||||
<li><a class="admtxt hp w2 hh2" href="">Research</a></li>
|
||||
<li><a class="admtxt hp w2 hh2" href="">Social</a></li>
|
||||
<li><a class="admtxt hp w2 hh2" href="">Private</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div id="side">
|
||||
<div id="rwidget" class="wh2 thmc4">
|
||||
<ul class="docklist">
|
||||
<li class="d_cate"><a callback-method='initializeDesktop' href="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>
|
||||
<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: 180px;">
|
||||
<li class="dock_item"><a callback-method='initializeAppSearch' 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='initializeSectionsManager' href="<%= desktop_allsections_path %>" class="widget_fn wh2 hh2" id="d_sections" custom-load="sections" onclick="return false;"><span class="widget_icon"><img src="" alt="All Sections" id="sections_icon" width="30" height="30"/></span></a></li>
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<div class="overview" content-layout="simple" base-width="1000">
|
||||
<div class="s_title hh2">Section Names</div>
|
||||
<ul class="s_form" id="desktop_names">
|
||||
<li class="s_grid_row"><label for="s_name1">Section 1</label><input id="s_name1" type="text" value=""></li>
|
||||
<li class="s_grid_row"><label for="s_name2">Section 2</label><input id="s_name2" type="text" value=""></li>
|
||||
<li class="s_grid_row"><label for="s_name3">Section 3</label><input id="s_name3" type="text" value=""></li>
|
||||
<li class="s_grid_row"><label for="s_name4">Section 4</label><input id="s_name4" type="text" value=""></li>
|
||||
<li class="s_grid_row"><label class="s_grid s_grid_4" for="s_name1">Section 1</label><input id="s_name1" class="s_grid s_grid_8" type="text" value=""></li>
|
||||
<li class="s_grid_row"><label class="s_grid s_grid_4" for="s_name2">Section 2</label><input id="s_name2" class="s_grid s_grid_8" type="text" value=""></li>
|
||||
<li class="s_grid_row"><label class="s_grid s_grid_4" for="s_name3">Section 3</label><input id="s_name3" class="s_grid s_grid_8" type="text" value=""></li>
|
||||
<li class="s_grid_row"><label class="s_grid s_grid_4" for="s_name4">Section 4</label><input id="s_name4" class="s_grid s_grid_8" type="text" value=""></li>
|
||||
</ul>
|
||||
<div class="s_subtitle">sample desciption</div>
|
||||
<div class="s_action">
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<div class="theme_preview vp thmbgc" style="background-color: #000;" id="theme_preview_area">
|
||||
<div class="thmtxth hh1 hp" style="margin-left:108px;">Theme Text1</div>
|
||||
<div class="theme_plate">
|
||||
<div class="thmc4 h1 wh3"></div>
|
||||
<div class="thmc4 h1 wh2"></div>
|
||||
<div class="thmc1 h1 w1"><div class="thmtxt hp">Theme Text2</div></div>
|
||||
<div class="g_sep h1 op07"></div>
|
||||
<div class="thmc2 h1 w1"><div class="thmtxt hp">Theme Text</div></div>
|
||||
@@ -30,10 +30,10 @@
|
||||
<div>
|
||||
<table id="color_input" cellpadding="0" cellspacing="0" border="0" width="528" >
|
||||
<tr>
|
||||
<th class="s_title hh2" width="190px">Theme Color</th>
|
||||
<th class="s_title hh2">Line Color</th>
|
||||
<th class="s_title hh2" width="120px">Text Color</th>
|
||||
<th class="s_title hh2" width="120px">Background Color</th>
|
||||
<th class="s_title size_small hh2" width="190px">Theme Color</th>
|
||||
<th class="s_title size_small hh2">Line Color</th>
|
||||
<th class="s_title size_small hh2" width="120px">Text Color</th>
|
||||
<th class="s_title size_small hh2" width="120px">Background Color</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
@@ -2,17 +2,22 @@
|
||||
<div class="s_title hh2">Password Managment</div>
|
||||
<%= form_for(resource, :as => resource_name, :url => users_passwd_path(resource_name), :html => { :method => :put, "form-type"=>"ajax_form" ,"callback-method"=>"passwordUpdate" }) do |f| %>
|
||||
<ul class="s_form">
|
||||
<li class="s_grid_row"><%= f.label :current_password %>
|
||||
<%= f.password_field :current_password %></li>
|
||||
<li class="s_grid_row">
|
||||
<%= f.label :current_password, :class => 's_grid s_grid_4' %>
|
||||
<%= f.password_field :current_password, :class => 's_grid s_grid_8' %>
|
||||
</li>
|
||||
|
||||
<li class="s_grid_row"><%= f.label :password %>
|
||||
<%= f.password_field :password %></li>
|
||||
<li class="s_grid_row">
|
||||
<%= f.label :password, :class => 's_grid s_grid_4' %>
|
||||
<%= f.password_field :password, :class => 's_grid s_grid_8' %>
|
||||
</li>
|
||||
|
||||
<li class="s_grid_row"><%= f.label :password_confirmation %>
|
||||
<%= f.password_field :password_confirmation %></li>
|
||||
<li class="s_grid_row">
|
||||
<%= f.label :password_confirmation, :class => 's_grid s_grid_4' %>
|
||||
<%= f.password_field :password_confirmation, :class => 's_grid s_grid_8' %>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="s_action"><%= f.submit "Update", :class => "setting_btn thmc1 thmtxt w1 hh1 hp" %></div>
|
||||
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
<p class="alert hide">You need to sign in or sign up before continuing.</p>
|
||||
<div class="main">
|
||||
<div class="control-group clear">
|
||||
<%= f.label :email ,t(:email)%>
|
||||
<%= f.text_field :email, :placeholder => t(:email), :style => "width: 330px;" %>
|
||||
<%= f.label :user_id ,t(:user_id)%>
|
||||
<%= f.text_field :user_id, :placeholder => t(:email), :style => "width: 330px;" %>
|
||||
<span class="help-inline">Please correct the error</span>
|
||||
</div>
|
||||
<div class="control-group clear">
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<a class="brand dropdown-toggle" data-toggle="dropdown" href="#">Orbit</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><%= link_to content_tag(:i, nil, :class => 'icons-gauge') + t(:dashboard_), admin_dashboards_path %></li>
|
||||
<li><%= link_to content_tag(:i, nil, :class => 'icons-users') + t(:member), admin_users_new_interface_index_path %></li>
|
||||
</ul>
|
||||
<% if Me.backend_openness_on %>
|
||||
<ul class="dropdown-menu">
|
||||
<li><%= link_to content_tag(:i, nil, :class => 'icons-gauge') + t(:dashboard_), admin_dashboards_path %></li>
|
||||
<li><%= link_to content_tag(:i, nil, :class => 'icons-users') + t(:member), admin_users_new_interface_index_path %></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<li class="dropdown language">
|
||||
<a class="dropdown-toggle orbit-bar-language" href="#" data-toggle="dropdown" data-icons=""></a>
|
||||
<ul class="dropdown-menu language-menu">
|
||||
<% @site_in_use_locales.each do |locale| %>
|
||||
<% @site_in_use_locales.compact.each do |locale| %>
|
||||
<%= content_tag :li, (link_to t(:_locale, :locale => locale), add_locale(remove_locale((referer rescue request.fullpath)), locale)), :class => (I18n.locale.eql?(locale.to_sym) ? 'active' : nil) %>
|
||||
<% end %>
|
||||
</ul>
|
||||
@@ -74,7 +74,7 @@
|
||||
<li>
|
||||
<div class="input-prepend">
|
||||
<span class="add-on"><i class="icon-user"></i></span>
|
||||
<%= f.text_field :email, :class => 'span2', :placeholder => t(:email), :size => 16 %>
|
||||
<%= f.text_field :user_id, :class => 'span2', :placeholder => t(:email), :size => 16 %>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@@ -76,6 +76,4 @@ module Orbit
|
||||
end
|
||||
end
|
||||
Orbit_Apps = []
|
||||
VALID_LOCALES = ["en", "zh_tw"]
|
||||
|
||||
|
||||
VALID_LOCALES = ["en", "zh_tw"]
|
||||
@@ -5,3 +5,5 @@ YAML::ENGINE.yamler = 'syck'
|
||||
|
||||
# Initialize the rails application
|
||||
Orbit::Application.initialize!
|
||||
Me = Site.first
|
||||
OrbitJobLogger = OrbitJobLog.new
|
||||
@@ -21,7 +21,7 @@ Devise.setup do |config|
|
||||
# parameters are used only when authenticating and not when retrieving from
|
||||
# session. If you need permissions, you should implement that in a before filter.
|
||||
# config.authentication_keys = [ :email ]
|
||||
config.authentication_keys = [ :email ]
|
||||
config.authentication_keys = [ :user_id ]
|
||||
|
||||
|
||||
# Tell if authentication through request.params is enabled. True by default.
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
module OrbitSystemPreference
|
||||
ArchiveDbListPath = "#{Rails.root}/log/archive_db.list.log"
|
||||
GitCommitListPath = "#{Rails.root}/log/git_commit.list.log"
|
||||
ResqueLogFile ="#{Rails.root}/log/orbit_job.log"
|
||||
GitLogCommend = 'git log --pretty=format:"%x09%ad%x09%s" --date=short'
|
||||
DiskFree= 'df -h /'
|
||||
DefaultDiskSpaceLimit = 3 #in GB
|
||||
module SystemPackage
|
||||
MongodbVersion = "mongod --version"
|
||||
NginxVersion = "nginx -V"
|
||||
SystemVersion = "uname -a"
|
||||
end
|
||||
end
|
||||
+44
-2
@@ -4,6 +4,7 @@ en:
|
||||
|
||||
access:
|
||||
denied:
|
||||
ajax_401_error: "User session has been expired,please login again."
|
||||
app:
|
||||
not_authed_user: Access Denied for you are not User for this app
|
||||
not_manager: Access Denied for you are not Manager for this app
|
||||
@@ -52,7 +53,7 @@ en:
|
||||
zip: ZIP
|
||||
addthis_tools:
|
||||
add_to_bookmark: Add this to bookmark
|
||||
admin: Admin
|
||||
admin: Super Admin
|
||||
all: All
|
||||
all_content: All Content
|
||||
all_file: All File
|
||||
@@ -346,6 +347,7 @@ en:
|
||||
related_links: Related Links
|
||||
role: Role
|
||||
role_field: Role Field
|
||||
role_info: " Role Info."
|
||||
roles: Roles
|
||||
ruling_site: Ruling Site
|
||||
rulingcom:
|
||||
@@ -370,21 +372,36 @@ en:
|
||||
summary: Summary
|
||||
thumbnail: Thumbnail
|
||||
site:
|
||||
backend_openness_on: Backend Openness
|
||||
default_image: Site default image
|
||||
description: Site description
|
||||
description_help: Description Guide
|
||||
footer: Site footer
|
||||
footer_help: Footer Guide
|
||||
frontend_closed: Frontend Closed
|
||||
header: Site header
|
||||
info: Site information
|
||||
keywords: Site keywords
|
||||
keywords_help: Keyword Guide
|
||||
language: Site language
|
||||
mobile_version: Mobile version
|
||||
openness: Openness
|
||||
search: Site Search
|
||||
search_help: Please Enter the search argument for Google search.
|
||||
settings: Site setting
|
||||
sub_menu: Site sub-menu
|
||||
system_preference: System Preference
|
||||
system_preference_:
|
||||
tab_backups: Backups
|
||||
tab_commits: Commits
|
||||
tab_summary: Summary
|
||||
tab_logs: Logs
|
||||
summary:
|
||||
code_update_at: Code Update histroy
|
||||
disk_space: Disk Free
|
||||
no_data: No Data
|
||||
version: Version
|
||||
weekness_report: Weekness Report
|
||||
title: Site Title
|
||||
title_help: Site Title Guide
|
||||
site_: Site
|
||||
@@ -411,7 +428,8 @@ en:
|
||||
module_page_lang_not_support: "We are sorry, this page is not available for English"
|
||||
not_previewable: "Preview not support"
|
||||
preview_only_for_img: "Preview only supprt with file type: jpg, png, gif, bmp"
|
||||
sys_basic_form: User system info
|
||||
sys_basic_form: System Default Basic Field
|
||||
sys_basic_id_form: System Account Info.
|
||||
system_info: System information
|
||||
tag_cloud: Tag cloud
|
||||
tags: Tags
|
||||
@@ -446,6 +464,30 @@ en:
|
||||
url: URL
|
||||
use_status: Use Statue
|
||||
user: User
|
||||
users:
|
||||
admin_change_password: You cannot change your own password here!
|
||||
avatar: Profile Picture
|
||||
change_passwd: Change password
|
||||
email: Email
|
||||
first_name: First Name
|
||||
last_name: Last Name
|
||||
male: Male
|
||||
name: Name
|
||||
new_password: New password
|
||||
new_password_note: At least 6 characters
|
||||
new_password_confirmation: Confirm new password
|
||||
female: Female
|
||||
unknown: Information Not Available
|
||||
office_tel: Office Tel No.
|
||||
office_tel_note: Public available
|
||||
sid: ID No.
|
||||
sid_note: Faculty ID No. or Student ID No.
|
||||
sex: Gender
|
||||
user_id: User Account
|
||||
user_id_note: Should be more than 3 characters and less than 50 characters
|
||||
user_id_not_null: User account cannot be null
|
||||
user_id_length: User account should be more than 3 characters
|
||||
user_id_error: Someone already use that user account
|
||||
version: Version
|
||||
vertical: Vertical
|
||||
view: View
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
en:
|
||||
|
||||
ntu:
|
||||
site_names:
|
||||
"00": "Dean of General Affairs"
|
||||
"01": "Documentation Division"
|
||||
"02": "Cashier Division"
|
||||
"03": "General Service Division"
|
||||
"04": "General Affairs Division, College of Social Science"
|
||||
"05": "Property Management Division"
|
||||
"06": "Procurement Division"
|
||||
"07": "Facilities Service Division"
|
||||
"08": "General Service Division"
|
||||
"09": "Campus Security"
|
||||
"10": "Construction and Maintenance Division"
|
||||
@@ -1,15 +0,0 @@
|
||||
zh_tw:
|
||||
|
||||
ntu:
|
||||
site_names:
|
||||
"00": "總務處"
|
||||
"01": "文書組"
|
||||
"02": "出納組"
|
||||
"03": "事務組"
|
||||
"04": "社科院總務分處"
|
||||
"05": "保管組"
|
||||
"06": "採購組"
|
||||
"07": "經營管理組"
|
||||
"08": "事務組"
|
||||
"09": "駐警隊"
|
||||
"10": "營繕組"
|
||||
@@ -4,6 +4,7 @@ zh_tw:
|
||||
|
||||
access:
|
||||
denied:
|
||||
ajax_401_error: 使用者已逾時或是登出,請重新登入
|
||||
app:
|
||||
not_authed_user: 拒絕存取,因你不是此應用程式授權使用者
|
||||
not_manager: 拒絕存取,因你不是此應用程式管理員
|
||||
@@ -52,7 +53,7 @@ zh_tw:
|
||||
zip: 郵遞區號
|
||||
addthis_tools:
|
||||
add_to_bookmark: 加入書籤
|
||||
admin: 管理員
|
||||
admin: 系統管理者
|
||||
all: 全部
|
||||
all_content: 所有內容
|
||||
all_file: 所有檔案
|
||||
@@ -346,6 +347,7 @@ zh_tw:
|
||||
related_links: 相關連結
|
||||
role: 身份
|
||||
role_field: 身份欄位
|
||||
role_info: 身份資料
|
||||
Roles: 身份
|
||||
ruling_site: 銳綸網站
|
||||
rulingcom:
|
||||
@@ -370,6 +372,8 @@ zh_tw:
|
||||
summary: 摘要
|
||||
thumbnail: 縮圖
|
||||
site:
|
||||
frontend_closed: 前台關閉?
|
||||
backend_openness_on: 開啟開放式後台(訪客可遊覽)
|
||||
default_image: 預設圖像
|
||||
description: 網站描述
|
||||
description_help: 網站描述說明
|
||||
@@ -381,10 +385,23 @@ zh_tw:
|
||||
keywords_help: 關鍵字說明
|
||||
language: 網站語言
|
||||
mobile_version: 手機版
|
||||
openness: 開放模式
|
||||
search: 網站搜尋
|
||||
search_help: 請輸入送交Google搜尋的參數
|
||||
settings: 基本設定
|
||||
sub_menu: 次選單
|
||||
system_preference: 系統狀態
|
||||
system_preference_:
|
||||
tab_backups: 備份記錄
|
||||
tab_commits: 程式版本
|
||||
tab_summary: 總覽
|
||||
tab_logs: 登錄檔
|
||||
summary:
|
||||
code_update_at: 程式更新紀錄
|
||||
disk_space: 硬碟空間
|
||||
no_data: 沒有資訊
|
||||
version: 版本
|
||||
weekness_report: 弱點掃瞄資訊
|
||||
title: 網站標題
|
||||
title_help: 網站標題說明
|
||||
site_: 網站
|
||||
@@ -411,7 +428,8 @@ zh_tw:
|
||||
module_page_lang_not_support: "很抱歉,此頁面沒有開放中文版本"
|
||||
not_previewable: "不支援預覽"
|
||||
preview_only_for_img: "預覽僅支援:jpg,png,gif,bmp等圖片格式"
|
||||
sys_basic_form: 系統使用者資訊
|
||||
sys_basic_form: 系統預設基本欄位
|
||||
sys_basic_id_form: 系統帳號資料
|
||||
system_info: 系統資訊
|
||||
tag_cloud: 標籤雲
|
||||
tags: 標籤
|
||||
@@ -446,6 +464,30 @@ zh_tw:
|
||||
url: 網址
|
||||
use_status: 使用狀態
|
||||
user: 使用者
|
||||
users:
|
||||
admin_change_password: 您不能在此處修改自己的密碼!
|
||||
avatar: 大頭貼照
|
||||
change_passwd: 變更密碼
|
||||
email: 電子郵件
|
||||
first_name: 名字
|
||||
male: 男性
|
||||
name: 姓名
|
||||
new_password: 新密碼
|
||||
new_password_note: 至少6個字元
|
||||
new_password_confirmation: 確認新密碼
|
||||
female: 女性
|
||||
unknown: 未知
|
||||
last_name: 姓氏
|
||||
office_tel: 辦公室電話
|
||||
office_tel_note: 將公開於網頁
|
||||
sid: 編號
|
||||
sid_note: 教職員工編號或學生學號
|
||||
sex: 性別
|
||||
user_id: 使用者帳號
|
||||
user_id_note: 需介於3個字元至50個字元之間
|
||||
user_id_not_null: 使用者帳號不能是空值
|
||||
user_id_length: 使用者帳號至少需要3個字元
|
||||
user_id_error: 該使用者帳號已被使用
|
||||
version: 版本
|
||||
vertical: 垂直的
|
||||
view: 檢視
|
||||
|
||||
+20
-15
@@ -1,31 +1,36 @@
|
||||
#developer pls change here
|
||||
rails_root = "/home/nccu/stage/NCCU" #keep this blank when development
|
||||
rails_env = ENV['RAILS_ENV'] || "production"
|
||||
rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/..'
|
||||
user_home = ENV['HOME'] || File.dirname(__FILE__) + '/../..'
|
||||
development_uid = ''
|
||||
development_gid = ''
|
||||
|
||||
development_uid = 'kaito' #when dev
|
||||
development_gid = 'staff' #when dev
|
||||
|
||||
#rails_env = "developement"
|
||||
rails_env = "production"
|
||||
|
||||
development_rails_root = File.expand_path("..",File.dirname(__FILE__))
|
||||
#rails_root = (rails_env == 'production' )? production_rails_root : development_rails_root
|
||||
num_workers = rails_env == 'production' ? 5 : 2
|
||||
|
||||
num_workers.times do |num|
|
||||
God.watch do |w|
|
||||
|
||||
w.dir = rails_root
|
||||
w.name = "resque-#{num}"
|
||||
w.group = 'resque-stage'
|
||||
w.name = "worker-#{num}"
|
||||
w.group = 'resque'
|
||||
|
||||
w.interval = 30.seconds
|
||||
w.env = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
|
||||
w.start = "rake -f #{rails_root}/Rakefile resque:work QUEUE=* RAILS_ENV=#{rails_env}"
|
||||
|
||||
queue = case num
|
||||
when 0
|
||||
'critical'
|
||||
when 1..2
|
||||
'high,low'
|
||||
when 3..num_workers
|
||||
'low'
|
||||
end
|
||||
|
||||
w.env = {"QUEUE"=>queue, "RAILS_ENV"=>rails_env}
|
||||
w.start = "HOME=#{user_home} QUEUE=* RAILS_ENV=#{rails_env}" rake -f #{rails_root}/Rakefile resque:work
|
||||
|
||||
w.uid = (rails_env == 'production' )? "root" : development_uid
|
||||
w.gid = (rails_env == 'production' )? "root" : development_gid
|
||||
|
||||
w.log = (rails_env == 'production' )? "/var/log/#{w.name}-stage.log":"#{rails_root}/log/#{w.name}.log"
|
||||
w.log = (rails_env == 'production' )? "/var/log/#{w.group}/#{w.name}.log":"#{rails_root}/log/dev_resque-#{w.name}.log"
|
||||
|
||||
# restart if memory gets too high
|
||||
w.transition(:up, :restart) do |on|
|
||||
|
||||
@@ -1,27 +1,21 @@
|
||||
#developer pls change here
|
||||
rails_root = "/home/nccu/NCCU/" #keep this blank when development
|
||||
|
||||
development_uid = 'kaito' #when dev
|
||||
development_gid = 'staff' #when dev
|
||||
|
||||
#rails_env = "developement"
|
||||
rails_env = "production"
|
||||
|
||||
development_rails_root = File.expand_path("..",File.dirname(__FILE__))
|
||||
#rails_root = (rails_env == 'production' )? production_rails_root : development_rails_root
|
||||
rails_env = ENV['RAILS_ENV'] || "production"
|
||||
rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/..'
|
||||
user_home = ENV['HOME'] || File.dirname(__FILE__) + '/../..'
|
||||
development_uid = ''
|
||||
development_gid = ''
|
||||
|
||||
God.watch do |w|
|
||||
w.dir = rails_root
|
||||
w.name = "resque-scheduler"
|
||||
w.name = "scheduler"
|
||||
w.group = 'resque'
|
||||
w.interval = 30.seconds
|
||||
w.env = {"QUEUE"=>"critical,high,low", "RAILS_ENV"=>rails_env}
|
||||
w.start = "rake -f #{rails_root}/Rakefile resque:scheduler RAILS_ENV=#{rails_env}"
|
||||
w.start = "HOME= #{user_home} QUEUE=* RAILS_ENV=#{rails_env}" rake -f #{rails_root}/Rakefile resque:scheduler
|
||||
|
||||
w.uid = (rails_env == 'production' )? "root" : development_uid
|
||||
w.gid = (rails_env == 'production' )? "root" : development_gid
|
||||
|
||||
w.log = (rails_env == 'production' )? "/var/log/#{w.name}.log":"#{rails_root}/log/#{w.name}.log"
|
||||
w.log = (rails_env == 'production' )? "/var/log/#{w.group}/#{w.name}.log":"#{rails_root}/log/dev_resque-#{w.name}.log"
|
||||
|
||||
# restart if memory gets too high
|
||||
w.transition(:up, :restart) do |on|
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# do_mail_matt:
|
||||
# every: 10s
|
||||
# class: FetchTime
|
||||
# args:
|
||||
# description: Runs the perform method in FetchTime
|
||||
|
||||
update_tag_cloud:
|
||||
cron: 0 0 [0,12] * * *
|
||||
class: UpdateTagCloud
|
||||
args:
|
||||
description: UpdateTagCloud
|
||||
|
||||
generate_system_summary:
|
||||
cron: 0 0 12 * * *
|
||||
class: GenerateSystemSummary
|
||||
args:
|
||||
description: Generate the system status such as disk free space,package version list for showing at site tab
|
||||
@@ -6,6 +6,7 @@ Orbit::Application.routes.draw do
|
||||
end
|
||||
|
||||
mount Resque::Server, :at => "/admin/resque"
|
||||
mount Rack::GridFS::Endpoint.new(:db => Mongoid.database,:lookup=>:path), :at => "gridfs"
|
||||
|
||||
# routes for sinatra app
|
||||
match '/site/set_registered', :to => CentralServerExchangeApp
|
||||
@@ -17,6 +18,7 @@ Orbit::Application.routes.draw do
|
||||
|
||||
# routes for admin
|
||||
namespace :admin do
|
||||
match 'system_preference' => "sites#show_system_preference",:as=>"system_preference"
|
||||
mount Resque::Server.new, :at => "/resque"
|
||||
resources :assets do
|
||||
collection do
|
||||
@@ -134,12 +136,18 @@ Orbit::Application.routes.draw do
|
||||
resources :roles do
|
||||
get 'role_field'
|
||||
get 'sub_role_field'
|
||||
get 'role_status'
|
||||
get 'role_category'
|
||||
get 'sub_role'
|
||||
get 'add_sub_role'
|
||||
get 'edit_sub_role'
|
||||
get 'add_attribute_field'
|
||||
end
|
||||
|
||||
resources :role_filters
|
||||
resources :role_statuses
|
||||
resources :role_categorys
|
||||
|
||||
resources :sites do
|
||||
get 'mail_setting'
|
||||
get 'site_info'
|
||||
@@ -158,6 +166,7 @@ Orbit::Application.routes.draw do
|
||||
member do
|
||||
get 'temp_edit'
|
||||
end
|
||||
match "edit_passwd" => "users_new_interface#edit_passwd" ,:as => :edit_passwd
|
||||
end
|
||||
|
||||
resources :member_selects do
|
||||
|
||||
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -0,0 +1,32 @@
|
||||
class OrbitJobLog < Logger
|
||||
FORMAT = "%m/%d/%Y %H:%M%p: "
|
||||
def initialize
|
||||
case Rails.env
|
||||
when 'production'
|
||||
# Logger::Syslog.new("orbit_routine", Syslog::LOG_LOCAL5)
|
||||
super(Orbit::Application.config.root.to_s+'/log/orbit_job.log','daily')
|
||||
when 'development'
|
||||
super(Orbit::Application.config.root.to_s+'/log/orbit_job.dev.log','daily')
|
||||
end
|
||||
end
|
||||
|
||||
def debug(msg)
|
||||
super(Time.now.strftime()+msg)
|
||||
end
|
||||
|
||||
def info(msg)
|
||||
super(Time.now.strftime(FORMAT)+msg)
|
||||
end
|
||||
|
||||
def warn(msg)
|
||||
super(Time.now.strftime(FORMAT)+msg)
|
||||
end
|
||||
|
||||
def error(msg)
|
||||
super(Time.now.strftime(FORMAT)+msg)
|
||||
end
|
||||
|
||||
def fatal(msg)
|
||||
super(Time.now.strftime(FORMAT)+msg)
|
||||
end
|
||||
end
|
||||
@@ -242,7 +242,7 @@ module ParserCommon
|
||||
categories_str = "&#{categories_str}" unless categories_str.blank?
|
||||
tags_str = "&#{tags_str}" unless tags_str.blank?
|
||||
|
||||
ret << "?inner=true&page_id=#{page.id}#{categories_str}#{tags_str}&preview=#{params[:preview]}&page_main=#{params[:page_main]}&search_query=#{params[:search_query]}&name=#{params[:name]}&item_type=page"
|
||||
ret << "?inner=true&page_id=#{page.id}#{categories_str}#{tags_str}&preview=#{params[:preview]}&page_main=#{params[:page_main]}&search_query=#{params[:search_query]}&clicked_field_name=#{params[:clicked_field_name]}&name=#{params[:name]}&item_type=page"
|
||||
ret << "'></div>"
|
||||
else
|
||||
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
||||
@@ -270,7 +270,7 @@ module ParserCommon
|
||||
categories_str = "&#{categories_str}" unless categories_str.blank?
|
||||
tags_str = "&#{tags_str}" unless tags_str.blank?
|
||||
|
||||
options = "&part_id=#{part.id}#{categories_str}#{tags_str}&page=#{params[:page]}&search_query=#{params[:search_query]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&item_type=page_part"
|
||||
options = "&part_id=#{part.id}#{categories_str}#{tags_str}&page=#{params[:page]}&search_query=#{params[:search_query]}&clicked_field_name=#{params[:clicked_field_name]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&item_type=page_part"
|
||||
ret << "<div class='dymanic_load widget' path='#{url + options}'></div>"
|
||||
when 'public_r_tag'
|
||||
ret << "<r:#{part.public_r_tag} id='#{part.public_r_tag_object_id}'/>"
|
||||
|
||||
Loaded 100 of 283 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user