diff --git a/Gemfile b/Gemfile
index 9eca9186..fabc1833 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,6 +1,8 @@
source 'http://rubygems.org'
gem 'rails', '>=3.1.0', '<3.2.0'
+gem "brakeman"
+
gem 'bson_ext'
gem 'carrierwave'
gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid'
@@ -13,6 +15,7 @@ gem 'kaminari', :git => 'git://github.com/amatsuda/kaminari.git'
gem 'mini_magick'
gem 'mongoid'
+gem "mongo_session_store-rails3"
gem 'radius'
gem 'rake'
gem 'ruby-debug19'
@@ -20,7 +23,7 @@ gem 'rubyzip'
gem 'sinatra'
gem 'sprockets'
gem 'tinymce-rails'
-# gem 'therubyracer'
+#gem 'therubyracer'
# Gems used only for assets and not required
# in production environments by default.
diff --git a/Gemfile.lock b/Gemfile.lock
index 18f66fbf..dd1a1d59 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -10,48 +10,55 @@ GIT
GEM
remote: http://rubygems.org/
specs:
- actionmailer (3.1.3)
- actionpack (= 3.1.3)
+ actionmailer (3.1.4)
+ actionpack (= 3.1.4)
mail (~> 2.3.0)
- actionpack (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
+ actionpack (3.1.4)
+ activemodel (= 3.1.4)
+ activesupport (= 3.1.4)
builder (~> 3.0.0)
erubis (~> 2.7.0)
i18n (~> 0.6)
- rack (~> 1.3.5)
+ rack (~> 1.3.6)
rack-cache (~> 1.1)
rack-mount (~> 0.8.2)
rack-test (~> 0.6.1)
sprockets (~> 2.0.3)
- activemodel (3.1.3)
- activesupport (= 3.1.3)
+ activemodel (3.1.4)
+ activesupport (= 3.1.4)
builder (~> 3.0.0)
i18n (~> 0.6)
- activerecord (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
- arel (~> 2.2.1)
+ activerecord (3.1.4)
+ activemodel (= 3.1.4)
+ activesupport (= 3.1.4)
+ arel (~> 2.2.3)
tzinfo (~> 0.3.29)
- activeresource (3.1.3)
- activemodel (= 3.1.3)
- activesupport (= 3.1.3)
- activesupport (3.1.3)
+ activeresource (3.1.4)
+ activemodel (= 3.1.4)
+ activesupport (= 3.1.4)
+ activesupport (3.1.4)
multi_json (~> 1.0)
archive-tar-minitar (0.5.2)
- arel (2.2.1)
- bcrypt-ruby (3.0.1)
+ arel (2.2.3)
bcrypt-ruby (3.0.1-x86-mingw32)
- bson (1.5.2)
- bson_ext (1.5.2)
- bson (= 1.5.2)
+ brakeman (1.5.1)
+ activesupport
+ erubis (~> 2.6)
+ haml (~> 3.0)
+ i18n
+ ruby2ruby (~> 1.2)
+ ruport (~> 1.6)
+ sass (~> 3.0)
+ bson (1.6.1)
+ bson_ext (1.6.1)
+ bson (~> 1.6.1)
builder (3.0.0)
carrierwave (0.5.8)
activesupport (~> 3.0)
carrierwave-mongoid (0.1.3)
carrierwave (>= 0.5.6)
mongoid (~> 2.1)
- chronic (0.6.6)
+ chronic (0.6.7)
coffee-rails (3.1.1)
coffee-script (>= 2.2.0)
railties (~> 3.1.0)
@@ -59,26 +66,32 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.2.0)
+ color (1.4.1)
columnize (0.3.6)
database_cleaner (0.7.1)
delorean (1.2.0)
chronic
- devise (1.5.3)
+ devise (2.0.4)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.0.3)
- warden (~> 1.1)
+ railties (~> 3.1)
+ warden (~> 1.1.1)
diff-lcs (1.1.3)
erubis (2.7.0)
exception_notification (2.5.2)
actionmailer (>= 3.0.4)
execjs (1.3.0)
multi_json (~> 1.0)
- factory_girl (2.5.0)
- activesupport
- factory_girl_rails (1.6.0)
- factory_girl (~> 2.5.0)
+ factory_girl (2.6.3)
+ activesupport (>= 2.3.9)
+ factory_girl_rails (1.7.0)
+ factory_girl (~> 2.6.0)
railties (>= 3.0.0)
+ fastercsv (1.5.4)
+ haml (3.1.4)
hike (1.2.1)
+ hoe (2.16.1)
+ rake (~> 0.8)
i18n (0.6.0)
jquery-rails (1.0.19)
railties (~> 3.0)
@@ -86,24 +99,30 @@ GEM
json (1.6.5)
linecache19 (0.5.12)
ruby_core_source (>= 0.1.4)
- mail (2.3.0)
+ mail (2.3.3)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.17.2)
mini_magick (3.4)
subexec (~> 0.2.1)
- mongo (1.5.2)
- bson (= 1.5.2)
- mongoid (2.4.2)
+ mongo (1.6.1)
+ bson (~> 1.6.1)
+ mongo_session_store-rails3 (3.0.5)
+ actionpack (>= 3.0)
+ mongo
+ mongoid (2.4.6)
activemodel (~> 3.1)
mongo (~> 1.3)
tzinfo (~> 0.3.22)
- multi_json (1.0.4)
+ multi_json (1.1.0)
orm_adapter (0.0.6)
+ pdf-writer (1.1.8)
+ color (>= 1.4.0)
+ transaction-simple (~> 1.3)
polyglot (0.3.3)
rack (1.3.6)
- rack-cache (1.1)
+ rack-cache (1.2)
rack (>= 0.4)
rack-mount (0.8.3)
rack (>= 1.0.0)
@@ -113,18 +132,18 @@ GEM
rack
rack-test (0.6.1)
rack (>= 1.0)
- radius (0.7.1)
- rails (3.1.3)
- actionmailer (= 3.1.3)
- actionpack (= 3.1.3)
- activerecord (= 3.1.3)
- activeresource (= 3.1.3)
- activesupport (= 3.1.3)
+ radius (0.7.3)
+ rails (3.1.4)
+ actionmailer (= 3.1.4)
+ actionpack (= 3.1.4)
+ activerecord (= 3.1.4)
+ activeresource (= 3.1.4)
+ activesupport (= 3.1.4)
bundler (~> 1.0)
- railties (= 3.1.3)
- railties (3.1.3)
- actionpack (= 3.1.3)
- activesupport (= 3.1.3)
+ railties (= 3.1.4)
+ railties (3.1.4)
+ actionpack (= 3.1.4)
+ activesupport (= 3.1.4)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
@@ -153,25 +172,33 @@ GEM
columnize (>= 0.3.1)
linecache19 (>= 0.5.11)
ruby-debug-base19 (>= 0.11.19)
+ ruby2ruby (1.3.1)
+ ruby_parser (~> 2.0)
+ sexp_processor (~> 3.0)
ruby_core_source (0.1.5)
archive-tar-minitar (>= 0.5.2)
- rubyzip (0.9.5)
- sass (3.1.12)
+ ruby_parser (2.3.1)
+ sexp_processor (~> 3.0)
+ rubyzip (0.9.6.1)
+ ruport (1.6.3)
+ fastercsv
+ pdf-writer (= 1.1.8)
+ sass (3.1.15)
sass-rails (3.1.5)
actionpack (~> 3.1.0)
railties (~> 3.1.0)
sass (~> 3.1.10)
tilt (~> 1.3.2)
+ sexp_processor (3.1.0)
shoulda-matchers (1.0.0)
- simplecov (0.5.4)
- multi_json (~> 1.0.3)
+ simplecov (0.6.1)
+ multi_json (~> 1.0)
simplecov-html (~> 0.5.3)
simplecov-html (0.5.3)
sinatra (1.3.2)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
- spork (0.9.0)
spork (0.9.0-x86-mingw32)
win32-process
sprockets (2.0.3)
@@ -183,30 +210,32 @@ GEM
tilt (1.3.3)
tinymce-rails (3.4.8)
railties (>= 3.1)
+ transaction-simple (1.4.0)
+ hoe (>= 1.1.7)
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
- tzinfo (0.3.31)
- uglifier (1.2.2)
+ tzinfo (0.3.32)
+ uglifier (1.2.3)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)
- warden (1.1.0)
+ warden (1.1.1)
rack (>= 1.0)
watchr (0.7)
win32-api (1.4.8-x86-mingw32)
win32-process (0.6.5)
windows-pr (>= 1.1.2)
- windows-api (0.4.0)
+ windows-api (0.4.1)
win32-api (>= 1.4.5)
windows-pr (1.2.1)
win32-api (>= 1.4.5)
windows-api (>= 0.3.0)
PLATFORMS
- ruby
x86-mingw32
DEPENDENCIES
+ brakeman
bson_ext
carrierwave
carrierwave-mongoid
@@ -220,6 +249,7 @@ DEPENDENCIES
jquery-rails
kaminari!
mini_magick
+ mongo_session_store-rails3
mongoid
radius
rails (>= 3.1.0, < 3.2.0)
diff --git a/Rakefile b/Rakefile
index 2036d04c..9a495de7 100644
--- a/Rakefile
+++ b/Rakefile
@@ -5,4 +5,4 @@ require File.expand_path('../config/application', __FILE__)
require 'rake/dsl_definition'
require 'rake'
-PrototypeR4::Application.load_tasks
+Orbit::Application.load_tasks
diff --git a/app/assets/images/nccu_logo.png b/app/assets/images/nccu_logo.png
new file mode 100644
index 00000000..68b9a72f
Binary files /dev/null and b/app/assets/images/nccu_logo.png differ
diff --git a/app/assets/javascripts/orbit-1.0.js b/app/assets/javascripts/orbit-1.0.js
index a32f6c9f..f8daaecd 100644
--- a/app/assets/javascripts/orbit-1.0.js
+++ b/app/assets/javascripts/orbit-1.0.js
@@ -1,104 +1,100 @@
-var viewportwidth,
- viewportheight;
-function resize() {
- viewportheight=$(window).height();
- viewportwidth=$(window).width();
- if(window.navigator.userAgent.indexOf("MSIE")>0){
- windH=document.clientHeight;
- windW=document.clientWidht;
- }
-}
-$(document).ready(function(){
- $(document).on('click', '.language-menu li', function(){
- $(this).each(function(i){
- $(this).siblings().removeClass('active')
- $(this).addClass('active')
- })
- return false;
- });
- $(document).on('click', '.orbit-bar-member', function(){
- $(this).hasClass('open') ? $(this).removeClass('open') : $(this).addClass('open');
- $('.bar-login .dropdown-menu').toggle();
- return false;
- });
-
- $(document).click(function() {
- $('.orbit-bar-member').removeClass("open");
- $('.bar-login .dropdown-menu').hide();
- });
-
- $(document).on('click', '.bar-login .dropdown-menu', function(e) {
- e.stopPropagation();
- $('.bar-login .dropdown-menu').show();
- });
-
- $('.tip').tooltip({
- placement: "left"
- });
-
- $(document).on('click', '.privacy', function() {
- switch ($(this).val()) {
- case 'true':
- $(this).parents('.controls').children('.select-role').slideUp(300);
- break;
- case 'false':
- $(this).parents('.controls').children('.select-role').slideDown(300);
- break;
- }
- });
-
- $(document).on('click', '.toggle-tr-edit', function() {
- $(this).parents('tr').next('.qe-block').removeClass('hide');
- $(this).parents('tr').next('.qe-block').find('.qe-edit-div').addClass('hide');
- $(this).parents('tr').next('.qe-block').find('#qe-' + $(this).attr('rel')).toggleClass('hide');
- });
-
- $(document).on('click', '.sort-header > .sort', function() {
- $.getScript($(this).attr('rel'));
- });
-
- /*tinyscrollbar&windows-Size*/
- resize();
- $('#main-sidebar').css("height", viewportheight-40);
- $('#main-sidebar .viewport').css("height", viewportheight-40);
- $('.post-title').css("width", viewportwidth-495);
- $('#main-sidebar').tinyscrollbar();
- $('.detal-list').tinyscrollbar();
- $('#main-sidebar').tinyscrollbar({size:(viewportheight-44)});
-
- /*isotope*/
- var $container = $('#isotope');
- $container.isotope({
- itemSelector : '.item',
- layoutMode : 'masonry',
- });
-
-
-});
-$(window).resize(function(){
- resize();
- var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2;
- $('#main-sidebar').css("height", viewportheight-30);
- $('#main-sidebar .viewport').css("height", viewportheight-30);
- $('.post-title').css("width", viewportwidth-495);
- $('#main-wrap > .subnav').css("width", viewportwidth-$mainWrapMarginLeft)
- $('#main-sidebar').tinyscrollbar({size:(viewportheight-34)});
- mainTablePosition()
-});
-/*main-table position*/
-function mainTablePosition() {
- var $height = $('#main-wrap > .subnav').height()
- var $table = $('#main-wrap > .table')
- //alert ($table.height())
- $table.stop().animate({marginTop:$height},500)
- //$table.css({marginTop : $height})
-}
-$(window).scroll(function () {
- //var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-1;
- //var $subnavWidth = parseInt($('#main-wrap > .subnav').css("width"));
- var $winLeft = $(window).scrollLeft()
- $(".table-label").css({left:$winLeft*-1} );
- //$(".table-label").css({left:$mainWrapMarginLeft+($winLeft*-1)} );
- //$("#main-wrap > .subnav").css({width:$subnavWidth+($winLeft)} );
- //console.log($mainWrapMarginLeft+($winLeft*-1)+5);
-});
+var viewportwidth,
+ viewportheight;
+function resize() {
+ viewportheight=$(window).height();
+ viewportwidth=$(window).width();
+ if(window.navigator.userAgent.indexOf("MSIE")>0){
+ windH=document.clientHeight;
+ windW=document.clientWidht;
+ }
+}
+$(document).ready(function(){
+ $(document).on('click', '.orbit-bar-member', function(){
+ $(this).hasClass('open') ? $(this).removeClass('open') : $(this).addClass('open');
+ $('.bar-login .dropdown-menu').toggle();
+ return false;
+ });
+
+ $(document).click(function() {
+ $('.orbit-bar-member').removeClass("open");
+ $('.bar-login .dropdown-menu').hide();
+ });
+
+ $(document).on('click', '.bar-login .dropdown-menu', function(e) {
+ e.stopPropagation();
+ $('.bar-login .dropdown-menu').show();
+ });
+
+ $('.tip').tooltip({
+ placement: "left"
+ });
+
+ $(document).on('click', '.privacy', function() {
+ switch ($(this).val()) {
+ case 'true':
+ $(this).parents('.controls').children('.select-role').slideUp(300);
+ break;
+ case 'false':
+ $(this).parents('.controls').children('.select-role').slideDown(300);
+ break;
+ }
+ });
+
+ $(document).on('click', '.toggle-tr-edit', function() {
+ $(this).parents('tr').next('.qe-block').removeClass('hide');
+ $(this).parents('tr').next('.qe-block').find('.qe-edit-div').addClass('hide');
+ $(this).parents('tr').next('.qe-block').find('#qe-' + $(this).attr('rel')).toggleClass('hide');
+ });
+
+ $(document).on('click', '.sort-header > .sort', function() {
+ $.getScript($(this).attr('rel'));
+ });
+
+ /*tinyscrollbar&windows-Size*/
+ resize();
+ var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2;
+ $('#main-sidebar').css("height", viewportheight-30);
+ $('#main-sidebar .viewport').css("height", viewportheight-30);
+ $('.post-title').css("width", viewportwidth-495);
+ $('#main-wrap > .subnav').css("width", viewportwidth-$mainWrapMarginLeft)
+ $('#main-sidebar').tinyscrollbar();
+ $('.detal-list').tinyscrollbar();
+ $('#main-sidebar').tinyscrollbar({size:(viewportheight-34)});
+ mainTablePosition()
+
+ /*isotope*/
+ var $container = $('#isotope');
+ $container.isotope({
+ itemSelector : '.item',
+ layoutMode : 'masonry',
+ });
+
+
+});
+$(window).resize(function(){
+ resize();
+ var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2;
+ $('#main-sidebar').css("height", viewportheight-30);
+ $('#main-sidebar .viewport').css("height", viewportheight-30);
+ $('.post-title').css("width", viewportwidth-495);
+ $('#main-wrap > .subnav').css("width", viewportwidth-$mainWrapMarginLeft)
+ $('#main-sidebar').tinyscrollbar({size:(viewportheight-34)});
+ mainTablePosition()
+});
+/*main-table position*/
+function mainTablePosition() {
+ var $height = $('#main-wrap > .subnav').height()
+ var $table = $('#main-wrap > .table')
+ //alert ($table.height())
+ $table.stop().animate({marginTop:$height},500)
+ //$table.css({marginTop : $height})
+}
+$(window).scroll(function () {
+ //var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-1;
+ //var $subnavWidth = parseInt($('#main-wrap > .subnav').css("width"));
+ var $winLeft = $(window).scrollLeft()
+ $(".table-label").css({left:$winLeft*-1} );
+ //$(".table-label").css({left:$mainWrapMarginLeft+($winLeft*-1)} );
+ //$("#main-wrap > .subnav").css({width:$subnavWidth+($winLeft)} );
+ //console.log($mainWrapMarginLeft+($winLeft*-1)+5);
+});
diff --git a/app/assets/stylesheets/bootstrap.css.erb b/app/assets/stylesheets/bootstrap.css.erb
index 9ad62e96..ee2ae5a4 100644
--- a/app/assets/stylesheets/bootstrap.css.erb
+++ b/app/assets/stylesheets/bootstrap.css.erb
@@ -2642,8 +2642,8 @@ button.btn.small, input[type="submit"].btn.small {
color: #333333;
}
.pagination {
- height: 36px;
- margin: 18px 0;
+ height: 36px;
+ margin: 18px 0;
}
.pagination ul {
display: inline-block;
@@ -2663,7 +2663,8 @@ button.btn.small, input[type="submit"].btn.small {
.pagination li {
display: inline;
}
-.pagination a {
+
+.pagination .page{
float: left;
padding: 0 14px;
line-height: 34px;
@@ -2671,6 +2672,28 @@ button.btn.small, input[type="submit"].btn.small {
border: 1px solid #ddd;
border-left-width: 0;
}
+.pagination a {
+ float: left;
+}
+.pagination .next{
+ float: left;
+ padding: 0 14px;
+ line-height: 34px;
+ text-decoration: none;
+ border: 1px solid #ddd;
+ border-left-width: 0;
+}
+.pagination .last{
+ float: left;
+ padding: 0 14px;
+ line-height: 34px;
+ text-decoration: none;
+ border: 1px solid #ddd;
+ border-left-width: 0;
+}
+.pagination .current{
+ border-left-width: 1px;
+}
.pagination a:hover, .pagination .active a {
background-color: #f5f5f5;
}
diff --git a/app/assets/stylesheets/site_items.css.erb b/app/assets/stylesheets/site_items.css.erb
index 38b0a185..4e23bd4c 100644
--- a/app/assets/stylesheets/site_items.css.erb
+++ b/app/assets/stylesheets/site_items.css.erb
@@ -1,482 +1,483 @@
-html, body{
- height: 100%;
- margin: 0;
- padding: 0;
-}
-html{
- background: url(<%= asset_path "body.jpg" %>) no-repeat fixed 0 0 transparent;
- background-size: cover;
-}
-
-body{
- color: #000000;
- font-family: Helvetica, '微軟正黑體';
-}
-#back_banner_link{
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #787e82), color-stop(0.05, #61676c), color-stop(1, #292c2d) );
- background:-moz-linear-gradient( center top -90deg, #787e82 0%, #61676c 5%, #292c2d 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#61676c', endColorstr='#292c2d');
- -moz-box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7);
- -webkit-box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7);
- box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7);
- border-top: 1px solid #474a4c;
- border-bottom: 1px solid #1d2020;
- height: 41px;
- width: 100%;
- behavior: url(<%= asset_path "PIE.htc" %>);
-}
-.hmenu{
- float: right;
- height: 41px;
-}
-#back_orbit{
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #70787d), color-stop(1, #3b4043) );
- background:-moz-linear-gradient( center top -90deg, #70787d 0%, #3b4043 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#70787d', endColorstr='#3b4043');
- -webkit-border-radius: 0px 0px 5px 5px;
- -moz-border-radius: 0px 0px 5px 5px;
- border-radius: 0px 0px 5px 5px;
- -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7);
- -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7);
- box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7);
- cursor: pointer;
- float: left;
- height: 43px;
- margin-left: 10px;
- width: 41px;
- behavior: url(<%= asset_path "PIE.htc" %>);
-}
-#back_orbit span{
- text-indent: -9999px;
- background: url(<%= asset_path "bar_orbit.png" %>) no-repeat scroll 0 0 transparent;
- display: block;
- height: 43px;
- width: 100%;
-}
-#back_orbit:hover{
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #fefefe), color-stop(1, #e4e4e4) );
- background:-moz-linear-gradient( center top -90deg, #fefefe 0%, #e4e4e4 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fefefe', endColorstr='#e4e4e4');
- -webkit-border-radius: 0px;
- -moz-border-radius: 0px;
- border-radius: 0px;
-}
-#back_orbit:hover span{
- background-position: 0 -44px;
-}
-#back_orbit:hover #orblist{
- display:block;
-}
-#orblist{
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #e4e4e4), color-stop(1, #FFFFFF) );
- background:-moz-linear-gradient( center top -90deg, #e4e4e4 0%, #FFFFFF 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e4e4e4', endColorstr='#FFFFFF');
- -webkit-border-radius: 0px 3px 3px 3px;
- -moz-border-radius: 0px 3px 3px 3px;
- border-radius: 0px 3px 3px 3px;
- -webkit-box-shadow: 0 3px 3px #000000;
- -moz-box-shadow: 0 3px 3px #000000;
- box-shadow: 0 3px 3px #000000;
- display: none;
- margin: 0;
- padding: 10px;
- position: absolute;
- top: 43px;
- width: 130px;
-}
-#orblist li{
- border-bottom:1px solid #aaa;
- list-style:none;
-}
-.orblink{
- color: #333333;
- display: block;
- font: 12px/100% arial,sans-serif;
- padding: 5px;
- text-decoration: none;
-}
-.orblink:hover{
- background:#eee;
- color:#333;
-}
-#log_out{
- -moz-box-shadow:inset 1px 0px 0px 0px #73777b;
- -webkit-box-shadow:inset 1px 0px 0px 0px #73777b;
- box-shadow:inset 1px 0px 0px 0px #73777b;
- border-right:1px solid #41474c;
- border-left:1px solid #41474c;
- float:right;
- width:41px;
- height:41px;
-}
-#log_out:hover{
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #01afde), color-stop(1, #007ec6) );
- background:-moz-linear-gradient( center top -90deg, #01afde 0%, #007ec6 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#01afde', endColorstr='#007ec6');
-}
-#log_out a{
- background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right 0 transparent;
- display: block;
- height: 41px;
- text-indent: -9999px;
- width: 41px;
-}
-#log_out a:hover{
- background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right bottom transparent !important;
-}
-.lang{
- color: #FFFFFF;
- float: right;
- font-size: 15px;
- line-height: 40px;
- margin-right: 10px;
-}
-.lang a{
- color:#fff;
- text-decoration:none;
-}
-.lang a:hover{
- text-decoration:underline;
-}
-#back_content{
- height: 100%;
-}
-#back_footer{
- background-color: #101010;
- bottom: 0;
- color: #FFFFFF;
- font-size: 11px;
- padding: 10px;
- position: fixed;
- width: 100%;
- left: 0;
- box-shadow: 0 -3px 4px #000;
-}
-.items_setup{
- padding:42px 0 0 0;
-}
-#back_sidebar .items_setup .list li{
- padding: 6px 0 7px 5px;
-}
-#back_sidebar .items_setup .list li a{
- display: inline;
- font-size: 0.9em;
- padding: 0;
-}
-#back_sidebar .items_setup .list li a span{
- background:none;
- padding:0;
- text-shadow:none;
-}
-.main {
- background: none repeat scroll 0 0 #FFFFFF;
- height: 100%;
- margin-left: 220px;
- padding: 0 40px;
- position: relative;
-}
-.main_list {
- padding-top: 70px;
-}
-.main_list ul {
- clear:both;
-}
-#porfile {
- padding-top: 100px;
-}
-/*add_buttom*/
-.button_bar {
- float: right;
- -moz-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black;
- -webkit-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black;
- box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black;
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4f4f4f), color-stop(1, #000000) );
- background:-moz-linear-gradient( center top, #4f4f4f 5%, #000000 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f4f4f', endColorstr='#000000');
- background-color:#4f4f4f;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- border-radius:5px;
- display:inline-block;
- padding:0;
- margin:10px 0 60px;
-}
-.button_bar a {
- text-decoration:none;
- text-shadow:0px -1px 0px #000000;
- font-size:12px;
- color:#EDEDED;
- border-right:1px solid #555;
- -moz-box-shadow:1px 0px 0px black;
- -webkit-box-shadow:1px 0px 0px black;
- box-shadow:1px 0px 0px black;
- padding: 6px 10px 4px;
- display: inline-block;
- float: left;
-}
-.button_bar a:active {
- padding: 7px 10px 3px !important;
- text-shadow:0px 1px 0px #000000;
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #000000), color-stop(1, #4f4f4f) );
- background:-moz-linear-gradient( center top, #000000 5%, #4f4f4f 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#4f4f4f');
-}
-.button_bar a:last-child {
- border-right:none;
- -moz-box-shadow:none;
- -webkit-box-shadow:none;
- box-shadow:none;
- -moz-border-radius:0px 5px 5px 0px;
- -webkit-border-radius:0px 5px 5px 0px;
- border-radius:0px 5px 5px 0px;
-}
-.button_bar a:first-child {
- -moz-border-radius:5px 0px 0px 5px;
- -webkit-border-radius:5px 0px 0px 5px;
- border-radius:5px 0px 0px 5px;
-}
-.button_bar a.new {
- padding: 5px 10px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- border-radius:5px;
-}
-.button_bar a:hover {
- color:#FFFFFF;
-}
-.up {
- margin:10px 0;
-}
-#person {
- left: 245px;
- position: fixed;
- text-align: center;
- top: 75px;
- width: 140px;
- background-color:#FFF;
- padding:15px;
- border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -moz-box-shadow: 0px 0px 4px #180902; /* Firefox */
- -webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */
- box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */
-}
-#file {
- display:none;
-}
-#person img {
-}
-.user_mail {
- border: medium none;
- border:1px solid #DDDDDD;
- color: #666666;
- font-size: 12px;
- width: 140px;
-}
-#person label {
- display: block;
- margin: 15px 0 0;
-}
-#person label input {
-}
-#person label #user_admin {
- float:right;
- margin: 0;
-}
-#person label span {
- text-align:left;
- font-size:11px;
- color:#888;
- display:block;
-}
-#person select {
- border: 1px solid #DDDDDD;
- padding: 0;
- width: 140px;
-}
-#porfile .users{
- margin-left: 180px;
-}
-.roles_block {
- background: url(<%= asset_path "75.png" %>) repeat left top;
- min-width:710px;
- margin-bottom:50px;
- position:relative;
- padding-bottom: 20px;
- border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- -moz-box-shadow: 0px 0px 4px #180902; /* Firefox */
- -webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */
- box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */
-}
-.roles_block h2 {
- color: #FFFFFF;
- font-weight: normal;
- margin: 0;
- padding: 0;
- position: absolute;
- text-shadow: 0 3px 2px #000000;
- top: -30px;
-}
-.main hr {
- height:8px;
- border:none;
- margin:0;
- border-radius: 5px 5px 0px 0px;
- -moz-border-radius: 5px 5px 0px 0px;
- -webkit-border-radius: 5px 5px 0px 0px;
- border-bottom:1px solid #000;
-}
-.main2{
- padding:70px 0 0;
-}
-#basic_block hr {
- background-color: #666666;
-}
-#teacher_block hr {
- background-color: #0071A9;
-}
-#student_block hr {
- background-color: #AF0045;
-}
-.info_input {
- padding:10px 20px;
-}
-.info_input table {
- color:#fff;
- width:100%;
- font-size:14px;
-}
-.info_input table td {
- padding:5px 10px 5px 0;
- width: 10%;
-}
-.info_input .list_head {
- background:url(<%= asset_path "line.png" %>) left bottom repeat-x;
-}
-.info_input .list_head td {
-}
-.info_input .list_item {
- color:#AEAEAE;
-}
-.info_input .add {
- display:block;
- padding-left:22px;
- font-size:12px;
- line-height:21px;
- height:19px;
- background:url(<%= asset_path "icon.png" %>) no-repeat -59px 0;
- margin-top: 10px;
- color: #DDDDDD;
-}
-
-.main table {
- width:100%;
-}
-.main td {
- padding-left:20px;
- color:#fff;
- font-size:14px;
- line-height:40px;
-}
-.main tr.have td{
- background: url(<%= asset_path "75.png" %>) repeat left top;
-}
-.main tr.have td:first-child{
- border-radius: 5px 0 0 5px;
- -moz-border-radius: 5px 0 0 5px;
- -webkit-border-radius: 5px 0 0 5px;
-}
-.main tr.have td:last-child{
- border-radius: 0 5px 5px 0;
- -moz-border-radius: 0 5px 5px 0;
- -webkit-border-radius: 0 5px 5px 0;
-}
-.main thead td {
- line-height:40px;
- font-size:16px;
- text-shadow: 0px 1px 1px #3e2914;
-}
-.main thead td.action {
- width:140px;
-}
-.main tbody td.roles {
- background-image: url(<%= asset_path "roles_type.jpg" %>);
- background-repeat: repeat-x;
-}
-.main tbody td.teacher {
- background-position: 0 -54px;
-}
-.main tbody td.student {
- background-position: 0 -5px;
-}
-.main tbody td.action a {
- background-image: url(<%= asset_path "icon.png" %>);
- display: inline-block;
- height: 19px;
- margin-right: 10px;
- top: 8px;
- text-indent: -9999px;
- width: 19px;
- position: relative;
-}
-.main tbody td.action a.show {
- background-position: left top;
-}
-.main tbody td.action a.show:hover {
- background-position: left -19px;
-}
-.main tbody td.action a.edit {
- background-position: -19px top;
-}
-.main tbody td.action a.edit:hover {
- background-position: -19px -19px;
-}
-.main tbody td.action a.delete {
- background-position: -38px top;
-}
-.main tbody td.action a.delete:hover {
- background-position: -38px -19px;
-}
-.main tbody td.action a.switch {
- background: url(<%= asset_path "switch.png" %>) no-repeat left 3px;
- width: 40px;
-}
-.main tbody tr.disable td.action a.switch {
- background-position:left bottom;
-}
-.main tbody td.action a.delete:hover {
- background-position: -38px -19px;
-}
-.main tbody tr.have {
-}
-.main tbody tr.disable {
- opacity: 0.7;
-}
-.main tbody tr {
- background:none;
- height:15px;
-}
-h1{
- margin:0 0 20px;
-}
-p{
- margin:0 0 10px;
-}
-
-#back_sidebar .items_setup .list li{
- background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top;
- border:none;
- padding: 0 0 0 5px;
-}
-#back_sidebar .items_setup .list li a{
- line-height:31px;
-}
-#back_sidebar .items_setup .list li:hover{
- background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top;
- border:none;
-}
-#back_sidebar .items_setup ul .list {
+html, body{
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
+html{
+ background: url(<%= asset_path "body.jpg" %>) no-repeat fixed 0 0 transparent;
+ background-size: cover;
+}
+
+body{
+ color: #000000;
+ font-family: Helvetica, '微軟正黑體';
+}
+#back_banner_link{
+ background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #787e82), color-stop(0.05, #61676c), color-stop(1, #292c2d) );
+ background:-moz-linear-gradient( center top -90deg, #787e82 0%, #61676c 5%, #292c2d 100% );
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#61676c', endColorstr='#292c2d');
+ -moz-box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7);
+ -webkit-box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7);
+ box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7);
+ border-top: 1px solid #474a4c;
+ border-bottom: 1px solid #1d2020;
+ height: 41px;
+ width: 100%;
+ behavior: url(<%= asset_path "PIE.htc" %>);
+}
+.hmenu{
+ float: right;
+ height: 41px;
+}
+#back_orbit{
+ background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #70787d), color-stop(1, #3b4043) );
+ background:-moz-linear-gradient( center top -90deg, #70787d 0%, #3b4043 100% );
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#70787d', endColorstr='#3b4043');
+ -webkit-border-radius: 0px 0px 5px 5px;
+ -moz-border-radius: 0px 0px 5px 5px;
+ border-radius: 0px 0px 5px 5px;
+ -moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7);
+ -webkit-box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7);
+ box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7);
+ cursor: pointer;
+ float: left;
+ height: 43px;
+ margin-left: 10px;
+ width: 41px;
+ behavior: url(<%= asset_path "PIE.htc" %>);
+}
+#back_orbit span{
+ text-indent: -9999px;
+ background: url(<%= asset_path "bar_orbit.png" %>) no-repeat scroll 0 0 transparent;
+ display: block;
+ height: 43px;
+ width: 100%;
+}
+#back_orbit:hover{
+ background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #fefefe), color-stop(1, #e4e4e4) );
+ background:-moz-linear-gradient( center top -90deg, #fefefe 0%, #e4e4e4 100% );
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fefefe', endColorstr='#e4e4e4');
+ -webkit-border-radius: 0px;
+ -moz-border-radius: 0px;
+ border-radius: 0px;
+}
+#back_orbit:hover span{
+ background-position: 0 -44px;
+}
+#back_orbit:hover #orblist{
+ display:block;
+}
+#orblist{
+ background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #e4e4e4), color-stop(1, #FFFFFF) );
+ background:-moz-linear-gradient( center top -90deg, #e4e4e4 0%, #FFFFFF 100% );
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e4e4e4', endColorstr='#FFFFFF');
+ -webkit-border-radius: 0px 3px 3px 3px;
+ -moz-border-radius: 0px 3px 3px 3px;
+ border-radius: 0px 3px 3px 3px;
+ -webkit-box-shadow: 0 3px 3px #000000;
+ -moz-box-shadow: 0 3px 3px #000000;
+ box-shadow: 0 3px 3px #000000;
+ display: none;
+ margin: 0;
+ padding: 10px;
+ position: absolute;
+ top: 43px;
+ width: 130px;
+}
+#orblist li{
+ border-bottom:1px solid #aaa;
+ list-style:none;
+}
+.orblink{
+ color: #333333;
+ display: block;
+ font: 12px/100% arial,sans-serif;
+ padding: 5px;
+ text-decoration: none;
+}
+.orblink:hover{
+ background:#eee;
+ color:#333;
+}
+#log_out{
+ -moz-box-shadow:inset 1px 0px 0px 0px #73777b;
+ -webkit-box-shadow:inset 1px 0px 0px 0px #73777b;
+ box-shadow:inset 1px 0px 0px 0px #73777b;
+ border-right:1px solid #41474c;
+ border-left:1px solid #41474c;
+ float:right;
+ width:41px;
+ height:41px;
+}
+#log_out:hover{
+ background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #01afde), color-stop(1, #007ec6) );
+ background:-moz-linear-gradient( center top -90deg, #01afde 0%, #007ec6 100% );
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#01afde', endColorstr='#007ec6');
+}
+#log_out a{
+ background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right 0 transparent;
+ display: block;
+ height: 41px;
+ text-indent: -9999px;
+ width: 41px;
+}
+#log_out a:hover{
+ background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right bottom transparent !important;
+}
+.lang{
+ color: #FFFFFF;
+ float: right;
+ font-size: 15px;
+ line-height: 40px;
+ margin-right: 10px;
+}
+.lang a{
+ color:#fff;
+ text-decoration:none;
+}
+.lang a:hover{
+ text-decoration:underline;
+}
+#back_content{
+ height: 100%;
+}
+#back_footer{
+ background-color: #101010;
+ bottom: 0;
+ color: #FFFFFF;
+ display:none;
+ font-size: 11px;
+ padding: 10px;
+ position: fixed;
+ width: 100%;
+ left: 0;
+ box-shadow: 0 -3px 4px #000;
+}
+.items_setup{
+ padding:42px 0 0 0;
+}
+#back_sidebar .items_setup .list li{
+ padding: 6px 0 7px 5px;
+}
+#back_sidebar .items_setup .list li a{
+ display: inline;
+ font-size: 0.9em;
+ padding: 0;
+}
+#back_sidebar .items_setup .list li a span{
+ background:none;
+ padding:0;
+ text-shadow:none;
+}
+.main {
+ background: none repeat scroll 0 0 #FFFFFF;
+ height: 100%;
+ margin-left: 220px;
+ padding: 0 40px;
+ position: relative;
+}
+.main_list {
+ padding-top: 70px;
+}
+.main_list ul {
+ clear:both;
+}
+#porfile {
+ padding-top: 100px;
+}
+/*add_buttom*/
+.button_bar {
+ float: right;
+ -moz-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black;
+ -webkit-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black;
+ box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black;
+ background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4f4f4f), color-stop(1, #000000) );
+ background:-moz-linear-gradient( center top, #4f4f4f 5%, #000000 100% );
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f4f4f', endColorstr='#000000');
+ background-color:#4f4f4f;
+ -moz-border-radius:5px;
+ -webkit-border-radius:5px;
+ border-radius:5px;
+ display:inline-block;
+ padding:0;
+ margin:10px 0 60px;
+}
+.button_bar a {
+ text-decoration:none;
+ text-shadow:0px -1px 0px #000000;
+ font-size:12px;
+ color:#EDEDED;
+ border-right:1px solid #555;
+ -moz-box-shadow:1px 0px 0px black;
+ -webkit-box-shadow:1px 0px 0px black;
+ box-shadow:1px 0px 0px black;
+ padding: 6px 10px 4px;
+ display: inline-block;
+ float: left;
+}
+.button_bar a:active {
+ padding: 7px 10px 3px !important;
+ text-shadow:0px 1px 0px #000000;
+ background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #000000), color-stop(1, #4f4f4f) );
+ background:-moz-linear-gradient( center top, #000000 5%, #4f4f4f 100% );
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#4f4f4f');
+}
+.button_bar a:last-child {
+ border-right:none;
+ -moz-box-shadow:none;
+ -webkit-box-shadow:none;
+ box-shadow:none;
+ -moz-border-radius:0px 5px 5px 0px;
+ -webkit-border-radius:0px 5px 5px 0px;
+ border-radius:0px 5px 5px 0px;
+}
+.button_bar a:first-child {
+ -moz-border-radius:5px 0px 0px 5px;
+ -webkit-border-radius:5px 0px 0px 5px;
+ border-radius:5px 0px 0px 5px;
+}
+.button_bar a.new {
+ padding: 5px 10px;
+ -moz-border-radius:5px;
+ -webkit-border-radius:5px;
+ border-radius:5px;
+}
+.button_bar a:hover {
+ color:#FFFFFF;
+}
+.up {
+ margin:10px 0;
+}
+#person {
+ left: 245px;
+ position: fixed;
+ text-align: center;
+ top: 75px;
+ width: 140px;
+ background-color:#FFF;
+ padding:15px;
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-box-shadow: 0px 0px 4px #180902; /* Firefox */
+ -webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */
+ box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */
+}
+#file {
+ display:none;
+}
+#person img {
+}
+.user_mail {
+ border: medium none;
+ border:1px solid #DDDDDD;
+ color: #666666;
+ font-size: 12px;
+ width: 140px;
+}
+#person label {
+ display: block;
+ margin: 15px 0 0;
+}
+#person label input {
+}
+#person label #user_admin {
+ float:right;
+ margin: 0;
+}
+#person label span {
+ text-align:left;
+ font-size:11px;
+ color:#888;
+ display:block;
+}
+#person select {
+ border: 1px solid #DDDDDD;
+ padding: 0;
+ width: 140px;
+}
+#porfile .users{
+ margin-left: 180px;
+}
+.roles_block {
+ background: url(<%= asset_path "75.png" %>) repeat left top;
+ min-width:710px;
+ margin-bottom:50px;
+ position:relative;
+ padding-bottom: 20px;
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-box-shadow: 0px 0px 4px #180902; /* Firefox */
+ -webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */
+ box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */
+}
+.roles_block h2 {
+ color: #FFFFFF;
+ font-weight: normal;
+ margin: 0;
+ padding: 0;
+ position: absolute;
+ text-shadow: 0 3px 2px #000000;
+ top: -30px;
+}
+.main hr {
+ height:8px;
+ border:none;
+ margin:0;
+ border-radius: 5px 5px 0px 0px;
+ -moz-border-radius: 5px 5px 0px 0px;
+ -webkit-border-radius: 5px 5px 0px 0px;
+ border-bottom:1px solid #000;
+}
+.main2{
+ padding:70px 0 0;
+}
+#basic_block hr {
+ background-color: #666666;
+}
+#teacher_block hr {
+ background-color: #0071A9;
+}
+#student_block hr {
+ background-color: #AF0045;
+}
+.info_input {
+ padding:10px 20px;
+}
+.info_input table {
+ color:#fff;
+ width:100%;
+ font-size:14px;
+}
+.info_input table td {
+ padding:5px 10px 5px 0;
+ width: 10%;
+}
+.info_input .list_head {
+ background:url(<%= asset_path "line.png" %>) left bottom repeat-x;
+}
+.info_input .list_head td {
+}
+.info_input .list_item {
+ color:#AEAEAE;
+}
+.info_input .add {
+ display:block;
+ padding-left:22px;
+ font-size:12px;
+ line-height:21px;
+ height:19px;
+ background:url(<%= asset_path "icon.png" %>) no-repeat -59px 0;
+ margin-top: 10px;
+ color: #DDDDDD;
+}
+
+.main table {
+ width:100%;
+}
+.main td {
+ padding-left:20px;
+ color:#fff;
+ font-size:14px;
+ line-height:40px;
+}
+.main tr.have td{
+ background: url(<%= asset_path "75.png" %>) repeat left top;
+}
+.main tr.have td:first-child{
+ border-radius: 5px 0 0 5px;
+ -moz-border-radius: 5px 0 0 5px;
+ -webkit-border-radius: 5px 0 0 5px;
+}
+.main tr.have td:last-child{
+ border-radius: 0 5px 5px 0;
+ -moz-border-radius: 0 5px 5px 0;
+ -webkit-border-radius: 0 5px 5px 0;
+}
+.main thead td {
+ line-height:40px;
+ font-size:16px;
+ text-shadow: 0px 1px 1px #3e2914;
+}
+.main thead td.action {
+ width:140px;
+}
+.main tbody td.roles {
+ background-image: url(<%= asset_path "roles_type.jpg" %>);
+ background-repeat: repeat-x;
+}
+.main tbody td.teacher {
+ background-position: 0 -54px;
+}
+.main tbody td.student {
+ background-position: 0 -5px;
+}
+.main tbody td.action a {
+ background-image: url(<%= asset_path "icon.png" %>);
+ display: inline-block;
+ height: 19px;
+ margin-right: 10px;
+ top: 8px;
+ text-indent: -9999px;
+ width: 19px;
+ position: relative;
+}
+.main tbody td.action a.show {
+ background-position: left top;
+}
+.main tbody td.action a.show:hover {
+ background-position: left -19px;
+}
+.main tbody td.action a.edit {
+ background-position: -19px top;
+}
+.main tbody td.action a.edit:hover {
+ background-position: -19px -19px;
+}
+.main tbody td.action a.delete {
+ background-position: -38px top;
+}
+.main tbody td.action a.delete:hover {
+ background-position: -38px -19px;
+}
+.main tbody td.action a.switch {
+ background: url(<%= asset_path "switch.png" %>) no-repeat left 3px;
+ width: 40px;
+}
+.main tbody tr.disable td.action a.switch {
+ background-position:left bottom;
+}
+.main tbody td.action a.delete:hover {
+ background-position: -38px -19px;
+}
+.main tbody tr.have {
+}
+.main tbody tr.disable {
+ opacity: 0.7;
+}
+.main tbody tr {
+ background:none;
+ height:15px;
+}
+h1{
+ margin:0 0 20px;
+}
+p{
+ margin:0 0 10px;
+}
+
+#back_sidebar .items_setup .list li{
+ background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top;
+ border:none;
+ padding: 0 0 0 5px;
+}
+#back_sidebar .items_setup .list li a{
+ line-height:31px;
+}
+#back_sidebar .items_setup .list li:hover{
+ background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top;
+ border:none;
+}
+#back_sidebar .items_setup ul .list {
}
\ No newline at end of file
diff --git a/app/assets/stylesheets/style.css.erb b/app/assets/stylesheets/style.css.erb
index 912df36a..beae5a8e 100644
--- a/app/assets/stylesheets/style.css.erb
+++ b/app/assets/stylesheets/style.css.erb
@@ -1,819 +1,830 @@
-@font-face{
- font-family: 'WebSymbolsRegular';
- src: url(<%= asset_path 'websymbols-regular-webfont.eot' %>);
- src: url(<%= asset_path 'websymbols-regular-webfont.eot?#iefix' %>) format('embedded-opentype'),
- url(<%= asset_path 'websymbols-regular-webfont.woff' %>) format('woff'),
- url(<%= asset_path 'websymbols-regular-webfont.ttf' %>) format('truetype'),
- url(<%= asset_path 'websymbols-regular-webfont.svg#WebSymbolsRegular' %>) format('svg');
-}
-.login-logo {
- text-indent: -9999px;
- background: url(<%= asset_path 'sign-in-logo.png' %>) no-repeat center 40px;
- padding-top: 40px;
- height: 160px;
-}
-#orbit-bar {
- margin-bottom: 0;
- position:fixed;
- width:100%;
- z-index: 99;
- top: 0;
- left: 0;
-}
-#orbit-bar .navbar-inner {
- height: 28px;
- -moz-border-radius: 0px;
- -webkit-border-radius: 0px;
- border-radius: 0px;
- padding-top: 2px;
- padding-bottom: 1px;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(127, 149, 165, 1), 0 -1px 0 rgba(31, 32, 36, 1) inset;
- -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(127, 149, 165, 1), 0 -1px 0 rgba(31, 32, 36, 1) inset;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(127, 149, 165, 1), 0 -1px 0 rgba(31, 32, 36, 1) inset;
- background-image: -moz-linear-gradient(top, #545b60, #191a1c);
- background-image: -ms-linear-gradient(top, #545b60, #191a1c);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#545b60), to(#191a1c));
- background-image: -webkit-linear-gradient(top, #545b60, #191a1c);
- background-image: -o-linear-gradient(top, #545b60, #191a1c);
- background-image: linear-gradient(top, #545b60, #191a1c);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#545b60', endColorstr='#191a1c', GradientType=0);
-}
-#orbit-bar .navbar-search {
- float: none;
- margin: 0 auto;
- text-align: center;
-}
-#orbit-bar .nav.pull-right {
- margin-right: -20px;
-}
-#orbit-bar .search-query {
- background-image: url(<%= asset_path 'main-search.png' %>);
- background-repeat: no-repeat;
- background-position: 5px 6px;
- padding-left: 25px;
- /*background-color: rgba(255, 255, 255, 0.8);
- color: #333;
- text-shadow: 0px 1px 0px #FFF;*/
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3) inset, 0 1px 0 rgba(255, 255, 255, 0.15);
-}
-#orbit-bar .search-query:focus {
- /*background-color: rgba(255, 255, 255, 0.9);
- text-shadow: 0px 1px 0px #FFF;*/
- background-position: 6px 7px;
-}
-#orbit-bar .container {
- width:100%;
-}
-#orbit-bar .orbit-logo .brand {
- background: url(<%= asset_path 'orbit-bar.png' %>) no-repeat -162px -5px;
- text-indent:-9999px;
- padding: 5px 20px 4px;
-}
-#orbit-bar .orbit-logo .brand:hover {
- background-color: rgba(0,157,220,1);
-}
-#orbit-bar .orbit-logo.open .brand {
- background-color: rgba(0,157,220,1);
-}
-#orbit-bar .orbit-logo .dropdown-menu {
- left: -15px;
-}
-#orbit-bar .nav > li {
- height: 28px;
-}
-#orbit-bar .nav > li > a:hover {
- background-color: rgba(0,157,220,1);
-}
-#orbit-bar .nav > li > a {
- background-image: url(<%= asset_path 'orbit-bar.png' %>);
- background-repeat:no-repeat;
- display: inline-block;
- width: 16px;
- height: 16px;
- text-indent: -9999px;
- padding:6px;
-}
-#orbit-bar .nav > li > a.orbit-bar-home {
- background-position: -10px -10px;
-}
-#orbit-bar .nav > li > a.orbit-bar-desktop {
- background-position: -100px -4px;
-}
-#orbit-bar .nav > li > a.orbit-bar-member {
- background-position: -4px -37px;
-}
-#orbit-bar .nav > li > a.orbit-bar-member {
- background-position: -10px -43px;
-}
-#orbit-bar .nav > li > a.orbit-bar-language {
- background-position: -42px -42px;
-}
-.language-menu .active {
- color: #ffffff;
- text-decoration: none;
- background-color: #0088cc;
-}
-#orbit-bar .nav > li > a.orbit-bar-account {
- background-image: none;
- height: 22px;
- padding: 3px;
- text-indent: inherit;
- min-width: 110px;
- width: auto !important;
- text-align: left;
-}
-#orbit-bar .nav span.member-name {
- display: inline-block;
- line-height: 22px;
- padding: 0 10px;
-}
-#orbit-bar .nav img.member-img {
- display: inline-block;
- float: left;
- max-width: 22px;
-}
-#orbit-bar .account-menu {
- right: 5px;
-}
-#orbit-bar .bar-login {
-
-}
-#orbit-bar .bar-login .open, #orbit-bar .open .orbit-bar-account {
- background-color: #009DDC;
-}
-#orbit-bar .bar-login .dropdown-menu {
- padding: 0 0 10px;
- max-width: 260px;
-}
-#orbit-bar .bar-login .dropdown-menu .log {
- margin: 10px 15px 0;
- list-style: none outside none;
-}
-#orbit-bar .bar-login .dropdown-menu .log .title {
- background: url(<%= asset_path 'sign-in-logo2.png' %>) no-repeat center center;
- height: 70px;
-}
-#orbit-bar .bar-login .dropdown-menu .log form {
- margin: 0 0 8px;
-}
-#orbit-bar .bar-login .dropdown-menu .log input {
- display: inline-block;
- margin: 0;
-}
-#orbit-bar .bar-login .dropdown-menu .log .span2 {
- width: 183px;
-}
-#orbit-bar .bar-login .dropdown-menu .log .forgot {
- margin-bottom: 20px;
- padding: 3px 0 0;
- float: right;
- display: inline-block;
- color: #0088CC;
-}
-#orbit-bar .bar-login .dropdown-menu .log .input-prepend {
- margin-top: 20px;
-}
-#orbit-bar .bar-login .dropdown-menu .log .remember {
- margin-top: 5px;
-}
-#orbit-bar .bar-login .dropdown-menu .log .forgot:hover {
- padding: 3px 0 0;
- float: right;
- display: inline-block;
- color: #005580;
- text-decoration: underline;
- background-color: transparent;
-}
-#orbit-bar .bar-login .dropdown-menu .log .btn {
- width: 220px;
-}
-#orbit-bar .bar-login .dropdown-menu .log .divider {
- position:relative;
- overflow: inherit;
- margin: 20px 0;
-}
-#orbit-bar .bar-login .dropdown-menu .log .divider span {
- position: absolute;
- width: 20px;
- height: 20px;
- background-color: #FFF;
- color: #666;
- top: -9px;
- left: 100px;
- font-size:16px;
- text-align: center;
-}
-#orbit-bar .bar-login .dropdown-menu .register {
- color: #FFFFFF;
- margin: 0 15px;
- width: 188px;
-}
-#main-sidebar {
- background: url(<%= asset_path 'background.jpg' %>) repeat left top;
- width: 155px;
- padding-right: 4px;
- border-right: 1px solid rgba(0,0,0,.2);
- position:fixed;
- top: 32px;
- z-index: 88;
-}
-#main-sidebar .nav {
- padding-top: 5px;
-}
-#main-sidebar .nav > li.active > a [class^="icons-"] {
- background-image: url(<%= asset_path 'icons_pack_white.png' %>);
-}
-#main-sidebar .nav > li > .nav {
- margin-left: -14px;
- margin-bottom: 5px;
- width: 155px;
- padding: 0;
- background-color: #FFF;
- /*border-radius: 0px 0px 8px 0px;
- -webkit-border-radius: 0px 0px 8px 0px;
- -moz-border-radius: 0px 0px 8px 0px;*/
- box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
- -moz-box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
- -webkit-box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
-}
-#main-sidebar .nav > li > .nav > li > a {
- margin-left: 0;
- padding-left: 19px;
- color: #999;
-}
-#main-sidebar .nav > li > .nav > li > a:hover {
- color: #000;
- background-color: #d7eeff;
-}
-#main-sidebar .nav > li > .nav > li.active > a {
- background-color: #b7b7b7;
- color: #fff;
-}
-#main-wrap {
- background-color: #FFF;
- margin-left:160px;
- padding-top: 32px;
- padding-bottom: 18px;
- position: relative;
- min-height: 100%;
-}
-#main-wrap > .form-actions {
- background-color: #FFF;
- text-align: center;
- padding: 17px 20px 0;
- margin: 0;
- border-top: none;
-}
-#main-wrap .subnav {
- height: auto;
- min-height: 36px;
-}
-#main-wrap .pagination {
- margin: 18px 0 0;
- text-align: center;
-}
-.main-list .route-group td {
- border: none;
-}
-#main-wrap .route-group .breadcrumb {
- background-image: none;
- border-radius: 0;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-width: 0 0 1px 0;
- box-shadow: none;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- margin-bottom: 0px;
- padding: 7px 8px 5px;
-}
-#main-wrap .breadcrumb li {
- font-size: 12px;
- color: #999;
-}
-#sub-wiget {
- clear: right;
- float: right;
- padding-right: 10px;
- padding-top: 8px;
- position: relative;
- margin-bottom: 13px;
- width: 304px;
-}
-.main-wiget .widget-box {
- margin: 5px 0;
- width: 100%;
-}
-#poststuff .form-actions {
- background-color: transparent;
- text-align: right;
- padding-left: 10px;
- padding-right: 10px;
- margin-bottom: 0;
- clear: both;
-}
-#poststuff form {
- margin-bottom: 0;
-}
-#post-body {
- float: left;
- clear: left;
- width: 100%;
- margin-right: -340px;
-}
-#post-body .title input[type=text] {
- margin-bottom: 0;
- width: 100%;
- height: 30px;
-}
-#post-body .btn-group {
- margin-left: 5px;
-}
-#post-body .well {
- margin: 0;
- border-radius: 0px;
- -moz-border-radius: 0px;
- box-shadow: none;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- border-top: none;
-}
-#post-body .editor {
- background-color: #333333;
- height: 20px;
- margin: 8px 0;
- width: 100%;
-}
-#post-body-content {
- margin-right: 320px;
- padding: 8px 0 8px 6px;
-}
-.filter .accordion-heading > a:hover {
- text-decoration: none;
-}
-.filter .accordion-group {
- border-bottom: none;
- border-top: none;
- border-left: 1px solid rgba(0,0,0,0.07);
- border-right: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- margin-bottom: -1px;
- position: relative;
- left: 0;
- top: 0;
-}
-.filter .accordion-group:last-child {
- border-right: 1px solid rgba(0,0,0,0.07);
-}
-.filter .accordion-heading .accordion-toggle {
- padding: 9px 15px;
-}
-.accordion-group .accordion-toggle .caret {
- border-top-color: #0088CC;
- margin-top: 6px;
-}
-.filter .active {
- background-color: #0088CC;
-}
-.filter .active a {
- color: #FFF;
-}
-.filters {
- background-color: rgba(0,0,0,0.075);
- -webkit-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.2);
- -moz-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.2);
- box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.2);
-}
-.filters > div {
- background-color: #dadada;
-}
-.filters .btn {
- margin-bottom: 5px;
-}
-.filters .accordion-inner {
- border-top: none;
- padding: 9px 15px 4px;
-}
-.filters .filter-clear {
- padding: 5px 5px 0;
- border-top: 1px solid rgba(0,0,0,0.1);
- text-align: right;
- margin: 0 5px;
- -webkit-box-shadow: inset 0 1px 0px rgba(255, 255, 255, 0.5);
- -moz-box-shadow: inset 0 1px 0px rgba(255, 255, 255, 0.5);
- box-shadow: inset 0 1px 0px rgba(255, 255, 255, 0.5);
-}
-.filters .in {
- /*border-bottom: 1px solid rgba(0,0,0,0.07)*/
-}
-.sign-in {
- width: 360px;
- margin: 0 auto 70px;
- background-color: #FFF;
- -moz-border-radius: 0 0 5px 5px;
- -webkit-border-radius: 0 0 5px 5px;
- border-radius: 0 0 5px 5px;
- -moz-box-shadow: 0 2px 2px rgba(143, 143, 143, 0.38);
- -webkit-box-shadow: 0 2px 2px rgba(143, 143, 143, 0.38);
- box-shadow: 0 2px 2px rgba(143, 143, 143, 0.38);
- border-width: 0px 1px 1px 1px;
- border-style: none solid solid solid;
- border-color: transparent #c6c6c6 #c6c6c6 #c6c6c6;
-}
-#signin-header {
- width: 340px;
- margin: 30px auto 0;
- line-height: 25px;
- padding: 5px 10px;
- border-width: 1px 1px 0px 1px;
- border-style: solid solid none solid;
- border-color: #c6c6c6 #c6c6c6 transparent #c6c6c6;
- background-color: #006dcc;
- background-image: -moz-linear-gradient(top, #dadada, #c0c0c0);
- background-image: -ms-linear-gradient(top, #dadada, #c0c0c0);
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dadada), to(#c0c0c0));
- background-image: -webkit-linear-gradient(top, #dadada, #c0c0c0);
- background-image: -o-linear-gradient(top, #dadada, #c0c0c0);
- background-image: linear-gradient(top, #dadada, #c0c0c0);
- -moz-border-radius: 5px 5px 0px 0px ;
- -webkit-border-radius: 5px 5px 0px 0px;
- border-radius: 5px 5px 0px 0px;
- -moz-box-shadow: 0 1px 0px rgba(20, 20, 20, 0.3);
- -webkit-box-shadow: 0 1px 0px rgba(20, 20, 20, 0.3);
- box-shadow: 0 1px 0px rgba(20, 20, 20, 0.3);
-}
-#signin-header h3 {
- color: #848484;
- text-shadow: 0 1px 0 #e9e9e9;
-}
-#sign-footer {
- width: 100%;
- position:fixed;
- bottom: 0;
- height: 40px;
- background-color: #dadada;
- color: #7a7a7a;
- box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.3);
- -moz-box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.3);
- -webkit-box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.3);
-}
-#sign-footer p {
- line-height: 40px;
- padding: 0 10px;
- text-align: right;
-}
-.sign-in .control-group label {
- text-align: left;
- width: auto;
- font-size: 15px;
-}
-.sign-in .forgot {
- padding-top: 5px;
-}
-.sign-in .content {
- padding: 10px;
-}
-.sign-in .form-actions {
- padding: 17px 10px 18px;
- margin: 0;
- -moz-border-radius: 0px 0px 5px 5px;
- -webkit-border-radius: 0px 0px 5px 5px;
- border-radius: 0px 0px 5px 5px;
-}
-.sign-in form {
- margin: 0;
-}
-.sign-in .control-group .help-inline {
- display:none;
-}
-.sign-in .error .help-inline {
- display:inline-block;
-}
-.web-symbol:after {
- font-family: 'WebSymbolsRegular';
- content: "{";
- margin-left: 2px;
- margin-top: 8px;
-}
-.active .web-symbol:after {
- content: "}";
-}
-/*icons*/
-.the-icons i:after {
- content: attr(class);
- display: block;
- font-style: normal;
- margin-left: 20px;
- width: 140px;
-}
-.the-icons i {
- display: block;
- margin-bottom: 5px;
-}
-[class^="text-"] {
- font-size: 15px !important;
-}
-.text-blue {
- color: #0088CC !important;
-}
-.text-red {
- color: #CC3300 !important;
-}
-.text-yellow {
- color: #ffcc00 !important;
-}
-.text-orange {
- color: #f7941d !important;
-}
-.text-purple {
- color: #a864a8 !important;
-}
-.text-palm {
- color: #a67c52 !important;
-}
-.text-green {
- color: #39b54a !important;
-}
-[class^="icons-"] {
- display: inline-block;
- width: 16px;
- height: 16px;
- vertical-align: text-top;
- background-image: url(<%= asset_path 'icons_pack.png' %>);
- background-position: 16px 16px;
- background-repeat: no-repeat;
- *margin-right: .3em;
- margin-right:10px;
-}
-[class^="icons-"]:last-child {
- *margin-left: 0;
-}
-.icons-white {
- background-image: url(<%= asset_path 'icons_pack_white.png' %>);
-}
-/*1*/
-.icons-pencil {
- background-position: 0 0;
-}
-.icons-brush {
- background-position: -32px 0;
-}
-.icons-pen {
- background-position: -64px 0;
-}
-.icons-brush-large {
- background-position: -128px 0;
-}
-.icons-pen-small {
- background-position: -96px 0;
-}
-.icons-bucket {
- background-position: -160px 0;
-}
-.icons-eye {
- background-position: -192px 0;
-}
-.icons-ban {
- background-position: -224px 0;
-}
-.icons-trash {
- background-position: -256px 0;
-}
-.icons-zoom {
- background-position: -288px 0;
-}
-.icons-zoom-out {
- background-position: -320px 0;
-}
-.icons-zoom-in {
- background-position: -352px 0;
-}
-.icons-magic {
- background-position: -384px 0;
-}
-.icons-aim {
- background-position: -416px 0;
-}
-/*2*/
-.icons-flag {
- background-position: 0 -32px;
-}
-.icons-paperclip {
- background-position: -32px -32px;
-}
-.icons-share {
- background-position: -64px -32px;
-}
-.icons-link {
- background-position: -96px -32px;
-}
-.icons-tag {
- background-position: -128px -32px;
-}
-.icons-lock {
- background-position: -160px -32px;
-}
-.icons-unlock {
- background-position: -192px -32px;
-}
-/*3*/
-.icons-content {
- background-position: -160px -66px;
-}
-.icons-announcement {
- background-position: -576px -64px;
-}
-/*4*/
-.icons-contact {
- background-position: 0 -96px;
-}
-.icons-roll {
- background-position: -32px -96px;
-}
-.icons-member {
- background-position: -288px -96px;
-}
-.icons-member-user {
- background-position: -64px -96px;
-}
-.icons-member-admin {
- background-position: -96px -96px;
-}
-.icons-member-manager{
- background-position: -128px -96px;
-}
-.icons-member-plus{
- background-position: -160px -96px;
-}
-.icons-member-minus{
- background-position: -192px -96px;
-}
-.icons-member-blockade{
- background-position: -224px -96px;
-}
-.icons-carte {
- background-position: -256px -96px;
-}
-.icons-building {
- background-position: -320px -96px;
-}
-.icons-calendar {
- background-position: -352px -96px;
-}
-.icons-calendars {
- background-position: -384px -96px;
-}
-.icons-out {
- background-position: -416px -96px;
-}
-.icons-desktop {
- background-position: -448px -96px;
-}
-/*5*/
-.icons-page-blank {
- background-position: 0px -128px;
-}
-.icons-page {
- background-position: -32px -128px;
-}
-.icons-page-copy {
- background-position: -64px -128px;
-}
-.icons- {
- background-position: -0px -128px;
-}
-/*6*/
-.icons-globe {
- background-position: -96px -160px;
-}
-.icons-structure {
- background-position: -352px -160px;
-}
-/*7*/
-.icons-purchase {
- background-position: -64px -192px;
-}
-/*8*/
-.icons-dashboard {
- background-position: 0 -224px;
-}
-.icons-cog {
- background-position: -32px -224px;
-}
-.icons-cogs {
- background-position: -64px -224px;
-}
-.icons-tool {
- background-position: -96px -224px;
-}
-.icons-screwdriver {
- background-position: -128px -224px;
-}
-.icons-wrench {
- background-position: -160px -224px;
-}
-.icons-toolbox {
- background-position: -192px -224px;
-}
-.icons-switch {
- background-position: -224px -224px;
-}
-.icons-valve {
- background-position: -256px -224px;
-}
-/*9*/
-.icons-picture {
- background-position: -256px -256px;
-}
-.icons-asset {
- background-position: -384px -256px;
-}
-.icons-asset-upload {
- background-position: -448px -256px;
-}
-.icons-asset-download {
- background-position: -416px -256px;
-}
-/*10*/
-.icons- {
- background-position: -0px -288px;
-}
-/*11*/
-.icons-pie {
- background-position: 0px -320px;
-}
-.icons-histogram {
- background-position: -32px -320px;
-}
-.icons-window {
- background-position: -64px -320px;
-}
-.icons-window-line{
- background-position: -96px -320px;
-}
-.icons-window-command{
- background-position: -128px -320px;
-}
-.icons-window-list{
- background-position: -160px -320px;
-}
-.icons-window-block{
- background-position: -192px -320px;
-}
-.icons-terminal{
- background-position: -224px -320px;
-}
-/*12*/
-.icons-star-thin {
- background-position: -416px -352px;
-}
-.icons- {
- background-position: -0px -352px;
-}
-/*13*/
-.icons- {
- background-position: -0px -384px;
-}
-/*14*/
-.icons- {
- background-position: -0px -416px;
-}
-/*15*/
-.icons- {
- background-position: -0px -448px;
-}
-/*16*/
-.icons- {
- background-position: -0px -480px;
-}
-/*17*/
-.icons- {
- background-position: -0px -512px;
-}
-/*18*/
-.icons-help {
- background-position: -160px -544px;
-}
-.icons- {
- background-position: -0px -544px;
-}
-/*19*/
-.icons-plus-cube {
- background-position: -192px -576px;
-}
-.icons-plus {
- background-position: -288px -576px;
-}
-.icons-power {
- background-position: -0px -608px;
-}
-/*20*/
-.icons- {
- background-position: -0px -608px;
-}
-/*21*/
-.icons- {
- background-position: -0px -640px;
+@font-face{
+ font-family: 'WebSymbolsRegular';
+ src: url(<%= asset_path 'websymbols-regular-webfont.eot' %>);
+ src: url(<%= asset_path 'websymbols-regular-webfont.eot?#iefix' %>) format('embedded-opentype'),
+ url(<%= asset_path 'websymbols-regular-webfont.woff' %>) format('woff'),
+ url(<%= asset_path 'websymbols-regular-webfont.ttf' %>) format('truetype'),
+ url(<%= asset_path 'websymbols-regular-webfont.svg#WebSymbolsRegular' %>) format('svg');
+}
+.login-logo {
+ text-indent: -9999px;
+ background: url(<%= asset_path 'sign-in-logo.png' %>) no-repeat center 40px;
+ padding-top: 40px;
+ height: 160px;
+}
+#orbit-bar {
+ margin-bottom: 0;
+ position:fixed;
+ width:100%;
+ z-index: 99;
+ top: 0;
+ left: 0;
+}
+#orbit-bar .navbar-inner {
+ height: 28px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
+ padding-top: 2px;
+ padding-bottom: 1px;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(127, 149, 165, 1), 0 -1px 0 rgba(31, 32, 36, 1) inset;
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(127, 149, 165, 1), 0 -1px 0 rgba(31, 32, 36, 1) inset;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(127, 149, 165, 1), 0 -1px 0 rgba(31, 32, 36, 1) inset;
+
+ background-image: -moz-linear-gradient(top, #5282A6, #133757);
+ background-image: -ms-linear-gradient(top, #5282A6, #133757);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5282A6), to(#133757));
+ background-image: -webkit-linear-gradient(top, #5282A6, #133757);
+ background-image: -o-linear-gradient(top, #5282A6, #133757);
+ background-image: linear-gradient(top, #5282A6, #133757);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5282A6', endColorstr='#133757', GradientType=0);
+ /*
+ background-image: -moz-linear-gradient(top, #545b60, #191a1c);
+ background-image: -ms-linear-gradient(top, #545b60, #191a1c);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#545b60), to(#191a1c));
+ background-image: -webkit-linear-gradient(top, #545b60, #191a1c);
+ background-image: -o-linear-gradient(top, #545b60, #191a1c);
+ background-image: linear-gradient(top, #545b60, #191a1c);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#545b60', endColorstr='#191a1c', GradientType=0);
+ */
+}
+#orbit-bar .navbar-search {
+ float: none;
+ margin: 0 auto;
+ text-align: center;
+}
+#orbit-bar .nav.pull-right {
+ margin-right: -20px;
+}
+#orbit-bar .search-query {
+ background-image: url(<%= asset_path 'main-search.png' %>);
+ background-repeat: no-repeat;
+ background-position: 5px 6px;
+ padding-left: 25px;
+ /*background-color: rgba(255, 255, 255, 0.8);
+ color: #333;
+ text-shadow: 0px 1px 0px #FFF;*/
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3) inset, 0 1px 0 rgba(255, 255, 255, 0.15);
+}
+#orbit-bar .search-query:focus {
+ /*background-color: rgba(255, 255, 255, 0.9);
+ text-shadow: 0px 1px 0px #FFF;*/
+ background-position: 6px 7px;
+}
+#orbit-bar .container {
+ width:100%;
+}
+#orbit-bar .orbit-logo .brand {
+ /* background: url(<%= asset_path 'orbit-bar.png' %>) no-repeat -162px -5px; */
+ background: url(<%= asset_path 'nccu_logo.png' %>) no-repeat 6px 0px;
+ text-indent:-9999px;
+ padding: 5px 20px 4px;
+}
+#orbit-bar .orbit-logo .brand:hover {
+ background-color: rgba(0,157,220,1);
+}
+#orbit-bar .orbit-logo.open .brand {
+ background-color: rgba(0,157,220,1);
+}
+#orbit-bar .orbit-logo .dropdown-menu {
+ left: -15px;
+}
+#orbit-bar .nav > li {
+ height: 28px;
+}
+#orbit-bar .nav > li > a:hover {
+ background-color: rgba(0,157,220,1);
+}
+#orbit-bar .nav > li > a {
+ background-image: url(<%= asset_path 'orbit-bar.png' %>);
+ background-repeat:no-repeat;
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ text-indent: -9999px;
+ padding:6px;
+}
+#orbit-bar .nav > li > a.orbit-bar-home {
+ background-position: -10px -10px;
+}
+#orbit-bar .nav > li > a.orbit-bar-desktop {
+ background-position: -100px -4px;
+}
+#orbit-bar .nav > li > a.orbit-bar-member {
+ background-position: -4px -37px;
+}
+#orbit-bar .nav > li > a.orbit-bar-member {
+ background-position: -10px -43px;
+}
+#orbit-bar .nav > li > a.orbit-bar-language {
+ background-position: -42px -42px;
+}
+.language-menu .active {
+ color: #ffffff;
+ text-decoration: none;
+ background-color: #0088cc;
+}
+#orbit-bar .nav > li > a.orbit-bar-account {
+ background-image: none;
+ height: 22px;
+ padding: 3px;
+ text-indent: inherit;
+ min-width: 110px;
+ width: auto !important;
+ text-align: left;
+}
+#orbit-bar .nav span.member-name {
+ display: inline-block;
+ line-height: 22px;
+ padding: 0 10px;
+}
+#orbit-bar .nav img.member-img {
+ display: inline-block;
+ float: left;
+ max-width: 22px;
+}
+#orbit-bar .account-menu {
+ right: 5px;
+}
+#orbit-bar .bar-login {
+
+}
+#orbit-bar .bar-login .open, #orbit-bar .open .orbit-bar-account {
+ background-color: #009DDC;
+}
+#orbit-bar .bar-login .dropdown-menu {
+ padding: 0 0 10px;
+ max-width: 260px;
+}
+#orbit-bar .bar-login .dropdown-menu .log {
+ margin: 10px 15px 0;
+ list-style: none outside none;
+}
+#orbit-bar .bar-login .dropdown-menu .log .title {
+ background: url(<%= asset_path 'sign-in-logo2.png' %>) no-repeat center center;
+ height: 70px;
+}
+#orbit-bar .bar-login .dropdown-menu .log form {
+ margin: 0 0 8px;
+}
+#orbit-bar .bar-login .dropdown-menu .log input {
+ display: inline-block;
+ margin: 0;
+}
+#orbit-bar .bar-login .dropdown-menu .log .span2 {
+ width: 183px;
+}
+#orbit-bar .bar-login .dropdown-menu .log .forgot {
+ margin-bottom: 20px;
+ padding: 3px 0 0;
+ float: right;
+ display: inline-block;
+ color: #0088CC;
+}
+#orbit-bar .bar-login .dropdown-menu .log .input-prepend {
+ margin-top: 20px;
+}
+#orbit-bar .bar-login .dropdown-menu .log .remember {
+ margin-top: 5px;
+}
+#orbit-bar .bar-login .dropdown-menu .log .forgot:hover {
+ padding: 3px 0 0;
+ float: right;
+ display: inline-block;
+ color: #005580;
+ text-decoration: underline;
+ background-color: transparent;
+}
+#orbit-bar .bar-login .dropdown-menu .log .btn {
+ width: 220px;
+}
+#orbit-bar .bar-login .dropdown-menu .log .divider {
+ position:relative;
+ overflow: inherit;
+ margin: 20px 0;
+}
+#orbit-bar .bar-login .dropdown-menu .log .divider span {
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background-color: #FFF;
+ color: #666;
+ top: -9px;
+ left: 100px;
+ font-size:16px;
+ text-align: center;
+}
+#orbit-bar .bar-login .dropdown-menu .register {
+ color: #FFFFFF;
+ margin: 0 15px;
+ width: 188px;
+}
+#main-sidebar {
+ background: url(<%= asset_path 'background.jpg' %>) repeat left top;
+ width: 155px;
+ padding-right: 4px;
+ border-right: 1px solid rgba(0,0,0,.2);
+ position:fixed;
+ top: 32px;
+ z-index: 88;
+}
+#main-sidebar .nav {
+ padding-top: 5px;
+}
+#main-sidebar .nav > li.active > a [class^="icons-"] {
+ background-image: url(<%= asset_path 'icons_pack_white.png' %>);
+}
+#main-sidebar .nav > li > .nav {
+ margin-left: -14px;
+ margin-bottom: 5px;
+ width: 155px;
+ padding: 0;
+ background-color: #FFF;
+ /*border-radius: 0px 0px 8px 0px;
+ -webkit-border-radius: 0px 0px 8px 0px;
+ -moz-border-radius: 0px 0px 8px 0px;*/
+ box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
+ -moz-box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
+ -webkit-box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
+}
+#main-sidebar .nav > li > .nav > li > a {
+ margin-left: 0;
+ padding-left: 19px;
+ color: #999;
+}
+#main-sidebar .nav > li > .nav > li > a:hover {
+ color: #000;
+ background-color: #d7eeff;
+}
+#main-sidebar .nav > li > .nav > li.active > a {
+ background-color: #b7b7b7;
+ color: #fff;
+}
+#main-wrap {
+ background-color: #FFF;
+ margin-left:160px;
+ padding-top: 32px;
+ padding-bottom: 18px;
+ position: relative;
+ min-height: 100%;
+}
+#main-wrap > .form-actions {
+ background-color: #FFF;
+ text-align: center;
+ padding: 17px 20px 0;
+ margin: 0;
+ border-top: none;
+}
+#main-wrap .subnav {
+ height: auto;
+ min-height: 36px;
+}
+#main-wrap .pagination {
+ margin: 18px 0 0;
+ text-align: center;
+}
+.main-list .route-group td {
+ border: none;
+}
+#main-wrap .route-group .breadcrumb {
+ background-image: none;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-width: 0 0 1px 0;
+ box-shadow: none;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ margin-bottom: 0px;
+ padding: 7px 8px 5px;
+}
+#main-wrap .breadcrumb li {
+ font-size: 12px;
+ color: #999;
+}
+#sub-wiget {
+ clear: right;
+ float: right;
+ padding-right: 10px;
+ padding-top: 8px;
+ position: relative;
+ margin-bottom: 13px;
+ width: 304px;
+}
+.main-wiget .widget-box {
+ margin: 5px 0;
+ width: 100%;
+}
+#poststuff .form-actions {
+ background-color: transparent;
+ text-align: right;
+ padding-left: 10px;
+ padding-right: 10px;
+ margin-bottom: 0;
+ clear: both;
+}
+#poststuff form {
+ margin-bottom: 0;
+}
+#post-body {
+ float: left;
+ clear: left;
+ width: 100%;
+ margin-right: -340px;
+}
+#post-body .title input[type=text] {
+ margin-bottom: 0;
+ width: 100%;
+ height: 30px;
+}
+#post-body .btn-group {
+ margin-left: 5px;
+}
+#post-body .well {
+ margin: 0;
+ border-radius: 0px;
+ -moz-border-radius: 0px;
+ box-shadow: none;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ border-top: none;
+}
+#post-body .editor {
+ background-color: #333333;
+ height: 20px;
+ margin: 8px 0;
+ width: 100%;
+}
+#post-body-content {
+ margin-right: 320px;
+ padding: 8px 0 8px 6px;
+}
+.filter .accordion-heading > a:hover {
+ text-decoration: none;
+}
+.filter .accordion-group {
+ border-bottom: none;
+ border-top: none;
+ border-left: 1px solid rgba(0,0,0,0.07);
+ border-right: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ margin-bottom: -1px;
+ position: relative;
+ left: 0;
+ top: 0;
+}
+.filter .accordion-group:last-child {
+ border-right: 1px solid rgba(0,0,0,0.07);
+}
+.filter .accordion-heading .accordion-toggle {
+ padding: 9px 15px;
+}
+.accordion-group .accordion-toggle .caret {
+ border-top-color: #0088CC;
+ margin-top: 6px;
+}
+.filter .active {
+ background-color: #0088CC;
+}
+.filter .active a {
+ color: #FFF;
+}
+.filters {
+ background-color: rgba(0,0,0,0.075);
+ -webkit-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.2);
+ box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.2);
+}
+.filters > div {
+ background-color: #dadada;
+}
+.filters .btn {
+ margin-bottom: 5px;
+}
+.filters .accordion-inner {
+ border-top: none;
+ padding: 9px 15px 4px;
+}
+.filters .filter-clear {
+ padding: 5px 5px 0;
+ border-top: 1px solid rgba(0,0,0,0.1);
+ text-align: right;
+ margin: 0 5px;
+ -webkit-box-shadow: inset 0 1px 0px rgba(255, 255, 255, 0.5);
+ -moz-box-shadow: inset 0 1px 0px rgba(255, 255, 255, 0.5);
+ box-shadow: inset 0 1px 0px rgba(255, 255, 255, 0.5);
+}
+.filters .in {
+ /*border-bottom: 1px solid rgba(0,0,0,0.07)*/
+}
+.sign-in {
+ width: 360px;
+ margin: 0 auto 70px;
+ background-color: #FFF;
+ -moz-border-radius: 0 0 5px 5px;
+ -webkit-border-radius: 0 0 5px 5px;
+ border-radius: 0 0 5px 5px;
+ -moz-box-shadow: 0 2px 2px rgba(143, 143, 143, 0.38);
+ -webkit-box-shadow: 0 2px 2px rgba(143, 143, 143, 0.38);
+ box-shadow: 0 2px 2px rgba(143, 143, 143, 0.38);
+ border-width: 0px 1px 1px 1px;
+ border-style: none solid solid solid;
+ border-color: transparent #c6c6c6 #c6c6c6 #c6c6c6;
+}
+#signin-header {
+ width: 340px;
+ margin: 30px auto 0;
+ line-height: 25px;
+ padding: 5px 10px;
+ border-width: 1px 1px 0px 1px;
+ border-style: solid solid none solid;
+ border-color: #c6c6c6 #c6c6c6 transparent #c6c6c6;
+ background-color: #006dcc;
+ background-image: -moz-linear-gradient(top, #dadada, #c0c0c0);
+ background-image: -ms-linear-gradient(top, #dadada, #c0c0c0);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dadada), to(#c0c0c0));
+ background-image: -webkit-linear-gradient(top, #dadada, #c0c0c0);
+ background-image: -o-linear-gradient(top, #dadada, #c0c0c0);
+ background-image: linear-gradient(top, #dadada, #c0c0c0);
+ -moz-border-radius: 5px 5px 0px 0px ;
+ -webkit-border-radius: 5px 5px 0px 0px;
+ border-radius: 5px 5px 0px 0px;
+ -moz-box-shadow: 0 1px 0px rgba(20, 20, 20, 0.3);
+ -webkit-box-shadow: 0 1px 0px rgba(20, 20, 20, 0.3);
+ box-shadow: 0 1px 0px rgba(20, 20, 20, 0.3);
+}
+#signin-header h3 {
+ color: #848484;
+ text-shadow: 0 1px 0 #e9e9e9;
+}
+#sign-footer {
+ width: 100%;
+ position:fixed;
+ bottom: 0;
+ height: 40px;
+ background-color: #dadada;
+ color: #7a7a7a;
+ box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.3);
+}
+#sign-footer p {
+ line-height: 40px;
+ padding: 0 10px;
+ text-align: right;
+}
+.sign-in .control-group label {
+ text-align: left;
+ width: auto;
+ font-size: 15px;
+}
+.sign-in .forgot {
+ padding-top: 5px;
+}
+.sign-in .content {
+ padding: 10px;
+}
+.sign-in .form-actions {
+ padding: 17px 10px 18px;
+ margin: 0;
+ -moz-border-radius: 0px 0px 5px 5px;
+ -webkit-border-radius: 0px 0px 5px 5px;
+ border-radius: 0px 0px 5px 5px;
+}
+.sign-in form {
+ margin: 0;
+}
+.sign-in .control-group .help-inline {
+ display:none;
+}
+.sign-in .error .help-inline {
+ display:inline-block;
+}
+.web-symbol:after {
+ font-family: 'WebSymbolsRegular';
+ content: "{";
+ margin-left: 2px;
+ margin-top: 8px;
+}
+.active .web-symbol:after {
+ content: "}";
+}
+/*icons*/
+.the-icons i:after {
+ content: attr(class);
+ display: block;
+ font-style: normal;
+ margin-left: 20px;
+ width: 140px;
+}
+.the-icons i {
+ display: block;
+ margin-bottom: 5px;
+}
+[class^="text-"] {
+ font-size: 15px !important;
+}
+.text-blue {
+ color: #0088CC !important;
+}
+.text-red {
+ color: #CC3300 !important;
+}
+.text-yellow {
+ color: #ffcc00 !important;
+}
+.text-orange {
+ color: #f7941d !important;
+}
+.text-purple {
+ color: #a864a8 !important;
+}
+.text-palm {
+ color: #a67c52 !important;
+}
+.text-green {
+ color: #39b54a !important;
+}
+[class^="icons-"] {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ vertical-align: text-top;
+ background-image: url(<%= asset_path 'icons_pack.png' %>);
+ background-position: 16px 16px;
+ background-repeat: no-repeat;
+ *margin-right: .3em;
+ margin-right:10px;
+}
+[class^="icons-"]:last-child {
+ *margin-left: 0;
+}
+.icons-white {
+ background-image: url(<%= asset_path 'icons_pack_white.png' %>);
+}
+/*1*/
+.icons-pencil {
+ background-position: 0 0;
+}
+.icons-brush {
+ background-position: -32px 0;
+}
+.icons-pen {
+ background-position: -64px 0;
+}
+.icons-brush-large {
+ background-position: -128px 0;
+}
+.icons-pen-small {
+ background-position: -96px 0;
+}
+.icons-bucket {
+ background-position: -160px 0;
+}
+.icons-eye {
+ background-position: -192px 0;
+}
+.icons-ban {
+ background-position: -224px 0;
+}
+.icons-trash {
+ background-position: -256px 0;
+}
+.icons-zoom {
+ background-position: -288px 0;
+}
+.icons-zoom-out {
+ background-position: -320px 0;
+}
+.icons-zoom-in {
+ background-position: -352px 0;
+}
+.icons-magic {
+ background-position: -384px 0;
+}
+.icons-aim {
+ background-position: -416px 0;
+}
+/*2*/
+.icons-flag {
+ background-position: 0 -32px;
+}
+.icons-paperclip {
+ background-position: -32px -32px;
+}
+.icons-share {
+ background-position: -64px -32px;
+}
+.icons-link {
+ background-position: -96px -32px;
+}
+.icons-tag {
+ background-position: -128px -32px;
+}
+.icons-lock {
+ background-position: -160px -32px;
+}
+.icons-unlock {
+ background-position: -192px -32px;
+}
+/*3*/
+.icons-content {
+ background-position: -160px -66px;
+}
+.icons-announcement {
+ background-position: -576px -64px;
+}
+/*4*/
+.icons-contact {
+ background-position: 0 -96px;
+}
+.icons-roll {
+ background-position: -32px -96px;
+}
+.icons-member {
+ background-position: -288px -96px;
+}
+.icons-member-user {
+ background-position: -64px -96px;
+}
+.icons-member-admin {
+ background-position: -96px -96px;
+}
+.icons-member-manager{
+ background-position: -128px -96px;
+}
+.icons-member-plus{
+ background-position: -160px -96px;
+}
+.icons-member-minus{
+ background-position: -192px -96px;
+}
+.icons-member-blockade{
+ background-position: -224px -96px;
+}
+.icons-carte {
+ background-position: -256px -96px;
+}
+.icons-building {
+ background-position: -320px -96px;
+}
+.icons-calendar {
+ background-position: -352px -96px;
+}
+.icons-calendars {
+ background-position: -384px -96px;
+}
+.icons-out {
+ background-position: -416px -96px;
+}
+.icons-desktop {
+ background-position: -448px -96px;
+}
+/*5*/
+.icons-page-blank {
+ background-position: 0px -128px;
+}
+.icons-page {
+ background-position: -32px -128px;
+}
+.icons-page-copy {
+ background-position: -64px -128px;
+}
+.icons- {
+ background-position: -0px -128px;
+}
+/*6*/
+.icons-globe {
+ background-position: -96px -160px;
+}
+.icons-structure {
+ background-position: -352px -160px;
+}
+/*7*/
+.icons-purchase {
+ background-position: -64px -192px;
+}
+/*8*/
+.icons-dashboard {
+ background-position: 0 -224px;
+}
+.icons-cog {
+ background-position: -32px -224px;
+}
+.icons-cogs {
+ background-position: -64px -224px;
+}
+.icons-tool {
+ background-position: -96px -224px;
+}
+.icons-screwdriver {
+ background-position: -128px -224px;
+}
+.icons-wrench {
+ background-position: -160px -224px;
+}
+.icons-toolbox {
+ background-position: -192px -224px;
+}
+.icons-switch {
+ background-position: -224px -224px;
+}
+.icons-valve {
+ background-position: -256px -224px;
+}
+/*9*/
+.icons-picture {
+ background-position: -256px -256px;
+}
+.icons-asset {
+ background-position: -384px -256px;
+}
+.icons-asset-upload {
+ background-position: -448px -256px;
+}
+.icons-asset-download {
+ background-position: -416px -256px;
+}
+/*10*/
+.icons- {
+ background-position: -0px -288px;
+}
+/*11*/
+.icons-pie {
+ background-position: 0px -320px;
+}
+.icons-histogram {
+ background-position: -32px -320px;
+}
+.icons-window {
+ background-position: -64px -320px;
+}
+.icons-window-line{
+ background-position: -96px -320px;
+}
+.icons-window-command{
+ background-position: -128px -320px;
+}
+.icons-window-list{
+ background-position: -160px -320px;
+}
+.icons-window-block{
+ background-position: -192px -320px;
+}
+.icons-terminal{
+ background-position: -224px -320px;
+}
+/*12*/
+.icons-star-thin {
+ background-position: -416px -352px;
+}
+.icons- {
+ background-position: -0px -352px;
+}
+/*13*/
+.icons- {
+ background-position: -0px -384px;
+}
+/*14*/
+.icons- {
+ background-position: -0px -416px;
+}
+/*15*/
+.icons- {
+ background-position: -0px -448px;
+}
+/*16*/
+.icons- {
+ background-position: -0px -480px;
+}
+/*17*/
+.icons- {
+ background-position: -0px -512px;
+}
+/*18*/
+.icons-help {
+ background-position: -160px -544px;
+}
+.icons- {
+ background-position: -0px -544px;
+}
+/*19*/
+.icons-plus-cube {
+ background-position: -192px -576px;
+}
+.icons-plus {
+ background-position: -288px -576px;
+}
+.icons-power {
+ background-position: -0px -608px;
+}
+/*20*/
+.icons- {
+ background-position: -0px -608px;
+}
+/*21*/
+.icons- {
+ background-position: -0px -640px;
}
\ No newline at end of file
diff --git a/app/controllers/admin/app_auths_controller.rb b/app/controllers/admin/app_auths_controller.rb
index cb3340fd..9e980e53 100644
--- a/app/controllers/admin/app_auths_controller.rb
+++ b/app/controllers/admin/app_auths_controller.rb
@@ -21,7 +21,10 @@ class Admin::AppAuthsController < ApplicationController
def create
app_auth = AppAuth.find_or_create_by(module_app_id: params[:module_app_id])
- params[:new].each do |item|
+ auth_all = params[:auth_all] || false
+ app_auth.update_attribute(:all,auth_all)
+ new_array = params[:new] || []
+ new_array.each do |item|
field = item[0]
field_value = item[1]
if field_value!=''
@@ -66,6 +69,8 @@ class Admin::AppAuthsController < ApplicationController
@module_app = ModuleApp.find(params[:id])
end
-
+ def show
+ @module_app = ModuleApp.find(params[:id])
+ end
end
\ No newline at end of file
diff --git a/app/controllers/admin/module_apps_controller.rb b/app/controllers/admin/module_apps_controller.rb
index e80d4023..13075a42 100644
--- a/app/controllers/admin/module_apps_controller.rb
+++ b/app/controllers/admin/module_apps_controller.rb
@@ -21,6 +21,10 @@ class Admin::ModuleAppsController < ApplicationController
@module_app = ModuleApp.find(params[:id])
end
+ def show
+ @module_app = ModuleApp.find(params[:id])
+
+ end
def update
@module_app = ModuleApp.find(params[:id])
@@ -97,7 +101,7 @@ class Admin::ModuleAppsController < ApplicationController
end
#user is not permited to do that
flash[:notice] = t('admin.app_auth.operation_not_permitted')
- redirect_to :action => "edit" # [TODO] maybe need to redirect to some other page
+ render :nothing => true, :status => 403
end
@@ -109,7 +113,7 @@ class Admin::ModuleAppsController < ApplicationController
end
#user is not permited to do that
flash[:notice] = t('admin.app_auth.operation_not_permitted')
- redirect_to :action => "edit" # [TODO] maybe need to redirect to some other page
+ render :nothing => true, :status => 403
end
end
\ No newline at end of file
diff --git a/app/controllers/admin/object_auths_controller.rb b/app/controllers/admin/object_auths_controller.rb
index ce404e53..58219acf 100644
--- a/app/controllers/admin/object_auths_controller.rb
+++ b/app/controllers/admin/object_auths_controller.rb
@@ -1,8 +1,12 @@
class Admin::ObjectAuthsController < ApplicationController
+ include OrbitCoreLib::PermissionUnility
layout "admin"
before_filter :authenticate_user!
+ before_filter :check_if_user_can_do_object_auth
# before_filter :is_admin? ,:only => :index
+
+
def index
# if current_user.admin?
@object_auths = ObjectAuth.all
@@ -14,6 +18,7 @@ class Admin::ObjectAuthsController < ApplicationController
def new
obj = eval(params[:type]).find params[:obj_id]
@object_auth=obj.object_auths.build
+ @object_auth_title_option = eval(params[:type]+"::ObjectAuthTitlesOptions")
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @post }
@@ -22,13 +27,21 @@ class Admin::ObjectAuthsController < ApplicationController
def create
obj = eval(params[:object_auth][:type]).find params[:object_auth][:obj_id]
- @object_auth=obj.object_auths.create :title=> params[:object_auth][:title]
- redirect_to edit_admin_object_auth_path(@object_auth)
+ @object_auth=obj.object_auths.build :title=> params[:object_auth][:title]
+ if @object_auth.save
+ redirect_to edit_admin_object_auth_path(@object_auth)
+ else
+ flash[:error] = t('admin.object.a_object_must_have_only_one_object_auth_profile_for_each_action')
+ redirect_to (:back)
+ end
end
def create_role
object_auth = ObjectAuth.find(params[:id])
- params[:new].each do |item|
+ auth_all = params[:auth_all] || false
+ object_auth.update_attribute(:all,auth_all)
+ new_array = params[:new] || []
+ new_array.each do |item|
field = item[0]
field_value = item[1]
if field_value!=''
@@ -69,7 +82,11 @@ class Admin::ObjectAuthsController < ApplicationController
def edit
@object_auth = ObjectAuth.find(params[:id])
end
-
-
+private
+ def check_if_user_can_do_object_auth
+ unless check_permission(:manager)
+ render :nothing => true, :status => 403
+ end
+ end
end
\ No newline at end of file
diff --git a/app/controllers/admin/sessions_controller.rb b/app/controllers/admin/sessions_controller.rb
new file mode 100644
index 00000000..00649580
--- /dev/null
+++ b/app/controllers/admin/sessions_controller.rb
@@ -0,0 +1,8 @@
+class SessionsController < Devise::SessionsController
+
+ def create
+ super
+ reset_session
+ end
+
+end
\ No newline at end of file
diff --git a/app/controllers/obit_frontend_controller.rb b/app/controllers/obit_frontend_controller.rb
deleted file mode 100644
index fb42ac78..00000000
--- a/app/controllers/obit_frontend_controller.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-class ObitFrontendController< ObitFrontendComponentController
-
-end
\ No newline at end of file
diff --git a/app/controllers/obit_widget_controller.rb b/app/controllers/obit_widget_controller.rb
deleted file mode 100644
index e0a9746d..00000000
--- a/app/controllers/obit_widget_controller.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-class ObitWidgetController< ObitFrontendComponentController
-
-end
\ No newline at end of file
diff --git a/app/controllers/orbit_backend_controller.rb b/app/controllers/orbit_backend_controller.rb
new file mode 100644
index 00000000..b52384c6
--- /dev/null
+++ b/app/controllers/orbit_backend_controller.rb
@@ -0,0 +1,24 @@
+class OrbitBackendController< ApplicationController
+ before_filter :authenticate_user!
+ before_filter :setup_vars
+ # before_filter {|c| c.front_end_available(@app_title)}
+ before_filter :check_user_can_use,:except => [:public]
+ include OrbitCoreLib::PermissionUnility
+ include AdminHelper
+
+ layout 'admin'
+
+ def setup_vars
+ @app_title = request.fullpath.split('/')[2]
+ @module_app = ModuleApp.first(conditions: {:key => @app_title} )
+ end
+
+ private
+
+ def check_user_can_use
+ unless check_permission
+ redirect_to polymorphic_path(['panel',@app_title,'back_end','public'])
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/app/controllers/obit_frontend_component_controller.rb b/app/controllers/orbit_frontend_component_controller.rb
similarity index 64%
rename from app/controllers/obit_frontend_component_controller.rb
rename to app/controllers/orbit_frontend_component_controller.rb
index d0be3a25..185dbce6 100644
--- a/app/controllers/obit_frontend_component_controller.rb
+++ b/app/controllers/orbit_frontend_component_controller.rb
@@ -1,7 +1,7 @@
-class ObitFrontendComponentController< ApplicationController
+class OrbitFrontendComponentController< ApplicationController
before_filter :setup_vars
before_filter {|c| c.front_end_available(@app_title)}
- layout 'module_widget'
+ layout :false
def setup_vars
@app_title = request.fullpath.split('/')[2]
diff --git a/app/controllers/orbit_frontend_controller.rb b/app/controllers/orbit_frontend_controller.rb
new file mode 100644
index 00000000..e1be8167
--- /dev/null
+++ b/app/controllers/orbit_frontend_controller.rb
@@ -0,0 +1,3 @@
+class OrbitFrontendController< OrbitFrontendComponentController
+
+end
\ No newline at end of file
diff --git a/app/controllers/orbit_widget_controller.rb b/app/controllers/orbit_widget_controller.rb
new file mode 100644
index 00000000..47e24fe0
--- /dev/null
+++ b/app/controllers/orbit_widget_controller.rb
@@ -0,0 +1,3 @@
+class OrbitWidgetController< OrbitFrontendComponentController
+
+end
\ No newline at end of file
diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb
index aa66238d..8ea35391 100644
--- a/app/controllers/pages_controller.rb
+++ b/app/controllers/pages_controller.rb
@@ -30,7 +30,11 @@ class PagesController < ApplicationController
end
def index_from_link
- redirect_to "/#{@item.full_name}"
+ if params[:page]
+ redirect_to "/#{@item.full_name}?page=#{params[:page]}"
+ else
+ redirect_to "/#{@item.full_name}"
+ end
end
def show_from_link
diff --git a/app/helpers/admin/app_auth_helper.rb b/app/helpers/admin/app_auth_helper.rb
index fe63a2a6..1a022e94 100644
--- a/app/helpers/admin/app_auth_helper.rb
+++ b/app/helpers/admin/app_auth_helper.rb
@@ -3,4 +3,9 @@ module Admin::AppAuthHelper
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'
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'
end
+
+ def if_permitted_to(user,role)
+
+ end
+
end
\ No newline at end of file
diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb
index 6ae3a213..021687da 100644
--- a/app/helpers/admin_helper.rb
+++ b/app/helpers/admin_helper.rb
@@ -5,4 +5,17 @@ module AdminHelper
link_to('/' , admin_items_path) + ( @parent_items.map{ |i| link_to(i.name, admin_items_path(:parent_id=>i.id) ) } << @parent_item.name ).join("/").html_safe
end
+ # Check if the current_user is manager in current module app
+ def is_manager?
+ @module_app.is_manager?(current_user) || is_admin?
+ end
+
+ # Check if the current_user is sub manager in current module app
+ def is_sub_manager?
+ @module_app.is_sub_manager?(current_user)|| is_admin?
+ end
+
+ def is_admin?
+ current_user.admin?
+ end
end
\ No newline at end of file
diff --git a/app/models/app_auth.rb b/app/models/app_auth.rb
index 5a3de60c..94af40bb 100644
--- a/app/models/app_auth.rb
+++ b/app/models/app_auth.rb
@@ -2,4 +2,5 @@ class AppAuth < PrototypeAuth
belongs_to :module_app
+
end
\ No newline at end of file
diff --git a/app/models/module_app.rb b/app/models/module_app.rb
index 5d885cd1..7ad4ac1d 100644
--- a/app/models/module_app.rb
+++ b/app/models/module_app.rb
@@ -1,6 +1,7 @@
class ModuleApp
include Mongoid::Document
include Mongoid::Timestamps
+ include OrbitCoreLib::ObjectTokenUnility
field :key
field :title
@@ -14,7 +15,7 @@ class ModuleApp
field :app_pages ,type: Array
field :widgets ,type: Array
-
+
has_many :managers,as: :managing_app ,:class_name => "AppManager" #,:dependent => :destroy,:foreign_key => "managing_app_id",:inverse_of => :managing_app
has_many :sub_managers,as: :sub_managing_app ,:class_name => "AppManager"#, :dependent => :destroy,:foreign_key => "sub_managing_app_id",:inverse_of => :sub_managing_app
@@ -26,6 +27,14 @@ class ModuleApp
before_save :set_key
+ def is_manager?(user)
+ managing_users.include?(user)
+ end
+
+ def is_sub_manager?(user)
+ sub_managing_users.include?(user) || is_manager?(user)
+ end
+
def managing_users
self.managers.collect{ |t| t.user }
end
@@ -73,5 +82,6 @@ class ModuleApp
def set_key
self.key = self.title.underscore if self.title
end
+
end
diff --git a/app/models/object_auth.rb b/app/models/object_auth.rb
index dab7acc7..8932bb76 100644
--- a/app/models/object_auth.rb
+++ b/app/models/object_auth.rb
@@ -1,5 +1,6 @@
class ObjectAuth < PrototypeAuth
-
+ include OrbitCoreLib::ObjectTokenUnility
+ validates_uniqueness_of :obj_authable_type,:scope => :title #{ |c| }
belongs_to :obj_authable, polymorphic: true
# > - Something.find_with_auth(query)
# > - or Something.find(query).auth
diff --git a/app/models/prototype_auth.rb b/app/models/prototype_auth.rb
index 734268c4..666bc7a8 100644
--- a/app/models/prototype_auth.rb
+++ b/app/models/prototype_auth.rb
@@ -4,7 +4,6 @@ class PrototypeAuth
# after_save :update_block_list,:update_privilage_list
field :title
- field :token
field :all ,type: Boolean,default: false
belongs_to :users
@@ -12,11 +11,12 @@ class PrototypeAuth
has_and_belongs_to_many :blocked_users, :inverse_of => nil, :class_name => "User"
has_and_belongs_to_many :privilege_users, :inverse_of => nil, :class_name => "User"
-
has_and_belongs_to_many :roles
has_and_belongs_to_many :sub_roles
- attr_protected :roles,:sub_roles,:privilege_users,:blocked_users,:users
+ attr_protected :roles,:sub_roles,:privilege_users,:blocked_users
+
+
def add_role role
add_operation(:roles,role)
@@ -68,7 +68,7 @@ class PrototypeAuth
end
end
- def auth_users
+ def auth_users_before_block_list
if self.all?
User.all.entries
else
@@ -83,11 +83,10 @@ class PrototypeAuth
end
end
- def auth_users_after_block_list
- auth_users - self.blocked_users
+ def auth_users
+ auth_users_before_block_list - self.blocked_users
end
- # protected
end
\ No newline at end of file
diff --git a/app/models/session.rb b/app/models/session.rb
new file mode 100644
index 00000000..3c6deb54
--- /dev/null
+++ b/app/models/session.rb
@@ -0,0 +1,12 @@
+class Session
+ include Mongoid::Document
+ include Mongoid::Timestamps
+
+ def self.sweep(time = 1.hour)
+ if time.is_a?(String)
+ time = time.split.inject { |count, unit| count.to_i.send(unit) }
+ end
+
+ delete_all "updated_at < '#{time.ago.to_s(:db)}' OR created_at < '#{2.days.ago.to_s(:db)}'"
+ end
+end
\ No newline at end of file
diff --git a/app/views/admin/attributes/_app_selector.html.erb b/app/views/admin/attributes/_app_selector.html.erb
new file mode 100644
index 00000000..c20a3885
--- /dev/null
+++ b/app/views/admin/attributes/_app_selector.html.erb
@@ -0,0 +1 @@
+<%= f.select :module_app_id, @apps.collect { |t| [t.title.capitalize, t.id] }, {:include_blank => true} ,{:rel => admin_module_apps_path } %>
diff --git a/app/views/admin/components/_user_role_management.html.erb b/app/views/admin/components/_user_role_management.html.erb
index 59307351..cd9ca8ae 100644
--- a/app/views/admin/components/_user_role_management.html.erb
+++ b/app/views/admin/components/_user_role_management.html.erb
@@ -1,3 +1,10 @@
+
+
All User
+ <%= form_tag(submit_url) do %>
+ <%= check_box_tag 'auth_all',true,(auth.all rescue true) %><%= submit_tag 'Add Role' %>
+ <% end %>
+
+
User Role
<%= form_tag(submit_url) do %>
@@ -10,7 +17,6 @@
<%= collection_select(:new,:blocked_user, User.all, :id, :name, :prompt => true) %>
<%= submit_tag 'Add BlockedList' %>
<% end %>
-
<% unless auth.nil? %>
<% auth.roles.each do |role| %>
<%= role.key %> Build in:<%= role.built_in ? 'Yes' : 'No' %>
diff --git a/app/views/admin/module_apps/_app_selector.html.erb b/app/views/admin/module_apps/_app_selector.html.erb
deleted file mode 100644
index ae3b2e47..00000000
--- a/app/views/admin/module_apps/_app_selector.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-<%= f.select :module_app_id, @apps.collect { |t| [t.title.capitalize, t.id] }, {}, {:rel => admin_module_apps_path } %>
diff --git a/app/views/admin/module_apps/show.html.erb b/app/views/admin/module_apps/show.html.erb
new file mode 100644
index 00000000..27cfbc1a
--- /dev/null
+++ b/app/views/admin/module_apps/show.html.erb
@@ -0,0 +1,37 @@
+
+<%=@module_app.key %>
+<%=@module_app.title %>
+<%=@module_app.version %>
+<%=@module_app.organization %>
+<%=@module_app.author %>
+<%=@module_app.intro %>
+<%=@module_app.update_info %>
+<%=@module_app.create_date %>
+<%=@module_app.enable_frontend%>
+<%=@module_app.app_pages%>
+<%=@module_app.widgets%>
+
+Mangers:
+
+ <% @module_app.managers.each do |manager|%>
+ - <%= manager.user.name %>
+ <%end%>
+
+
+
+SubManagers:
+
+ <% @module_app.sub_managers.each do |manager|%>
+ <%= manager.user.name %>
+ <%end%>
+
+
+
+All User?:<%= @module_app.app_auth.all %>
+Blocked Users:<%= @module_app.app_auth.blocked_users.collect{|t| t.name} %>
+Privilege Users:<%= @module_app.app_auth.privilege_users.collect{|t| t.name}%>
+User Roles:<%= @module_app.app_auth.roles.collect{|t| t.key} %>
+User Sub Roles:<%= @module_app.app_auth.sub_roles.collect{|t| t.key} %>
+
+Available users after calculation:
+<%= @module_app.app_auth.auth_users.collect{|user| user.name}.join(',') %>
diff --git a/app/views/admin/object_auths/edit.html.erb b/app/views/admin/object_auths/edit.html.erb
index 67fb026e..fc824a64 100644
--- a/app/views/admin/object_auths/edit.html.erb
+++ b/app/views/admin/object_auths/edit.html.erb
@@ -11,4 +11,4 @@
<%= render :partial => "admin/components/user_role_management", :locals => {
:object => @object_auth.auth_obj ,:auth=>@object_auth,:submit_url=>create_role_admin_object_auth_path(@object_auth),:ploy_route_ary=>['remove',:admin,@object_auth] } %>
-
+<%= link_to 'Back to object',eval(@object_auth.obj_authable.class.to_s+"::AfterObjectAuthUrl") %>
\ No newline at end of file
diff --git a/app/views/admin/object_auths/new.html.erb b/app/views/admin/object_auths/new.html.erb
index 25fd6fd5..b5b381fb 100644
--- a/app/views/admin/object_auths/new.html.erb
+++ b/app/views/admin/object_auths/new.html.erb
@@ -12,7 +12,8 @@
<%= t('object_auth.new_object_auth') %>
<%= form_for @object_auth, :url => admin_object_auths_path do |f| %>
<%= f.label :title %>
- <%= f.text_field :title, :class => 'text' %>
+ <%= f.select :title,@object_auth_title_option %>
+
<%= f.hidden_field :obj_id, :value => params[:obj_id] %>
<%= f.hidden_field :type, :value => params[:type] %>
diff --git a/app/views/layouts/_orbit_bar.html.erb b/app/views/layouts/_orbit_bar.html.erb
index c2ba7fbd..e9a91f48 100644
--- a/app/views/layouts/_orbit_bar.html.erb
+++ b/app/views/layouts/_orbit_bar.html.erb
@@ -26,10 +26,10 @@
<% if user_signed_in? %>
-
+
-
- <%= image_tag current_user.avatar.thumb.url, :class => 'member-img' %>
+
+ <%#= image_tag current_user.avatar.thumb.url, :class => 'member-img' %>
<%= current_user.name %>
-
<%= link_to content_tag(:i, nil, :class => 'icons-out') + t(:logout), destroy_user_session_path %>
+
<%= link_to content_tag(:i, nil, :class => 'icons-out') + ' ' + t(:logout), destroy_user_session_path %>
@@ -95,7 +95,7 @@
<% end %>
diff --git a/app/views/layouts/_side_bar.html.erb b/app/views/layouts/_side_bar.html.erb
index 220781a7..71e8106d 100644
--- a/app/views/layouts/_side_bar.html.erb
+++ b/app/views/layouts/_side_bar.html.erb
@@ -9,6 +9,7 @@
<%= content_tag :li, link_to(t('admin.add_new'), new_panel_announcement_back_end_bulletin_path), :class => active_for_action('bulletins', 'new') %>
<%= content_tag :li, link_to(t('admin.categories'), panel_announcement_back_end_bulletin_categorys_path), :class => active_for_action('bulletin_categorys', 'index') %>
<%= content_tag :li, link_to(t('admin.tags'), panel_announcement_back_end_tags_path), :class => active_for_action('tags', 'index') %>
+ <%= content_tag :li, link_to(t('announcement.bulletin.fact_check_setting'), panel_announcement_back_end_fact_checks_setting_path), :class => active_for_action('tags', 'index') %>
<% end -%>
<% end -%>
diff --git a/config.ru b/config.ru
index 20d6bd1f..6a593e4a 100644
--- a/config.ru
+++ b/config.ru
@@ -1,4 +1,4 @@
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment', __FILE__)
-run PrototypeR4::Application
+run Orbit::Application
diff --git a/config/application.rb b/config/application.rb
index 3a7fb91f..d1243133 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -13,12 +13,13 @@ require 'sprockets/railtie'
# or test environments.
Bundler.require *Rails.groups(:assets) if defined?(Bundler)
-module PrototypeR4
+module Orbit
class Application < Rails::Application
# Add directories for plugins
config.paths["vendor/plugins"] += %W(#{config.root}/vendor/built_in_modules)
config.paths["vendor/plugins"] += %W(#{config.root}/vendor/downloaded_modules)
+ config.paths.app.views << "app/views/devise"
# Settings in config/environments/* take precedence over those specified here.
@@ -47,7 +48,7 @@ module PrototypeR4
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de
- config.i18n.default_locale = :en
+ config.i18n.default_locale = :zh_tw
# JavaScript files you want as :defaults (application.js is always included).
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
diff --git a/config/environment.rb b/config/environment.rb
index efd38a40..3538bc87 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -4,4 +4,4 @@ require 'yaml'
YAML::ENGINE.yamler = 'syck'
# Initialize the rails application
-PrototypeR4::Application.initialize!
+Orbit::Application.initialize!
diff --git a/config/environments/development.rb b/config/environments/development.rb
index d1b671e5..1dbff032 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -1,4 +1,4 @@
-PrototypeR4::Application.configure do
+Orbit::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
@@ -24,21 +24,21 @@ PrototypeR4::Application.configure do
config.action_dispatch.best_standards_support = :builtin
- config.middleware.use ExceptionNotifier,
- :email_prefix => "[R4_error]",
- :sender_address => %{"notifier" },
- :exception_recipients => %w{chris@rulingcom.com}
+ # config.middleware.use ExceptionNotifier,
+ # :email_prefix => "[R4_error]",
+ # :sender_address => %{"notifier" },
+ # :exception_recipients => %w{chris@rulingcom.com}
- config.action_mailer.delivery_method = :smtp
- config.action_mailer.smtp_settings = {
- :tls => true,
- :enable_starttls_auto => true,
- :address => "smtp.gmail.com",
- :port => '587',
- :domain => "smtp.gmail.com",
- :authentication => "plain",
- :user_name => "redmine@rulingcom.com",
- :password => "rulingredmine" }
+ # config.action_mailer.delivery_method = :smtp
+ # config.action_mailer.smtp_settings = {
+ # :tls => true,
+ # :enable_starttls_auto => true,
+ # :address => "smtp.gmail.com",
+ # :port => '587',
+ # :domain => "smtp.gmail.com",
+ # :authentication => "plain",
+ # :user_name => "redmine@rulingcom.com",
+ # :password => "rulingredmine" }
end
diff --git a/config/environments/production.rb b/config/environments/production.rb
index f52ead13..001ff2c6 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -1,4 +1,4 @@
-PrototypeR4::Application.configure do
+Orbit::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# The production environment is meant for finished, "live" apps.
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 6d22bb12..e55cc24b 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -1,4 +1,4 @@
-PrototypeR4::Application.configure do
+Orbit::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# The test environment is used exclusively to run your application's
diff --git a/config/initializers/cookie_verification_secret.rb b/config/initializers/cookie_verification_secret.rb
index 5a8601a7..694e666d 100644
--- a/config/initializers/cookie_verification_secret.rb
+++ b/config/initializers/cookie_verification_secret.rb
@@ -4,4 +4,4 @@
# If you change this key, all old signed cookies will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
-PrototypeR4::Application.config.secret_token = 'cbf6409102b30cb9f4da455ee08c3a7e9d8b2a3d32a0e5b59a354dad03f469d363a8127ef4b7bc3b1afa632d7cf947a1e59e09022d2d4cd8df1f4fa521d7ec07'
+Orbit::Application.config.secret_token = 'cbf6409102b30cb9f4da455ee08c3a7e9d8b2a3d32a0e5b59a354dad03f469d363a8127ef4b7bc3b1afa632d7cf947a1e59e09022d2d4cd8df1f4fa521d7ec07'
diff --git a/config/initializers/secret_token.rb b/config/initializers/secret_token.rb
index 67abf723..ae9a444a 100644
--- a/config/initializers/secret_token.rb
+++ b/config/initializers/secret_token.rb
@@ -4,4 +4,4 @@
# If you change this key, all old signed cookies will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
-PrototypeR4::Application.config.secret_token = 'b8d78ecaf3086ebfc1ba42e912acba60d85cf3d789d933e117770e1a045a12911f121ff012a234982abb446c8b8c768052eea4bf8b2d5d336be821e2c25d8cdb'
+Orbit::Application.config.secret_token = 'b8d78ecaf3086ebfc1ba42e912acba60d85cf3d789d933e117770e1a045a12911f121ff012a234982abb446c8b8c768052eea4bf8b2d5d336be821e2c25d8cdb'
diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb
index e6387adb..b1a4a2c1 100644
--- a/config/initializers/session_store.rb
+++ b/config/initializers/session_store.rb
@@ -1,8 +1,3 @@
# Be sure to restart your server when you modify this file.
-PrototypeR4::Application.config.session_store :cookie_store, :key => '_prototype_R4_session'
-
-# Use the database for sessions instead of the cookie-based default,
-# which shouldn't be used to store highly confidential information
-# (create the session table with "rails generate session_migration")
-# PrototypeR4::Application.config.session_store :active_record_store
+Orbit::Application.config.session_store :mongoid_store
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 3d293783..da72a4eb 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -32,6 +32,7 @@ en:
password: Password
register: Register
remember_me: Remember me
+ search_nccu: Search NCCU
show: Show
submit: Submit
sure?: Are you sure?
diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml
index e4d1366d..049be66b 100644
--- a/config/locales/zh_tw.yml
+++ b/config/locales/zh_tw.yml
@@ -17,7 +17,7 @@ zh_tw:
edit: 編輯
email: 電子郵件
enable: 啟用
- forget_password: 忘記密碼?
+ forgot_password: 忘記密碼?
help: 協助
hide: 隱藏
homepage: 首頁
@@ -25,10 +25,11 @@ zh_tw:
logout: 登出
no_: "No"
nothing: 無
- or_lower: 或者
+ or_lower: 或
password: 密碼
register: 註冊
remember_me: 記住我
+ search_nccu: 搜尋政大
show: 顯示
submit: 送出
sure?: 您肯定嗎?
diff --git a/config/routes.rb b/config/routes.rb
index cd3921f0..112d96e1 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,4 +1,4 @@
-PrototypeR4::Application.routes.draw do
+Orbit::Application.routes.draw do
devise_for :users
diff --git a/lib/orbit_core_lib.rb b/lib/orbit_core_lib.rb
index bf1d66a3..561fceba 100644
--- a/lib/orbit_core_lib.rb
+++ b/lib/orbit_core_lib.rb
@@ -31,4 +31,44 @@ module OrbitCoreLib
end
end
+ module ObjectTokenUnility
+ def self.included(base)
+ base.instance_eval("field :s_token")
+ base.instance_eval("after_create :generate_token")
+ end
+
+ def token
+ return self.s_token
+ end
+
+ protected
+ def generate_token
+ self.s_token = ActiveSupport::SecureRandom.hex(16)
+ self.save!
+ end
+ end
+
+ module PermissionUnility
+ private
+ def check_permission(type = :use)
+ permission_grant = current_user.admin?? true : false
+ module_app = @module_app.nil?? find_module_app_by_token(params[:token]) : @module_app
+ unless permission_grant
+ permission_grant = case type
+ when :use
+ users_ary = module_app.app_auth.auth_users rescue nil
+ users_ary = [] if users_ary.nil?
+ (users_ary.include?(current_user) || module_app.is_manager?(current_user) || module_app.is_sub_manager?(current_user))
+ when :manager
+ module_app.is_manager?(current_user)
+ when :sub_manager
+ module_app.is_manager?(current_user) || module_app.is_sub_manager?(current_user)
+ end
+ end
+ permission_grant
+ end
+ def find_module_app_by_token(token)
+ ModuleApp.first(conditions: {s_token: token})
+ end
+ end
end
diff --git a/lib/parsers/parser_back_end.rb b/lib/parsers/parser_back_end.rb
index dea65b6a..37c22ed1 100644
--- a/lib/parsers/parser_back_end.rb
+++ b/lib/parsers/parser_back_end.rb
@@ -100,7 +100,7 @@ module ParserBackEnd
ret = ''
if (tag.attributes["main"] == "true" && !page.module_app.nil?)
ret << ""
else
part = page.page_parts.detect{ |p| p.name.to_s == tag.attr['name'].to_s }
diff --git a/lib/parsers/parser_front_end.rb b/lib/parsers/parser_front_end.rb
index d1334b06..99353cc1 100644
--- a/lib/parsers/parser_front_end.rb
+++ b/lib/parsers/parser_front_end.rb
@@ -62,6 +62,7 @@ module ParserFrontEnd
c.define_tag 'stylesheets' do |tag|
res = ''
res << ""
+ res << ""
res << ""
res << "" if page.design.reset_css
res << " " if page.design.default_css
@@ -81,7 +82,7 @@ module ParserFrontEnd
res << ""
res << ""
page.design.javascripts.each do |js|
- res << ""
+ # res << ""
end
res
end
@@ -127,7 +128,7 @@ module ParserFrontEnd
ret << ""
else
part = page.page_parts.detect{ |p| p.name.to_s == tag.attr['name'].to_s } rescue nil
diff --git a/lib/tasks/anc_tasks.rake b/lib/tasks/anc_tasks.rake
new file mode 100644
index 00000000..cd534b93
--- /dev/null
+++ b/lib/tasks/anc_tasks.rake
@@ -0,0 +1,22 @@
+# encoding: utf-8
+
+namespace :anc do
+
+ task :build => :environment do
+ bulletin_category_1 = BulletinCategory.create(:key => "C1ChrisCheckANDPreivew",:display => "List" )
+ bulletin_category_1.create_i18n_variable(:en => "ChrisCheckANDPreivew", :zh_tw => 'ChrisCheckANDPreivew')
+ bulletin_category_2 = BulletinCategory.create(:key => "C2MattCheckANDPreivew",:display => "List" )
+ bulletin_category_2.create_i18n_variable(:en => "MattCheckANDPreivew", :zh_tw => 'MattCheckANDPreivew')
+ bulletin_category_3 = BulletinCategory.create(:key => "C3MattCheckChrisPreview",:display => "List" )
+ bulletin_category_3.create_i18n_variable(:en => "MattCheckChrisPreview", :zh_tw => 'MattCheckChrisPreview')
+
+
+ bulletin_1 = Bulletin.create(:title => "C1P1",:status => nil,:subtitle => "",:text => "value",:post_date => Time.now,:deadline => nil,:bulletin_category => bulletin_category_1 )
+ bulletin_2 = Bulletin.create(:title => "C1P2",:status => nil,:subtitle => "",:text => "value",:post_date => Time.now,:deadline => nil,:bulletin_category => bulletin_category_1 )
+ bulletin_3 = Bulletin.create(:title => "C2P1",:status => nil,:subtitle => "",:text => "value",:post_date => Time.now,:deadline => nil,:bulletin_category => bulletin_category_2 )
+ bulletin_4 = Bulletin.create(:title => "C2P2",:status => nil,:subtitle => "",:text => "value",:post_date => Time.now,:deadline => nil,:bulletin_category => bulletin_category_2 )
+ bulletin_5 = Bulletin.create(:title => "C3P1",:status => nil,:subtitle => "",:text => "value",:post_date => Time.now,:deadline => nil,:bulletin_category => bulletin_category_3 )
+ bulletin_6 = Bulletin.create(:title => "C3P2",:status => nil,:subtitle => "",:text => "value",:post_date => Time.now,:deadline => nil,:bulletin_category => bulletin_category_3 )
+
+ end
+end
\ No newline at end of file
diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake
index ee344743..70776ed9 100644
--- a/lib/tasks/dev.rake
+++ b/lib/tasks/dev.rake
@@ -125,6 +125,12 @@ namespace :dev do
AttributeValue.create( :user_id => user.id, :attribute_field_id => i_1.attribute_fields[1].id, :key => 'last_name', :en => 'Fu', :zh_tw => '傅' )
AttributeValue.create( :user_id => user.id, :attribute_field_id => sr_2_1.attribute_fields[0].id, :key => 'major', :en => 'Information management', :zh_tw => '信息化管理' )
AttributeValue.create( :user_id => user.id, :attribute_field_id => sr_2_1.attribute_fields[1].id, :key => 'department', :en => 'Computer Science', :zh_tw => '計算機科學' )
+
+ user = User.create( :email => 'manager@rulingcom.com', :password => 'password', :password_confirmation => 'password', :admin => false, :role_id => r_2.id, :sub_role_ids => [sr_2_1.id ] )
+ AttributeValue.create( :user_id => user.id, :attribute_field_id => i_1.attribute_fields[0].id, :key => 'first_name', :en => 'Manager', :zh_tw => '管理員' )
+ AttributeValue.create( :user_id => user.id, :attribute_field_id => i_1.attribute_fields[1].id, :key => 'last_name', :en => 'Chen', :zh_tw => '陳' )
+ AttributeValue.create( :user_id => user.id, :attribute_field_id => sr_2_1.attribute_fields[0].id, :key => 'major', :en => 'Information management', :zh_tw => '信息化管理' )
+ AttributeValue.create( :user_id => user.id, :attribute_field_id => sr_2_1.attribute_fields[1].id, :key => 'department', :en => 'Computer Science', :zh_tw => '計算機科學' )
ad_banner = AdBanner.new(:title => 'banner_1',:post_date => Date.today,:context=> "context",:ad_fx=>'zoom',:direct_to_after_click=>true)
diff --git a/lib/tasks/user.rake b/lib/tasks/user.rake
index 31ed7c24..5189ee14 100644
--- a/lib/tasks/user.rake
+++ b/lib/tasks/user.rake
@@ -5,7 +5,7 @@ namespace :user do
User.all(conditions: {email: /nor/}).destroy_all
username_list = %w{nor1 nor2 nor3 nor4 nor5 nor6 nor7}
- userfirstname_list_en = %w{ One Two Thre For Fiv Six Sen }
+ userfirstname_list_en = %w{ UserOne UserTwo Thre For Fiv Six Sen }
userlastname_list_en = %w{ Aa Bb Cc Dd Ee Ff Gg }
userfirstname_list_ct = %w{ 一一 二二 三三 四四 五五 六六 七七 }
diff --git a/vendor/built_in_modules/announcement/announcement.json b/vendor/built_in_modules/announcement/announcement.json
index 0751a0e7..b23ec572 100644
--- a/vendor/built_in_modules/announcement/announcement.json
+++ b/vendor/built_in_modules/announcement/announcement.json
@@ -1,5 +1,5 @@
{
- "title": "Announcement",
+ "title": "announcement",
"version": "0.1",
"organization": "Rulingcom",
"author": "RD dep",
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_links_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_links_controller-ƻs.rb
similarity index 100%
rename from vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_links_controller.rb
rename to vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_links_controller-ƻs.rb
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb
index 77454b85..0eda0723 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb
@@ -1,5 +1,4 @@
-class Panel::Announcement::BackEnd::BulletinsController < ApplicationController
-
+class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
layout 'new_admin'
before_filter :authenticate_user!
@@ -15,7 +14,7 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController
# @bulletins = Bulletin.search(params[:search], params[:category_id])
# @bulletins = Bulletin.all.order_by([params[:sort], params[:direction]])
- @bulletins = params[:sort] ? get_sorted_bulletins : Bulletin.limit(1).desc("postdate")
+ @bulletins = params[:sort] ? get_sorted_bulletins : Bulletin.all
@bulletin_categories = BulletinCategory.all
respond_to do |format|
@@ -137,7 +136,7 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController
# end
respond_to do |format|
- if @bulletin.update_attributes(params[:bulletin])
+ if @bulletin.update_attributes(params[:bulletin]) && @bulletin.save
# format.html { redirect_to(panel_announcement_back_end_bulletin_url(@bulletin), :notice => t('bulletin.update_bulletin_success')) }
format.html { redirect_to(panel_announcement_back_end_bulletins_url, :notice => t('bulletin.update_bulletin_success')) }
format.js { render 'toggle_enable' }
@@ -177,7 +176,17 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController
protected
def get_categorys(id = nil)
- @bulletin_categorys = (id ? BulletinCategory.find(id).to_a : BulletinCategory.excludes('disabled' => true))
+ @bulletin_categorys = []
+ if(is_manager? || is_admin?)
+ @bulletin_categorys = (id ? BulletinCategory.find(id).to_a : BulletinCategory.excludes('disabled' => true))
+ elsif is_sub_manager?
+ @bulletin_categorys = BulletinCategory.authed_for_user(current_user,'submit_new')
+ end
+ end
+
+ def get_tags
+ module_app = ModuleApp.first(:conditions => {:key => 'announcement'})
+ @tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc)
end
def get_tags
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/fact_checks_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/fact_checks_controller.rb
new file mode 100644
index 00000000..c47e91fb
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/fact_checks_controller.rb
@@ -0,0 +1,76 @@
+class Panel::Announcement::BackEnd::FactChecksController < OrbitBackendController
+ before_filter :authenticate_user!
+ include AdminHelper
+ # layout 'admin'
+ layout 'new_admin'
+
+ def setting
+ @bulletin_categorys = BulletinCategory.all
+ if params.has_key?(:category_id)
+ first_category = BulletinCategory.find params[:category_id]
+ if params[:commit] == 'Update'
+ privilege_users = params[:users].collect{|key,value| User.find key } rescue []
+ preload_object_auth_ary = first_category.object_auths.where(title: 'fact_check') || (first_category.object_auths.create :title=> 'fact_check')
+ preload_object_auth = preload_object_auth_ary.first
+ preload_object_auth.privilege_users = privilege_users
+ preload_object_auth.save!
+ end
+ else
+ first_category = @bulletin_categorys.first
+ end
+ preload_object_auth = first_category.object_auths.where(title: 'fact_check') || (first_category.object_auths.create :title=> 'fact_check')
+ @users_array = preload_object_auth.first.privilege_users rescue []
+ respond_to do |format|
+ format.html
+ format.js
+ end
+ end
+
+ def update_setting
+
+ end
+ # def index
+ # get_categorys(params[:bulletin_category_id])
+ #
+ # @bulletins = params[:sort] ? get_sorted_bulletins : Bulletin.all
+ # @bulletin_categories = BulletinCategory.all
+ #
+ # module_app = ModuleApp.first(:conditions => {:key => 'announcement'})
+ # @tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc)
+ #
+ # respond_to do |format|
+ # format.html # index.html.erb
+ # format.js
+ # format.xml { render :xml => @bulletins }
+ # end
+ # end
+ #
+ # def new
+ #
+ # end
+ #
+ # def create
+ #
+ # end
+ #
+ # def update
+ #
+ # end
+ #
+ # def edit
+ #
+ # end
+ #
+ # def destroy
+ #
+ # end
+ protected
+ def get_categorys(id = nil)
+ @bulletin_categorys = []
+ if(is_manager? || is_admin?)
+ @bulletin_categorys = (id ? BulletinCategory.find(id).to_a : BulletinCategory.excludes('disabled' => true))
+ elsif is_sub_manager?
+ @bulletin_categorys = BulletinCategory.authed_for_user(current_user,'submit_new')
+ end
+ end
+end
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
index cf4e1801..ff3cbdc9 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
@@ -1,4 +1,4 @@
-class Panel::Announcement::FrontEnd::BulletinsController < ObitWidgetController
+class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
def initialize
super
@@ -11,13 +11,15 @@ class Panel::Announcement::FrontEnd::BulletinsController < ObitWidgetController
def index
date_now = Time.now
- if params[:bulletin_category_id]
- @bulletins = Bulletin.where(:bulletin_category_id => params[:bulletin_category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
+ if params[:category_id]
+ @bulletins = Bulletin.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
else
@bulletins = Bulletin.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
end
- get_categorys
+ get_categorys
+
+ @current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
end
def show
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
index 6695156a..60aad3d9 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
@@ -1,4 +1,4 @@
-class Panel::Announcement::Widget::BulletinsController < ObitWidgetController
+class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
def initialize
super
@@ -28,6 +28,7 @@ class Panel::Announcement::Widget::BulletinsController < ObitWidgetController
@selected_tag = AnnouncementTag.find(params[:id]) rescue @tags[0]
@bulletins = @selected_tag.get_visible_bulletins.page(params[:page]).per(5) rescue nil
@web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(5) rescue nil
+ render :layout => 'module_widget'
end
def reload_bulletins
diff --git a/vendor/built_in_modules/announcement/app/models/bulletin.rb b/vendor/built_in_modules/announcement/app/models/bulletin.rb
index a1141b41..d1b7f3c5 100644
--- a/vendor/built_in_modules/announcement/app/models/bulletin.rb
+++ b/vendor/built_in_modules/announcement/app/models/bulletin.rb
@@ -4,7 +4,7 @@ class Bulletin
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
-
+
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_one :subtitle, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_one :text, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
@@ -19,6 +19,9 @@ class Bulletin
field :is_top, :type => Boolean, :default => false
field :is_hot, :type => Boolean, :default => false
field :is_hidden, :type => Boolean, :default => false
+ field :is_checked, :type => Boolean, :default => false
+
+ field :not_checked_reason
field :public, :type => Boolean, :default => true
diff --git a/vendor/built_in_modules/announcement/app/models/bulletin_category.rb b/vendor/built_in_modules/announcement/app/models/bulletin_category.rb
index f5da3ad7..7daaf6db 100644
--- a/vendor/built_in_modules/announcement/app/models/bulletin_category.rb
+++ b/vendor/built_in_modules/announcement/app/models/bulletin_category.rb
@@ -3,6 +3,10 @@
class BulletinCategory
include Mongoid::Document
include Mongoid::Timestamps
+ include OrbitCoreLib::ObjectAuthable
+
+ ObjectAuthTitlesOptions = %W{submit_new fact_check}
+ AfterObjectAuthUrl = '/panel/announcement/back_end/bulletin_categorys'
# include Mongoid::MultiParameterAttributes
PAYMENT_TYPES = [ "List", "Picture" ]
@@ -14,4 +18,8 @@ class BulletinCategory
has_many :bulletins
+ def self.from_id(id)
+ BulletinCategory.find(id) rescue nil
+ end
+
end
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_bulletin_category.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_bulletin_category.html.erb
index 546356fe..bf02b054 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_bulletin_category.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_bulletin_category.html.erb
@@ -14,4 +14,4 @@
<%= bulletin_category.i18n_variable[locale] rescue nil %> |
<% end %>
<%= bulletin_category.display %> |
-
\ No newline at end of file
+
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_form1.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_form1.html.erb
deleted file mode 100644
index 1499192b..00000000
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_form1.html.erb
+++ /dev/null
@@ -1,35 +0,0 @@
-<% # encoding: utf-8 %>
-
-
-
-
- <%= f.label :key %>
- <%= f.text_field :key %>
-
-
-
- <%= f.label :name %>
- <%= f.fields_for :i18n_variable, (@bulletin_category.new_record? ? @bulletin_category.build_i18n_variable : @bulletin_category.i18n_variable) do |f| %>
- <% @site_valid_locales.each do |locale| %>
- <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
- <%= f.text_field locale, :style => "width:130px" %>
- <% end %>
- <% end %>
-
-
-
- <%= f.label :display %>
- <%#= f.select :display, BulletinCategory::PAYMENT_TYPES, :prompt => 'Select a display method' %>
-
- <%= f.radio_button :display, "List" %>List
- <%#= f.label :display, 'list', :value => '1', :checked => @a %>
- <%= f.radio_button :display, "Picture" %>Picture
- <%#= f.label :display, 'picture', :value => '2', :checked => @b %>
-
顯示方式是設定在前台頁面時,資訊所呈現的樣式
-
-
-
- <%= f.submit %>
-
-
-
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/new.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/new.html.erb
index 5f8d064b..296afb09 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/new.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/new.html.erb
@@ -1,15 +1,15 @@
-
-
-
-
-
<% content_for :secondary do %>
-
- - <%= link_to t('bulletin_category.index'), panel_announcement_back_end_bulletin_categorys_path, :class => 'seclink2' %>
-
+<%= render :partial => '/panel/announcement/back_end/announcement_secondary' %>
<% end -%>
<%= flash_messages %>
+
+
+
+
+
+
+
<%= t('bulletin_category.new_announcement_class') %>
<%= form_for @bulletin_category, :url => panel_announcement_back_end_bulletin_categorys_path do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb
index 3f6f50e1..e12af233 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb
@@ -24,11 +24,12 @@
<%= link_to t('bulletin.delete'), panel_announcement_back_end_bulletin_path(bulletin), :confirm => t('announcement.sure?'), :method => :delete, :remote => true %>
+ <%= link_to t('bulletin.fact_check'), edit_panel_announcement_back_end_bulletin_path(bulletin) %><%#= #TODO add ancher so user can quick access into that part %>
<%= bulletin.bulletin_category.i18n_variable[I18n.locale] %> |
- <%= link_to bulletin.title[I18n.locale], panel_announcement_back_end_bulletin_path(bulletin) %> |
+ <%= link_to bulletin.title[I18n.locale], panel_announcement_back_end_bulletin_path(bulletin) rescue ''%> |
<%= bulletin.postdate %> |
<%= (bulletin.deadline) ? bulletin.deadline : t('bulletin.no_deadline') %> |
@@ -36,7 +37,7 @@
<%= tag[I18n.locale] %>
<% end %>
|
- <%= User.from_id(bulletin.update_user_id).name %> |
+ <%= User.from_id(bulletin.update_user_id).name rescue ''%> |
<%= render :partial => 'quick_edit', :locals => {:bulletin => bulletin} %>
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletins.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletins.html.erb
index 9fec31f3..bbe383bc 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletins.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletins.html.erb
@@ -36,4 +36,4 @@
<%= render :partial => 'bulletin', :collection => @bulletins %>
-
\ No newline at end of file
+
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb
index 3cefe360..d3e9f3a1 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb
@@ -1,6 +1,25 @@
<% # encoding: utf-8 %>
<%= f.error_messages %>
+ <%= f.select :bulletin_category_id, @bulletin_categorys.collect{|t| [ t.i18n_variable[I18n.locale], t.id ]}, {}, :class => "input-medium" %>
+
+ <%= label :fact_check_stat, t('announcement.bulletin.fact_check_stat') %>
+ <%= f.radio_button :is_checked, true%>
+ <%= label :is_checked_true, t('announcement.bulletin.fact_check_pass') %>
+ <%= f.radio_button :is_checked, false, (@bulletin.is_checked.nil?? {:checked => true} : {}) %>
+ <%= label :is_checked_false, t('announcement.bulletin.fact_check_not_pass') %>
+
+ <%= label :is_checked_false, t('announcement.bulletin.fact_check_not_pass_reason') %>
+ <%= f.text_field :not_checked_reason %>
+
+
+ <%= f.label :image, t('announcement.image') %>
+ <%= f.file_field :image %>
+ <% if @bulletin.image.file %>
+ <%= check_box_tag 'bulletin[image_del]' %>
+ <%= t('announcement.刪除已上傳檔案') %>
+ <% end %>
+
@@ -83,7 +102,7 @@
-
+
@@ -194,49 +213,6 @@
-
-
-
-
-