Merge branch 'master' of https://github.com/Rulingcom/orbit into ldap
Conflicts: Gemfile Gemfile.lock app/views/admin/attributes/_app_selector.html.erb app/views/admin/module_apps/_app_selector.html.erb app/views/admin/pages/_app_selector.html.erb config/application.rb vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb vendor/built_in_modules/new_blog/app/controllers/panel/new_blog/widget/posts_controller.rb vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb
This commit is contained in:
		
						commit
						f55b3a4374
					
				
							
								
								
									
										7
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										7
									
								
								Gemfile
								
								
								
								
							|  | @ -1,11 +1,14 @@ | ||||||
| source 'http://rubygems.org' | source 'http://rubygems.org' | ||||||
| gem 'rails', '>=3.1.0', '<3.2.0' | gem 'rails', '>=3.1.0', '<3.2.0' | ||||||
| 
 | 
 | ||||||
|  | gem "brakeman" | ||||||
|  | 
 | ||||||
| gem 'bson_ext' | gem 'bson_ext' | ||||||
| gem 'carrierwave' | gem 'carrierwave' | ||||||
| gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid' | gem 'carrierwave-mongoid', :require => 'carrierwave/mongoid' | ||||||
| gem 'devise' | gem 'devise' | ||||||
| gem "net-ldap", "~> 0.3.1" | gem "net-ldap", "~> 0.3.1" | ||||||
|  | gem 'devise', '1.5.3' | ||||||
| gem 'exception_notification' # Send error trace | gem 'exception_notification' # Send error trace | ||||||
| gem 'execjs' | gem 'execjs' | ||||||
| gem 'jquery-rails' | gem 'jquery-rails' | ||||||
|  | @ -15,6 +18,8 @@ gem 'kaminari', :git => 'git://github.com/amatsuda/kaminari.git' | ||||||
| gem 'mini_magick' | gem 'mini_magick' | ||||||
| gem 'mongoid' | gem 'mongoid' | ||||||
| gem 'mysql2' | gem 'mysql2' | ||||||
|  | gem "mongo_session_store-rails3" | ||||||
|  | gem 'nokogiri' | ||||||
| gem 'radius' | gem 'radius' | ||||||
| gem 'rake' | gem 'rake' | ||||||
| gem 'ruby-debug19' | gem 'ruby-debug19' | ||||||
|  | @ -22,7 +27,7 @@ gem 'rubyzip' | ||||||
| gem 'sinatra' | gem 'sinatra' | ||||||
| gem 'sprockets' | gem 'sprockets' | ||||||
| gem 'tinymce-rails' | gem 'tinymce-rails' | ||||||
| gem 'therubyracer' | gem 'therubyracer' if RUBY_PLATFORM.downcase.include?("linux") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										141
									
								
								Gemfile.lock
								
								
								
								
							
							
						
						
									
										141
									
								
								Gemfile.lock
								
								
								
								
							|  | @ -10,48 +10,56 @@ GIT | ||||||
| GEM | GEM | ||||||
|   remote: http://rubygems.org/ |   remote: http://rubygems.org/ | ||||||
|   specs: |   specs: | ||||||
|     actionmailer (3.1.3) |     actionmailer (3.1.4) | ||||||
|       actionpack (= 3.1.3) |       actionpack (= 3.1.4) | ||||||
|       mail (~> 2.3.0) |       mail (~> 2.3.0) | ||||||
|     actionpack (3.1.3) |     actionpack (3.1.4) | ||||||
|       activemodel (= 3.1.3) |       activemodel (= 3.1.4) | ||||||
|       activesupport (= 3.1.3) |       activesupport (= 3.1.4) | ||||||
|       builder (~> 3.0.0) |       builder (~> 3.0.0) | ||||||
|       erubis (~> 2.7.0) |       erubis (~> 2.7.0) | ||||||
|       i18n (~> 0.6) |       i18n (~> 0.6) | ||||||
|       rack (~> 1.3.5) |       rack (~> 1.3.6) | ||||||
|       rack-cache (~> 1.1) |       rack-cache (~> 1.1) | ||||||
|       rack-mount (~> 0.8.2) |       rack-mount (~> 0.8.2) | ||||||
|       rack-test (~> 0.6.1) |       rack-test (~> 0.6.1) | ||||||
|       sprockets (~> 2.0.3) |       sprockets (~> 2.0.3) | ||||||
|     activemodel (3.1.3) |     activemodel (3.1.4) | ||||||
|       activesupport (= 3.1.3) |       activesupport (= 3.1.4) | ||||||
|       builder (~> 3.0.0) |       builder (~> 3.0.0) | ||||||
|       i18n (~> 0.6) |       i18n (~> 0.6) | ||||||
|     activerecord (3.1.3) |     activerecord (3.1.4) | ||||||
|       activemodel (= 3.1.3) |       activemodel (= 3.1.4) | ||||||
|       activesupport (= 3.1.3) |       activesupport (= 3.1.4) | ||||||
|       arel (~> 2.2.1) |       arel (~> 2.2.3) | ||||||
|       tzinfo (~> 0.3.29) |       tzinfo (~> 0.3.29) | ||||||
|     activeresource (3.1.3) |     activeresource (3.1.4) | ||||||
|       activemodel (= 3.1.3) |       activemodel (= 3.1.4) | ||||||
|       activesupport (= 3.1.3) |       activesupport (= 3.1.4) | ||||||
|     activesupport (3.1.3) |     activesupport (3.1.4) | ||||||
|       multi_json (~> 1.0) |       multi_json (~> 1.0) | ||||||
|     archive-tar-minitar (0.5.2) |     archive-tar-minitar (0.5.2) | ||||||
|     arel (2.2.1) |     arel (2.2.3) | ||||||
|     bcrypt-ruby (3.0.1) |     bcrypt-ruby (3.0.1) | ||||||
|     bcrypt-ruby (3.0.1-x86-mingw32) |     bcrypt-ruby (3.0.1-x86-mingw32) | ||||||
|     bson (1.5.2) |     brakeman (1.5.1) | ||||||
|     bson_ext (1.5.2) |       activesupport | ||||||
|       bson (= 1.5.2) |       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) |     builder (3.0.0) | ||||||
|     carrierwave (0.5.8) |     carrierwave (0.5.8) | ||||||
|       activesupport (~> 3.0) |       activesupport (~> 3.0) | ||||||
|     carrierwave-mongoid (0.1.3) |     carrierwave-mongoid (0.1.3) | ||||||
|       carrierwave (>= 0.5.6) |       carrierwave (>= 0.5.6) | ||||||
|       mongoid (~> 2.1) |       mongoid (~> 2.1) | ||||||
|     chronic (0.6.6) |     chronic (0.6.7) | ||||||
|     coffee-rails (3.1.1) |     coffee-rails (3.1.1) | ||||||
|       coffee-script (>= 2.2.0) |       coffee-script (>= 2.2.0) | ||||||
|       railties (~> 3.1.0) |       railties (~> 3.1.0) | ||||||
|  | @ -59,6 +67,7 @@ GEM | ||||||
|       coffee-script-source |       coffee-script-source | ||||||
|       execjs |       execjs | ||||||
|     coffee-script-source (1.2.0) |     coffee-script-source (1.2.0) | ||||||
|  |     color (1.4.1) | ||||||
|     columnize (0.3.6) |     columnize (0.3.6) | ||||||
|     database_cleaner (0.7.1) |     database_cleaner (0.7.1) | ||||||
|     delorean (1.2.0) |     delorean (1.2.0) | ||||||
|  | @ -73,41 +82,50 @@ GEM | ||||||
|       actionmailer (>= 3.0.4) |       actionmailer (>= 3.0.4) | ||||||
|     execjs (1.3.0) |     execjs (1.3.0) | ||||||
|       multi_json (~> 1.0) |       multi_json (~> 1.0) | ||||||
|     factory_girl (2.5.0) |     factory_girl (2.6.3) | ||||||
|       activesupport |       activesupport (>= 2.3.9) | ||||||
|     factory_girl_rails (1.6.0) |     factory_girl_rails (1.7.0) | ||||||
|       factory_girl (~> 2.5.0) |       factory_girl (~> 2.6.0) | ||||||
|       railties (>= 3.0.0) |       railties (>= 3.0.0) | ||||||
|  |     fastercsv (1.5.4) | ||||||
|  |     haml (3.1.4) | ||||||
|     hike (1.2.1) |     hike (1.2.1) | ||||||
|  |     hoe (2.16.1) | ||||||
|  |       rake (~> 0.8) | ||||||
|     i18n (0.6.0) |     i18n (0.6.0) | ||||||
|     jquery-rails (1.0.19) |     jquery-rails (1.0.19) | ||||||
|       railties (~> 3.0) |       railties (~> 3.0) | ||||||
|       thor (~> 0.14) |       thor (~> 0.14) | ||||||
|     json (1.6.5) |     json (1.6.5) | ||||||
|     libv8 (3.3.10.4) |  | ||||||
|     linecache19 (0.5.12) |     linecache19 (0.5.12) | ||||||
|       ruby_core_source (>= 0.1.4) |       ruby_core_source (>= 0.1.4) | ||||||
|     mail (2.3.0) |     mail (2.3.3) | ||||||
|       i18n (>= 0.4.0) |       i18n (>= 0.4.0) | ||||||
|       mime-types (~> 1.16) |       mime-types (~> 1.16) | ||||||
|       treetop (~> 1.4.8) |       treetop (~> 1.4.8) | ||||||
|     mime-types (1.17.2) |     mime-types (1.17.2) | ||||||
|     mini_magick (3.4) |     mini_magick (3.4) | ||||||
|       subexec (~> 0.2.1) |       subexec (~> 0.2.1) | ||||||
|     mongo (1.5.2) |     mongo (1.6.1) | ||||||
|       bson (= 1.5.2) |       bson (~> 1.6.1) | ||||||
|     mongoid (2.4.2) |     mongo_session_store-rails3 (3.0.5) | ||||||
|  |       actionpack (>= 3.0) | ||||||
|  |       mongo | ||||||
|  |     mongoid (2.4.6) | ||||||
|       activemodel (~> 3.1) |       activemodel (~> 3.1) | ||||||
|       mongo (~> 1.3) |       mongo (~> 1.3) | ||||||
|       tzinfo (~> 0.3.22) |       tzinfo (~> 0.3.22) | ||||||
|     multi_json (1.0.4) |  | ||||||
|     mysql2 (0.3.11) |     mysql2 (0.3.11) | ||||||
|     mysql2 (0.3.11-x86-mingw32) |  | ||||||
|     net-ldap (0.3.1) |     net-ldap (0.3.1) | ||||||
|  |     multi_json (1.1.0) | ||||||
|  |     nokogiri (1.5.2) | ||||||
|     orm_adapter (0.0.6) |     orm_adapter (0.0.6) | ||||||
|  |     pdf-writer (1.1.8) | ||||||
|  |       color (>= 1.4.0) | ||||||
|  |       transaction-simple (~> 1.3) | ||||||
|     polyglot (0.3.3) |     polyglot (0.3.3) | ||||||
|     rack (1.3.6) |     rack (1.3.6) | ||||||
|     rack-cache (1.1) |     rack-cache (1.2) | ||||||
|       rack (>= 0.4) |       rack (>= 0.4) | ||||||
|     rack-mount (0.8.3) |     rack-mount (0.8.3) | ||||||
|       rack (>= 1.0.0) |       rack (>= 1.0.0) | ||||||
|  | @ -117,18 +135,18 @@ GEM | ||||||
|       rack |       rack | ||||||
|     rack-test (0.6.1) |     rack-test (0.6.1) | ||||||
|       rack (>= 1.0) |       rack (>= 1.0) | ||||||
|     radius (0.7.1) |     radius (0.7.3) | ||||||
|     rails (3.1.3) |     rails (3.1.4) | ||||||
|       actionmailer (= 3.1.3) |       actionmailer (= 3.1.4) | ||||||
|       actionpack (= 3.1.3) |       actionpack (= 3.1.4) | ||||||
|       activerecord (= 3.1.3) |       activerecord (= 3.1.4) | ||||||
|       activeresource (= 3.1.3) |       activeresource (= 3.1.4) | ||||||
|       activesupport (= 3.1.3) |       activesupport (= 3.1.4) | ||||||
|       bundler (~> 1.0) |       bundler (~> 1.0) | ||||||
|       railties (= 3.1.3) |       railties (= 3.1.4) | ||||||
|     railties (3.1.3) |     railties (3.1.4) | ||||||
|       actionpack (= 3.1.3) |       actionpack (= 3.1.4) | ||||||
|       activesupport (= 3.1.3) |       activesupport (= 3.1.4) | ||||||
|       rack-ssl (~> 1.3.2) |       rack-ssl (~> 1.3.2) | ||||||
|       rake (>= 0.8.7) |       rake (>= 0.8.7) | ||||||
|       rdoc (~> 3.4) |       rdoc (~> 3.4) | ||||||
|  | @ -157,18 +175,27 @@ GEM | ||||||
|       columnize (>= 0.3.1) |       columnize (>= 0.3.1) | ||||||
|       linecache19 (>= 0.5.11) |       linecache19 (>= 0.5.11) | ||||||
|       ruby-debug-base19 (>= 0.11.19) |       ruby-debug-base19 (>= 0.11.19) | ||||||
|  |     ruby2ruby (1.3.1) | ||||||
|  |       ruby_parser (~> 2.0) | ||||||
|  |       sexp_processor (~> 3.0) | ||||||
|     ruby_core_source (0.1.5) |     ruby_core_source (0.1.5) | ||||||
|       archive-tar-minitar (>= 0.5.2) |       archive-tar-minitar (>= 0.5.2) | ||||||
|     rubyzip (0.9.5) |     ruby_parser (2.3.1) | ||||||
|     sass (3.1.12) |       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) |     sass-rails (3.1.5) | ||||||
|       actionpack (~> 3.1.0) |       actionpack (~> 3.1.0) | ||||||
|       railties (~> 3.1.0) |       railties (~> 3.1.0) | ||||||
|       sass (~> 3.1.10) |       sass (~> 3.1.10) | ||||||
|       tilt (~> 1.3.2) |       tilt (~> 1.3.2) | ||||||
|  |     sexp_processor (3.1.0) | ||||||
|     shoulda-matchers (1.0.0) |     shoulda-matchers (1.0.0) | ||||||
|     simplecov (0.5.4) |     simplecov (0.6.1) | ||||||
|       multi_json (~> 1.0.3) |       multi_json (~> 1.0) | ||||||
|       simplecov-html (~> 0.5.3) |       simplecov-html (~> 0.5.3) | ||||||
|     simplecov-html (0.5.3) |     simplecov-html (0.5.3) | ||||||
|     sinatra (1.3.2) |     sinatra (1.3.2) | ||||||
|  | @ -183,26 +210,26 @@ GEM | ||||||
|       rack (~> 1.0) |       rack (~> 1.0) | ||||||
|       tilt (~> 1.1, != 1.3.0) |       tilt (~> 1.1, != 1.3.0) | ||||||
|     subexec (0.2.1) |     subexec (0.2.1) | ||||||
|     therubyracer (0.9.9) |  | ||||||
|       libv8 (~> 3.3.10) |  | ||||||
|     thor (0.14.6) |     thor (0.14.6) | ||||||
|     tilt (1.3.3) |     tilt (1.3.3) | ||||||
|     tinymce-rails (3.4.8) |     tinymce-rails (3.4.8) | ||||||
|       railties (>= 3.1) |       railties (>= 3.1) | ||||||
|  |     transaction-simple (1.4.0) | ||||||
|  |       hoe (>= 1.1.7) | ||||||
|     treetop (1.4.10) |     treetop (1.4.10) | ||||||
|       polyglot |       polyglot | ||||||
|       polyglot (>= 0.3.1) |       polyglot (>= 0.3.1) | ||||||
|     tzinfo (0.3.31) |     tzinfo (0.3.32) | ||||||
|     uglifier (1.2.2) |     uglifier (1.2.3) | ||||||
|       execjs (>= 0.3.0) |       execjs (>= 0.3.0) | ||||||
|       multi_json (>= 1.0.2) |       multi_json (>= 1.0.2) | ||||||
|     warden (1.1.0) |     warden (1.1.1) | ||||||
|       rack (>= 1.0) |       rack (>= 1.0) | ||||||
|     watchr (0.7) |     watchr (0.7) | ||||||
|     win32-api (1.4.8-x86-mingw32) |     win32-api (1.4.8-x86-mingw32) | ||||||
|     win32-process (0.6.5) |     win32-process (0.6.5) | ||||||
|       windows-pr (>= 1.1.2) |       windows-pr (>= 1.1.2) | ||||||
|     windows-api (0.4.0) |     windows-api (0.4.1) | ||||||
|       win32-api (>= 1.4.5) |       win32-api (>= 1.4.5) | ||||||
|     windows-pr (1.2.1) |     windows-pr (1.2.1) | ||||||
|       win32-api (>= 1.4.5) |       win32-api (>= 1.4.5) | ||||||
|  | @ -213,22 +240,25 @@ PLATFORMS | ||||||
|   x86-mingw32 |   x86-mingw32 | ||||||
| 
 | 
 | ||||||
| DEPENDENCIES | DEPENDENCIES | ||||||
|  |   brakeman | ||||||
|   bson_ext |   bson_ext | ||||||
|   carrierwave |   carrierwave | ||||||
|   carrierwave-mongoid |   carrierwave-mongoid | ||||||
|   coffee-rails |   coffee-rails | ||||||
|   database_cleaner |   database_cleaner | ||||||
|   delorean |   delorean | ||||||
|   devise |   devise (= 1.5.3) | ||||||
|   exception_notification |   exception_notification | ||||||
|   execjs |   execjs | ||||||
|   factory_girl_rails |   factory_girl_rails | ||||||
|   jquery-rails |   jquery-rails | ||||||
|   kaminari! |   kaminari! | ||||||
|   mini_magick |   mini_magick | ||||||
|  |   mongo_session_store-rails3 | ||||||
|   mongoid |   mongoid | ||||||
|   mysql2 |   mysql2 | ||||||
|   net-ldap (~> 0.3.1) |   net-ldap (~> 0.3.1) | ||||||
|  |   nokogiri | ||||||
|   radius |   radius | ||||||
|   rails (>= 3.1.0, < 3.2.0) |   rails (>= 3.1.0, < 3.2.0) | ||||||
|   rake |   rake | ||||||
|  | @ -242,7 +272,6 @@ DEPENDENCIES | ||||||
|   sinatra |   sinatra | ||||||
|   spork |   spork | ||||||
|   sprockets |   sprockets | ||||||
|   therubyracer |  | ||||||
|   tinymce-rails |   tinymce-rails | ||||||
|   uglifier |   uglifier | ||||||
|   watchr |   watchr | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								Rakefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Rakefile
								
								
								
								
							|  | @ -5,4 +5,4 @@ require File.expand_path('../config/application', __FILE__) | ||||||
| require 'rake/dsl_definition' | require 'rake/dsl_definition' | ||||||
| require 'rake' | require 'rake' | ||||||
| 
 | 
 | ||||||
| PrototypeR4::Application.load_tasks | Orbit::Application.load_tasks | ||||||
|  |  | ||||||
|  | @ -45,10 +45,10 @@ | ||||||
| 	opacity: 1; | 	opacity: 1; | ||||||
| 	filter: alpha(opacity=100); | 	filter: alpha(opacity=100); | ||||||
| 	cursor: pointer; | 	cursor: pointer; | ||||||
| } | } | ||||||
| .select-role { | .select-role { | ||||||
| 	display:none; | 	display:none; | ||||||
| 	overflow:hidden; | 	padding: 10px 0 0; | ||||||
| } | } | ||||||
| .file-upload { | .file-upload { | ||||||
| 	position:relative; | 	position:relative; | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.6 KiB | 
										
											Binary file not shown.
										
									
								
							|  | @ -68,8 +68,7 @@ | ||||||
|  * See the License for the specific language governing permissions and |  * See the License for the specific language governing permissions and | ||||||
|  * limitations under the License. |  * limitations under the License. | ||||||
|  * ========================================================= */ |  * ========================================================= */ | ||||||
| 
 |   | ||||||
| 
 |  | ||||||
| !function( $ ){ | !function( $ ){ | ||||||
| 
 | 
 | ||||||
|   "use strict" |   "use strict" | ||||||
|  | @ -130,6 +129,7 @@ | ||||||
| 
 | 
 | ||||||
|         var that = this |         var that = this | ||||||
|         this.isShown = false |         this.isShown = false | ||||||
|  | 		//alert(this.isShown+":"+this.$element.attr('class'))
 | ||||||
| 
 | 
 | ||||||
|         $('body').removeClass('modal-open') |         $('body').removeClass('modal-open') | ||||||
| 
 | 
 | ||||||
|  | @ -138,7 +138,7 @@ | ||||||
|         this.$element |         this.$element | ||||||
|           .trigger('hide') |           .trigger('hide') | ||||||
|           .removeClass('in') |           .removeClass('in') | ||||||
| 
 | 		   | ||||||
|         $.support.transition && this.$element.hasClass('fade') ? |         $.support.transition && this.$element.hasClass('fade') ? | ||||||
|           hideWithTransition.call(this) : |           hideWithTransition.call(this) : | ||||||
|           hideModal.call(this) |           hideModal.call(this) | ||||||
|  | @ -146,7 +146,6 @@ | ||||||
| 
 | 
 | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|  /* MODAL PRIVATE METHODS |  /* MODAL PRIVATE METHODS | ||||||
|   * ===================== */ |   * ===================== */ | ||||||
| 
 | 
 | ||||||
|  | @ -1251,7 +1250,8 @@ | ||||||
|       var that = this |       var that = this | ||||||
|         , complete = function () { |         , complete = function () { | ||||||
|             if (startEvent == 'show') that.reset() |             if (startEvent == 'show') that.reset() | ||||||
|             that.$element.trigger(completeEvent) |             that.$element.trigger(completeEvent) | ||||||
|  |             mainTablePosition(); | ||||||
|           } |           } | ||||||
| 
 | 
 | ||||||
|       this.$element |       this.$element | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| $('.bulletin_urls_block a.delete').live('click', function(){ | $('.bulletin_links_block a.delete').live('click', function(){ | ||||||
|   $(this).parents('.list_item').remove(); |   $(this).parents('.list_item').remove(); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|  | @ -8,5 +8,21 @@ $('.bulletin_files_block a.delete').live('click', function(){ | ||||||
| 
 | 
 | ||||||
| $('.action a.remove_existing_record').live('click', function(){ | $('.action a.remove_existing_record').live('click', function(){ | ||||||
|   $(this).next('.should_destroy').attr('value', 1); |   $(this).next('.should_destroy').attr('value', 1); | ||||||
|   $("#bulletin_" + $(this).prev().attr('value')).hide(); |   //$("#bulletin_" + $(this).prev().attr('value')).hide(); | ||||||
|  |   $("tr#bulletin_" + $(this).prev().attr('value')).hide(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | $('.quick_edit_cancel').live('click', function(){ | ||||||
|  |   tr = $(this).attr('rel'); | ||||||
|  |   $('#' + tr).hide(); | ||||||
|  |   $("tr#bulletin_file_" + $(this).prev().attr('value')).hide(); | ||||||
|  |   $("tr#bulletin_link_" + $(this).prev().attr('value')).hide(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | $(document).on('click', '.list-remove', function(){ | ||||||
|  | 	$('#delete_bulletins').submit(); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | $(document).on('click', '#check_all_bulletins', function(){ | ||||||
|  |   $('.checkbox_in_list').attr("checked", this.checked); | ||||||
| }); | }); | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | /*! HTML5 Shiv pre3.5 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed  | ||||||
|  |     Uncompressed source: https://github.com/aFarkas/html5shiv */
 | ||||||
|  | (function(a,b){function h(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function i(){var a=l.elements;return typeof a=="string"?a.split(" "):a}function j(a){var b={},c=a.createElement,f=a.createDocumentFragment,g=f();a.createElement=function(a){l.shivMethods||c(a);var f;return b[a]?f=b[a].cloneNode():e.test(a)?f=(b[a]=c(a)).cloneNode():f=c(a),f.canHaveChildren&&!d.test(a)?g.appendChild(f):f},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+i().join().replace(/\w+/g,function(a){return b[a]=c(a),g.createElement(a),'c("'+a+'")'})+");return n}")(l,g)}function k(a){var b;return a.documentShived?a:(l.shivCSS&&!f&&(b=!!h(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),g||(b=!j(a)),b&&(a.documentShived=b),a)}function p(a){var b,c=a.getElementsByTagName("*"),d=c.length,e=RegExp("^(?:"+i().join("|")+")$","i"),f=[];while(d--)b=c[d],e.test(b.nodeName)&&f.push(b.applyElement(q(b)));return f}function q(a){var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(n+":"+a.nodeName);while(d--)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function r(a){var b,c=a.split("{"),d=c.length,e=RegExp("(^|[\\s,>+~])("+i().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),f="$1"+n+"\\:$2";while(d--)b=c[d]=c[d].split("}"),b[b.length-1]=b[b.length-1].replace(e,f),c[d]=b.join("}");return c.join("{")}function s(a){var b=a.length;while(b--)a[b].removeNode()}function t(a){var b,c,d=a.namespaces,e=a.parentWindow;return!o||a.printShived?a:(typeof d[n]=="undefined"&&d.add(n),e.attachEvent("onbeforeprint",function(){var d,e,f,g=a.styleSheets,i=[],j=g.length,k=Array(j);while(j--)k[j]=g[j];while(f=k.pop())if(!f.disabled&&m.test(f.media)){for(d=f.imports,j=0,e=d.length;j<e;j++)k.push(d[j]);try{i.push(f.cssText)}catch(l){}}i=r(i.reverse().join("")),c=p(a),b=h(a,i)}),e.attachEvent("onafterprint",function(){s(c),b.removeNode(!0)}),a.printShived=!0,a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea|object|iframe)$/i,e=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,f,g;(function(){var c=b.createElement("a");c.innerHTML="<xyz></xyz>",f="hidden"in c,f&&typeof injectElementWithStyles=="function"&&injectElementWithStyles("#modernizr{}",function(b){b.hidden=!0,f=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).display=="none"}),g=c.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var l={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:k};a.html5=l,k(b);var m=/^$|\b(?:all|print)\b/,n="html5shiv",o=!g&&function(){var c=b.documentElement;return typeof b.namespaces!="undefined"&&typeof b.parentWindow!="undefined"&&typeof c.applyElement!="undefined"&&typeof c.removeNode!="undefined"&&typeof a.attachEvent!="undefined"}();l.type+=" print",l.shivPrint=t,t(b)})(this,document) | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | $(document).ready(function() { | ||||||
|  | 	$('.check[checked="checked"]').parents(".checkbox").addClass("checked") | ||||||
|  | 	$(".checkbox").click(function(){ | ||||||
|  | 		if($(this).children(".check").attr("checked")){ | ||||||
|  | 			// uncheck
 | ||||||
|  | 			$(this).children(".check").attr('checked', false); | ||||||
|  | 			$(this).removeClass("checked"); | ||||||
|  | 		}else{ | ||||||
|  | 			// check
 | ||||||
|  | 			$(this).children(".check").attr({checked: "checked"}); | ||||||
|  | 			$(this).addClass("checked"); | ||||||
|  | 		} | ||||||
|  | 	}); | ||||||
|  | 	$(".checkbox").popover({ | ||||||
|  | 		trigger: 'hover', | ||||||
|  | 		placement: 'bottom', | ||||||
|  | 		delay: { show: 100, hide: 300 }, | ||||||
|  | 	}); | ||||||
|  | }); | ||||||
|  | @ -0,0 +1,31 @@ | ||||||
|  | // JavaScript Document
 | ||||||
|  | 
 | ||||||
|  | // can copy code to any of ur desired javascsript 
 | ||||||
|  | 
 | ||||||
|  | //extended jquery to search fast.
 | ||||||
|  | $.extend($.expr[':'], { | ||||||
|  | 	'containsi': function (elem, i, match, array) { | ||||||
|  | 		return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; | ||||||
|  | 	} | ||||||
|  | }); | ||||||
|  | $(document).ready(function(){ | ||||||
|  | 	$("#user_filter").keyup(function(){ | ||||||
|  | 		if($(this).val()){ | ||||||
|  | 			var totalfoundbyname = $("div#users_checkbox_ary label.member-name:containsi("+$(this).val()+")").length | ||||||
|  | 			if(totalfoundbyname!=0){ | ||||||
|  | 				$("div#users_checkbox_ary label.member-name:not(:containsi("+$(this).val()+"))").parent().parent().slideUp(); | ||||||
|  | 				//$("div#users_checkbox_ary label.member-name:not(:containsi("+$(this).val()+"))").parent().popover('hide');
 | ||||||
|  | 				$("div#users_checkbox_ary label.member-name:containsi("+$(this).val()+")").parent().parent().slideDown(); | ||||||
|  | 				$("div#users_checkbox_ary label.member-name:containsi("+$(this).val()+")").parent().popover('toggle');				 | ||||||
|  | 			}else if(totalfoundbyname==0){ | ||||||
|  | 				$("div#users_checkbox_ary div.for_unit:not(:containsi("+$(this).val()+"))").parent().slideUp(); | ||||||
|  | 				//$("div#users_checkbox_ary div.for_unit:not(:containsi("+$(this).val()+"))").popover('hide');
 | ||||||
|  | 				$("div#users_checkbox_ary div.for_unit:containsi("+$(this).val()+")").parent().slideDown(); | ||||||
|  | 				$("div#users_checkbox_ary div.for_unit:containsi("+$(this).val()+")").popover('toggle'); | ||||||
|  | 			}	 | ||||||
|  | 		}else{ | ||||||
|  | 			$(".checkbox").popover('hide');	 | ||||||
|  | 			$("div.checkblock").slideDown(); | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | }) | ||||||
|  | @ -0,0 +1,126 @@ | ||||||
|  | /* | ||||||
|  |  * Date Format 1.2.3 | ||||||
|  |  * (c) 2007-2009 Steven Levithan <stevenlevithan.com> | ||||||
|  |  * MIT license | ||||||
|  |  * | ||||||
|  |  * Includes enhancements by Scott Trenda <scott.trenda.net> | ||||||
|  |  * and Kris Kowal <cixar.com/~kris.kowal/> | ||||||
|  |  * | ||||||
|  |  * Accepts a date, a mask, or a date and a mask. | ||||||
|  |  * Returns a formatted version of the given date. | ||||||
|  |  * The date defaults to the current date/time. | ||||||
|  |  * The mask defaults to dateFormat.masks.default. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | var dateFormat = function () { | ||||||
|  | 	var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, | ||||||
|  | 		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, | ||||||
|  | 		timezoneClip = /[^-+\dA-Z]/g, | ||||||
|  | 		pad = function (val, len) { | ||||||
|  | 			val = String(val); | ||||||
|  | 			len = len || 2; | ||||||
|  | 			while (val.length < len) val = "0" + val; | ||||||
|  | 			return val; | ||||||
|  | 		}; | ||||||
|  | 
 | ||||||
|  | 	// Regexes and supporting functions are cached through closure
 | ||||||
|  | 	return function (date, mask, utc) { | ||||||
|  | 		var dF = dateFormat; | ||||||
|  | 
 | ||||||
|  | 		// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
 | ||||||
|  | 		if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) { | ||||||
|  | 			mask = date; | ||||||
|  | 			date = undefined; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		// Passing date through Date applies Date.parse, if necessary
 | ||||||
|  | 		date = date ? new Date(date) : new Date; | ||||||
|  | 		if (isNaN(date)) throw SyntaxError("invalid date"); | ||||||
|  | 
 | ||||||
|  | 		mask = String(dF.masks[mask] || mask || dF.masks["default"]); | ||||||
|  | 
 | ||||||
|  | 		// Allow setting the utc argument via the mask
 | ||||||
|  | 		if (mask.slice(0, 4) == "UTC:") { | ||||||
|  | 			mask = mask.slice(4); | ||||||
|  | 			utc = true; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		var	_ = utc ? "getUTC" : "get", | ||||||
|  | 			d = date[_ + "Date"](), | ||||||
|  | 			D = date[_ + "Day"](), | ||||||
|  | 			m = date[_ + "Month"](), | ||||||
|  | 			y = date[_ + "FullYear"](), | ||||||
|  | 			H = date[_ + "Hours"](), | ||||||
|  | 			M = date[_ + "Minutes"](), | ||||||
|  | 			s = date[_ + "Seconds"](), | ||||||
|  | 			L = date[_ + "Milliseconds"](), | ||||||
|  | 			o = utc ? 0 : date.getTimezoneOffset(), | ||||||
|  | 			flags = { | ||||||
|  | 				d:    d, | ||||||
|  | 				dd:   pad(d), | ||||||
|  | 				ddd:  dF.i18n.dayNames[D], | ||||||
|  | 				dddd: dF.i18n.dayNames[D + 7], | ||||||
|  | 				m:    m + 1, | ||||||
|  | 				mm:   pad(m + 1), | ||||||
|  | 				mmm:  dF.i18n.monthNames[m], | ||||||
|  | 				mmmm: dF.i18n.monthNames[m + 12], | ||||||
|  | 				yy:   String(y).slice(2), | ||||||
|  | 				yyyy: y, | ||||||
|  | 				h:    H % 12 || 12, | ||||||
|  | 				hh:   pad(H % 12 || 12), | ||||||
|  | 				H:    H, | ||||||
|  | 				HH:   pad(H), | ||||||
|  | 				M:    M, | ||||||
|  | 				MM:   pad(M), | ||||||
|  | 				s:    s, | ||||||
|  | 				ss:   pad(s), | ||||||
|  | 				l:    pad(L, 3), | ||||||
|  | 				L:    pad(L > 99 ? Math.round(L / 10) : L), | ||||||
|  | 				t:    H < 12 ? "a"  : "p", | ||||||
|  | 				tt:   H < 12 ? "am" : "pm", | ||||||
|  | 				T:    H < 12 ? "A"  : "P", | ||||||
|  | 				TT:   H < 12 ? "AM" : "PM", | ||||||
|  | 				Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), | ||||||
|  | 				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), | ||||||
|  | 				S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] | ||||||
|  | 			}; | ||||||
|  | 
 | ||||||
|  | 		return mask.replace(token, function ($0) { | ||||||
|  | 			return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); | ||||||
|  | 		}); | ||||||
|  | 	}; | ||||||
|  | }(); | ||||||
|  | 
 | ||||||
|  | // Some common format strings
 | ||||||
|  | dateFormat.masks = { | ||||||
|  | 	"default":      "ddd mmm dd yyyy HH:MM:ss", | ||||||
|  | 	shortDate:      "m/d/yy", | ||||||
|  | 	mediumDate:     "mmm d, yyyy", | ||||||
|  | 	longDate:       "mmmm d, yyyy", | ||||||
|  | 	fullDate:       "dddd, mmmm d, yyyy", | ||||||
|  | 	shortTime:      "h:MM TT", | ||||||
|  | 	mediumTime:     "h:MM:ss TT", | ||||||
|  | 	longTime:       "h:MM:ss TT Z", | ||||||
|  | 	isoDate:        "yyyy / mm / dd", | ||||||
|  | 	isoTime:        "HH:MM:ss", | ||||||
|  | 	isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss", | ||||||
|  | 	isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // Internationalization strings
 | ||||||
|  | dateFormat.i18n = { | ||||||
|  | 	dayNames: [ | ||||||
|  | 		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", | ||||||
|  | 		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" | ||||||
|  | 	], | ||||||
|  | 	monthNames: [ | ||||||
|  | 		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", | ||||||
|  | 		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" | ||||||
|  | 	] | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // For convenience...
 | ||||||
|  | Date.prototype.format = function (mask, utc) { | ||||||
|  | 	return dateFormat(this, mask, utc); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,891 @@ | ||||||
|  | /** | ||||||
|  |  * | ||||||
|  |  * Date picker | ||||||
|  |  * Author: Stefan Petre www.eyecon.ro | ||||||
|  |  *  | ||||||
|  |  * Dual licensed under the MIT and GPL licenses | ||||||
|  |  *  | ||||||
|  |  */ | ||||||
|  | (function ($) { | ||||||
|  | 	var DatePicker = function () { | ||||||
|  | 		var	ids = {}, | ||||||
|  | 			views = { | ||||||
|  | 				years: 'datepickerViewYears', | ||||||
|  | 				moths: 'datepickerViewMonths', | ||||||
|  | 				days: 'datepickerViewDays' | ||||||
|  | 			}, | ||||||
|  | 			tpl = { | ||||||
|  | 				wrapper: '<div class="datepicker"><div class="datepickerContainer"><table cellspacing="0" cellpadding="0"><tbody><tr></tr></tbody></table></div></div>', | ||||||
|  | 				head: [ | ||||||
|  | 					'<td>', | ||||||
|  | 					'<table cellspacing="0" cellpadding="0">', | ||||||
|  | 						'<thead>', | ||||||
|  | 							'<tr>', | ||||||
|  | 								'<th class="datepickerGoPrev"><a href="#"><span><%=prev%></span></a></th>', | ||||||
|  | 								'<th colspan="6" class="datepickerMonth"><a href="#"><span></span></a></th>', | ||||||
|  | 								'<th class="datepickerGoNext"><a href="#"><span><%=next%></span></a></th>', | ||||||
|  | 							'</tr>', | ||||||
|  | 							'<tr class="datepickerDoW">', | ||||||
|  | 								'<th><span><%=week%></span></th>', | ||||||
|  | 								'<th><span><%=day1%></span></th>', | ||||||
|  | 								'<th><span><%=day2%></span></th>', | ||||||
|  | 								'<th><span><%=day3%></span></th>', | ||||||
|  | 								'<th><span><%=day4%></span></th>', | ||||||
|  | 								'<th><span><%=day5%></span></th>', | ||||||
|  | 								'<th><span><%=day6%></span></th>', | ||||||
|  | 								'<th><span><%=day7%></span></th>', | ||||||
|  | 							'</tr>', | ||||||
|  | 						'</thead>', | ||||||
|  | 					'</table></td>' | ||||||
|  | 				], | ||||||
|  | 				space : '<td class="datepickerSpace"><div></div></td>', | ||||||
|  | 				days: [ | ||||||
|  | 					'<tbody class="datepickerDays">', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<th class="datepickerWeek"><a href="#"><span><%=weeks[0].week%></span></a></th>', | ||||||
|  | 							'<td class="<%=weeks[0].days[0].classname%>"><a href="#"><span><%=weeks[0].days[0].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[0].days[1].classname%>"><a href="#"><span><%=weeks[0].days[1].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[0].days[2].classname%>"><a href="#"><span><%=weeks[0].days[2].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[0].days[3].classname%>"><a href="#"><span><%=weeks[0].days[3].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[0].days[4].classname%>"><a href="#"><span><%=weeks[0].days[4].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[0].days[5].classname%>"><a href="#"><span><%=weeks[0].days[5].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[0].days[6].classname%>"><a href="#"><span><%=weeks[0].days[6].text%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<th class="datepickerWeek"><a href="#"><span><%=weeks[1].week%></span></a></th>', | ||||||
|  | 							'<td class="<%=weeks[1].days[0].classname%>"><a href="#"><span><%=weeks[1].days[0].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[1].days[1].classname%>"><a href="#"><span><%=weeks[1].days[1].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[1].days[2].classname%>"><a href="#"><span><%=weeks[1].days[2].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[1].days[3].classname%>"><a href="#"><span><%=weeks[1].days[3].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[1].days[4].classname%>"><a href="#"><span><%=weeks[1].days[4].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[1].days[5].classname%>"><a href="#"><span><%=weeks[1].days[5].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[1].days[6].classname%>"><a href="#"><span><%=weeks[1].days[6].text%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<th class="datepickerWeek"><a href="#"><span><%=weeks[2].week%></span></a></th>', | ||||||
|  | 							'<td class="<%=weeks[2].days[0].classname%>"><a href="#"><span><%=weeks[2].days[0].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[2].days[1].classname%>"><a href="#"><span><%=weeks[2].days[1].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[2].days[2].classname%>"><a href="#"><span><%=weeks[2].days[2].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[2].days[3].classname%>"><a href="#"><span><%=weeks[2].days[3].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[2].days[4].classname%>"><a href="#"><span><%=weeks[2].days[4].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[2].days[5].classname%>"><a href="#"><span><%=weeks[2].days[5].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[2].days[6].classname%>"><a href="#"><span><%=weeks[2].days[6].text%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<th class="datepickerWeek"><a href="#"><span><%=weeks[3].week%></span></a></th>', | ||||||
|  | 							'<td class="<%=weeks[3].days[0].classname%>"><a href="#"><span><%=weeks[3].days[0].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[3].days[1].classname%>"><a href="#"><span><%=weeks[3].days[1].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[3].days[2].classname%>"><a href="#"><span><%=weeks[3].days[2].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[3].days[3].classname%>"><a href="#"><span><%=weeks[3].days[3].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[3].days[4].classname%>"><a href="#"><span><%=weeks[3].days[4].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[3].days[5].classname%>"><a href="#"><span><%=weeks[3].days[5].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[3].days[6].classname%>"><a href="#"><span><%=weeks[3].days[6].text%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<th class="datepickerWeek"><a href="#"><span><%=weeks[4].week%></span></a></th>', | ||||||
|  | 							'<td class="<%=weeks[4].days[0].classname%>"><a href="#"><span><%=weeks[4].days[0].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[4].days[1].classname%>"><a href="#"><span><%=weeks[4].days[1].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[4].days[2].classname%>"><a href="#"><span><%=weeks[4].days[2].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[4].days[3].classname%>"><a href="#"><span><%=weeks[4].days[3].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[4].days[4].classname%>"><a href="#"><span><%=weeks[4].days[4].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[4].days[5].classname%>"><a href="#"><span><%=weeks[4].days[5].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[4].days[6].classname%>"><a href="#"><span><%=weeks[4].days[6].text%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<th class="datepickerWeek"><a href="#"><span><%=weeks[5].week%></span></a></th>', | ||||||
|  | 							'<td class="<%=weeks[5].days[0].classname%>"><a href="#"><span><%=weeks[5].days[0].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[5].days[1].classname%>"><a href="#"><span><%=weeks[5].days[1].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[5].days[2].classname%>"><a href="#"><span><%=weeks[5].days[2].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[5].days[3].classname%>"><a href="#"><span><%=weeks[5].days[3].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[5].days[4].classname%>"><a href="#"><span><%=weeks[5].days[4].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[5].days[5].classname%>"><a href="#"><span><%=weeks[5].days[5].text%></span></a></td>', | ||||||
|  | 							'<td class="<%=weeks[5].days[6].classname%>"><a href="#"><span><%=weeks[5].days[6].text%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 					'</tbody>' | ||||||
|  | 				], | ||||||
|  | 				months: [ | ||||||
|  | 					'<tbody class="<%=className%>">', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[0]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[1]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[2]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[3]%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[4]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[5]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[6]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[7]%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 						'<tr>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[8]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[9]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[10]%></span></a></td>', | ||||||
|  | 							'<td colspan="2"><a href="#"><span><%=data[11]%></span></a></td>', | ||||||
|  | 						'</tr>', | ||||||
|  | 					'</tbody>' | ||||||
|  | 				] | ||||||
|  | 			}, | ||||||
|  | 			defaults = { | ||||||
|  | 				flat: false, | ||||||
|  | 				starts: 1, | ||||||
|  | 				prev: '◀', | ||||||
|  | 				next: '▶', | ||||||
|  | 				lastSel: false, | ||||||
|  | 				mode: 'single', | ||||||
|  | 				view: 'days', | ||||||
|  | 				calendars: 1, | ||||||
|  | 				format: 'Y-m-d', | ||||||
|  | 				position: 'bottom', | ||||||
|  | 				eventName: 'click', | ||||||
|  | 				onRender: function(){return {};}, | ||||||
|  | 				onChange: function(){return true;}, | ||||||
|  | 				onShow: function(){return true;}, | ||||||
|  | 				onBeforeShow: function(){return true;}, | ||||||
|  | 				onHide: function(){return true;}, | ||||||
|  | 				locale: { | ||||||
|  | 					days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], | ||||||
|  | 					daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], | ||||||
|  | 					daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"], | ||||||
|  | 					months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], | ||||||
|  | 					monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], | ||||||
|  | 					weekMin: 'wk' | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			fill = function(el) { | ||||||
|  | 				var options = $(el).data('datepicker'); | ||||||
|  | 				var cal = $(el); | ||||||
|  | 				var currentCal = Math.floor(options.calendars/2), date, data, dow, month, cnt = 0, week, days, indic, indic2, html, tblCal; | ||||||
|  | 				cal.find('td>table tbody').remove(); | ||||||
|  | 				for (var i = 0; i < options.calendars; i++) { | ||||||
|  | 					date = new Date(options.current); | ||||||
|  | 					date.addMonths(-currentCal + i); | ||||||
|  | 					tblCal = cal.find('table').eq(i+1); | ||||||
|  | 					switch (tblCal[0].className) { | ||||||
|  | 						case 'datepickerViewDays': | ||||||
|  | 							dow = formatDate(date, 'B, Y'); | ||||||
|  | 							break; | ||||||
|  | 						case 'datepickerViewMonths': | ||||||
|  | 							dow = date.getFullYear(); | ||||||
|  | 							break; | ||||||
|  | 						case 'datepickerViewYears': | ||||||
|  | 							dow = (date.getFullYear()-6) + ' - ' + (date.getFullYear()+5); | ||||||
|  | 							break; | ||||||
|  | 					}  | ||||||
|  | 					tblCal.find('thead tr:first th:eq(1) span').text(dow); | ||||||
|  | 					dow = date.getFullYear()-6; | ||||||
|  | 					data = { | ||||||
|  | 						data: [], | ||||||
|  | 						className: 'datepickerYears' | ||||||
|  | 					} | ||||||
|  | 					for ( var j = 0; j < 12; j++) { | ||||||
|  | 						data.data.push(dow + j); | ||||||
|  | 					} | ||||||
|  | 					html = tmpl(tpl.months.join(''), data); | ||||||
|  | 					date.setDate(1); | ||||||
|  | 					data = {weeks:[], test: 10}; | ||||||
|  | 					month = date.getMonth(); | ||||||
|  | 					var dow = (date.getDay() - options.starts) % 7; | ||||||
|  | 					date.addDays(-(dow + (dow < 0 ? 7 : 0))); | ||||||
|  | 					week = -1; | ||||||
|  | 					cnt = 0; | ||||||
|  | 					while (cnt < 42) { | ||||||
|  | 						indic = parseInt(cnt/7,10); | ||||||
|  | 						indic2 = cnt%7; | ||||||
|  | 						if (!data.weeks[indic]) { | ||||||
|  | 							week = date.getWeekNumber(); | ||||||
|  | 							data.weeks[indic] = { | ||||||
|  | 								week: week, | ||||||
|  | 								days: [] | ||||||
|  | 							}; | ||||||
|  | 						} | ||||||
|  | 						data.weeks[indic].days[indic2] = { | ||||||
|  | 							text: date.getDate(), | ||||||
|  | 							classname: [] | ||||||
|  | 						}; | ||||||
|  | 						if (month != date.getMonth()) { | ||||||
|  | 							data.weeks[indic].days[indic2].classname.push('datepickerNotInMonth'); | ||||||
|  | 						} | ||||||
|  | 						if (date.getDay() == 0) { | ||||||
|  | 							data.weeks[indic].days[indic2].classname.push('datepickerSunday'); | ||||||
|  | 						} | ||||||
|  | 						if (date.getDay() == 6) { | ||||||
|  | 							data.weeks[indic].days[indic2].classname.push('datepickerSaturday'); | ||||||
|  | 						} | ||||||
|  | 						var fromUser = options.onRender(date); | ||||||
|  | 						var val = date.valueOf(); | ||||||
|  | 						if (fromUser.selected || options.date == val || $.inArray(val, options.date) > -1 || (options.mode == 'range' && val >= options.date[0] && val <= options.date[1])) { | ||||||
|  | 							data.weeks[indic].days[indic2].classname.push('datepickerSelected'); | ||||||
|  | 						} | ||||||
|  | 						if (fromUser.disabled) { | ||||||
|  | 							data.weeks[indic].days[indic2].classname.push('datepickerDisabled'); | ||||||
|  | 						} | ||||||
|  | 						if (fromUser.className) { | ||||||
|  | 							data.weeks[indic].days[indic2].classname.push(fromUser.className); | ||||||
|  | 						} | ||||||
|  | 						data.weeks[indic].days[indic2].classname = data.weeks[indic].days[indic2].classname.join(' '); | ||||||
|  | 						cnt++; | ||||||
|  | 						date.addDays(1); | ||||||
|  | 					} | ||||||
|  | 					html = tmpl(tpl.days.join(''), data) + html; | ||||||
|  | 					data = { | ||||||
|  | 						data: options.locale.monthsShort, | ||||||
|  | 						className: 'datepickerMonths' | ||||||
|  | 					}; | ||||||
|  | 					html = tmpl(tpl.months.join(''), data) + html; | ||||||
|  | 					tblCal.append(html); | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			parseDate = function (date, format) { | ||||||
|  | 				if (date.constructor == Date) { | ||||||
|  | 					return new Date(date); | ||||||
|  | 				} | ||||||
|  | 				var parts = date.split(/\W+/); | ||||||
|  | 				var against = format.split(/\W+/), d, m, y, h, min, now = new Date(); | ||||||
|  | 				for (var i = 0; i < parts.length; i++) { | ||||||
|  | 					switch (against[i]) { | ||||||
|  | 						case 'd': | ||||||
|  | 						case 'e': | ||||||
|  | 							d = parseInt(parts[i],10); | ||||||
|  | 							break; | ||||||
|  | 						case 'm': | ||||||
|  | 							m = parseInt(parts[i], 10)-1; | ||||||
|  | 							break; | ||||||
|  | 						case 'Y': | ||||||
|  | 						case 'y': | ||||||
|  | 							y = parseInt(parts[i], 10); | ||||||
|  | 							y += y > 100 ? 0 : (y < 29 ? 2000 : 1900); | ||||||
|  | 							break; | ||||||
|  | 						case 'H': | ||||||
|  | 						case 'I': | ||||||
|  | 						case 'k': | ||||||
|  | 						case 'l': | ||||||
|  | 							h = parseInt(parts[i], 10); | ||||||
|  | 							break; | ||||||
|  | 						case 'P': | ||||||
|  | 						case 'p': | ||||||
|  | 							if (/pm/i.test(parts[i]) && h < 12) { | ||||||
|  | 								h += 12; | ||||||
|  | 							} else if (/am/i.test(parts[i]) && h >= 12) { | ||||||
|  | 								h -= 12; | ||||||
|  | 							} | ||||||
|  | 							break; | ||||||
|  | 						case 'M': | ||||||
|  | 							min = parseInt(parts[i], 10); | ||||||
|  | 							break; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				return new Date( | ||||||
|  | 					y === undefined ? now.getFullYear() : y, | ||||||
|  | 					m === undefined ? now.getMonth() : m, | ||||||
|  | 					d === undefined ? now.getDate() : d, | ||||||
|  | 					h === undefined ? now.getHours() : h, | ||||||
|  | 					min === undefined ? now.getMinutes() : min, | ||||||
|  | 					0 | ||||||
|  | 				); | ||||||
|  | 			}, | ||||||
|  | 			formatDate = function(date, format) { | ||||||
|  | 				var m = date.getMonth(); | ||||||
|  | 				var d = date.getDate(); | ||||||
|  | 				var y = date.getFullYear(); | ||||||
|  | 				var wn = date.getWeekNumber(); | ||||||
|  | 				var w = date.getDay(); | ||||||
|  | 				var s = {}; | ||||||
|  | 				var hr = date.getHours(); | ||||||
|  | 				var pm = (hr >= 12); | ||||||
|  | 				var ir = (pm) ? (hr - 12) : hr; | ||||||
|  | 				var dy = date.getDayOfYear(); | ||||||
|  | 				if (ir == 0) { | ||||||
|  | 					ir = 12; | ||||||
|  | 				} | ||||||
|  | 				var min = date.getMinutes(); | ||||||
|  | 				var sec = date.getSeconds(); | ||||||
|  | 				var parts = format.split(''), part; | ||||||
|  | 				for ( var i = 0; i < parts.length; i++ ) { | ||||||
|  | 					part = parts[i]; | ||||||
|  | 					switch (parts[i]) { | ||||||
|  | 						case 'a': | ||||||
|  | 							part = date.getDayName(); | ||||||
|  | 							break; | ||||||
|  | 						case 'A': | ||||||
|  | 							part = date.getDayName(true); | ||||||
|  | 							break; | ||||||
|  | 						case 'b': | ||||||
|  | 							part = date.getMonthName(); | ||||||
|  | 							break; | ||||||
|  | 						case 'B': | ||||||
|  | 							part = date.getMonthName(true); | ||||||
|  | 							break; | ||||||
|  | 						case 'C': | ||||||
|  | 							part = 1 + Math.floor(y / 100); | ||||||
|  | 							break; | ||||||
|  | 						case 'd': | ||||||
|  | 							part = (d < 10) ? ("0" + d) : d; | ||||||
|  | 							break; | ||||||
|  | 						case 'e': | ||||||
|  | 							part = d; | ||||||
|  | 							break; | ||||||
|  | 						case 'H': | ||||||
|  | 							part = (hr < 10) ? ("0" + hr) : hr; | ||||||
|  | 							break; | ||||||
|  | 						case 'I': | ||||||
|  | 							part = (ir < 10) ? ("0" + ir) : ir; | ||||||
|  | 							break; | ||||||
|  | 						case 'j': | ||||||
|  | 							part = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; | ||||||
|  | 							break; | ||||||
|  | 						case 'k': | ||||||
|  | 							part = hr; | ||||||
|  | 							break; | ||||||
|  | 						case 'l': | ||||||
|  | 							part = ir; | ||||||
|  | 							break; | ||||||
|  | 						case 'm': | ||||||
|  | 							part = (m < 9) ? ("0" + (1+m)) : (1+m); | ||||||
|  | 							break; | ||||||
|  | 						case 'M': | ||||||
|  | 							part = (min < 10) ? ("0" + min) : min; | ||||||
|  | 							break; | ||||||
|  | 						case 'p': | ||||||
|  | 						case 'P': | ||||||
|  | 							part = pm ? "PM" : "AM"; | ||||||
|  | 							break; | ||||||
|  | 						case 's': | ||||||
|  | 							part = Math.floor(date.getTime() / 1000); | ||||||
|  | 							break; | ||||||
|  | 						case 'S': | ||||||
|  | 							part = (sec < 10) ? ("0" + sec) : sec; | ||||||
|  | 							break; | ||||||
|  | 						case 'u': | ||||||
|  | 							part = w + 1; | ||||||
|  | 							break; | ||||||
|  | 						case 'w': | ||||||
|  | 							part = w; | ||||||
|  | 							break; | ||||||
|  | 						case 'y': | ||||||
|  | 							part = ('' + y).substr(2, 2); | ||||||
|  | 							break; | ||||||
|  | 						case 'Y': | ||||||
|  | 							part = y; | ||||||
|  | 							break; | ||||||
|  | 					} | ||||||
|  | 					parts[i] = part; | ||||||
|  | 				} | ||||||
|  | 				return parts.join(''); | ||||||
|  | 			}, | ||||||
|  | 			extendDate = function(options) { | ||||||
|  | 				if (Date.prototype.tempDate) { | ||||||
|  | 					return; | ||||||
|  | 				} | ||||||
|  | 				Date.prototype.tempDate = null; | ||||||
|  | 				Date.prototype.months = options.months; | ||||||
|  | 				Date.prototype.monthsShort = options.monthsShort; | ||||||
|  | 				Date.prototype.days = options.days; | ||||||
|  | 				Date.prototype.daysShort = options.daysShort; | ||||||
|  | 				Date.prototype.getMonthName = function(fullName) { | ||||||
|  | 					return this[fullName ? 'months' : 'monthsShort'][this.getMonth()]; | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.getDayName = function(fullName) { | ||||||
|  | 					return this[fullName ? 'days' : 'daysShort'][this.getDay()]; | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.addDays = function (n) { | ||||||
|  | 					this.setDate(this.getDate() + n); | ||||||
|  | 					this.tempDate = this.getDate(); | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.addMonths = function (n) { | ||||||
|  | 					if (this.tempDate == null) { | ||||||
|  | 						this.tempDate = this.getDate(); | ||||||
|  | 					} | ||||||
|  | 					this.setDate(1); | ||||||
|  | 					this.setMonth(this.getMonth() + n); | ||||||
|  | 					this.setDate(Math.min(this.tempDate, this.getMaxDays())); | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.addYears = function (n) { | ||||||
|  | 					if (this.tempDate == null) { | ||||||
|  | 						this.tempDate = this.getDate(); | ||||||
|  | 					} | ||||||
|  | 					this.setDate(1); | ||||||
|  | 					this.setFullYear(this.getFullYear() + n); | ||||||
|  | 					this.setDate(Math.min(this.tempDate, this.getMaxDays())); | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.getMaxDays = function() { | ||||||
|  | 					var tmpDate = new Date(Date.parse(this)), | ||||||
|  | 						d = 28, m; | ||||||
|  | 					m = tmpDate.getMonth(); | ||||||
|  | 					d = 28; | ||||||
|  | 					while (tmpDate.getMonth() == m) { | ||||||
|  | 						d ++; | ||||||
|  | 						tmpDate.setDate(d); | ||||||
|  | 					} | ||||||
|  | 					return d - 1; | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.getFirstDay = function() { | ||||||
|  | 					var tmpDate = new Date(Date.parse(this)); | ||||||
|  | 					tmpDate.setDate(1); | ||||||
|  | 					return tmpDate.getDay(); | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.getWeekNumber = function() { | ||||||
|  | 					var tempDate = new Date(this); | ||||||
|  | 					tempDate.setDate(tempDate.getDate() - (tempDate.getDay() + 6) % 7 + 3); | ||||||
|  | 					var dms = tempDate.valueOf(); | ||||||
|  | 					tempDate.setMonth(0); | ||||||
|  | 					tempDate.setDate(4); | ||||||
|  | 					return Math.round((dms - tempDate.valueOf()) / (604800000)) + 1; | ||||||
|  | 				}; | ||||||
|  | 				Date.prototype.getDayOfYear = function() { | ||||||
|  | 					var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0); | ||||||
|  | 					var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0); | ||||||
|  | 					var time = now - then; | ||||||
|  | 					return Math.floor(time / 24*60*60*1000); | ||||||
|  | 				}; | ||||||
|  | 			}, | ||||||
|  | 			layout = function (el) { | ||||||
|  | 				var options = $(el).data('datepicker'); | ||||||
|  | 				var cal = $('#' + options.id); | ||||||
|  | 				if (!options.extraHeight) { | ||||||
|  | 					var divs = $(el).find('div'); | ||||||
|  | 					//options.extraHeight = divs.get(0).offsetHeight + divs.get(1).offsetHeight;
 | ||||||
|  | 					//options.extraWidth = divs.get(2).offsetWidth + divs.get(3).offsetWidth;
 | ||||||
|  | 				} | ||||||
|  | 				var tbl = cal.find('table:first').get(0); | ||||||
|  | 				var width = tbl.offsetWidth; | ||||||
|  | 				var height = tbl.offsetHeight; | ||||||
|  | 				cal.css({ | ||||||
|  | 					width: width + options.extraWidth + 'px', | ||||||
|  | 					height: height + options.extraHeight + 'px' | ||||||
|  | 				}).find('div.datepickerContainer').css({ | ||||||
|  | 					width: width + 'px', | ||||||
|  | 					height: height + 'px' | ||||||
|  | 				}); | ||||||
|  | 			}, | ||||||
|  | 			click = function(ev) { | ||||||
|  | 				if ($(ev.target).is('span')) { | ||||||
|  | 					ev.target = ev.target.parentNode; | ||||||
|  | 				} | ||||||
|  | 				var el = $(ev.target); | ||||||
|  | 				if (el.is('a')) { | ||||||
|  | 					ev.target.blur(); | ||||||
|  | 					if (el.hasClass('datepickerDisabled')) { | ||||||
|  | 						return false; | ||||||
|  | 					} | ||||||
|  | 					var options = $(this).data('datepicker'); | ||||||
|  | 					var parentEl = el.parent(); | ||||||
|  | 					var tblEl = parentEl.parent().parent().parent(); | ||||||
|  | 					var tblIndex = $('table', this).index(tblEl.get(0)) - 1; | ||||||
|  | 					var tmp = new Date(options.current); | ||||||
|  | 					var changed = false; | ||||||
|  | 					var fillIt = false; | ||||||
|  | 					if (parentEl.is('th')) { | ||||||
|  | 						if (parentEl.hasClass('datepickerWeek') && options.mode == 'range' && !parentEl.next().hasClass('datepickerDisabled')) { | ||||||
|  | 							var val = parseInt(parentEl.next().text(), 10); | ||||||
|  | 							tmp.addMonths(tblIndex - Math.floor(options.calendars/2)); | ||||||
|  | 							if (parentEl.next().hasClass('datepickerNotInMonth')) { | ||||||
|  | 								tmp.addMonths(val > 15 ? -1 : 1); | ||||||
|  | 							} | ||||||
|  | 							tmp.setDate(val); | ||||||
|  | 							options.date[0] = (tmp.setHours(0,0,0,0)).valueOf(); | ||||||
|  | 							tmp.setHours(23,59,59,0); | ||||||
|  | 							tmp.addDays(6); | ||||||
|  | 							options.date[1] = tmp.valueOf(); | ||||||
|  | 							fillIt = true; | ||||||
|  | 							changed = true; | ||||||
|  | 							options.lastSel = false; | ||||||
|  | 						} else if (parentEl.hasClass('datepickerMonth')) { | ||||||
|  | 							tmp.addMonths(tblIndex - Math.floor(options.calendars/2)); | ||||||
|  | 							switch (tblEl.get(0).className) { | ||||||
|  | 								case 'datepickerViewDays': | ||||||
|  | 									tblEl.get(0).className = 'datepickerViewMonths'; | ||||||
|  | 									el.find('span').text(tmp.getFullYear()); | ||||||
|  | 									break; | ||||||
|  | 								case 'datepickerViewMonths': | ||||||
|  | 									tblEl.get(0).className = 'datepickerViewYears'; | ||||||
|  | 									el.find('span').text((tmp.getFullYear()-6) + ' - ' + (tmp.getFullYear()+5)); | ||||||
|  | 									break; | ||||||
|  | 								case 'datepickerViewYears': | ||||||
|  | 									tblEl.get(0).className = 'datepickerViewDays'; | ||||||
|  | 									el.find('span').text(formatDate(tmp, 'B, Y')); | ||||||
|  | 									break; | ||||||
|  | 							} | ||||||
|  | 						} else if (parentEl.parent().parent().is('thead')) { | ||||||
|  | 							switch (tblEl.get(0).className) { | ||||||
|  | 								case 'datepickerViewDays': | ||||||
|  | 									options.current.addMonths(parentEl.hasClass('datepickerGoPrev') ? -1 : 1); | ||||||
|  | 									break; | ||||||
|  | 								case 'datepickerViewMonths': | ||||||
|  | 									options.current.addYears(parentEl.hasClass('datepickerGoPrev') ? -1 : 1); | ||||||
|  | 									break; | ||||||
|  | 								case 'datepickerViewYears': | ||||||
|  | 									options.current.addYears(parentEl.hasClass('datepickerGoPrev') ? -12 : 12); | ||||||
|  | 									break; | ||||||
|  | 							} | ||||||
|  | 							fillIt = true; | ||||||
|  | 						} | ||||||
|  | 					} else if (parentEl.is('td') && !parentEl.hasClass('datepickerDisabled')) { | ||||||
|  | 						switch (tblEl.get(0).className) { | ||||||
|  | 							case 'datepickerViewMonths': | ||||||
|  | 								options.current.setMonth(tblEl.find('tbody.datepickerMonths td').index(parentEl)); | ||||||
|  | 								options.current.setFullYear(parseInt(tblEl.find('thead th.datepickerMonth span').text(), 10)); | ||||||
|  | 								options.current.addMonths(Math.floor(options.calendars/2) - tblIndex); | ||||||
|  | 								tblEl.get(0).className = 'datepickerViewDays'; | ||||||
|  | 								break; | ||||||
|  | 							case 'datepickerViewYears': | ||||||
|  | 								options.current.setFullYear(parseInt(el.text(), 10)); | ||||||
|  | 								tblEl.get(0).className = 'datepickerViewMonths'; | ||||||
|  | 								break; | ||||||
|  | 							default: | ||||||
|  | 								var val = parseInt(el.text(), 10); | ||||||
|  | 								tmp.addMonths(tblIndex - Math.floor(options.calendars/2)); | ||||||
|  | 								if (parentEl.hasClass('datepickerNotInMonth')) { | ||||||
|  | 									tmp.addMonths(val > 15 ? -1 : 1); | ||||||
|  | 								} | ||||||
|  | 								tmp.setDate(val); | ||||||
|  | 								switch (options.mode) { | ||||||
|  | 									case 'multiple': | ||||||
|  | 										val = (tmp.setHours(0,0,0,0)).valueOf(); | ||||||
|  | 										if ($.inArray(val, options.date) > -1) { | ||||||
|  | 											$.each(options.date, function(nr, dat){ | ||||||
|  | 												if (dat == val) { | ||||||
|  | 													options.date.splice(nr,1); | ||||||
|  | 													return false; | ||||||
|  | 												} | ||||||
|  | 											}); | ||||||
|  | 										} else { | ||||||
|  | 											options.date.push(val); | ||||||
|  | 										} | ||||||
|  | 										break; | ||||||
|  | 									case 'range': | ||||||
|  | 										if (!options.lastSel) { | ||||||
|  | 											options.date[0] = (tmp.setHours(0,0,0,0)).valueOf(); | ||||||
|  | 										} | ||||||
|  | 										val = (tmp.setHours(23,59,59,0)).valueOf(); | ||||||
|  | 										if (val < options.date[0]) { | ||||||
|  | 											options.date[1] = options.date[0] + 86399000; | ||||||
|  | 											options.date[0] = val - 86399000; | ||||||
|  | 										} else { | ||||||
|  | 											options.date[1] = val; | ||||||
|  | 										} | ||||||
|  | 										options.lastSel = !options.lastSel; | ||||||
|  | 										break; | ||||||
|  | 									default: | ||||||
|  | 										options.date = tmp.valueOf(); | ||||||
|  | 										break; | ||||||
|  | 								} | ||||||
|  | 								break; | ||||||
|  | 						} | ||||||
|  | 						fillIt = true; | ||||||
|  | 						changed = true; | ||||||
|  | 					} | ||||||
|  | 					if (fillIt) { | ||||||
|  | 						fill(this); | ||||||
|  | 					} | ||||||
|  | 					if (changed) { | ||||||
|  | 						options.onChange.apply(this, prepareDate(options)); | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				return false; | ||||||
|  | 			}, | ||||||
|  | 			prepareDate = function (options) { | ||||||
|  | 				var tmp; | ||||||
|  | 				if (options.mode == 'single') { | ||||||
|  | 					tmp = new Date(options.date); | ||||||
|  | 					return [formatDate(tmp, options.format), tmp, options.el]; | ||||||
|  | 				} else { | ||||||
|  | 					tmp = [[],[], options.el]; | ||||||
|  | 					$.each(options.date, function(nr, val){ | ||||||
|  | 						var date = new Date(val); | ||||||
|  | 						tmp[0].push(formatDate(date, options.format)); | ||||||
|  | 						tmp[1].push(date); | ||||||
|  | 					}); | ||||||
|  | 					return tmp; | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			getViewport = function () { | ||||||
|  | 				var m = document.compatMode == 'CSS1Compat'; | ||||||
|  | 				return { | ||||||
|  | 					l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), | ||||||
|  | 					t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), | ||||||
|  | 					w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), | ||||||
|  | 					h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) | ||||||
|  | 				}; | ||||||
|  | 			}, | ||||||
|  | 			isChildOf = function(parentEl, el, container) { | ||||||
|  | 				if (parentEl == el) { | ||||||
|  | 					return true; | ||||||
|  | 				} | ||||||
|  | 				if (parentEl.contains) { | ||||||
|  | 					return parentEl.contains(el); | ||||||
|  | 				} | ||||||
|  | 				if ( parentEl.compareDocumentPosition ) { | ||||||
|  | 					return !!(parentEl.compareDocumentPosition(el) & 16); | ||||||
|  | 				} | ||||||
|  | 				var prEl = el.parentNode; | ||||||
|  | 				while(prEl && prEl != container) { | ||||||
|  | 					if (prEl == parentEl) | ||||||
|  | 						return true; | ||||||
|  | 					prEl = prEl.parentNode; | ||||||
|  | 				} | ||||||
|  | 				return false; | ||||||
|  | 			}, | ||||||
|  | 			show = function (ev) { | ||||||
|  | 				var cal = $('#' + $(this).data('datepickerId')); | ||||||
|  | 				if (!cal.is(':visible')) { | ||||||
|  | 					var calEl = cal.get(0); | ||||||
|  | 					fill(calEl); | ||||||
|  | 					var options = cal.data('datepicker'); | ||||||
|  | 					options.onBeforeShow.apply(this, [cal.get(0)]); | ||||||
|  | 					var pos = $(this).offset(); | ||||||
|  | 					var viewPort = getViewport(); | ||||||
|  | 					var top = pos.top; | ||||||
|  | 					var left = pos.left; | ||||||
|  | 					var oldDisplay = $.curCSS(calEl, 'display'); | ||||||
|  | 					cal.css({ | ||||||
|  | 						visibility: 'hidden', | ||||||
|  | 						display: 'block' | ||||||
|  | 					}); | ||||||
|  | 					layout(calEl); | ||||||
|  | 					switch (options.position){ | ||||||
|  | 						case 'top': | ||||||
|  | 							top -= calEl.offsetHeight; | ||||||
|  | 							break; | ||||||
|  | 						case 'left': | ||||||
|  | 							left -= calEl.offsetWidth; | ||||||
|  | 							break; | ||||||
|  | 						case 'right': | ||||||
|  | 							left += this.offsetWidth; | ||||||
|  | 							break; | ||||||
|  | 						case 'bottom': | ||||||
|  | 							top += this.offsetHeight; | ||||||
|  | 							break; | ||||||
|  | 					} | ||||||
|  | 					if (top + calEl.offsetHeight > viewPort.t + viewPort.h) { | ||||||
|  | 						top = pos.top  - calEl.offsetHeight; | ||||||
|  | 					} | ||||||
|  | 					if (top < viewPort.t) { | ||||||
|  | 						top = pos.top + this.offsetHeight + calEl.offsetHeight; | ||||||
|  | 					} | ||||||
|  | 					if (left + calEl.offsetWidth > viewPort.l + viewPort.w) { | ||||||
|  | 						left = pos.left - calEl.offsetWidth; | ||||||
|  | 					} | ||||||
|  | 					if (left < viewPort.l) { | ||||||
|  | 						left = pos.left + this.offsetWidth | ||||||
|  | 					} | ||||||
|  | 					cal.css({ | ||||||
|  | 						visibility: 'visible', | ||||||
|  | 						display: 'block', | ||||||
|  | 						top: top + 'px', | ||||||
|  | 						left: left + 'px' | ||||||
|  | 					}); | ||||||
|  | 					if (options.onShow.apply(this, [cal.get(0)]) != false) { | ||||||
|  | 						cal.show(); | ||||||
|  | 					} | ||||||
|  | 					$(document).bind('mousedown', {cal: cal, trigger: this}, hide); | ||||||
|  | 				} | ||||||
|  | 				return false; | ||||||
|  | 			}, | ||||||
|  | 			hide = function (ev) { | ||||||
|  | 				if (ev.target != ev.data.trigger && !isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { | ||||||
|  | 					if (ev.data.cal.data('datepicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { | ||||||
|  | 						ev.data.cal.hide(); | ||||||
|  | 					} | ||||||
|  | 					$(document).unbind('mousedown', hide); | ||||||
|  | 				} | ||||||
|  | 			}; | ||||||
|  | 		return { | ||||||
|  | 			init: function(options){ | ||||||
|  | 				options = $.extend({}, defaults, options||{}); | ||||||
|  | 				extendDate(options.locale); | ||||||
|  | 				options.calendars = Math.max(1, parseInt(options.calendars,10)||1); | ||||||
|  | 				options.mode = /single|multiple|range/.test(options.mode) ? options.mode : 'single'; | ||||||
|  | 				return this.each(function(){ | ||||||
|  | 					if (!$(this).data('datepicker')) { | ||||||
|  | 						options.el = this; | ||||||
|  | 						if (options.date.constructor == String) { | ||||||
|  | 							options.date = parseDate(options.date, options.format); | ||||||
|  | 							options.date.setHours(0,0,0,0); | ||||||
|  | 						} | ||||||
|  | 						if (options.mode != 'single') { | ||||||
|  | 							if (options.date.constructor != Array) { | ||||||
|  | 								options.date = [options.date.valueOf()]; | ||||||
|  | 								if (options.mode == 'range') { | ||||||
|  | 									options.date.push(((new Date(options.date[0])).setHours(23,59,59,0)).valueOf()); | ||||||
|  | 								} | ||||||
|  | 							} else { | ||||||
|  | 								for (var i = 0; i < options.date.length; i++) { | ||||||
|  | 									options.date[i] = (parseDate(options.date[i], options.format).setHours(0,0,0,0)).valueOf(); | ||||||
|  | 								} | ||||||
|  | 								if (options.mode == 'range') { | ||||||
|  | 									options.date[1] = ((new Date(options.date[1])).setHours(23,59,59,0)).valueOf(); | ||||||
|  | 								} | ||||||
|  | 							} | ||||||
|  | 						} else { | ||||||
|  | 							options.date = options.date.valueOf(); | ||||||
|  | 						} | ||||||
|  | 						if (!options.current) { | ||||||
|  | 							options.current = new Date(); | ||||||
|  | 						} else { | ||||||
|  | 							options.current = parseDate(options.current, options.format); | ||||||
|  | 						}  | ||||||
|  | 						options.current.setDate(1); | ||||||
|  | 						options.current.setHours(0,0,0,0); | ||||||
|  | 						var id = 'datepicker_' + parseInt(Math.random() * 1000), cnt; | ||||||
|  | 						options.id = id; | ||||||
|  | 						$(this).data('datepickerId', options.id); | ||||||
|  | 						var cal = $(tpl.wrapper).attr('id', id).bind('click', click).data('datepicker', options); | ||||||
|  | 						if (options.className) { | ||||||
|  | 							cal.addClass(options.className); | ||||||
|  | 						} | ||||||
|  | 						var html = ''; | ||||||
|  | 						for (var i = 0; i < options.calendars; i++) { | ||||||
|  | 							cnt = options.starts; | ||||||
|  | 							if (i > 0) { | ||||||
|  | 								html += tpl.space; | ||||||
|  | 							} | ||||||
|  | 							html += tmpl(tpl.head.join(''), { | ||||||
|  | 									week: options.locale.weekMin, | ||||||
|  | 									prev: options.prev, | ||||||
|  | 									next: options.next, | ||||||
|  | 									day1: options.locale.daysMin[(cnt++)%7], | ||||||
|  | 									day2: options.locale.daysMin[(cnt++)%7], | ||||||
|  | 									day3: options.locale.daysMin[(cnt++)%7], | ||||||
|  | 									day4: options.locale.daysMin[(cnt++)%7], | ||||||
|  | 									day5: options.locale.daysMin[(cnt++)%7], | ||||||
|  | 									day6: options.locale.daysMin[(cnt++)%7], | ||||||
|  | 									day7: options.locale.daysMin[(cnt++)%7] | ||||||
|  | 								}); | ||||||
|  | 						} | ||||||
|  | 						cal | ||||||
|  | 							.find('tr:first').append(html) | ||||||
|  | 								.find('table').addClass(views[options.view]); | ||||||
|  | 						fill(cal.get(0)); | ||||||
|  | 						if (options.flat) { | ||||||
|  | 							cal.appendTo(this).show().css('position', 'relative'); | ||||||
|  | 							layout(cal.get(0)); | ||||||
|  | 						} else { | ||||||
|  | 							cal.appendTo(document.body); | ||||||
|  | 							$(this).bind(options.eventName, show); | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
|  | 			}, | ||||||
|  | 			showPicker: function() { | ||||||
|  | 				return this.each( function () { | ||||||
|  | 					if ($(this).data('datepickerId')) { | ||||||
|  | 						show.apply(this); | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
|  | 			}, | ||||||
|  | 			hidePicker: function() { | ||||||
|  | 				return this.each( function () { | ||||||
|  | 					if ($(this).data('datepickerId')) { | ||||||
|  | 						$('#' + $(this).data('datepickerId')).hide(); | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
|  | 			}, | ||||||
|  | 			setDate: function(date, shiftTo){ | ||||||
|  | 				return this.each(function(){ | ||||||
|  | 					if ($(this).data('datepickerId')) { | ||||||
|  | 						var cal = $('#' + $(this).data('datepickerId')); | ||||||
|  | 						var options = cal.data('datepicker'); | ||||||
|  | 						options.date = date; | ||||||
|  | 						if (options.date.constructor == String) { | ||||||
|  | 							options.date = parseDate(options.date, options.format); | ||||||
|  | 							options.date.setHours(0,0,0,0); | ||||||
|  | 						} | ||||||
|  | 						if (options.mode != 'single') { | ||||||
|  | 							if (options.date.constructor != Array) { | ||||||
|  | 								options.date = [options.date.valueOf()]; | ||||||
|  | 								if (options.mode == 'range') { | ||||||
|  | 									options.date.push(((new Date(options.date[0])).setHours(23,59,59,0)).valueOf()); | ||||||
|  | 								} | ||||||
|  | 							} else { | ||||||
|  | 								for (var i = 0; i < options.date.length; i++) { | ||||||
|  | 									options.date[i] = (parseDate(options.date[i], options.format).setHours(0,0,0,0)).valueOf(); | ||||||
|  | 								} | ||||||
|  | 								if (options.mode == 'range') { | ||||||
|  | 									options.date[1] = ((new Date(options.date[1])).setHours(23,59,59,0)).valueOf(); | ||||||
|  | 								} | ||||||
|  | 							} | ||||||
|  | 						} else { | ||||||
|  | 							options.date = options.date.valueOf(); | ||||||
|  | 						} | ||||||
|  | 						if (shiftTo) { | ||||||
|  | 							options.current = new Date (options.mode != 'single' ? options.date[0] : options.date); | ||||||
|  | 						} | ||||||
|  | 						fill(cal.get(0)); | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
|  | 			}, | ||||||
|  | 			getDate: function(formated) { | ||||||
|  | 				if (this.size() > 0) { | ||||||
|  | 					return prepareDate($('#' + $(this).data('datepickerId')).data('datepicker'))[formated ? 0 : 1]; | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			clear: function(){ | ||||||
|  | 				return this.each(function(){ | ||||||
|  | 					if ($(this).data('datepickerId')) { | ||||||
|  | 						var cal = $('#' + $(this).data('datepickerId')); | ||||||
|  | 						var options = cal.data('datepicker'); | ||||||
|  | 						if (options.mode != 'single') { | ||||||
|  | 							options.date = []; | ||||||
|  | 							fill(cal.get(0)); | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
|  | 			}, | ||||||
|  | 			fixLayout: function(){ | ||||||
|  | 				return this.each(function(){ | ||||||
|  | 					if ($(this).data('datepickerId')) { | ||||||
|  | 						var cal = $('#' + $(this).data('datepickerId')); | ||||||
|  | 						var options = cal.data('datepicker'); | ||||||
|  | 						if (options.flat) { | ||||||
|  | 							layout(cal.get(0)); | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
|  | 			} | ||||||
|  | 		}; | ||||||
|  | 	}(); | ||||||
|  | 	$.fn.extend({ | ||||||
|  | 		DatePicker: DatePicker.init, | ||||||
|  | 		DatePickerHide: DatePicker.hidePicker, | ||||||
|  | 		DatePickerShow: DatePicker.showPicker, | ||||||
|  | 		DatePickerSetDate: DatePicker.setDate, | ||||||
|  | 		DatePickerGetDate: DatePicker.getDate, | ||||||
|  | 		DatePickerClear: DatePicker.clear, | ||||||
|  | 		DatePickerLayout: DatePicker.fixLayout | ||||||
|  | 	}); | ||||||
|  | })(jQuery); | ||||||
|  | 
 | ||||||
|  | (function(){ | ||||||
|  |   var cache = {}; | ||||||
|  |   | ||||||
|  |   this.tmpl = function tmpl(str, data){ | ||||||
|  |     // Figure out if we're getting a template, or if we need to
 | ||||||
|  |     // load the template - and be sure to cache the result.
 | ||||||
|  |     var fn = !/\W/.test(str) ? | ||||||
|  |       cache[str] = cache[str] || | ||||||
|  |         tmpl(document.getElementById(str).innerHTML) : | ||||||
|  |       | ||||||
|  |       // Generate a reusable function that will serve as a template
 | ||||||
|  |       // generator (and which will be cached).
 | ||||||
|  |       new Function("obj", | ||||||
|  |         "var p=[],print=function(){p.push.apply(p,arguments);};" + | ||||||
|  |         | ||||||
|  |         // Introduce the data as local variables using with(){}
 | ||||||
|  |         "with(obj){p.push('" + | ||||||
|  |         | ||||||
|  |         // Convert the template into pure JavaScript
 | ||||||
|  |         str | ||||||
|  |           .replace(/[\r\t\n]/g, " ") | ||||||
|  |           .split("<%").join("\t") | ||||||
|  |           .replace(/((^|%>)[^\t]*)'/g, "$1\r") | ||||||
|  |           .replace(/\t=(.*?)%>/g, "',$1,'") | ||||||
|  |           .split("\t").join("');") | ||||||
|  |           .split("%>").join("p.push('") | ||||||
|  |           .split("\r").join("\\'") | ||||||
|  |       + "');}return p.join('');"); | ||||||
|  |     | ||||||
|  |     // Provide some basic currying to the user
 | ||||||
|  |     return data ? fn( data ) : fn; | ||||||
|  |   }; | ||||||
|  | })(); | ||||||
|  | @ -10,4 +10,7 @@ | ||||||
| //= require jquery.isotope.min
 | //= require jquery.isotope.min
 | ||||||
| //= require jquery.tinyscrollbar.min
 | //= require jquery.tinyscrollbar.min
 | ||||||
| //= require orbit-1.0
 | //= require orbit-1.0
 | ||||||
| //= require tinymce-jquery
 | //= require tinymce-jquery
 | ||||||
|  | //= require tinymce_orbit
 | ||||||
|  | //= require orbit-bar-search
 | ||||||
|  | //= require side_bar_history
 | ||||||
|  | @ -9,27 +9,14 @@ function resize() { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| $(document).ready(function(){ | $(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({ | 	$('.tip').tooltip({ | ||||||
| 		placement: "left" | 		placement: "left" | ||||||
| 	}); | 	}); | ||||||
| 	 | 	 | ||||||
| 	$(document).on('click', '.privacy', function() { | 	$(document).on('click', '.privacy', function() { | ||||||
|  | 
 | ||||||
|  | 			console.log($(this).val()); | ||||||
| 		switch ($(this).val()) { | 		switch ($(this).val()) { | ||||||
| 			case 'true': | 			case 'true': | ||||||
| 			$(this).parents('.controls').children('.select-role').slideUp(300); | 			$(this).parents('.controls').children('.select-role').slideUp(300); | ||||||
|  | @ -40,24 +27,35 @@ $(document).ready(function(){ | ||||||
| 		} | 		} | ||||||
| 	}); | 	}); | ||||||
| 	 | 	 | ||||||
| 	$(document).on('click', '.toggle-tr-edit', function() { | 	var $role = $('.select-role'); | ||||||
| 		$(this).parents('tr').next('.qe-block').removeClass('hide'); | 	var method =$('.privacy:eq(1)').attr('checked'); | ||||||
| 		$(this).parents('tr').next('.qe-block').find('.qe-edit-div').addClass('hide'); | 	if(method == 'checked'){ | ||||||
| 		$(this).parents('tr').next('.qe-block').find('#qe-' + $(this).attr('rel')).toggleClass('hide'); | 		$role.slideDown(0); | ||||||
| 	}); | 	} | ||||||
| 
 | 	$('.privacy').each(function($i) { | ||||||
| 	$(document).on('click', '.sort-header > .sort', function() { | 		$(this).click(function() { | ||||||
| 		$.getScript($(this).attr('rel')); | 			switch ($i) { | ||||||
|  | 				case 0: | ||||||
|  | 				$role.slideUp(300); | ||||||
|  | 				break; | ||||||
|  | 				case 1: | ||||||
|  | 				$role.slideDown(300); | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 		}); | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
| 	/*tinyscrollbar&windows-Size*/ | 	/*tinyscrollbar&windows-Size*/ | ||||||
| 	resize(); | 	resize(); | ||||||
| 	$('#main-sidebar').css("height", viewportheight-40); | 	var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2; | ||||||
| 	$('#main-sidebar .viewport').css("height", viewportheight-40); | 	$('#main-sidebar').css("height", viewportheight-30); | ||||||
|  | 	$('#main-sidebar .viewport').css("height", viewportheight-30); | ||||||
| 	$('.post-title').css("width", viewportwidth-495); | 	$('.post-title').css("width", viewportwidth-495); | ||||||
|  | 	$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft); | ||||||
| 	$('#main-sidebar').tinyscrollbar(); | 	$('#main-sidebar').tinyscrollbar(); | ||||||
| 	$('.detal-list').tinyscrollbar(); | 	$('.detal-list').tinyscrollbar(); | ||||||
| 	$('#main-sidebar').tinyscrollbar({size:(viewportheight-44)}); | 	$('#main-sidebar').tinyscrollbar({size:(viewportheight-34)}); | ||||||
|  | 	mainTablePosition(); | ||||||
| 
 | 
 | ||||||
| 	/*isotope*/ | 	/*isotope*/ | ||||||
|   var $container = $('#isotope'); |   var $container = $('#isotope'); | ||||||
|  | @ -74,18 +72,28 @@ $(window).resize(function(){ | ||||||
| 	$('#main-sidebar').css("height", viewportheight-30); | 	$('#main-sidebar').css("height", viewportheight-30); | ||||||
| 	$('#main-sidebar .viewport').css("height", viewportheight-30); | 	$('#main-sidebar .viewport').css("height", viewportheight-30); | ||||||
| 	$('.post-title').css("width", viewportwidth-495); | 	$('.post-title').css("width", viewportwidth-495); | ||||||
| 	$('#main-wrap > .subnav').css("width", viewportwidth-$mainWrapMarginLeft) | 	$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft) | ||||||
| 	$('#main-sidebar').tinyscrollbar({size:(viewportheight-34)}); | 	$('#main-sidebar').tinyscrollbar({size:(viewportheight-34)}); | ||||||
| 	mainTablePosition() | 	mainTablePosition(); | ||||||
| }); | }); | ||||||
| /*main-table position*/ | /*main-table position*/ | ||||||
| function mainTablePosition() { | function mainTablePosition() { | ||||||
| 	var $height = $('#main-wrap > .subnav').height() | 	var $height = $('#main-wrap .subnav').length && $('#main-wrap .subnav').height(); | ||||||
| 	var $table = $('#main-wrap > .table') | 	var $table = $('.main-list').length && $('.main-list:last'); | ||||||
| 	//alert ($table.height())
 | 	if($table && $table==0){ | ||||||
| 	$table.stop().animate({marginTop:$height},500) | 		$table.css({marginTop:$height}); | ||||||
| 	//$table.css({marginTop : $height})
 | 	} | ||||||
| } | 	else if($table){ | ||||||
|  | 		if($height>0){ | ||||||
|  | 			$height = $height-17; | ||||||
|  | 		} | ||||||
|  | 		$table.stop().animate({marginTop:$height},500); | ||||||
|  | 	} | ||||||
|  | 	else if($('#main-wrap .subnav')){ | ||||||
|  | 		var $object = $('#main-wrap .subnav').next(); | ||||||
|  | 		$object.css({marginTop:$height}); | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| $(window).scroll(function () { | $(window).scroll(function () { | ||||||
| 	//var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-1;
 | 	//var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-1;
 | ||||||
| 	//var $subnavWidth = parseInt($('#main-wrap > .subnav').css("width"));
 | 	//var $subnavWidth = parseInt($('#main-wrap > .subnav').css("width"));
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | $(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(); | ||||||
|  | }); | ||||||
|  | @ -0,0 +1,20 @@ | ||||||
|  | $(document).on('click', '.orbit-bar-search', function (){ | ||||||
|  | 	if ($(this).parents('.search').hasClass('visible')){ | ||||||
|  | 		$(this).parents('.search').stop().animate({ | ||||||
|  | 			'width':'28px', | ||||||
|  | 		}); | ||||||
|  | 		$(this).parents('.search').css({ | ||||||
|  | 			'background-color': 'transparent', | ||||||
|  | 		});	 | ||||||
|  | 		$(this).parents('.search').removeClass('visible');	 | ||||||
|  | 	} | ||||||
|  | 	else{ | ||||||
|  | 		$(this).parents('.search').stop().animate({ | ||||||
|  | 			'width':'265px', | ||||||
|  | 		}); | ||||||
|  | 		$(this).parents('.search').css({ | ||||||
|  | 			'background-color': 'rgba(0, 0, 0, 0.5)', | ||||||
|  | 		}); | ||||||
|  | 		$(this).parents('.search').addClass('visible'); | ||||||
|  | 	} | ||||||
|  | }); | ||||||
|  | @ -1,31 +1,49 @@ | ||||||
| $(function () {  | var history_edited = false;  | ||||||
|   $('#back_sidebar a, #back_main a.nav').live('click',   |  | ||||||
|     function () {   |  | ||||||
|       $.getScript(this.href); |  | ||||||
| 			history.pushState(null, document.title, this.href); |  | ||||||
| 			history_edited = true; |  | ||||||
|       return false; |  | ||||||
|     }   |  | ||||||
|   ); |  | ||||||
| 
 | 
 | ||||||
|   $('#back_main a.reload').live('click', | // $('#back_sidebar a, #back_main a.nav').live('click',  
 | ||||||
|     function () {  | //   function () {  
 | ||||||
|       $.getScript(this.href); | //     $.getScript(this.href);
 | ||||||
| 			history.replaceState(null, document.title, this.href); | // 		history.pushState(null, document.title, this.href);
 | ||||||
| 			history_edited = true; | // 		history_edited = true;
 | ||||||
|       return false; | //     return false;
 | ||||||
|     } | //   }  
 | ||||||
|   ); | // );
 | ||||||
| 
 | 
 | ||||||
| 	$('.form').live('submit', function () {  | // $('#back_main a.reload').live('click',
 | ||||||
|     $.post(this.action, $(this).serialize(), null, 'script'); | //   function () { 
 | ||||||
| 		history_edited = true; | //     $.getScript(this.href);
 | ||||||
|  | // 		history.replaceState(null, document.title, this.href);
 | ||||||
|  | // 		history_edited = true;
 | ||||||
|  | //     return false;
 | ||||||
|  | //   }
 | ||||||
|  | // );
 | ||||||
|  | 
 | ||||||
|  | // $('.form').live('submit', function () { 
 | ||||||
|  | //   $.post(this.action, $(this).serialize(), null, 'script');
 | ||||||
|  | // 	history_edited = true;
 | ||||||
|  | //   return false;
 | ||||||
|  | // });
 | ||||||
|  | 
 | ||||||
|  | $(document).on('click', '.js_history', | ||||||
|  |   function () {  | ||||||
|  |     $.getScript(this.href); | ||||||
|  |     history.pushState(null, document.title, this.href); | ||||||
|  |     history_edited = true; | ||||||
|     return false; |     return false; | ||||||
|   }); |   } | ||||||
|  | ); | ||||||
| 
 | 
 | ||||||
| 	$(window).bind("popstate", function () {  | $(document).on('click', '.pagination a', | ||||||
| 		if (history_edited) {  |   function () {  | ||||||
|     	$.getScript(location.href);   |     $.getScript(this.href); | ||||||
| 		} |     history.pushState(null, document.title, this.href); | ||||||
|   }); |     history_edited = true; | ||||||
|  |     return false; | ||||||
|  |   } | ||||||
|  | ); | ||||||
|  | 
 | ||||||
|  | $(window).bind("popstate", function () {  | ||||||
|  |   if (history_edited) {  | ||||||
|  |     $.getScript(location.href);   | ||||||
|  |   } | ||||||
| }); | }); | ||||||
|  | @ -0,0 +1,25 @@ | ||||||
|  | $(function() { | ||||||
|  |   $('.tinymce_textarea').tinymce({ | ||||||
|  |     theme: 'advanced', | ||||||
|  |         plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", | ||||||
|  | 
 | ||||||
|  |         // Theme options
 | ||||||
|  |         theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect", | ||||||
|  |         theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor", | ||||||
|  |         theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen", | ||||||
|  |         theme_advanced_toolbar_location : "top", | ||||||
|  |         theme_advanced_toolbar_align : "left", | ||||||
|  |         theme_advanced_statusbar_location : "bottom", | ||||||
|  |         theme_advanced_resizing : true, | ||||||
|  | 
 | ||||||
|  |         // Skin options
 | ||||||
|  |         skin : "o2k7", | ||||||
|  |         skin_variant : "silver", | ||||||
|  | 
 | ||||||
|  |         // Drop lists for link/image/media/template dialogs
 | ||||||
|  |         template_external_list_url : "js/template_list.js", | ||||||
|  |         external_link_list_url : "js/link_list.js", | ||||||
|  |         external_image_list_url : "js/image_list.js", | ||||||
|  |         media_external_list_url : "js/media_list.js" | ||||||
|  |   }); | ||||||
|  | }); | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | .banner-preview { | ||||||
|  |    width: auto; | ||||||
|  |    left: 35%; | ||||||
|  | } | ||||||
|  | @ -98,10 +98,18 @@ h1, h2, h3, h4, h5, h6 { | ||||||
| 	border-radius: 0 0 4px 4px; | 	border-radius: 0 0 4px 4px; | ||||||
| } | } | ||||||
| table .span1-2 { | table .span1-2 { | ||||||
| 	width: 94px; | 	min-width: 85px; | ||||||
|  | 	float: none; | ||||||
|  | 	margin-left: 0; | ||||||
|  | } | ||||||
|  | table .span1-3 { | ||||||
|  | 	min-width: 200px; | ||||||
| 	float: none; | 	float: none; | ||||||
| 	margin-left: 0; | 	margin-left: 0; | ||||||
| } | } | ||||||
| .qe-block .form-horizontal .form-actions { | .qe-block .form-horizontal .form-actions { | ||||||
| 	text-align:right; | 	text-align:right; | ||||||
|  | } | ||||||
|  | .modal.fade { | ||||||
|  |     top: -50%; | ||||||
| } | } | ||||||
|  | @ -0,0 +1,77 @@ | ||||||
|  | .checkblock { | ||||||
|  | 	display: inline-block; | ||||||
|  | 	float: left; | ||||||
|  | 	width: 200px; | ||||||
|  | } | ||||||
|  | .check[type="checkbox"]{ | ||||||
|  | 	display:none; | ||||||
|  | } | ||||||
|  | .checkbox{ | ||||||
|  | 	padding: 5px; | ||||||
|  | 	margin: 5px 5px 10px; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	color:#777777; | ||||||
|  | 	text-shadow: 0 1px 0px rgba(255,255,255,.4); | ||||||
|  | 	border-radius: 3px; | ||||||
|  | 	-moz-border-radius: 3px; | ||||||
|  | 	-webkit-border-radius: 3px; | ||||||
|  | 	height: 30px; | ||||||
|  | 	position: relative; | ||||||
|  | 	cursor: pointer; | ||||||
|  | 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) ); | ||||||
|  | 	background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% ); | ||||||
|  | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf'); | ||||||
|  | 	-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||||
|  | 	-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||||
|  | 	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||||
|  | } | ||||||
|  | .checkbox .check-icon { | ||||||
|  | 	display: none; | ||||||
|  | 	position: absolute; | ||||||
|  | 	width: 26px; | ||||||
|  | 	height: 26px; | ||||||
|  | 	background: url('img/check.png') no-repeat left top; | ||||||
|  | 	right: -10px; | ||||||
|  |     top: -5px; | ||||||
|  | } | ||||||
|  | .checkbox .member-name { | ||||||
|  | 	cursor: pointer; | ||||||
|  | 	font-family: helvetica; | ||||||
|  | 	font-size: 12px; | ||||||
|  | 	line-height: 30px; | ||||||
|  | 	padding: 0 10px 0 40px; | ||||||
|  | 	color: #333333; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	margin-bottom: 0; | ||||||
|  | } | ||||||
|  | .member-avatar { | ||||||
|  | 	position: absolute; | ||||||
|  |     width: 34px; | ||||||
|  |     height: 34px; | ||||||
|  |     overflow: hidden; | ||||||
|  |     margin-top: -2px; | ||||||
|  | } | ||||||
|  | img.member-img { | ||||||
|  |     max-width: 100%; | ||||||
|  | } | ||||||
|  | .checked .check-icon { | ||||||
|  | 	display: block; | ||||||
|  | } | ||||||
|  | .popover-inner { | ||||||
|  |     width: auto; | ||||||
|  |     display: inline-block; | ||||||
|  |     text-align: center; | ||||||
|  | } | ||||||
|  | .popover-title { | ||||||
|  |     display: block; | ||||||
|  |     font-size: 12px; | ||||||
|  |     font-weight: normal; | ||||||
|  |     padding: 3px 10px; | ||||||
|  | } | ||||||
|  | .popover-content { | ||||||
|  |     padding: 3px 10px; | ||||||
|  |     color: #898989; | ||||||
|  | } | ||||||
|  | .popover-content p { | ||||||
|  | 	font-size: 12px; | ||||||
|  | } | ||||||
|  | @ -0,0 +1,77 @@ | ||||||
|  | .checkblock { | ||||||
|  | 	display: inline-block; | ||||||
|  | 	float: left; | ||||||
|  | 	width: 200px; | ||||||
|  | } | ||||||
|  | .check[type="checkbox"]{ | ||||||
|  | 	display:none; | ||||||
|  | } | ||||||
|  | .checkbox{ | ||||||
|  | 	padding: 5px; | ||||||
|  | 	margin: 5px 5px 10px; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	color:#777777; | ||||||
|  | 	text-shadow: 0 1px 0px rgba(255,255,255,.4); | ||||||
|  | 	border-radius: 3px; | ||||||
|  | 	-moz-border-radius: 3px; | ||||||
|  | 	-webkit-border-radius: 3px; | ||||||
|  | 	height: 30px; | ||||||
|  | 	position: relative; | ||||||
|  | 	cursor: pointer; | ||||||
|  | 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) ); | ||||||
|  | 	background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% ); | ||||||
|  | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf'); | ||||||
|  | 	-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||||
|  | 	-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||||
|  | 	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||||
|  | } | ||||||
|  | .checkbox .check-icon { | ||||||
|  | 	display: none; | ||||||
|  | 	position: absolute; | ||||||
|  | 	width: 26px; | ||||||
|  | 	height: 26px; | ||||||
|  | 	background: url(<%= asset_path "check.png" %>) no-repeat left top; | ||||||
|  | 	right: -10px; | ||||||
|  |     top: -5px; | ||||||
|  | } | ||||||
|  | .checkbox .member-name { | ||||||
|  | 	cursor: pointer; | ||||||
|  | 	font-family: helvetica; | ||||||
|  | 	font-size: 12px; | ||||||
|  | 	line-height: 30px; | ||||||
|  | 	padding: 0 10px 0 40px; | ||||||
|  | 	color: #333333; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	margin-bottom: 0; | ||||||
|  | } | ||||||
|  | .member-avatar { | ||||||
|  | 	position: absolute; | ||||||
|  |     width: 34px; | ||||||
|  |     height: 34px; | ||||||
|  |     overflow: hidden; | ||||||
|  |     margin-top: -2px; | ||||||
|  | } | ||||||
|  | img.member-img { | ||||||
|  |     max-width: 100%; | ||||||
|  | } | ||||||
|  | .checked .check-icon { | ||||||
|  | 	display: block; | ||||||
|  | } | ||||||
|  | .popover-inner { | ||||||
|  |     width: auto; | ||||||
|  |     display: inline-block; | ||||||
|  |     text-align: center; | ||||||
|  | } | ||||||
|  | .popover-title { | ||||||
|  |     display: block; | ||||||
|  |     font-size: 12px; | ||||||
|  |     font-weight: normal; | ||||||
|  |     padding: 3px 10px; | ||||||
|  | } | ||||||
|  | .popover-content { | ||||||
|  |     padding: 3px 10px; | ||||||
|  |     color: #898989; | ||||||
|  | } | ||||||
|  | .popover-content p { | ||||||
|  | 	font-size: 12px; | ||||||
|  | } | ||||||
|  | @ -0,0 +1,205 @@ | ||||||
|  | div.datepicker { | ||||||
|  | 	position: relative; | ||||||
|  | 	font-family: Arial, Helvetica, sans-serif; | ||||||
|  | 	font-size: 12px; | ||||||
|  | 	height: 147px; | ||||||
|  | 	cursor: default; | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  | .datepickerContainer { | ||||||
|  | 	padding: 10px; | ||||||
|  | 	margin: 0 auto; | ||||||
|  | } | ||||||
|  | /* | ||||||
|  | .datepickerBorderT { | ||||||
|  | 	position: absolute; | ||||||
|  | 	left: 10px; | ||||||
|  | 	top: 0; | ||||||
|  | 	right: 10px; | ||||||
|  | 	height: 10px; | ||||||
|  | 	background: url(../images/datepicker_t.png); | ||||||
|  | } | ||||||
|  | .datepickerBorderB { | ||||||
|  | 	position: absolute; | ||||||
|  | 	left: 10px; | ||||||
|  | 	bottom: 0; | ||||||
|  | 	right: 10px; | ||||||
|  | 	height: 10px; | ||||||
|  | 	background: url(../images/datepicker_b.png); | ||||||
|  | } | ||||||
|  | .datepickerBorderL { | ||||||
|  | 	position: absolute; | ||||||
|  | 	left: 0; | ||||||
|  | 	bottom: 10px; | ||||||
|  | 	top: 10px; | ||||||
|  | 	width: 10px; | ||||||
|  | 	background: url(../images/datepicker_l.png); | ||||||
|  | } | ||||||
|  | .datepickerBorderR { | ||||||
|  | 	position: absolute; | ||||||
|  | 	right: 0; | ||||||
|  | 	bottom: 10px; | ||||||
|  | 	top: 10px; | ||||||
|  | 	width: 10px; | ||||||
|  | 	background: url(../images/datepicker_r.png); | ||||||
|  | } | ||||||
|  | .datepickerBorderTL { | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 0; | ||||||
|  | 	left: 0; | ||||||
|  | 	width: 10px; | ||||||
|  | 	height: 10px; | ||||||
|  | 	background: url(../images/datepicker_tl.png); | ||||||
|  | } | ||||||
|  | .datepickerBorderTR { | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 0; | ||||||
|  | 	right: 0; | ||||||
|  | 	width: 10px; | ||||||
|  | 	height: 10px; | ||||||
|  | 	background: url(../images/datepicker_tr.png); | ||||||
|  | } | ||||||
|  | .datepickerBorderBL { | ||||||
|  | 	position: absolute; | ||||||
|  | 	bottom: 0; | ||||||
|  | 	left: 0; | ||||||
|  | 	width: 10px; | ||||||
|  | 	height: 10px; | ||||||
|  | 	background: url(../images/datepicker_bl.png); | ||||||
|  | } | ||||||
|  | .datepickerBorderBR { | ||||||
|  | 	position: absolute; | ||||||
|  | 	bottom: 0; | ||||||
|  | 	right: 0; | ||||||
|  | 	width: 10px; | ||||||
|  | 	height: 10px; | ||||||
|  | 	background: url(../images/datepicker_br.png); | ||||||
|  | } | ||||||
|  | */ | ||||||
|  | .datepickerHidden { | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  | div.datepicker table { | ||||||
|  | 	width: 260px; | ||||||
|  | 	border-collapse:collapse; | ||||||
|  | } | ||||||
|  | div.datepicker a { | ||||||
|  | 	text-decoration: none; | ||||||
|  | 	cursor: default; | ||||||
|  | 	outline: none; | ||||||
|  | } | ||||||
|  | div.datepicker table td { | ||||||
|  | 	text-align: right; | ||||||
|  | 	padding: 0; | ||||||
|  | 	margin: 0; | ||||||
|  | } | ||||||
|  | div.datepicker th { | ||||||
|  | 	text-align: center; | ||||||
|  | 	color: #999; | ||||||
|  | 	font-weight: normal; | ||||||
|  | } | ||||||
|  | div.datepicker tbody th { | ||||||
|  | 	/*text-align: left;*/ | ||||||
|  | } | ||||||
|  | div.datepicker tbody a { | ||||||
|  | 	display: block; | ||||||
|  | 	width: 100%; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | .datepickerWeek a { | ||||||
|  | 	color: #F60; | ||||||
|  | } | ||||||
|  | .datepickerWeek a:hover { | ||||||
|  | 	color: #FC0 !important; | ||||||
|  | } | ||||||
|  | .datepickerDays a { | ||||||
|  | 	width: 20px; | ||||||
|  | 	line-height: 16px; | ||||||
|  | 	height: 16px; | ||||||
|  | 	padding-right: 2px; | ||||||
|  | } | ||||||
|  | .datepickerYears a, | ||||||
|  | .datepickerMonths a{ | ||||||
|  | 	width: 44px; | ||||||
|  | 	line-height: 36px; | ||||||
|  | 	height: 36px; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | td.datepickerNotInMonth a { | ||||||
|  | 	color: #666; | ||||||
|  | } | ||||||
|  | tbody.datepickerDays td.datepickerSelected{ | ||||||
|  | 	background: #0088CC; | ||||||
|  | } | ||||||
|  | tbody.datepickerDays td.datepickerSelected a{ | ||||||
|  | 	color: #FFF; | ||||||
|  | } | ||||||
|  | tbody.datepickerDays td.datepickerNotInMonth.datepickerSelected { | ||||||
|  | 	background: #17384d; | ||||||
|  | } | ||||||
|  | tbody.datepickerYears td.datepickerSelected, | ||||||
|  | tbody.datepickerMonths td.datepickerSelected{ | ||||||
|  | 	background: #17384d; | ||||||
|  | } | ||||||
|  | div.datepicker a:hover, | ||||||
|  | div.datepicker a:hover { | ||||||
|  | 	color: #88c5eb; | ||||||
|  | } | ||||||
|  | div.datepicker td.datepickerNotInMonth a:hover { | ||||||
|  | 	color: #999; | ||||||
|  | } | ||||||
|  | div.datepicker tbody th { | ||||||
|  | 	/*text-align: left;*/ | ||||||
|  | } | ||||||
|  | .datepickerSpace div { | ||||||
|  | 	width: 20px; | ||||||
|  | } | ||||||
|  | .datepickerGoNext a, | ||||||
|  | .datepickerGoPrev a, | ||||||
|  | .datepickerMonth a { | ||||||
|  | 	text-align: center; | ||||||
|  | 	height: 20px; | ||||||
|  | 	line-height: 20px; | ||||||
|  | } | ||||||
|  | .datepickerGoNext a { | ||||||
|  | 	float: right; | ||||||
|  | 	width: 20px; | ||||||
|  | } | ||||||
|  | .datepickerGoPrev a { | ||||||
|  | 	float: left; | ||||||
|  | 	width: 20px; | ||||||
|  | } | ||||||
|  | table.datepickerViewDays tbody.datepickerMonths, | ||||||
|  | table.datepickerViewDays tbody.datepickerYears { | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  | table.datepickerViewMonths tbody.datepickerDays, | ||||||
|  | table.datepickerViewMonths tbody.datepickerYears, | ||||||
|  | table.datepickerViewMonths tr.datepickerDoW { | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  | table.datepickerViewYears tbody.datepickerDays, | ||||||
|  | table.datepickerViewYears tbody.datepickerMonths, | ||||||
|  | table.datepickerViewYears tr.datepickerDoW { | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  | td.datepickerDisabled a, | ||||||
|  | td.datepickerDisabled.datepickerNotInMonth a{ | ||||||
|  | 	color: #333; | ||||||
|  | } | ||||||
|  | td.datepickerDisabled a:hover { | ||||||
|  | 	color: #333; | ||||||
|  | } | ||||||
|  | td.datepickerSpecial a { | ||||||
|  | 	background: #700; | ||||||
|  | } | ||||||
|  | td.datepickerSpecial.datepickerSelected a { | ||||||
|  | 	background: #a00; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /*Layout*/ | ||||||
|  | #widgetCalendar { | ||||||
|  |     height: 0; | ||||||
|  |     overflow: hidden; | ||||||
|  | 	position: relative; | ||||||
|  | } | ||||||
|  | @ -9,9 +9,9 @@ | ||||||
| .main-list { | .main-list { | ||||||
| 	margin-bottom: 0; | 	margin-bottom: 0; | ||||||
| } | } | ||||||
| .main-list thead th { | .main-wrap>.main-list thead th { | ||||||
| 	background-color: rgba(0,0,0,0.05); | 	background-color: transparent; | ||||||
| 	border-right: 1px solid #ddd; | 	border-right: medium none; | ||||||
| } | } | ||||||
| .main-list thead th:last-child { | .main-list thead th:last-child { | ||||||
| 	border-right: none;  | 	border-right: none;  | ||||||
|  | @ -29,19 +29,22 @@ | ||||||
| } | } | ||||||
| .main-list tbody .quick-edit { | .main-list tbody .quick-edit { | ||||||
| 	position:relative; | 	position:relative; | ||||||
| 	height:40px; | 	height:20px; | ||||||
| } | } | ||||||
| .main-list tbody .quick-edit .nav { | .main-list tbody .quick-edit .nav { | ||||||
| 	/*left: -55px;*/ | 	/*left: -55px;*/ | ||||||
| 	position: absolute; | 	position: absolute; | ||||||
| 	/*top: -3px;*/ | 	/*top: -3px;*/ | ||||||
| 	width: 350px; | 	width: 350px; | ||||||
|  | 	left: -8px; | ||||||
| } | } | ||||||
| .main-list td { | .main-list td { | ||||||
| 	/*height:80px;*/ | 	background-color: #FFFFFF; | ||||||
|  | 	border-bottom: 1px solid #DDDDDD; | ||||||
|  | 	border-top: medium none; | ||||||
| } | } | ||||||
| .main-list .nav { | .main-list .nav { | ||||||
|     margin-top: 15px; |     margin-top: 0; | ||||||
|     margin-bottom: 3px; |     margin-bottom: 3px; | ||||||
| } | } | ||||||
| .main-list tr.with_action:hover .hide { | .main-list tr.with_action:hover .hide { | ||||||
|  | @ -53,7 +56,7 @@ | ||||||
| } | } | ||||||
| .main-list .label-td { | .main-list .label-td { | ||||||
|     background-color: rgba(255, 255, 255, 1); |     background-color: rgba(255, 255, 255, 1); | ||||||
|     height: 60px; |     height: 40px; | ||||||
|     overflow: hidden; |     overflow: hidden; | ||||||
|     position: absolute; |     position: absolute; | ||||||
|     width: 100%; |     width: 100%; | ||||||
|  | @ -75,6 +78,15 @@ | ||||||
| 	-moz-border-radius: 3px; | 	-moz-border-radius: 3px; | ||||||
| 	z-index: 5; | 	z-index: 5; | ||||||
| } | } | ||||||
|  | .table-label { | ||||||
|  |     background-color: #F2F2F2; | ||||||
|  |     position: relative; | ||||||
|  | } | ||||||
|  | .table-label .main-list thead th { | ||||||
|  |     background-color: #F2F2F2; | ||||||
|  |     border-right: 1px solid #DDDDDD; | ||||||
|  |     border-top: 1px solid #DDDDDD !important; | ||||||
|  | } | ||||||
| .route-group .route { | .route-group .route { | ||||||
| 	padding: 0; | 	padding: 0; | ||||||
| } | } | ||||||
|  | @ -109,6 +121,9 @@ legend { | ||||||
|     border-radius: 0; |     border-radius: 0; | ||||||
| 	border-left: none; | 	border-left: none; | ||||||
| 	border-right: none; | 	border-right: none; | ||||||
|  | 	position: fixed; | ||||||
|  | 	top: 30px; | ||||||
|  | 	z-index: 50; | ||||||
| } | } | ||||||
| .subnav .nav > li:first-child > a, .subnav .nav > li:first-child > a:hover { | .subnav .nav > li:first-child > a, .subnav .nav > li:first-child > a:hover { | ||||||
| 	-moz-border-radius: 0; | 	-moz-border-radius: 0; | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockq | ||||||
| 	 -webkit-text-size-adjust:none; | 	 -webkit-text-size-adjust:none; | ||||||
| } | } | ||||||
| html, body{ | html, body{ | ||||||
| 	background: url(<%= asset_path 'background.jpg' %>) repeat left top; |  | ||||||
| 	height: 100%; | 	height: 100%; | ||||||
| } | } | ||||||
| /*自定*/ | /*自定*/ | ||||||
|  |  | ||||||
|  | @ -1,482 +1,483 @@ | ||||||
| html, body{ | html, body{ | ||||||
|     height: 100%; |     height: 100%; | ||||||
|     margin: 0; |     margin: 0; | ||||||
|     padding: 0; |     padding: 0; | ||||||
| } | } | ||||||
| html{ | html{ | ||||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat fixed 0 0 transparent; |     background: url(<%= asset_path "body.jpg" %>) no-repeat fixed 0 0 transparent; | ||||||
| 	background-size: cover; | 	background-size: cover; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| body{ | body{ | ||||||
|     color: #000000; |     color: #000000; | ||||||
|     font-family: Helvetica, '微軟正黑體'; |     font-family: Helvetica, '微軟正黑體'; | ||||||
| } | } | ||||||
| #back_banner_link{ | #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:-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% ); | 	background:-moz-linear-gradient( center top -90deg, #787e82 0%, #61676c 5%, #292c2d 100% ); | ||||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#61676c', endColorstr='#292c2d'); | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#61676c', endColorstr='#292c2d'); | ||||||
| 	-moz-box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7); | 	-moz-box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7); | ||||||
| 	-webkit-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); | 	box-shadow: 0px 1px 5px 0px rgba(0,0,0,.7); | ||||||
| 	border-top: 1px solid #474a4c; | 	border-top: 1px solid #474a4c; | ||||||
| 	border-bottom: 1px solid #1d2020; | 	border-bottom: 1px solid #1d2020; | ||||||
|     height: 41px; |     height: 41px; | ||||||
|     width: 100%; |     width: 100%; | ||||||
| 	behavior: url(<%= asset_path "PIE.htc" %>); | 	behavior: url(<%= asset_path "PIE.htc" %>); | ||||||
| } | } | ||||||
| .hmenu{ | .hmenu{ | ||||||
| 	float: right; | 	float: right; | ||||||
| 	height: 41px; | 	height: 41px; | ||||||
| } | } | ||||||
| #back_orbit{ | #back_orbit{ | ||||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #70787d), color-stop(1, #3b4043) ); | 	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% ); | 	background:-moz-linear-gradient( center top -90deg, #70787d 0%, #3b4043 100% ); | ||||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#70787d', endColorstr='#3b4043'); | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#70787d', endColorstr='#3b4043'); | ||||||
| 	-webkit-border-radius: 0px 0px 5px 5px; | 	-webkit-border-radius: 0px 0px 5px 5px; | ||||||
| 	-moz-border-radius: 0px 0px 5px 5px; | 	-moz-border-radius: 0px 0px 5px 5px; | ||||||
| 	border-radius: 0px 0px 5px 5px; | 	border-radius: 0px 0px 5px 5px; | ||||||
| 	-moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7); | 	-moz-box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7); | ||||||
| 	-webkit-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); | 	box-shadow: 0px 1px 1px 0px rgba(0,0,0,.7); | ||||||
|     cursor: pointer; |     cursor: pointer; | ||||||
|     float: left; |     float: left; | ||||||
|     height: 43px; |     height: 43px; | ||||||
|     margin-left: 10px; |     margin-left: 10px; | ||||||
|     width: 41px; |     width: 41px; | ||||||
| 	behavior: url(<%= asset_path "PIE.htc" %>); | 	behavior: url(<%= asset_path "PIE.htc" %>); | ||||||
| } | } | ||||||
| #back_orbit span{ | #back_orbit span{ | ||||||
| 	text-indent: -9999px; | 	text-indent: -9999px; | ||||||
|     background: url(<%= asset_path "bar_orbit.png" %>) no-repeat scroll 0 0 transparent; |     background: url(<%= asset_path "bar_orbit.png" %>) no-repeat scroll 0 0 transparent; | ||||||
| 	display: block; | 	display: block; | ||||||
| 	height: 43px; | 	height: 43px; | ||||||
| 	width: 100%; | 	width: 100%; | ||||||
| } | } | ||||||
| #back_orbit:hover{ | #back_orbit:hover{ | ||||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #fefefe), color-stop(1, #e4e4e4) ); | 	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% ); | 	background:-moz-linear-gradient( center top -90deg, #fefefe 0%, #e4e4e4 100% ); | ||||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fefefe', endColorstr='#e4e4e4'); | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fefefe', endColorstr='#e4e4e4'); | ||||||
| 	-webkit-border-radius: 0px; | 	-webkit-border-radius: 0px; | ||||||
| 	-moz-border-radius: 0px; | 	-moz-border-radius: 0px; | ||||||
| 	border-radius: 0px; | 	border-radius: 0px; | ||||||
| } | } | ||||||
| #back_orbit:hover span{ | #back_orbit:hover span{ | ||||||
| 	background-position: 0 -44px; | 	background-position: 0 -44px; | ||||||
| } | } | ||||||
| #back_orbit:hover #orblist{ | #back_orbit:hover #orblist{ | ||||||
| 	display:block; | 	display:block; | ||||||
| } | } | ||||||
| #orblist{ | #orblist{ | ||||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #e4e4e4), color-stop(1, #FFFFFF) ); | 	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% ); | 	background:-moz-linear-gradient( center top -90deg, #e4e4e4 0%, #FFFFFF 100% ); | ||||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e4e4e4', endColorstr='#FFFFFF'); | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e4e4e4', endColorstr='#FFFFFF'); | ||||||
| 	-webkit-border-radius: 0px 3px 3px 3px; | 	-webkit-border-radius: 0px 3px 3px 3px; | ||||||
| 	-moz-border-radius: 0px 3px 3px 3px; | 	-moz-border-radius: 0px 3px 3px 3px; | ||||||
|     border-radius: 0px 3px 3px 3px; |     border-radius: 0px 3px 3px 3px; | ||||||
|     -webkit-box-shadow: 0 3px 3px #000000; |     -webkit-box-shadow: 0 3px 3px #000000; | ||||||
|     -moz-box-shadow: 0 3px 3px #000000; |     -moz-box-shadow: 0 3px 3px #000000; | ||||||
|     box-shadow: 0 3px 3px #000000; |     box-shadow: 0 3px 3px #000000; | ||||||
|     display: none; |     display: none; | ||||||
|     margin: 0; |     margin: 0; | ||||||
|     padding: 10px; |     padding: 10px; | ||||||
|     position: absolute; |     position: absolute; | ||||||
|     top: 43px; |     top: 43px; | ||||||
|     width: 130px; |     width: 130px; | ||||||
| } | } | ||||||
| #orblist li{ | #orblist li{ | ||||||
| 	border-bottom:1px solid #aaa; | 	border-bottom:1px solid #aaa; | ||||||
| 	list-style:none; | 	list-style:none; | ||||||
| } | } | ||||||
| .orblink{ | .orblink{ | ||||||
|     color: #333333; |     color: #333333; | ||||||
|     display: block; |     display: block; | ||||||
|     font: 12px/100% arial,sans-serif; |     font: 12px/100% arial,sans-serif; | ||||||
|     padding: 5px; |     padding: 5px; | ||||||
|     text-decoration: none; |     text-decoration: none; | ||||||
| } | } | ||||||
| .orblink:hover{ | .orblink:hover{ | ||||||
| 	background:#eee; | 	background:#eee; | ||||||
| 	color:#333; | 	color:#333; | ||||||
| } | } | ||||||
| #log_out{ | #log_out{ | ||||||
| 	-moz-box-shadow:inset 1px 0px 0px 0px #73777b; | 	-moz-box-shadow:inset 1px 0px 0px 0px #73777b; | ||||||
| 	-webkit-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; | 	box-shadow:inset 1px 0px 0px 0px #73777b; | ||||||
| 	border-right:1px solid #41474c; | 	border-right:1px solid #41474c; | ||||||
| 	border-left:1px solid #41474c; | 	border-left:1px solid #41474c; | ||||||
| 	float:right; | 	float:right; | ||||||
| 	width:41px; | 	width:41px; | ||||||
| 	height:41px; | 	height:41px; | ||||||
| } | } | ||||||
| #log_out:hover{ | #log_out:hover{ | ||||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0, #01afde), color-stop(1, #007ec6) ); | 	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% ); | 	background:-moz-linear-gradient( center top -90deg, #01afde 0%, #007ec6 100% ); | ||||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#01afde', endColorstr='#007ec6'); | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#01afde', endColorstr='#007ec6'); | ||||||
| } | } | ||||||
| #log_out a{ | #log_out a{ | ||||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right 0 transparent; |     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right 0 transparent; | ||||||
| 	display: block; | 	display: block; | ||||||
| 	height: 41px; | 	height: 41px; | ||||||
| 	text-indent: -9999px; | 	text-indent: -9999px; | ||||||
| 	width: 41px; | 	width: 41px; | ||||||
| } | } | ||||||
| #log_out a:hover{ | #log_out a:hover{ | ||||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right bottom transparent !important; |     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right bottom transparent !important; | ||||||
| } | } | ||||||
| .lang{ | .lang{ | ||||||
| 	color: #FFFFFF; | 	color: #FFFFFF; | ||||||
| 	float: right; | 	float: right; | ||||||
| 	font-size: 15px; | 	font-size: 15px; | ||||||
| 	line-height: 40px; | 	line-height: 40px; | ||||||
| 	margin-right: 10px; | 	margin-right: 10px; | ||||||
| } | } | ||||||
| .lang a{ | .lang a{ | ||||||
| 	color:#fff; | 	color:#fff; | ||||||
| 	text-decoration:none; | 	text-decoration:none; | ||||||
| } | } | ||||||
| .lang a:hover{ | .lang a:hover{ | ||||||
| 	text-decoration:underline; | 	text-decoration:underline; | ||||||
| } | } | ||||||
| #back_content{ | #back_content{ | ||||||
|     height: 100%; |     height: 100%; | ||||||
| } | } | ||||||
| #back_footer{ | #back_footer{ | ||||||
| 	background-color: #101010; | 	background-color: #101010; | ||||||
| 	bottom: 0; | 	bottom: 0; | ||||||
| 	color: #FFFFFF; | 	color: #FFFFFF; | ||||||
| 	font-size: 11px; | 	display:none; | ||||||
| 	padding: 10px; | 	font-size: 11px; | ||||||
| 	position: fixed; | 	padding: 10px; | ||||||
| 	width: 100%; | 	position: fixed; | ||||||
| 	left: 0; | 	width: 100%; | ||||||
| 	box-shadow: 0 -3px 4px #000; | 	left: 0; | ||||||
| } | 	box-shadow: 0 -3px 4px #000; | ||||||
| .items_setup{ | } | ||||||
| 	padding:42px 0 0 0; | .items_setup{ | ||||||
| } | 	padding:42px 0 0 0; | ||||||
| #back_sidebar .items_setup .list li{ | } | ||||||
|     padding: 6px 0 7px 5px; | #back_sidebar .items_setup .list li{ | ||||||
| } |     padding: 6px 0 7px 5px; | ||||||
| #back_sidebar .items_setup .list li a{ | } | ||||||
|     display: inline; | #back_sidebar .items_setup .list li a{ | ||||||
|     font-size: 0.9em; |     display: inline; | ||||||
|     padding: 0; |     font-size: 0.9em; | ||||||
| } |     padding: 0; | ||||||
| #back_sidebar .items_setup .list li a span{ | } | ||||||
| 	background:none; | #back_sidebar .items_setup .list li a span{ | ||||||
| 	padding:0; | 	background:none; | ||||||
| 	text-shadow:none; | 	padding:0; | ||||||
| } | 	text-shadow:none; | ||||||
| .main { | } | ||||||
|     background: none repeat scroll 0 0 #FFFFFF; | .main { | ||||||
|     height: 100%; |     background: none repeat scroll 0 0 #FFFFFF; | ||||||
|     margin-left: 220px; |     height: 100%; | ||||||
|     padding: 0 40px; |     margin-left: 220px; | ||||||
|     position: relative; |     padding: 0 40px; | ||||||
| } |     position: relative; | ||||||
| .main_list { | } | ||||||
|     padding-top: 70px; | .main_list { | ||||||
| } |     padding-top: 70px; | ||||||
| .main_list ul { | } | ||||||
| 	clear:both; | .main_list ul { | ||||||
| } | 	clear:both; | ||||||
| #porfile { | } | ||||||
| 	padding-top: 100px; | #porfile { | ||||||
| } | 	padding-top: 100px; | ||||||
| /*add_buttom*/ | } | ||||||
| .button_bar { | /*add_buttom*/ | ||||||
| 	float: right; | .button_bar { | ||||||
| 	-moz-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | 	float: right; | ||||||
| 	-webkit-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | 	-moz-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||||
| 	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; | ||||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4f4f4f), color-stop(1, #000000) ); | 	box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||||
| 	background:-moz-linear-gradient( center top, #4f4f4f 5%, #000000 100% ); | 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4f4f4f), color-stop(1, #000000) ); | ||||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f4f4f', endColorstr='#000000'); | 	background:-moz-linear-gradient( center top, #4f4f4f 5%, #000000 100% ); | ||||||
| 	background-color:#4f4f4f; | 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f4f4f', endColorstr='#000000'); | ||||||
| 	-moz-border-radius:5px; | 	background-color:#4f4f4f; | ||||||
| 	-webkit-border-radius:5px; | 	-moz-border-radius:5px; | ||||||
| 	border-radius:5px; | 	-webkit-border-radius:5px; | ||||||
| 	display:inline-block; | 	border-radius:5px; | ||||||
| 	padding:0; | 	display:inline-block; | ||||||
| 	margin:10px 0 60px; | 	padding:0; | ||||||
| } | 	margin:10px 0 60px; | ||||||
| .button_bar a { | } | ||||||
| 	text-decoration:none; | .button_bar a { | ||||||
| 	text-shadow:0px -1px 0px #000000; | 	text-decoration:none; | ||||||
| 	font-size:12px; | 	text-shadow:0px -1px 0px #000000; | ||||||
| 	color:#EDEDED; | 	font-size:12px; | ||||||
| 	border-right:1px solid #555; | 	color:#EDEDED; | ||||||
| 	-moz-box-shadow:1px 0px 0px black; | 	border-right:1px solid #555; | ||||||
| 	-webkit-box-shadow:1px 0px 0px black; | 	-moz-box-shadow:1px 0px 0px black; | ||||||
| 	box-shadow:1px 0px 0px black; | 	-webkit-box-shadow:1px 0px 0px black; | ||||||
| 	padding: 6px 10px 4px; | 	box-shadow:1px 0px 0px black; | ||||||
| 	display: inline-block; | 	padding: 6px 10px 4px; | ||||||
| 	float: left; | 	display: inline-block; | ||||||
| } | 	float: left; | ||||||
| .button_bar a:active { | } | ||||||
| 	padding: 7px 10px 3px !important; | .button_bar a:active { | ||||||
| 	text-shadow:0px 1px 0px #000000; | 	padding: 7px 10px 3px !important; | ||||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #000000), color-stop(1, #4f4f4f) ); | 	text-shadow:0px 1px 0px #000000; | ||||||
| 	background:-moz-linear-gradient( center top, #000000 5%, #4f4f4f 100% ); | 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #000000), color-stop(1, #4f4f4f) ); | ||||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#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; | .button_bar a:last-child { | ||||||
| 	-moz-box-shadow:none; | 	border-right:none; | ||||||
| 	-webkit-box-shadow:none; | 	-moz-box-shadow:none; | ||||||
| 	box-shadow:none; | 	-webkit-box-shadow:none; | ||||||
| 	-moz-border-radius:0px 5px 5px 0px; | 	box-shadow:none; | ||||||
| 	-webkit-border-radius:0px 5px 5px 0px; | 	-moz-border-radius:0px 5px 5px 0px; | ||||||
| 	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; | .button_bar a:first-child { | ||||||
| 	-webkit-border-radius:5px 0px 0px 5px; | 	-moz-border-radius:5px 0px 0px 5px; | ||||||
| 	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; | .button_bar a.new { | ||||||
| 	-moz-border-radius:5px; | 	padding: 5px 10px; | ||||||
| 	-webkit-border-radius:5px; | 	-moz-border-radius:5px; | ||||||
| 	border-radius:5px; | 	-webkit-border-radius:5px; | ||||||
| } | 	border-radius:5px; | ||||||
| .button_bar a:hover { | } | ||||||
| 	color:#FFFFFF; | .button_bar a:hover { | ||||||
| } | 	color:#FFFFFF; | ||||||
| .up { | } | ||||||
| 	margin:10px 0; | .up { | ||||||
| } | 	margin:10px 0; | ||||||
| #person { | } | ||||||
| 	left: 245px; | #person { | ||||||
| 	position: fixed; | 	left: 245px; | ||||||
| 	text-align: center; | 	position: fixed; | ||||||
| 	top: 75px; | 	text-align: center; | ||||||
| 	width: 140px; | 	top: 75px; | ||||||
| 	background-color:#FFF; | 	width: 140px; | ||||||
| 	padding:15px; | 	background-color:#FFF; | ||||||
| 	border-radius: 5px; | 	padding:15px; | ||||||
| 	-moz-border-radius: 5px; | 	border-radius: 5px; | ||||||
| 	-webkit-border-radius: 5px; | 	-moz-border-radius: 5px; | ||||||
| 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | 	-webkit-border-radius: 5px; | ||||||
| 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | ||||||
| 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | ||||||
| } | 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | ||||||
| #file { | } | ||||||
| 	display:none; | #file { | ||||||
| } | 	display:none; | ||||||
| #person img { | } | ||||||
| } | #person img { | ||||||
| .user_mail { | } | ||||||
|     border: medium none; | .user_mail { | ||||||
| 	border:1px solid #DDDDDD; |     border: medium none; | ||||||
|     color: #666666; | 	border:1px solid #DDDDDD; | ||||||
|     font-size: 12px; |     color: #666666; | ||||||
|     width: 140px; |     font-size: 12px; | ||||||
| } |     width: 140px; | ||||||
| #person label { | } | ||||||
| 	display: block; | #person label { | ||||||
| 	margin: 15px 0 0; | 	display: block; | ||||||
| } | 	margin: 15px 0 0; | ||||||
| #person label input { | } | ||||||
| } | #person label input { | ||||||
| #person label #user_admin { | } | ||||||
| 	float:right; | #person label #user_admin { | ||||||
| 	margin: 0; | 	float:right; | ||||||
| } | 	margin: 0; | ||||||
| #person label span { | } | ||||||
| 	text-align:left; | #person label span { | ||||||
| 	font-size:11px; | 	text-align:left; | ||||||
| 	color:#888; | 	font-size:11px; | ||||||
| 	display:block; | 	color:#888; | ||||||
| } | 	display:block; | ||||||
| #person select { | } | ||||||
|     border: 1px solid #DDDDDD; | #person select { | ||||||
|     padding: 0; |     border: 1px solid #DDDDDD; | ||||||
|     width: 140px; |     padding: 0; | ||||||
| } |     width: 140px; | ||||||
| #porfile .users{ | } | ||||||
| 	margin-left: 180px; | #porfile .users{ | ||||||
| } | 	margin-left: 180px; | ||||||
| .roles_block { | } | ||||||
|     background: url(<%= asset_path "75.png" %>) repeat left top; | .roles_block { | ||||||
| 	min-width:710px; |     background: url(<%= asset_path "75.png" %>) repeat left top; | ||||||
| 	margin-bottom:50px; | 	min-width:710px; | ||||||
| 	position:relative; | 	margin-bottom:50px; | ||||||
| 	padding-bottom: 20px; | 	position:relative; | ||||||
| 	border-radius: 5px; | 	padding-bottom: 20px; | ||||||
| 	-moz-border-radius: 5px; | 	border-radius: 5px; | ||||||
| 	-webkit-border-radius: 5px; | 	-moz-border-radius: 5px; | ||||||
| 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | 	-webkit-border-radius: 5px; | ||||||
| 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | ||||||
| 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | ||||||
| } | 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | ||||||
| .roles_block h2 { | } | ||||||
|     color: #FFFFFF; | .roles_block h2 { | ||||||
|     font-weight: normal; |     color: #FFFFFF; | ||||||
|     margin: 0; |     font-weight: normal; | ||||||
|     padding: 0; |     margin: 0; | ||||||
|     position: absolute; |     padding: 0; | ||||||
|     text-shadow: 0 3px 2px #000000; |     position: absolute; | ||||||
|     top: -30px; |     text-shadow: 0 3px 2px #000000; | ||||||
| } |     top: -30px; | ||||||
| .main hr { | } | ||||||
| 	height:8px; | .main hr { | ||||||
| 	border:none; | 	height:8px; | ||||||
| 	margin:0; | 	border:none; | ||||||
| 	border-radius: 5px 5px 0px 0px; | 	margin:0; | ||||||
| 	-moz-border-radius: 5px 5px 0px 0px; | 	border-radius: 5px 5px 0px 0px; | ||||||
| 	-webkit-border-radius: 5px 5px 0px 0px; | 	-moz-border-radius: 5px 5px 0px 0px; | ||||||
| 	border-bottom:1px solid #000; | 	-webkit-border-radius: 5px 5px 0px 0px; | ||||||
| } | 	border-bottom:1px solid #000; | ||||||
| .main2{ | } | ||||||
| 	padding:70px 0 0; | .main2{ | ||||||
| } | 	padding:70px 0 0; | ||||||
| #basic_block hr { | } | ||||||
|     background-color: #666666; | #basic_block hr { | ||||||
| } |     background-color: #666666; | ||||||
| #teacher_block hr { | } | ||||||
|     background-color: #0071A9; | #teacher_block hr { | ||||||
| } |     background-color: #0071A9; | ||||||
| #student_block hr { | } | ||||||
|     background-color: #AF0045; | #student_block hr { | ||||||
| } |     background-color: #AF0045; | ||||||
| .info_input { | } | ||||||
| 	padding:10px 20px; | .info_input { | ||||||
| } | 	padding:10px 20px; | ||||||
| .info_input table { | } | ||||||
| 	color:#fff; | .info_input table { | ||||||
| 	width:100%; | 	color:#fff; | ||||||
| 	font-size:14px; | 	width:100%; | ||||||
| } | 	font-size:14px; | ||||||
| .info_input table td { | } | ||||||
| 	padding:5px 10px 5px 0; | .info_input table td { | ||||||
| 	width: 10%; | 	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 { | ||||||
| } | 	background:url(<%= asset_path "line.png" %>) left bottom repeat-x; | ||||||
| .info_input .list_head td { | } | ||||||
| } | .info_input .list_head td { | ||||||
| .info_input .list_item { | } | ||||||
| 	color:#AEAEAE; | .info_input .list_item { | ||||||
| } | 	color:#AEAEAE; | ||||||
| .info_input .add { | } | ||||||
| 	display:block; | .info_input .add { | ||||||
| 	padding-left:22px; | 	display:block; | ||||||
| 	font-size:12px; | 	padding-left:22px; | ||||||
| 	line-height:21px; | 	font-size:12px; | ||||||
| 	height:19px; | 	line-height:21px; | ||||||
| 	background:url(<%= asset_path "icon.png" %>) no-repeat -59px 0; | 	height:19px; | ||||||
| 	margin-top: 10px; | 	background:url(<%= asset_path "icon.png" %>) no-repeat -59px 0; | ||||||
| 	color: #DDDDDD; | 	margin-top: 10px; | ||||||
| } | 	color: #DDDDDD; | ||||||
| 
 | } | ||||||
| .main table { | 
 | ||||||
| 	width:100%; | .main table { | ||||||
| } | 	width:100%; | ||||||
| .main td { | } | ||||||
| 	padding-left:20px; | .main td { | ||||||
| 	color:#fff; | 	padding-left:20px; | ||||||
| 	font-size:14px; | 	color:#fff; | ||||||
| 	line-height:40px; | 	font-size:14px; | ||||||
| } | 	line-height:40px; | ||||||
| .main tr.have td{ | } | ||||||
| 	background: url(<%= asset_path "75.png" %>) repeat left top; | .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; | .main tr.have td:first-child{ | ||||||
| 	-moz-border-radius: 5px 0 0 5px; | 	border-radius: 5px 0 0 5px; | ||||||
| 	-webkit-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; | .main tr.have td:last-child{ | ||||||
| 	-moz-border-radius: 0 5px 5px 0; | 	border-radius: 0 5px 5px 0; | ||||||
| 	-webkit-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; | .main thead td { | ||||||
| 	font-size:16px; | 	line-height:40px; | ||||||
| 	text-shadow: 0px 1px 1px #3e2914; | 	font-size:16px; | ||||||
| } | 	text-shadow: 0px 1px 1px #3e2914; | ||||||
| .main thead td.action { | } | ||||||
| 	width:140px; | .main thead td.action { | ||||||
| } | 	width:140px; | ||||||
| .main tbody td.roles { | } | ||||||
|     background-image: url(<%= asset_path "roles_type.jpg" %>); | .main tbody td.roles { | ||||||
|     background-repeat: repeat-x; |     background-image: url(<%= asset_path "roles_type.jpg" %>); | ||||||
| } |     background-repeat: repeat-x; | ||||||
| .main tbody td.teacher { | } | ||||||
|     background-position: 0 -54px; | .main tbody td.teacher { | ||||||
| } |     background-position: 0 -54px; | ||||||
| .main tbody td.student { | } | ||||||
| 	background-position: 0 -5px; | .main tbody td.student { | ||||||
| } | 	background-position: 0 -5px; | ||||||
| .main tbody td.action a { | } | ||||||
|     background-image: url(<%= asset_path "icon.png" %>); | .main tbody td.action a { | ||||||
|     display: inline-block; |     background-image: url(<%= asset_path "icon.png" %>); | ||||||
|     height: 19px; |     display: inline-block; | ||||||
|     margin-right: 10px; |     height: 19px; | ||||||
|     top: 8px; |     margin-right: 10px; | ||||||
|     text-indent: -9999px; |     top: 8px; | ||||||
|     width: 19px; |     text-indent: -9999px; | ||||||
| 	position: relative; |     width: 19px; | ||||||
| } | 	position: relative; | ||||||
| .main tbody td.action a.show { | } | ||||||
|     background-position: left top; | .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.show:hover { | ||||||
| } |     background-position: left -19px; | ||||||
| .main tbody td.action a.edit { | } | ||||||
|     background-position: -19px top; | .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.edit:hover { | ||||||
| } |     background-position: -19px -19px; | ||||||
| .main tbody td.action a.delete { | } | ||||||
|     background-position: -38px top; | .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.delete:hover { | ||||||
| } |     background-position: -38px -19px; | ||||||
| .main tbody td.action a.switch { | } | ||||||
|     background: url(<%= asset_path "switch.png" %>) no-repeat left 3px; | .main tbody td.action a.switch { | ||||||
|     width: 40px; |     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 tr.disable td.action a.switch { | ||||||
| } |     background-position:left bottom; | ||||||
| .main tbody td.action a.delete:hover { | } | ||||||
|     background-position: -38px -19px; | .main tbody td.action a.delete:hover { | ||||||
| } |     background-position: -38px -19px; | ||||||
| .main tbody tr.have { | } | ||||||
| } | .main tbody tr.have { | ||||||
| .main tbody tr.disable { | } | ||||||
|     opacity: 0.7; | .main tbody tr.disable { | ||||||
| } |     opacity: 0.7; | ||||||
| .main tbody tr { | } | ||||||
| 	background:none; | .main tbody tr { | ||||||
| 	height:15px; | 	background:none; | ||||||
| } | 	height:15px; | ||||||
| h1{ | } | ||||||
| 	margin:0 0 20px; | h1{ | ||||||
| } | 	margin:0 0 20px; | ||||||
| p{ | } | ||||||
| 	margin:0 0 10px; | p{ | ||||||
| } | 	margin:0 0 10px; | ||||||
| 
 | } | ||||||
| #back_sidebar .items_setup .list li{ | 
 | ||||||
| 	background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top; | #back_sidebar .items_setup .list li{ | ||||||
| 	border:none; | 	background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top; | ||||||
|     padding: 0 0 0 5px; | 	border:none; | ||||||
| } |     padding: 0 0 0 5px; | ||||||
| #back_sidebar .items_setup .list li a{ | } | ||||||
| 	line-height:31px; | #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; | #back_sidebar .items_setup .list li:hover{ | ||||||
| 	border:none; | 	background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top; | ||||||
| } | 	border:none; | ||||||
| #back_sidebar .items_setup ul .list { | } | ||||||
|  | #back_sidebar .items_setup ul .list { | ||||||
| } | } | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -59,32 +59,90 @@ | ||||||
| } | } | ||||||
| .select-role { | .select-role { | ||||||
| 	display:none; | 	display:none; | ||||||
| 	overflow:hidden; | 	padding: 10px 0; | ||||||
| } | } | ||||||
| .file-upload { | .file-upload { | ||||||
| 	position:relative; | 	position:relative; | ||||||
|  | 	overflow: hidden; | ||||||
| } | } | ||||||
| .file-upload .file-name { | .file-upload .file-name { | ||||||
| 	display: inline-block; |  | ||||||
| 	margin: 0 0 5px 5px; |  | ||||||
| 	white-space: nowrap; | 	white-space: nowrap; | ||||||
| 	width: 140px; | 	overflow: hidden; | ||||||
|  | 	border-style: solid; | ||||||
|  | 	border-width: 1px 1px 1px 0; | ||||||
|  | 	border-color: #CCC; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	float: left; | ||||||
|  | 	padding: 4px 10px; | ||||||
|  | 	height: 18px; | ||||||
|  | 	line-height: 18px; | ||||||
|  | 	-webkit-border-radius: 0 3px 3px 0; | ||||||
|  | 	-moz-border-radius: 0 3px 3px 0; | ||||||
|  | 	border-radius: 0 3px 3px 0; | ||||||
|  | 	text-align: left; | ||||||
|  | 	margin: 0; | ||||||
|  |     width: 182px; | ||||||
| } | } | ||||||
| .file-upload .upload { | .file-upload .upload { | ||||||
| 	margin:0; | 	margin:0; | ||||||
| 	padding:0; | 	padding:0; | ||||||
| 	position:absolute; | 	position:absolute; | ||||||
| 	top:0; | 	top: 0; | ||||||
| 	left:0; | 	left:0; | ||||||
| 	opacity:.0; | 	opacity:.0; | ||||||
| 	filter: alpha(opacity=100); |     font-size: 60px; | ||||||
|  |     left: -595px/9; | ||||||
|  | 	filter: alpha(opacity: 0); | ||||||
|  | 	outline: none; | ||||||
| } | } | ||||||
| .file-upload .upload:focus { | .file-upload .upload:focus { | ||||||
| 	position:absolute; | 	position:absolute; | ||||||
| } | } | ||||||
| .upload-picture { | .upload-picture { | ||||||
| 	margin-right: 5px; | 	margin-bottom: 5px; | ||||||
|  | 	text-align: center; | ||||||
|  | 	width: 276px; | ||||||
|  | 	overflow: hidden; | ||||||
|  | 	height: 90px; | ||||||
|  | } | ||||||
|  | .upload-picture img { | ||||||
|  |     left: 0; | ||||||
|  |     margin-top: -15%; | ||||||
|  |     width: 100%; | ||||||
|  | } | ||||||
|  | .widget-box .widgetInfo { | ||||||
|  |     display: inline-block; | ||||||
|  |     text-align: center; | ||||||
|  |     width: 255px; | ||||||
|  |     margin : 0px 0 5px; | ||||||
|  |     padding: 5px 10px; | ||||||
|  | } | ||||||
|  | .file-upload .input-medium { | ||||||
|  |     border-radius: 3px 3px 3px 3px !important; | ||||||
|  |     width: 267px; | ||||||
|  |     position: relative; | ||||||
|  | 	z-index: 5; | ||||||
| } | } | ||||||
| #widget-link table { | #widget-link table { | ||||||
| 	margin-bottom:0 | 	margin-bottom:0 | ||||||
|  | } | ||||||
|  | /*Date*/ | ||||||
|  | .showDate { | ||||||
|  | 	border-style: solid; | ||||||
|  | 	border-width: 1px 0 1px 1px; | ||||||
|  | 	border-color: #CCC; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	float: left; | ||||||
|  | 	padding: 4px 10px; | ||||||
|  | 	height: 18px; | ||||||
|  | 	line-height: 18px; | ||||||
|  | 	-webkit-border-radius: 3px 0 0 3px; | ||||||
|  | 	-moz-border-radius: 3px 0 0 3px; | ||||||
|  | 	border-radius: 3px 0 0 3px; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | .calendarInput { | ||||||
|  | 	position: absolute; | ||||||
|  | 	visibility: hidden; | ||||||
|  | 	left: 11px; | ||||||
| } | } | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| class Admin::AdBannersController < ApplicationController | class Admin::AdBannersController < ApplicationController | ||||||
|   layout "admin" |   layout "new_admin" | ||||||
|   before_filter :authenticate_user! |   before_filter :authenticate_user! | ||||||
|   before_filter :is_admin? |   before_filter :is_admin? | ||||||
| 
 | 
 | ||||||
|  | @ -10,11 +10,14 @@ class Admin::AdBannersController < ApplicationController | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   def show |   def show | ||||||
|     @ad_banner = AdBanner.find(params[:id]) |     @ad_banners = AdBanner.all | ||||||
|  |     @active = AdBanner.find(params[:id]) | ||||||
|  |     render :action => 'index' | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   def new |   def new | ||||||
|     @ad_banner = AdBanner.new |     @ad_banners = AdBanner.all | ||||||
|  |     render :action => 'index',:params => 'new' | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   def create |   def create | ||||||
|  | @ -36,8 +39,13 @@ class Admin::AdBannersController < ApplicationController | ||||||
|     redirect_to admin_ad_banners_url |     redirect_to admin_ad_banners_url | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |   def destroy_ad_image | ||||||
|  |      | ||||||
|  |   end | ||||||
|  |    | ||||||
|   def index |   def index | ||||||
|     @ad_banners = AdBanner.all |     @ad_banners = AdBanner.all | ||||||
|  |       @active = @ad_banners.first | ||||||
|   end |   end | ||||||
|    |    | ||||||
| end | end | ||||||
|  | @ -0,0 +1,47 @@ | ||||||
|  | class Admin::AdImagesController < ApplicationController | ||||||
|  |   layout 'new_admin' | ||||||
|  |   before_filter :authenticate_user! | ||||||
|  |   before_filter :is_admin? | ||||||
|  |    | ||||||
|  |   def edit | ||||||
|  |     @ad_banner = AdBanner.find params[:ad_banner_id] | ||||||
|  |     @ad_image = @ad_banner.ad_images.find params[:id] | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |   def update | ||||||
|  |     @ad_banner = AdBanner.find params[:ad_banner_id] | ||||||
|  |     @ad_image = AdImage.find params[:id] | ||||||
|  |     @ad_image.update_attributes(params[:ad_image]) | ||||||
|  |     @ad_image.to_save = true | ||||||
|  |     @ad_image.save! | ||||||
|  |     redirect_to  admin_ad_banner_path @ad_banner | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |   def new | ||||||
|  |     @ad_image =AdImage.new  | ||||||
|  |     #render :action => 'new',:url=> {:ad_banner_id => params.has_key?(:ad_banner_id)? params[:ad_banner_id],nil} | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |   def create | ||||||
|  |     @ad_banner = AdBanner.find params[:ad_banner][:id] | ||||||
|  |     ad_image = AdImage.new  params[:ad_image] | ||||||
|  |     ad_image.to_save = true | ||||||
|  |     @ad_banner.ad_images << ad_image | ||||||
|  | 
 | ||||||
|  |     if @ad_banner.save! | ||||||
|  |       redirect_to  admin_ad_banner_path @ad_banner | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |   def destroy | ||||||
|  |     @ad_banner = AdBanner.find params[:ad_banner_id] | ||||||
|  |     @ad_image = @ad_banner.ad_images.find params[:id] | ||||||
|  |     if @ad_image.destroy | ||||||
|  |       flash[:notice] = t('admin.success_destroy_ad_image') | ||||||
|  |       redirect_to admin_ad_banner_path @ad_banner | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |    | ||||||
|  | end | ||||||
|  | @ -1,8 +1,7 @@ | ||||||
| class Admin::ObjectAuthsController < ApplicationController | class Admin::ObjectAuthsController < ApplicationController | ||||||
|   include OrbitCoreLib::PermissionUnility |   include OrbitCoreLib::PermissionUnility | ||||||
|   layout "admin" |   layout "admin" | ||||||
|   before_filter :authenticate_user! |   before_filter :force_order | ||||||
|   before_filter :check_if_user_can_do_object_auth |  | ||||||
| #  before_filter :is_admin? ,:only => :index | #  before_filter :is_admin? ,:only => :index | ||||||
|    |    | ||||||
| 
 | 
 | ||||||
|  | @ -84,6 +83,12 @@ class Admin::ObjectAuthsController < ApplicationController | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| private | private | ||||||
|  | 
 | ||||||
|  |   def force_order | ||||||
|  |     authenticate_user! | ||||||
|  |     check_if_user_can_do_object_auth | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def check_if_user_can_do_object_auth |   def check_if_user_can_do_object_auth | ||||||
|     unless  check_permission(:manager) |     unless  check_permission(:manager) | ||||||
|       render :nothing => true, :status => 403  |       render :nothing => true, :status => 403  | ||||||
|  |  | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | class SessionsController < Devise::SessionsController | ||||||
|  | 
 | ||||||
|  |   def create  | ||||||
|  |     super | ||||||
|  |     reset_session | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  | end | ||||||
|  | @ -47,7 +47,7 @@ class ApplicationController < ActionController::Base | ||||||
|   # Render the page |   # Render the page | ||||||
|   def render_page(id = nil) |   def render_page(id = nil) | ||||||
|     if @item |     if @item | ||||||
|       render :text => parse_page(@item, id) |       render :text => process_page(@item, id), :layout => 'page_layout' | ||||||
|     else |     else | ||||||
|       render :text => '404 Not Found' |       render :text => '404 Not Found' | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ require 'mongo' | ||||||
| class GridfsController < ActionController::Metal | class GridfsController < ActionController::Metal | ||||||
|    |    | ||||||
|   def serve |   def serve | ||||||
|     gridfs_path = env["PATH_INFO"].gsub("/gridfs/", "") |     gridfs_path = env["PATH_INFO"].gsub("/gridfs/", "").force_encoding("UTF-8") | ||||||
|     begin |     begin | ||||||
|       gridfs_file = Mongo::GridFileSystem.new(Mongoid.database).open(gridfs_path, 'r') |       gridfs_file = Mongo::GridFileSystem.new(Mongoid.database).open(gridfs_path, 'r') | ||||||
|       self.response_body = gridfs_file.read |       self.response_body = gridfs_file.read | ||||||
|  |  | ||||||
|  | @ -1,11 +1,12 @@ | ||||||
| class OrbitBackendController< ApplicationController | class OrbitBackendController< ApplicationController | ||||||
|   before_filter :authenticate_user! |   before_filter :force_order,:except => [:public] | ||||||
|   before_filter :setup_vars |   before_filter :setup_vars | ||||||
|  # before_filter {|c| c.front_end_available(@app_title)} |  # before_filter {|c| c.front_end_available(@app_title)} | ||||||
|   before_filter :check_user_can_use,:except => [:public] |   # before_filter :check_user_can_use | ||||||
|   include OrbitCoreLib::PermissionUnility |   include OrbitCoreLib::PermissionUnility | ||||||
|  |   include AdminHelper | ||||||
|    |    | ||||||
|   layout 'admin' |   layout 'new_admin' | ||||||
|    |    | ||||||
|   def setup_vars |   def setup_vars | ||||||
|     @app_title = request.fullpath.split('/')[2] |     @app_title = request.fullpath.split('/')[2] | ||||||
|  | @ -14,6 +15,11 @@ class OrbitBackendController< ApplicationController | ||||||
|    |    | ||||||
|   private |   private | ||||||
|    |    | ||||||
|  |   def force_order | ||||||
|  |     authenticate_user! | ||||||
|  |     check_user_can_use | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def check_user_can_use  |   def check_user_can_use  | ||||||
|     unless check_permission |     unless check_permission | ||||||
|       redirect_to polymorphic_path(['panel',@app_title,'back_end','public']) |       redirect_to polymorphic_path(['panel',@app_title,'back_end','public']) | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| class OrbitFrontendComponentController< ApplicationController | class OrbitFrontendComponentController< ApplicationController | ||||||
|   before_filter :setup_vars |   before_filter :setup_vars | ||||||
|   before_filter {|c| c.front_end_available(@app_title)} |   before_filter {|c| c.front_end_available(@app_title)} | ||||||
|   layout 'module_widget' |   layout :false | ||||||
|    |    | ||||||
|   def setup_vars |   def setup_vars | ||||||
|     @app_title = request.fullpath.split('/')[2] |     @app_title = request.fullpath.split('/')[2] | ||||||
|  |  | ||||||
|  | @ -1,5 +1,7 @@ | ||||||
| class PagesController < ApplicationController | class PagesController < ApplicationController | ||||||
|    |    | ||||||
|  |   include ApplicationHelper | ||||||
|  | 
 | ||||||
|   before_filter :get_item, :only => [:index_from_link, :show_from_link] |   before_filter :get_item, :only => [:index_from_link, :show_from_link] | ||||||
|    |    | ||||||
|   def index |   def index | ||||||
|  | @ -30,7 +32,11 @@ class PagesController < ApplicationController | ||||||
|    end |    end | ||||||
|     |     | ||||||
|    def index_from_link |    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 |    end | ||||||
|     |     | ||||||
|    def show_from_link |    def show_from_link | ||||||
|  |  | ||||||
|  | @ -1,2 +1,16 @@ | ||||||
| module Admin::AdBannerHelper | module Admin::AdBannerHelper | ||||||
|  |   def preview_block_ad_images_helper(ad_banner)   | ||||||
|  |          printable_ad_images = [] | ||||||
|  |          ad_banner.ad_images.each do |ad_image| | ||||||
|  |            if ad_image.display? | ||||||
|  |              ad_image.weight.times do | ||||||
|  |                printable_ad_images << ad_image | ||||||
|  |             end | ||||||
|  |            end | ||||||
|  |           end | ||||||
|  |            | ||||||
|  |       printable_ad_images.shuffle! | ||||||
|  |  end | ||||||
|  |    | ||||||
|  | 
 | ||||||
| end | end | ||||||
|  | @ -0,0 +1,7 @@ | ||||||
|  | module Admin::AdImagesHelper | ||||||
|  | 
 | ||||||
|  |   def active_when_default_locale_eq locale | ||||||
|  |     locale.to_sym == I18n.default_locale ? 'active': '' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  | end | ||||||
|  | @ -2,6 +2,12 @@ module ApplicationHelper | ||||||
| 
 | 
 | ||||||
|   FLASH_NOTICE_KEYS = [:error, :notice, :warning] |   FLASH_NOTICE_KEYS = [:error, :notice, :warning] | ||||||
|    |    | ||||||
|  |   def site_valid_locales_default_head | ||||||
|  |     index = @site_valid_locales.rindex I18n.default_locale.to_s | ||||||
|  |     shift_out = @site_valid_locales.shift(index) | ||||||
|  |     @site_valid_locales += shift_out | ||||||
|  |   end | ||||||
|  |    | ||||||
|   def colorize_in_use_locale(locale) |   def colorize_in_use_locale(locale) | ||||||
|     @site_in_use_locales.include?(locale)? 'green' : 'red' |     @site_in_use_locales.include?(locale)? 'green' : 'red' | ||||||
|   end |   end | ||||||
|  | @ -77,7 +83,7 @@ module ApplicationHelper | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   def active_for_action(controller_name, action_name) |   def active_for_action(controller_name, action_name) | ||||||
|     (controller.controller_name.eql?(controller_name) && controller.action_name.eql?(action_name)) ? 'active' : nil |     ((controller.controller_name.eql?(controller_name) || request.fullpath.eql?(controller_name)) && controller.action_name.eql?(action_name)) ? 'active' : nil | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def sortable(column) |   def sortable(column) | ||||||
|  | @ -96,15 +102,55 @@ module ApplicationHelper | ||||||
|     ' web-symbol' if params[:sort].eql?(name) |     ' web-symbol' if params[:sort].eql?(name) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def add_filter(param_name, value) |   def is_filter_active?(type, id) | ||||||
|     filter = params[:filter] rescue nil |     ' active' if (@filter[type].include?(id.to_s) rescue nil) | ||||||
|     if filter && filter.has_key(param_name) |   end | ||||||
|       filter[param_name] << value | 
 | ||||||
|     elsif filter |   def process_page(page, id) | ||||||
|       filter.merge({param_name => [value]}) |     parse_page_noko(page, id) | ||||||
|     else |   end | ||||||
|       {param_name => [value]} | 
 | ||||||
|  |   def page_metas(page) | ||||||
|  |     metas = '' | ||||||
|  |     @site.page_metas.each do |meta| | ||||||
|  |       name, content = meta.get_name_content | ||||||
|  |       metas << "<meta name=#{name} content=#{content} />\n" | ||||||
|  |     end rescue nil | ||||||
|  |     return metas | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def page_title(page) | ||||||
|  |     "<title>#{page.title ? page.title[I18n.locale] : page.i18n_variable[I18n.locale]}</title>\n" | ||||||
|  |   end   | ||||||
|  | 
 | ||||||
|  |   def page_stylesheets(page) | ||||||
|  |     stylesheets = '' | ||||||
|  |     stylesheets << "<link href='/assets/bootstrap.css.erb' rel='stylesheet' type='text/css' />\n" | ||||||
|  |     stylesheets << "<link href='/assets/bootstrap-orbit.css' rel='stylesheet' type='text/css' />\n" | ||||||
|  |     stylesheets << "<link href='/assets/style.css.erb' rel='stylesheet' type='text/css' />\n" | ||||||
|  |     stylesheets << "<link href='#{page.design.reset_css.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.reset_css | ||||||
|  |     stylesheets << "<link href='#{page.design.default_css.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.default_css | ||||||
|  |     theme = page.design.themes.detect{ |d| d.id == page.theme_id } | ||||||
|  |     stylesheets << "<link href='#{theme.file.url}' rel='stylesheet' type='text/css' />\n" if theme | ||||||
|  |     stylesheets | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def page_javascripts(page) | ||||||
|  |     javascripts = '' | ||||||
|  |     javascripts << "<script type='text/javascript' src='/static/jquery.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/static/jquery.cycle.all.latest.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/static/kernel.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/assets/bootstrap.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/assets/jquery.tinyscrollbar.min.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/assets/jquery.isotope.min.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/assets/orbit-bar-member.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/assets/orbit-bar-search.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/assets/orbit_bar.js'></script>\n" | ||||||
|  |     javascripts << "<script type='text/javascript' src='/assets/event.js'></script>\n" | ||||||
|  |     page.design.javascripts.each do |js| | ||||||
|  |       # javascripts << "<script type='text/javascript' src='#{js.file.url}'></script>" | ||||||
|     end |     end | ||||||
|  |     javascripts | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -4,41 +4,32 @@ class AdBanner | ||||||
|   include Mongoid::MultiParameterAttributes |   include Mongoid::MultiParameterAttributes | ||||||
|    |    | ||||||
|   field :title |   field :title | ||||||
|   field :picture_position |   field :transition_sec,type: Integer | ||||||
|   field :post_date,type: Date |  | ||||||
|   field :unpost_date,type: Date |  | ||||||
|   field :context |  | ||||||
|   field :direct_to_after_click,type: Boolean |  | ||||||
|   field :ad_fx  #TODO Design should explain |   field :ad_fx  #TODO Design should explain | ||||||
|    | 
 | ||||||
|    |  | ||||||
|   before_save :save_or_destroy |   before_save :save_or_destroy | ||||||
|    |   validates_uniqueness_of :title | ||||||
|   embeds_many :ad_images, :cascade_callbacks => true |   has_many :ad_images , dependent: :delete | ||||||
|    |    | ||||||
|   FX_TYPES = ["blindX","blindY","blindZ","cover","curtainX","curtainY","fade","fadeZoom","growX","growY","scrollUp","scrollDown","scrollLeft","scrollRight","scrollHorz","scrollVert","shuffle","slideX","slideY","toss","turnUp","turnDown","turnLeft","turnRight","uncover","wipe","zoom"] |   FX_TYPES = ["blindX","blindY","blindZ","cover","curtainX","curtainY","fade","fadeZoom","growX","growY","scrollUp","scrollDown","scrollLeft","scrollRight","scrollHorz","scrollVert","shuffle","slideX","slideY","toss","turnUp","turnDown","turnLeft","turnRight","uncover","wipe","zoom"] | ||||||
|    |    | ||||||
|   def display? | 
 | ||||||
|     if (self.post_date <= Date.today && (self.unpost_date.nil? || self.unpost_date>= Date.today))      |   # def new_ad_images(*attrs) | ||||||
|       return true |   #   debugger | ||||||
|     end |   #   a=1 | ||||||
|       return false |   #    attrs[0].each  do |attr|   #Loop by JSs,Themes,Imgs | ||||||
|   end |   #      unless attr[:file].nil? | ||||||
|  |   #        self.ad_images << AdImage.new(attr)         | ||||||
|  |   #      end | ||||||
|  |   #     end | ||||||
|  |   # end | ||||||
|    |    | ||||||
|   def new_ad_images=(*attrs) |   # def existing_ad_images=(*attrs) | ||||||
|      attrs[0].each  do |attr|   #Loop by JSs,Themes,Imgs |   #    attrs[0].each  do |attr|   #Loop by JSs,Themes,Imgs | ||||||
|        unless attr[:file].nil? |   #        ad_image = self.ad_images.find attr[0] | ||||||
|          self.ad_images << AdImage.new(attr)         |   #        ad_image.update_attributes(attr[1]) | ||||||
|        end |   #   end | ||||||
|       end |   # end | ||||||
|   end |  | ||||||
|    |  | ||||||
|   def existing_ad_images=(*attrs) |  | ||||||
|      attrs[0].each  do |attr|   #Loop by JSs,Themes,Imgs |  | ||||||
|          ad_image = self.ad_images.find attr[0] |  | ||||||
|          ad_image.update_attributes(attr[1]) |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
|    |    | ||||||
|   def save_or_destroy |   def save_or_destroy | ||||||
|     self.ad_images.each do |ad_image| |     self.ad_images.each do |ad_image| | ||||||
|  |  | ||||||
|  | @ -3,19 +3,46 @@ class AdImage | ||||||
|   include Mongoid::Timestamps |   include Mongoid::Timestamps | ||||||
| 
 | 
 | ||||||
|   mount_uploader :file, ImageUploader |   mount_uploader :file, ImageUploader | ||||||
|  | 
 | ||||||
|  |   has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy | ||||||
|  |   has_one :context, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy | ||||||
|    |    | ||||||
|   field :time_to_next #Weight |   field :direct_to_after_click,type: Boolean | ||||||
|   field :picture_intro |    | ||||||
|   field :out_link |   field :weight ,type: Integer ,default: 1 | ||||||
|   field :link_open |   field :out_link #the link itself | ||||||
|  |   field :link_open #how will the link be opened | ||||||
|  |   LINK_OPEN_TYPES = ["new_window","local"] | ||||||
|  |    | ||||||
|  |   field :post_date,type: Date | ||||||
|  |   field :unpost_date,type: Date | ||||||
|    |    | ||||||
|   field :to_save, :type => Boolean |   field :to_save, :type => Boolean | ||||||
|   field :to_destroy, :type => Boolean |   field :to_destroy, :type => Boolean | ||||||
|    |      | ||||||
|   LINK_OPEN_TYPES = ["new_window","local"] |   belongs_to :ad_banner | ||||||
|  | 
 | ||||||
|  |   # validates_numericality_of :weight, greater_than_or_equal_to: 1,less_than_or_equal_to: 10 | ||||||
|  |   # validates_format_of :out_link, with: /(http:\/\/.*|)/ ,:message => 'Need a valid URL' | ||||||
|  |   # validates_presence_of :post_date,:message => 'Need a valid post date' | ||||||
|  |   attr_reader :parse_post_date,:parse_unpost_date | ||||||
|  | 
 | ||||||
|  |   def parse_post_date=(att) | ||||||
|  |     self.post_date = (Date.parse att rescue nil) | ||||||
|  |   end | ||||||
|    |    | ||||||
|    |    | ||||||
|   embedded_in :ad_banner |   def parse_unpost_date=(att) | ||||||
|  |     self.unpost_date = (Date.parse att rescue nil) | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def display? | ||||||
|  |     if (self.post_date <= Date.today && (self.unpost_date.nil? || self.unpost_date>= Date.today) rescue false)  | ||||||
|  |       return true | ||||||
|  |     end | ||||||
|  |       return false | ||||||
|  |   end | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|   def get_delay_time |   def get_delay_time | ||||||
|     time = '' |     time = '' | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| class Design | class Design | ||||||
|   include Mongoid::Document |   include Mongoid::Document | ||||||
|   include Mongoid::Timestamps |   include Mongoid::Timestamps | ||||||
|  |   include ParserLayout | ||||||
| 
 | 
 | ||||||
|   field :title |   field :title | ||||||
|   field :author |   field :author | ||||||
|  | @ -14,7 +15,7 @@ class Design | ||||||
|   embeds_one :reset_css, :class_name => "Stylesheet", :cascade_callbacks => true |   embeds_one :reset_css, :class_name => "Stylesheet", :cascade_callbacks => true | ||||||
|   embeds_many :themes, :cascade_callbacks => true |   embeds_many :themes, :cascade_callbacks => true | ||||||
|   embeds_many :javascripts, :cascade_callbacks => true |   embeds_many :javascripts, :cascade_callbacks => true | ||||||
|   embeds_many :images, :cascade_callbacks => true |   embeds_many :images, :as => :design_image, :cascade_callbacks => true | ||||||
|   # embeds_many :custom_images, :class_name => 'Image', :cascade_callbacks => true |   # embeds_many :custom_images, :class_name => 'Image', :cascade_callbacks => true | ||||||
|    |    | ||||||
|   validates_presence_of :title |   validates_presence_of :title | ||||||
|  | @ -65,9 +66,6 @@ class Design | ||||||
|   protected |   protected | ||||||
|    |    | ||||||
|   def parse_css_for_images |   def parse_css_for_images | ||||||
|     self.images.each do |image| |  | ||||||
|       image.save |  | ||||||
|     end |  | ||||||
|     if (self.default_css && self.default_css.changed) |     if (self.default_css && self.default_css.changed) | ||||||
|       self.default_css.parse_urls |       self.default_css.parse_urls | ||||||
|     end |     end | ||||||
|  | @ -76,6 +74,7 @@ class Design | ||||||
|         theme.parse_urls |         theme.parse_urls | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
|  |     parse_body_for_images(self) | ||||||
|   end |   end | ||||||
|    |    | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -2,6 +2,8 @@ class Layout < DesignFile | ||||||
|   include ParserLayout |   include ParserLayout | ||||||
|    |    | ||||||
|   attr_reader :content |   attr_reader :content | ||||||
|  | 
 | ||||||
|  |   field :body | ||||||
|    |    | ||||||
|   embeds_one :menu |   embeds_one :menu | ||||||
|   embedded_in :design |   embedded_in :design | ||||||
|  | @ -17,8 +19,10 @@ class Layout < DesignFile | ||||||
|     Layout.count > 0 |     Layout.count > 0 | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def parse_layout  |   def parse_layout | ||||||
|     parse_layout_contents(self) |     html = Nokogiri::HTML(self.file.read) | ||||||
|  |     self.body = html.at_css("body").inner_html | ||||||
|  |     parse_body(self) | ||||||
|   end |   end | ||||||
|    |    | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -27,6 +27,7 @@ class Stylesheet < DesignFile | ||||||
|       temp_file = File.new(dir + '/' + orig_file_name, 'w+') |       temp_file = File.new(dir + '/' + orig_file_name, 'w+') | ||||||
|       temp_file.write content.force_encoding("UTF-8") |       temp_file.write content.force_encoding("UTF-8") | ||||||
|       self.file = temp_file |       self.file = temp_file | ||||||
|  |       self.save | ||||||
|     }     |     }     | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | class Meta | ||||||
|  |    | ||||||
|  |   include Mongoid::Document | ||||||
|  |   include Mongoid::Timestamps | ||||||
|  |      | ||||||
|  |   field :key | ||||||
|  |   field :value, :default => nil | ||||||
|  | 
 | ||||||
|  |   has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy | ||||||
|  | 
 | ||||||
|  |   def get_name_content | ||||||
|  |   	[self.key, self.value ? self.value : self.i18n_variable[I18n.locale]] | ||||||
|  |   end | ||||||
|  |    | ||||||
|  | end | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | class Meta | ||||||
|  |    | ||||||
|  |   include Mongoid::Document | ||||||
|  |   include Mongoid::Timestamps | ||||||
|  |      | ||||||
|  |   field :key | ||||||
|  |   field :value, :default => nil | ||||||
|  | 
 | ||||||
|  |   has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy | ||||||
|  |    | ||||||
|  | end | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | class PageMeta < Meta | ||||||
|  |    | ||||||
|  |   belongs_to :page | ||||||
|  |    | ||||||
|  | end | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | class SiteMeta < Meta | ||||||
|  |    | ||||||
|  |   belongs_to :site | ||||||
|  |    | ||||||
|  | end | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| class ObjectAuth  < PrototypeAuth | class ObjectAuth  < PrototypeAuth | ||||||
|   include OrbitCoreLib::ObjectTokenUnility |   include OrbitCoreLib::ObjectTokenUnility | ||||||
|   validates_uniqueness_of :obj_authable_type,:scope => :title #{ |c| } |   validates_uniqueness_of :title ,:scope => [:obj_authable_type,:obj_authable_id]  #{ |c| } | ||||||
|   belongs_to :obj_authable, polymorphic: true |   belongs_to :obj_authable, polymorphic: true | ||||||
|   # > - Something.find_with_auth(query) |   # > - Something.find_with_auth(query) | ||||||
|   # > - or Something.find(query).auth |   # > - or Something.find(query).auth | ||||||
|  |  | ||||||
|  | @ -6,17 +6,23 @@ class Page < Item | ||||||
|    |    | ||||||
|   belongs_to :design |   belongs_to :design | ||||||
|   belongs_to :module_app |   belongs_to :module_app | ||||||
|  |   has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy | ||||||
|   has_many :page_parts, :autosave => true, :dependent => :destroy |   has_many :page_parts, :autosave => true, :dependent => :destroy | ||||||
|   has_many :page_contexts, :autosave => true, :dependent => :destroy |   has_many :page_contexts, :autosave => true, :dependent => :destroy | ||||||
|  |   has_many :page_metas, :autosave => true, :dependent => :destroy | ||||||
|   accepts_nested_attributes_for :page_parts, :allow_destroy => true |   accepts_nested_attributes_for :page_parts, :allow_destroy => true | ||||||
|    |    | ||||||
|   before_save :create_parts |   before_save :create_parts, :set_key | ||||||
|    |    | ||||||
|   # embeds_many :custom_images, :class_name => 'Image', as: :design_image |   # embeds_many :custom_images, :class_name => 'Image', as: :design_image | ||||||
|    |    | ||||||
|   def is_home? |   def is_home? | ||||||
|     self.parent ? false : true |     self.parent ? false : true | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   def title | ||||||
|  |     @title ||= I18nVariable.first(:conditions => {:key => 'title', :language_value_id => self.id, :language_value_type => self.class}) rescue nil | ||||||
|  |   end | ||||||
|    |    | ||||||
|   protected |   protected | ||||||
|    |    | ||||||
|  | @ -27,4 +33,10 @@ class Page < Item | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |   def set_key | ||||||
|  |     if title && title.new_record? | ||||||
|  |       title.key = 'title' | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |    | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  | @ -12,6 +12,8 @@ class Site | ||||||
|    |    | ||||||
|   field :school |   field :school | ||||||
|   field :department |   field :department | ||||||
|  | 
 | ||||||
|  |   has_many :site_metas, :autosave => true, :dependent => :destroy | ||||||
|    |    | ||||||
|   def generate_keys |   def generate_keys | ||||||
|     private_key = OpenSSL::PKey::RSA.generate(2048) |     private_key = OpenSSL::PKey::RSA.generate(2048) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | <script type="text/javascript" src="/static/jquery.cycle.all.latest.js"></script> | ||||||
|  | <div class="tab-pane <%= "active"  if ad_banner_tab==@active %>" id=<%= ad_banner_tab.title %>> | ||||||
|  | 	<p>尺寸:</p> | ||||||
|  | 
 | ||||||
|  | 	<%= form_for ad_banner_tab,:url=> admin_ad_banner_path(ad_banner_tab),:method => :put,:class=>"input-medium" do |f| -%> | ||||||
|  | 		<%= f.label :ad_fx, t('admin.ad.ab_fx') %> | ||||||
|  | 		<%= f.select :ad_fx ,AdBanner::FX_TYPES %> | ||||||
|  | 		<%= f.label :transition_sec, t('admin.ad.transition_sec') %> | ||||||
|  | 		<%= f.text_field :transition_sec,:placeholder=>"3秒請輸入3000",:class=> "span3" %> <%= t("admin.ad.trans_unit_sec") %> | ||||||
|  | 		<%= f.submit %> | ||||||
|  | 		<%= f.submit 'Cancel',:type=>'reset' %> | ||||||
|  | 	<div> | ||||||
|  | 			<%= render :partial => "ad_image_update", :collection => ad_banner_tab.ad_images,:as => :ad_image,:locals=>{:ad_banner => ad_banner_tab}  %> | ||||||
|  | 		<%#= render :partial => 'new_add_banner_file', :object => ad_banner_tab.ad_images.build, :locals => { :field_name => "new_ad_images[]", :f => f, :classes => "r_destroy" } %> | ||||||
|  | 			<%= link_to 'Add AdImage',new_admin_ad_banner_ad_image_path(ad_banner_tab) %> | ||||||
|  | 	</div> | ||||||
|  | 	<% end -%> | ||||||
|  | 	<%= render :partial => 'preview_block',:locals=> {:ad_banner =>ad_banner_tab} %>  | ||||||
|  | </div> | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| <div id="basic_block" class="roles_block"> |  | ||||||
| 	<%= image_tag ad_image.file %>  |  | ||||||
| 	<p> |  | ||||||
| 		Time to next: <%= ad_image.time_to_next %> |  | ||||||
| 		Intro: <%= ad_image.picture_intro %> |  | ||||||
| 		Out Link <%= link_to ad_image.out_link %>  by <%= ad_image.link_open %> |  | ||||||
| 	</p> |  | ||||||
| </div>	 |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| Time: <%= f.text_field :time_to_next ,:class=> 'ad_time'%> |  | ||||||
| Link:<%= f.text_field :out_link ,:class=> 'ad_out_link'%> |  | ||||||
| Open Type <%= f.select :link_open ,AdImage::LINK_OPEN_TYPES %> |  | ||||||
| 
 |  | ||||||
| <%= f.hidden_field :to_save %> |  | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| <div id="basic_block" class="roles_block"> |  | ||||||
| 	<%= image_tag ad_image.file %>  |  | ||||||
| 	<p> |  | ||||||
| 		Time to next: <%= ad_image.time_to_next %> |  | ||||||
| 		Intro: <%= ad_image.picture_intro %> |  | ||||||
| 		Out Link <%= link_to ad_image.out_link %>  by <%= ad_image.link_open %> |  | ||||||
| 	</p> |  | ||||||
| </div>	 |  | ||||||
|  | @ -1,9 +1,12 @@ | ||||||
| <%= fields_for "ad_banner[existing_ad_images][#{ad_image.id}]", ad_image do |f| %> | <li class="span3"> | ||||||
| 		<%= image_tag ad_image.file %>  | 			<%= image_tag ad_image.file rescue nil%>  | ||||||
| 		<div> | 			<p> | ||||||
| 			Destroy?<%= f.check_box :to_destroy %> | 				<%= ad_image.display? ? '[Showing]' : '[NotShawing]' %> | ||||||
| 			<%= render :partial => "ad_image_form", :locals => { :f => f } %> | 				<%= "#{ad_image.post_date ||'NeedReset'  }~#{ad_image.unpost_date || 'NeedReset'}" %> | ||||||
| 		</div> | 			</p> | ||||||
| <% end %> | 			<p> | ||||||
| 
 | 				<%= link_to	'Edit',edit_admin_ad_banner_ad_image_path(ad_banner,ad_image),:class => 'btn btn-primary'  %> | ||||||
|  | 				<%= link_to	'Del',admin_ad_banner_ad_image_path(ad_banner,ad_image),:class => 'btn',:method => :delete,:confirm => t('sure?') %> | ||||||
|  | 			</p> | ||||||
|  | </li> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,53 +0,0 @@ | ||||||
| <% content_for :page_specific_css do %> |  | ||||||
| 	<%#= javascript_include_tag "ad_banner" #this line  wont work %> |  | ||||||
| 	<script type="text/javascript" src="<%= asset_path 'ad_banner' %>"></script>  |  | ||||||
| <% end %> |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| <p> |  | ||||||
| 	<%= f.label :title, t('admin.title') %> |  | ||||||
| 	<%= f.text_field :title, :class => 'text'   %> |  | ||||||
| </p> |  | ||||||
| <p> |  | ||||||
| 	<%= f.label :picture_position, t('admin.picture_position') %> |  | ||||||
| 	<%= f.text_field :picture_position, :class => 'text' %> |  | ||||||
| </p> |  | ||||||
| 
 |  | ||||||
| <p> |  | ||||||
| 	<%= f.label :post_date, t('admin.post_date') %> |  | ||||||
|   <%= f.date_select :post_date, :order => [:year, :month, :day], :use_month_numbers => true %> |  | ||||||
| </p> |  | ||||||
| 
 |  | ||||||
| <p> |  | ||||||
| 	<%= f.label :unpost_date, t('admin.unpost_date') %> |  | ||||||
|   <%= f.date_select :unpost_date, :order => [:year, :month, :day], :use_month_numbers => true,:prompt => { :day => t('form.date_unlimited'), :month => t('form.date_unlimited'), :year => t('form.date_unlimited') } %> |  | ||||||
| </p> |  | ||||||
| <p> |  | ||||||
| 	<%= f.label :context, t('admin.context') %> |  | ||||||
| 	<%= f.text_field :context, :class => 'text' %> |  | ||||||
| 	 |  | ||||||
| </p> |  | ||||||
| <p> |  | ||||||
| 	<%= f.label :direct_to_after_click, t('admin.direct_to_after_click') %> |  | ||||||
| 	<%= f.check_box :direct_to_after_click %> |  | ||||||
| </p> |  | ||||||
| <p> |  | ||||||
| 	<%= f.label :ad_fx, t('admin.ad_fx') %> |  | ||||||
| 	<%= f.select :ad_fx ,AdBanner::FX_TYPES %> |  | ||||||
| </p> |  | ||||||
| <p> |  | ||||||
| 	<%#= f.label :ad_images, t('admin.ad_images') %> |  | ||||||
| 
 |  | ||||||
| 		<%# @ad_banner.ad_images.each do |ad_image| %> |  | ||||||
| 			<%#= render :partial => 'ad_image_update', :object => ad_image, :locals => { :field_name => "ad_images", :f => f, :classes => "r_destroy, r_edit" } %> |  | ||||||
| 		<%# end %> |  | ||||||
| 		<%= render :partial => "ad_image_update", :collection => @ad_banner.ad_images,:as => :ad_image,  %> |  | ||||||
| 	<ul id="new_add_banner_file_holder"></ul> |  | ||||||
| 	<%= render :partial => 'new_add_banner_file', :object => @ad_banner.ad_images.build, :locals => { :field_name => "new_ad_images[]", :f => f, :classes => "r_destroy" } %> |  | ||||||
| </p> |  | ||||||
| 
 |  | ||||||
| <p> |  | ||||||
| 
 |  | ||||||
| 	 |  | ||||||
| 	<%#= render :partial => 'new_design_file', :object => @design.themes.build, :locals => { :field_name => "themes", :f => f, :classes => "r_destroy" } %> |  | ||||||
| </p> |  | ||||||
|  | @ -0,0 +1,55 @@ | ||||||
|  | 
 | ||||||
|  | <div id="new-a-banner" class="modal fade in tab-pane <%= 'active' if @active.nil? %>"> | ||||||
|  | 	<%= form_for(:ad_banner,:remote => true, :url => admin_ad_banners_path) do |f| %> | ||||||
|  | 
 | ||||||
|  | 	<div class="modal-header"> | ||||||
|  | 		<a class="close" data-dismiss="modal">×</a> | ||||||
|  | 		<h3>Add AdBanner</h3> | ||||||
|  | 	</div> | ||||||
|  | 	 | ||||||
|  | 	<div class="modal-body form-horizontal"> | ||||||
|  | 		<div class="control-group"> | ||||||
|  | 			<%= f.label :title,t('admin.ad.title'),:class => "control-label"  %> | ||||||
|  | 			<div class="controls"> | ||||||
|  | 				<%= f.text_field :title %> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 
 | ||||||
|  | 		<div class="control-group"> | ||||||
|  | 			<%= f.label :transition_sec, t('admin.ad.transition_sec'),:class => "control-label" %> | ||||||
|  | 			<div class="controls"> | ||||||
|  | 				<%= f.text_field :transition_sec %> <%= t("admin.ad.trans_unit_sec") %> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 		 | ||||||
|  | 		<div class="control-group"> | ||||||
|  | 			<%= f.label :ad_fx, t('admin.ad.ab_fx') %> | ||||||
|  | 			<div class="controls"> | ||||||
|  | 				<%= f.select :ad_fx ,AdBanner::FX_TYPES %> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 
 | ||||||
|  | 		<div class="modal-footer"> | ||||||
|  | 			<%= f.submit t('submit'), :class=>'btn btn-primary' %> | ||||||
|  | 			<a class="btn" data-dismiss="modal"><%= t('cancel')%></a> | ||||||
|  | 		</div> | ||||||
|  | 	<% end %> | ||||||
|  | </div> | ||||||
|  | <script type="text/javascript" charset="utf-8"> | ||||||
|  | if(window.location.pathname == "/admin/ad_banners/new"){ | ||||||
|  | 	$('#new-a-banner').modal({show: true}); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | $('#new_ad_banner_tab_but').on('shown', function (e) { | ||||||
|  | 	$('#new-a-banner').modal({show: true}); | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | $('#new-a-banner').on('shown', function (e) { | ||||||
|  | 	alert('show!'); | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | $('#new-a-banner').on('hidden', function (e) { | ||||||
|  | 	$(".nav.nav-tabs  a[id!='new_ad_banner_tab_but']:last").tab('show'); | ||||||
|  | }) | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| <%= f.fields_for field_name, new_add_banner_file do |f| %> | <%= f.fields_for field_name, new_add_banner_file do |f| %> | ||||||
| 	<p class="new_file">		 | 	<p class="new_file">		 | ||||||
| 	  <%= f.file_field :file %> | 	  <%= f.file_field :file %> | ||||||
| 		<%= render :partial => "ad_image_form", :locals => { :f => f } %> | 		<%#= render :partial => "ad_image_form", :locals => { :f => f } %> | ||||||
| 		<%= button_tag '+', :class => "multi_files"%> | 		<%= button_tag '+', :class => "multi_files"%> | ||||||
| 	</p> | 	</p> | ||||||
| <% end %> | <% end %> | ||||||
|  | @ -0,0 +1,29 @@ | ||||||
|  | <% if ad_banner -%> | ||||||
|  | <%= link_to 'Preview',"#slideshow-#{ad_banner.title.dehumanize}",:class=>"btn btn-primary btn-large",:data=>{:toggle=>'modal'} %> | ||||||
|  | 
 | ||||||
|  | <div class="modal hide fade in banner-preview" id='slideshow-<%=ad_banner.title.dehumanize%>'> | ||||||
|  |   <div class="modal-header"> | ||||||
|  |     <a class="close" data-dismiss="modal">×</a> | ||||||
|  |     <h3>Modal header</h3> | ||||||
|  |   </div> | ||||||
|  |   <div class="modal-body"> | ||||||
|  |     <p class="ad_banner_slideshow"> | ||||||
|  | 			<% preview_block_ad_images_helper(ad_banner).each do |ad_image| -%> | ||||||
|  | 				<%= image_tag ad_image.file,:alt => (ad_image.title[locale] || ' '),:time_to_next => ad_banner.transition_sec,:link_open=> ad_image.link_open, :link_url =>((ad_image.out_link || ad_banner.context || ' ')) %> | ||||||
|  | 			<% end -%> | ||||||
|  |     </p> | ||||||
|  |   </div> | ||||||
|  |   <div class="modal-footer"> | ||||||
|  |     <a href="#" class="btn" data-dismiss="modal">Close</a> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <% end -%> | ||||||
|  | 
 | ||||||
|  | <script type='text/javascript' src='/static/kernel.js'></script> | ||||||
|  | <script type='text/javascript'> | ||||||
|  | 	$('#slideshow-<%=ad_banner.title.dehumanize%>').on('show', function () { | ||||||
|  |   	$('#slideshow-banner_1').find(".ad_banner_slideshow").cycle({delay: -1000, fx: '<%= ad_banner.ad_fx.nil?? 'fade': ad_banner.ad_fx %>', timeoutFn: getTimeout }); | ||||||
|  | 	}); | ||||||
|  | 
 | ||||||
|  | </script> | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| <div id="search"> |  | ||||||
| 	<input id="user_search" name="user[username]" size="30" type="text" /> |  | ||||||
| </div> |  | ||||||
| <div class="member_setup <%= @class %>"> |  | ||||||
| 	<h1><%= t('admin.setup_member') %></h1> |  | ||||||
| 	<ul class="list"> |  | ||||||
| 		<li class="set_1"><%= link_to content_tag(:span, t('admin.list_users')), admin_users_path %></li> |  | ||||||
| 		<li class="set_2"><%= link_to content_tag(:span, t('admin.list_roles')), admin_roles_path %></li> |  | ||||||
| 		<li class="set_3"><%= link_to content_tag(:span, t('admin.list_infos')), admin_infos_path %></li> |  | ||||||
| 	</ul>	 |  | ||||||
| </div> |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| <h1><%= t('admin.editing_ad_banner') %></h1> |  | ||||||
| 
 |  | ||||||
| <%= form_for @ad_banner, :url => admin_ad_banner_path(@ad_banner),:html => {:multipart => true} do |f| %> |  | ||||||
|   <%= f.error_messages %> |  | ||||||
|   <%= render :partial => "form", :locals => { :f => f } %> |  | ||||||
|   <p> |  | ||||||
|     <%= f.submit t('update') %> <%= link_back %> |  | ||||||
|   </p> |  | ||||||
| <% end %> |  | ||||||
| 
 |  | ||||||
| <br /><br/> |  | ||||||
|  | @ -1,48 +1,17 @@ | ||||||
| <% content_for :secondary do %> | <%= stylesheet_link_tag "admin/ad_banner_preview" %> | ||||||
| <div class="ad_banners_setup"> | 
 | ||||||
| 	<h1><%= t('admin.setup_ad_banners') %></h1> | <div id="post-body-content" class="clear"> | ||||||
| 	<ul class="list"> | 	<ul class="nav nav-tabs"> | ||||||
| 		<li><%= link_to content_tag(:span, t('admin.new_ad_banner')), new_admin_ad_banner_path, :class => 'seclink1' %></li> | 		<% @ad_banners.each do |ab| %> | ||||||
|  | 			<%= content_tag :li,link_to(ab.title,"##{ab.title}",:data=>{:toggle=>"tab"}),:class => (ab ==  @active ? 'active' : nil ) %> | ||||||
|  | 		<% end -%> | ||||||
|  | 		<%= content_tag :li,link_to('New',"#new-a-banner",:data=>{:toggle=>"tab"}),:id=>'new_ad_banner_tab_but',:class => (@active.nil? ? 'active' : nil ) %> | ||||||
|  | 		 | ||||||
| 	</ul> | 	</ul> | ||||||
|  | 	 | ||||||
|  | 	<div class="tab-content"> | ||||||
|  | 		<%= render :partial => 'ad_banner_tab',:collection => @ad_banners %>		 | ||||||
|  | 		<%= render :partial => "modal_ad_banner_form"%> | ||||||
|  | 	</div> | ||||||
|  | 		 | ||||||
| </div> | </div> | ||||||
| <% end -%> |  | ||||||
| 
 |  | ||||||
| <%= flash_messages %> |  | ||||||
| <div class="main2"> |  | ||||||
| <h1><%= t('admin.list_ad_banners') %></h1> |  | ||||||
| 
 |  | ||||||
| <table> |  | ||||||
| <thead> |  | ||||||
|   <tr> |  | ||||||
|     <td><%= t('admin.title') %></td> |  | ||||||
|     <td><%= t('admin.picture_position') %></td> |  | ||||||
|     <td><%= t('admin.post_date') %></td> |  | ||||||
|     <td><%= t('admin.unpost_date') %></td> |  | ||||||
|     <td><%= t('admin.context') %></td> |  | ||||||
|     <td><%= t('admin.direct_to_after_click') %></td> |  | ||||||
|     <td><%= t('admin.now_display?') %></td> |  | ||||||
|   </tr> |  | ||||||
| </thead> |  | ||||||
| <% @ad_banners.each do |ad_banner| %> |  | ||||||
|   <tr class="have"> |  | ||||||
|     <td><%= ad_banner.title %></td> |  | ||||||
|     <td><%= ad_banner.picture_position %></td> |  | ||||||
|     <td><%= ad_banner.post_date %></td> |  | ||||||
|     <td><%= ad_banner.unpost_date.nil?? t('form.date_unlimited'): ad_banner.unpost_date %></td> |  | ||||||
|     <td><%= ad_banner.context %></td> |  | ||||||
|     <td><%= ad_banner.direct_to_after_click %></td> |  | ||||||
|     <td><%= ad_banner.display?  %></td>  |  | ||||||
|    <td class="action"> |  | ||||||
| 			<%= link_to t(:show), admin_ad_banner_path(ad_banner), :class => 'show' %> |  | ||||||
|       <%= link_to t(:edit), edit_admin_ad_banner_path(ad_banner), :class => 'edit'  %> |  | ||||||
|       <%= link_to t(:delete), admin_ad_banner_path(ad_banner), :confirm => t('sure?'), :method => :delete, :class => 'delete' %> |  | ||||||
|     </td> |  | ||||||
|   </tr> |  | ||||||
|   <tr></tr> |  | ||||||
| <% end %> |  | ||||||
| </table> |  | ||||||
| </div> |  | ||||||
| 
 |  | ||||||
| <div class="button_bar"> |  | ||||||
| 	<%= link_to t('admin.new_ad_banner'), new_admin_ad_banner_path, :class => 'new' %> |  | ||||||
| </div> |  | ||||||
|  | @ -1,13 +0,0 @@ | ||||||
| <div class="main2"> |  | ||||||
| 	<h1><%= t('admin.new_ad_banner') %></h1> |  | ||||||
| 
 |  | ||||||
| 	<%= form_for :ad_banner, :url => admin_ad_banners_path, :html => {:multipart => true} do |f| %> |  | ||||||
| 	  <%= f.error_messages %> |  | ||||||
| 	  <%= render :partial => "form", :locals => { :f => f } %> |  | ||||||
| 	   |  | ||||||
| 	  <div class="button_bar"> |  | ||||||
|     	<%= link_back %> |  | ||||||
| 		<%= f.submit t('create') %> |  | ||||||
| 	  </div> |  | ||||||
| 	<% end %> |  | ||||||
| </div> |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| <% content_for :secondary do %> |  | ||||||
| 	<%= render 'side_bar' %> |  | ||||||
| <% end %> |  | ||||||
| <br /><br /><br /><br /> |  | ||||||
| 
 |  | ||||||
| 	<ul> |  | ||||||
| 		<li><%=t('admin.ad_banner.title') %> <%= @ad_banner.title %></li> |  | ||||||
| 		<li><%=t('admin.ad_banner.picture_position') %> <%= @ad_banner.picture_position %></li> |  | ||||||
| 		<li><%=t('admin.ad_banner.post_date') %> <%= @ad_banner.post_date %></li> |  | ||||||
| 		<li><%=t('admin.ad_banner.unpost_date') %> <%= @ad_banner.unpost_date %></li> |  | ||||||
| 		<li><%=t('admin.ad_banner.context') %> <%= @ad_banner.context %></li> |  | ||||||
| 		<li><%=t('admin.ad_banner.direct_to_after_click') %> <%= @ad_banner.direct_to_after_click %></li> |  | ||||||
| 		<li><%=t('admin.ad_banner.ad_fx') %> <%= @ad_banner.ad_fx %></li> |  | ||||||
| 	</ul> |  | ||||||
| 
 |  | ||||||
| 	<%= render :partial => "admin/ad_banners/ad_image_show", :collection =>  @ad_banner.ad_images,:as => :ad_image %> |  | ||||||
| 
 |  | ||||||
|  | @ -0,0 +1,188 @@ | ||||||
|  | <% content_for :page_specific_css do %> | ||||||
|  | 	<%= stylesheet_link_tag "lib/datepicker"  %> | ||||||
|  | <% end %> | ||||||
|  | <% content_for :page_specific_javascript do %> | ||||||
|  | 	<%= javascript_include_tag "lib/datepicker"  %> | ||||||
|  | 	<%= javascript_include_tag "lib/date.format"  %> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div id="poststuff"> | ||||||
|  | 	<form class="clear"> | ||||||
|  | 		<!--Widget start--> | ||||||
|  | 		<div id="sub-wiget"> | ||||||
|  |           <div id="widget-date" class="widget-box"> | ||||||
|  |               <div class="widget-action clear"> | ||||||
|  |                   <a href="#" class="action"><i title="Set the announcement to start and end dates" class="icon-exclamation-sign icon-white tip"></i></a> | ||||||
|  |               </div> | ||||||
|  |               <h3 class="widget-title"><i class="icons-calendar icons-white"></i> Date</h3> | ||||||
|  |               <div class="widget-content clear"> | ||||||
|  |                   <div id="calendarRange"> | ||||||
|  |                       <div class="input-append"> | ||||||
|  |                           <span class="showDate"></span><span class="add-on btn">▼</span> | ||||||
|  | 													<%= f.hidden_field :parse_post_date %> | ||||||
|  | 													<%= f.hidden_field :parse_unpost_date%> | ||||||
|  | 
 | ||||||
|  |                       </div> | ||||||
|  |                       <div id="widgetCalendar"> | ||||||
|  |                       </div> | ||||||
|  |                   </div> | ||||||
|  |                   <script type="text/javascript"> | ||||||
|  |                       var today = new Date(); | ||||||
|  |                       today = today.format('isoDate'); | ||||||
|  |                       var state = false; | ||||||
|  |                       var arr = state ? "▼" : "▲" | ||||||
|  | 											var start_date = <%= @ad_image.post_date.nil?? 'today' : "'#{@ad_image.post_date.strftime('%Y / %m / %d')}'" %>; | ||||||
|  | 											var end_date = <%= @ad_image.unpost_date.nil?? 'today' : "'#{@ad_image.unpost_date.strftime('%Y / %m / %d')}'" %>; | ||||||
|  |                       //calendarRange | ||||||
|  |                       $('#calendarRange .showDate').html(start_date+" - "+end_date); | ||||||
|  |                       $('#calendarRange .calendarInput').val(start_date+" - "+end_date); | ||||||
|  |                       $('#calendarRange #widgetCalendar').DatePicker({ | ||||||
|  |                           flat: true, | ||||||
|  |                           format: 'Y / m / d', | ||||||
|  | 													date: [start_date,end_date], | ||||||
|  |                           calendars: 1, | ||||||
|  |                           mode: 'range', | ||||||
|  |                           starts: 1, | ||||||
|  |                           onChange: function(formated) { | ||||||
|  |                               $('#calendarRange .showDate').get(0).innerHTML = formated.join(' - '); | ||||||
|  |                               $('#calendarRange .calendarInput').val(formated.join(' - ')); | ||||||
|  | 															start_date = formated[0].replace(/\s/g, ""); | ||||||
|  | 															end_date = formated[1].replace(/\s/g, ""); | ||||||
|  | 															$('#ad_image_parse_post_date').val(start_date); | ||||||
|  | 															$('#ad_image_parse_unpost_date').val(end_date); | ||||||
|  |                           } | ||||||
|  |                       }); | ||||||
|  |                       $('#calendarRange .input-append').bind('click', function(){ | ||||||
|  |                           var arr = state ? "▼" : "▲" | ||||||
|  |                           $('#calendarRange .add-on').html(arr); | ||||||
|  |                           $('#calendarRange #widgetCalendar').stop().animate({height: state ? 0 : $('#calendarRange #widgetCalendar div.datepicker').get(0).offsetHeight}, 500); | ||||||
|  |                           state = !state; | ||||||
|  |                           return false; | ||||||
|  |                       }); | ||||||
|  |                       $('#calendarRange #widgetCalendar div.datepicker').css('position', 'absolute'); | ||||||
|  |                   </script>   | ||||||
|  |               </div> | ||||||
|  |           </div> | ||||||
|  | 		 | ||||||
|  | 			<div id="widget-picture" class="widget-box"> | ||||||
|  |         <div class="widget-action clear"> | ||||||
|  |             <a class="action"><i title="Upload pictures" class="icon-exclamation-sign icon-white tip"></i></a> | ||||||
|  |         </div> | ||||||
|  |         <h3 class="widget-title"><i class="icons-picture icons-white"></i>Picture</h3> | ||||||
|  |         <div class="widget-content clear">          | ||||||
|  |             <div class="control-group"> | ||||||
|  |                 <div  class="upload-picture"> | ||||||
|  |                     <!--請程式務必將圖片尺寸加入到行內裡--> | ||||||
|  |                     <%= image_tag @ad_image.file,:width=> "456",:height=>'700' rescue ''%> | ||||||
|  |                     <script type="text/javascript"> | ||||||
|  |                         var picH = $('.upload-picture').width()/$('.upload-picture').find('img').attr("width")*$('.upload-picture').find('img').attr("height") | ||||||
|  |                         var imgMarginTop = ($('.upload-picture').height()-picH)/2; | ||||||
|  |                         var d = $('.upload-picture').height(); | ||||||
|  |                         if(imgMarginTop>0){ | ||||||
|  |                             imgMarginTop = 0; | ||||||
|  |                             d = picH; | ||||||
|  |                             $('.upload-picture').css({height:d}) | ||||||
|  |                         } | ||||||
|  |                         $('.upload-picture').find('img').css({marginTop:imgMarginTop}) | ||||||
|  |                         $('.upload-picture').each(function (i){ | ||||||
|  |                             $(this).mouseenter(function(){ | ||||||
|  |                                 var h= picH; | ||||||
|  |                                 $(this).stop().animate({height:h}, 500); | ||||||
|  |                                 $(this).find('img').stop().animate({marginTop:0}, 500); | ||||||
|  |                             }); | ||||||
|  |                             $(this).mouseleave(function(){ | ||||||
|  |                                 $(this).stop().animate({height:d}, 500); | ||||||
|  |                                 $(this).find('img').stop().animate({marginTop:imgMarginTop}, 500); | ||||||
|  |                             }); | ||||||
|  |                         }); | ||||||
|  |                     </script> | ||||||
|  |                 </div> | ||||||
|  |                 <span class="alert widgetInfo">此區塊圖片尺寸請使用580px × 225px</span> | ||||||
|  |                 <div class="controls file-upload input-prepend"> | ||||||
|  |                     <label class="control-label add-on btn" for="input-upload"> | ||||||
|  | 									Choose file | ||||||
|  | 									 | ||||||
|  | 									<%= f.file_field :file,:id=>"input-upload",:class => "upload", :onchange=> "document.getElementById('fu1').innerHTML = this.form.fu1.value = this.value;" %> | ||||||
|  | 								</label> | ||||||
|  | 								<span id="fu1" class="file-name"></span> | ||||||
|  | 								<br> | ||||||
|  | 
 | ||||||
|  | 								 | ||||||
|  | 								<input name="fu1" class="input-medium" type="text"> | ||||||
|  | 							</div> | ||||||
|  | 						</div> | ||||||
|  | 					</div> | ||||||
|  | 				</div> | ||||||
|  | 				 | ||||||
|  | 			<div id="widget-type" class="widget-box"> | ||||||
|  | 					<div class="widget-action clear"> | ||||||
|  | 						<a class="action"><i class="icon-exclamation-sign icon-white tip" data-original-title="Upload pictures"></i></a> | ||||||
|  | 					</div> | ||||||
|  | 					<h3 class="widget-title"><i class="icons-star-thin icons-white"></i>Type</h3> | ||||||
|  | 					<div class="widget-content clear"> | ||||||
|  | 						<%= f.select :link_open ,AdImage::LINK_OPEN_TYPES%> | ||||||
|  | 					</div> | ||||||
|  | 				</div> | ||||||
|  | 			 | ||||||
|  | 			<div id="widget-time" class="widget-box widget-size-300"> | ||||||
|  | 					<div class="widget-action clear"> | ||||||
|  | 						<a class="action"><i class="icon-exclamation-sign icon-white tip" data-original-title="Set the range time"></i></a> | ||||||
|  | 					</div> | ||||||
|  | 					<h3 class="widget-title"><i class="icons-time icons-white"></i>FEQ</h3> | ||||||
|  | 					<div class="widget-content clear"> | ||||||
|  | 						 <%= f.text_field :weight ,:class=> 'span3',:placeholder=>"在套圖中出現次數 1次請輸入1" %> | ||||||
|  | 					</div> | ||||||
|  | 				</div> | ||||||
|  | 				 | ||||||
|  | 			<div id="widget-link" class="widget-box widget-size-300"> | ||||||
|  | 					<div class="widget-action clear"> | ||||||
|  | 						<a class="action"><i class="icon-exclamation-sign icon-white tip" data-original-title="Add a reference link"></i></a> | ||||||
|  | 					</div> | ||||||
|  | 					<h3 class="widget-title"><i class="icons-link icons-white"></i>Link</h3> | ||||||
|  | 					<div class="widget-content clear"> | ||||||
|  | 						<%= f.text_field :out_link ,:class=> 'span3',:placeholder => "輸入連結"%> | ||||||
|  | 					</div> | ||||||
|  | 				</div> | ||||||
|  | 
 | ||||||
|  | 		</div> | ||||||
|  | 			<!--Wiget End--> | ||||||
|  | 			<!--Post Start--> | ||||||
|  | 			<div id="post-body"> | ||||||
|  | 				<div id="post-body-content" class="clear"> | ||||||
|  | 					<ul class="nav nav-tabs"> | ||||||
|  | 						<% site_valid_locales_default_head.each do |locale|%> | ||||||
|  | 							<%= content_tag :li,link_to(I18nVariable.from_locale(locale),"##{locale}",:data=>{:toggle => "tab"}),:class=> (active_when_default_locale_eq locale)  %> | ||||||
|  | 						<% end %> | ||||||
|  | 					</ul> | ||||||
|  | 					<div class="tab-content"> | ||||||
|  | 						<%= select_tag 'ad_banner[id]',options_from_collection_for_select(AdBanner.all, "id", "title",params[:ad_banner_id]) , :class=>"input-medium",   %> | ||||||
|  | 						<% site_valid_locales_default_head.each do |locale|%> | ||||||
|  | 							<%= content_tag :div,:class	=> "tab-pane #{active_when_default_locale_eq locale}",:id=>"#{locale}" do%> | ||||||
|  | 								<div class="title"> | ||||||
|  | 									<%= f.fields_for :title,@ad_image.title do |f| %> | ||||||
|  | 										<%= f.text_field locale,:class=>"ad_image-title",:placeholder => "輸入標題"%> | ||||||
|  | 									<% end %> | ||||||
|  | 								</div> | ||||||
|  | 							 | ||||||
|  | 								<div class="context editor"> | ||||||
|  | 									<%= f.fields_for :context, @ad_image.context do |f| %> | ||||||
|  | 										<%= f.text_area locale,:style => "width:100%", :class => "asd_tinymce_textarea" %> | ||||||
|  | 									<% end %> | ||||||
|  | 								</div> | ||||||
|  | 
 | ||||||
|  | 							<% end %> | ||||||
|  | 						<% end %> | ||||||
|  | 						</div> | ||||||
|  | 						 | ||||||
|  | 					</div> | ||||||
|  | 				</div> | ||||||
|  | 			</div> | ||||||
|  | 			<!--Post End--> | ||||||
|  | 			<div class="form-actions"> | ||||||
|  | 				<button class="btn btn-success" type="submit">Preview/預覽</button> | ||||||
|  | 				<button class="btn btn-primary" type="submit">Submit/送出</button> | ||||||
|  | 				<button class="btn" type="reset">Cancel/取消</button> | ||||||
|  | 			</div> | ||||||
|  | 		</form> | ||||||
|  | 	</div> | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | <%= flash_messages %> | ||||||
|  | 
 | ||||||
|  | <%= form_for @ad_image, :url => admin_ad_banner_ad_image_path, :html => { :class => 'form' } do |f| %> | ||||||
|  |    | ||||||
|  |   <%= render :partial => "form", :locals => { :f => f } %> | ||||||
|  | 
 | ||||||
|  |    | ||||||
|  | <% end %> | ||||||
|  | @ -0,0 +1,8 @@ | ||||||
|  | <%= flash_messages %> | ||||||
|  | 
 | ||||||
|  | <%= form_for @ad_image, :url => create_ad_image_admin_ad_banners_path, :html => { :class => 'form' ,:multipart => true} do |f| %> | ||||||
|  |    | ||||||
|  |   <%= render :partial => "form", :locals => { :f => f } %> | ||||||
|  |    | ||||||
|  |    | ||||||
|  | <% end %> | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | <%= f.select :module_app_id, @apps.collect { |t| [t.title.capitalize, t.id] }, {:include_blank => true} ,{:rel => admin_module_apps_path }  %> | ||||||
|  | @ -25,7 +25,7 @@ | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
| 	<%= t('admin.module_app') %> | 	<%= t('admin.module_app') %> | ||||||
| 	<%= render :partial => "admin/module_apps/app_selector", :locals => { :f => f } %> | 	<%= render :partial => "app_selector", :locals => { :f => f } %> | ||||||
| 	<span id="app_page_url"><%= select('page','app_frontend_url', @app_frontend_urls, :selected => @item.app_frontend_url ) rescue ''%> </span> | 	<span id="app_page_url"><%= select('page','app_frontend_url', @app_frontend_urls, :selected => @item.app_frontend_url ) rescue ''%> </span> | ||||||
| 	<span id="app_page_category"><%= select('page','category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => @item[:category] ) rescue ''%> </span> | 	<span id="app_page_category"><%= select('page','category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => @item[:category] ) rescue ''%> </span> | ||||||
| </p> | </p> | ||||||
|  |  | ||||||
|  | @ -1,3 +1,7 @@ | ||||||
| <%= flash_messages %> | <%= flash_messages %> | ||||||
| 
 | 
 | ||||||
| <%= parse_page_edit(@item).html_safe %> | 
 | ||||||
|  | <%= page_stylesheets(@item).html_safe %>  | ||||||
|  | <%= page_javascripts(@item).html_safe %>  | ||||||
|  | 
 | ||||||
|  | <%= parse_page_edit_noko(@item).html_safe %> | ||||||
|  | @ -1,8 +1,13 @@ | ||||||
| <div id="<%= dom_id tag %>" > | <div id="<%= dom_id tag %>" class="tag clear"> | ||||||
|  | 	<div class="tagitem"> | ||||||
|  | 	<i class="icons-tag"></i> | ||||||
| 	<% @site_valid_locales.each do |locale| %> | 	<% @site_valid_locales.each do |locale| %> | ||||||
| 	  <%= I18nVariable.from_locale(locale) %>: | 	 	<%#= I18nVariable.from_locale(locale) %> | ||||||
| 		<%= tag[locale] %> | 		<%= tag[locale] %> | ||||||
| 	<% end %> | 	<% end %> | ||||||
|  | 	</div> | ||||||
|  | 	<div class="action"> | ||||||
| 	<%= link_to t(:edit), edit_admin_tag_path(tag), :remote => true  %> | 	<%= link_to t(:edit), edit_admin_tag_path(tag), :remote => true  %> | ||||||
| 	<%= link_to t(:delete), admin_tag_path(tag), :confirm => t('sure?'), :method => :delete, :remote => true  %> | 	<%= link_to t(:delete), admin_tag_path(tag), :confirm => t('sure?'), :method => :delete, :remote => true  %> | ||||||
|  | 	</div> | ||||||
| </div> | </div> | ||||||
|  | @ -1,6 +1,16 @@ | ||||||
| <div id='tags'> | <div class="subnav"> | ||||||
|  |     <ul class="nav nav-pills filter"> | ||||||
|  |         <li class="accordion-group"> | ||||||
|  |             <form class="form-search"> | ||||||
|  |                 <input type="text" class="input-medium search-query"> | ||||||
|  |                 <button type="submit" class="btn">Search</button> | ||||||
|  |             </form> | ||||||
|  |         </li> | ||||||
|  |     </ul> | ||||||
|  | </div> | ||||||
|  | <div id='tags' class="clear"> | ||||||
| 	<%= render :partial => 'tag', :collection => @tags %> | 	<%= render :partial => 'tag', :collection => @tags %> | ||||||
| </div> | </div> | ||||||
| ------------------------- | <div class="form-actions"> | ||||||
| <br/> | 	<%= render 'add' %> | ||||||
| <%= render 'add' %> | </div> | ||||||
|  | @ -1 +1 @@ | ||||||
| $('#<%= dom_id @tag %>').html("<%= j render :partial => 'tag', :object => @tag %>") | $('#<%= dom_id @tag %>').replaceWith("<%= j render :partial => 'tag', :object => @tag %>") | ||||||
|  | @ -7,18 +7,4 @@ | ||||||
| 	<li><%= link_to t('admin.member'), admin_users_path, :class => 'orblink' %></li> | 	<li><%= link_to t('admin.member'), admin_users_path, :class => 'orblink' %></li> | ||||||
| 	<li><%= link_to t('admin.translation'), admin_translations_path, :class => 'orblink' %></li> | 	<li><%= link_to t('admin.translation'), admin_translations_path, :class => 'orblink' %></li> | ||||||
| 	<li><%= link_to t('admin.site'), admin_sites_path, :class => 'orblink' %></li> | 	<li><%= link_to t('admin.site'), admin_sites_path, :class => 'orblink' %></li> | ||||||
| 	 |  | ||||||
| <!--  	<li><%= link_to t('admin.purchase'), admin_purchases_path, :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.site_setting'), admin_sites_path, :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.design'), admin_designs_path, :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.announcement'), panel_announcement_back_end_root_path, :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.super_pages'), '', :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.links'), '', :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.ad_banner'), admin_ad_banners_path, :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.calendar'), '', :class => 'orblink' %></li> |  | ||||||
| 	<li><%= link_to t('admin.nccu'), '', :class => 'orblink' %></li> |  | ||||||
| 	 t('admin.dashbroad') |  | ||||||
| 	 t('admin.content' |  | ||||||
| 	t('admin.add_drop_down_item') |  | ||||||
|    --> |  | ||||||
| </ul> | </ul> | ||||||
|  | @ -15,6 +15,7 @@ | ||||||
| 			</div> | 			</div> | ||||||
| 			<ul class="nav"> | 			<ul class="nav"> | ||||||
| 				<li><%= link_to t(:homepage), root_path, :class => 'orbit-bar-home' %></li> | 				<li><%= link_to t(:homepage), root_path, :class => 'orbit-bar-home' %></li> | ||||||
|  | 				<li><a class="orbit-bar-desktop" href="#">Desktop</a></li> | ||||||
| 			</ul> | 			</ul> | ||||||
| 			<ul class="nav pull-right"> | 			<ul class="nav pull-right"> | ||||||
|         <li class="dropdown language"> |         <li class="dropdown language"> | ||||||
|  | @ -25,10 +26,17 @@ | ||||||
| 	          <% end %> | 	          <% end %> | ||||||
|           </ul> |           </ul> | ||||||
|         </li> |         </li> | ||||||
|  | 
 | ||||||
|  |                 <li class="search clear"> | ||||||
|  |                     <a class="orbit-bar-search" href="#">search</a> | ||||||
|  | 					<form class="navbar-search" action=""> | ||||||
|  | 		        		<input class="search-query span3" type="text" placeholder="<%= t(:search_nccu) %>"> | ||||||
|  | 		      		</form> | ||||||
|  |                 </li> | ||||||
| 				<% if user_signed_in? %> | 				<% if user_signed_in? %> | ||||||
| 					<li class="dropdown active"> | 					<li class="dropdown active"> | ||||||
| 						<a class="orbit-bar-account" href="#" data-toggle="dropdown"> | 						<a class="orbit-bar-account" href="#" data-toggle="dropdown"> | ||||||
| 							<img class="member-img" src="/assets/menber-pic.png" /> | 							<img class="member-img" src="/assets/person.png" /> | ||||||
| 							<%#= image_tag current_user.avatar.thumb.url, :class => 'member-img' %> | 							<%#= image_tag current_user.avatar.thumb.url, :class => 'member-img' %> | ||||||
| 							<span class="member-name"><%= current_user.name %></span> | 							<span class="member-name"><%= current_user.name %></span> | ||||||
| 						</a> | 						</a> | ||||||
|  | @ -94,9 +102,6 @@ | ||||||
| 					</li> | 					</li> | ||||||
| 				<% end %> | 				<% end %> | ||||||
| 			</ul> | 			</ul> | ||||||
| 			<form class="navbar-search span6" action=""> |  | ||||||
|           <input class="search-query span4" type="text" placeholder="<%= t(:search_nccu) %>"> |  | ||||||
|       </form> |  | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </header> | </header> | ||||||
|  | @ -2,30 +2,50 @@ | ||||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-purchase') + t('admin.purchase'), admin_purchases_path %> | 	<%= link_to content_tag(:i, nil, :class => 'icons-purchase') + t('admin.purchase'), admin_purchases_path %> | ||||||
| <% end -%> | <% end -%> | ||||||
| 
 | 
 | ||||||
| <%= content_tag :li, :class => active_for_controllers('bulletins', 'tags', 'bulletin_categorys') do -%> | <%= content_tag :li, :class => active_for_controllers('bulletins', 'tags', 'bulletin_categorys', 'fact_checks') do -%> | ||||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-announcement') + t('admin.announcement'), panel_announcement_back_end_bulletins_path %> | 	<%= link_to content_tag(:i, nil, :class => 'icons-announcement') + t('admin.announcement'), panel_announcement_back_end_bulletins_path %> | ||||||
| 	  <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('bulletins', 'tags', 'bulletin_categorys')) do -%> | 	  <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('bulletins', 'tags', 'bulletin_categorys', 'fact_checks')) do -%> | ||||||
| 		<%= content_tag :li, link_to(t('admin.all_articles'), panel_announcement_back_end_bulletins_path), :class => active_for_action('bulletins', 'index') %> | 		<%= content_tag :li, link_to(t('admin.all_articles'), panel_announcement_back_end_bulletins_path), :class => active_for_action('bulletins', 'index') %> | ||||||
| 		<%= 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.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.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('admin.tags'), panel_announcement_back_end_tags_path), :class => active_for_action('panel/bulletin/back_end/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('fact_checks', 'setting')  if (is_manager? rescue nil) %> | ||||||
| 	<% end -%> | 	<% end -%> | ||||||
|  | 
 | ||||||
| <% end -%> | <% end -%> | ||||||
| 
 | 
 | ||||||
| <%= content_tag :li, :class => active_for_controllers('users') do -%> | <%= content_tag :li, :class => active_for_controllers('users') do -%> | ||||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-member') + t('admin.member'), admin_users_path %> | 	<%= link_to content_tag(:i, nil, :class => 'icons-member') + t('admin.member'), admin_users_path %> | ||||||
| <% end -%> | <% end -%> | ||||||
| 
 | 
 | ||||||
| <%= content_tag :li, :class => active_for_controllers(nil) do -%> | <%= content_tag :li, :class => active_for_controllers('page_contexts') do -%> | ||||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-page') + t('admin.page'), panel_page_content_back_end_page_contexts_path %> | 	<%= link_to content_tag(:i, nil, :class => 'icons-page') + t('admin.page'), panel_page_content_back_end_page_contexts_path %> | ||||||
|  | 	  <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('page_contexts')) do -%> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.all_articles'), panel_page_content_back_end_page_contexts_path), :class => active_for_action('page_context', 'index') %> | ||||||
|  | 	<% end -%> | ||||||
| <% end -%> | <% end -%> | ||||||
| 
 | 
 | ||||||
| <%= content_tag :li, :class => active_for_controllers('designs') do -%> | <%= content_tag :li, :class => active_for_controllers('designs') do -%> | ||||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-window-block') + t('admin.design'), admin_designs_path %> | 	<%= link_to content_tag(:i, nil, :class => 'icons-window-block') + t('admin.design'), admin_designs_path %> | ||||||
| <% end -%> | <% end -%> | ||||||
| 
 | 
 | ||||||
| <%= content_tag :li, :class => active_for_controllers(nil) do -%> | <%= content_tag :li, :class => active_for_controllers('ad_banners', 'ad_images') do -%> | ||||||
|  | 	<%= link_to content_tag(:i, nil, :class => 'icons-link') + t('admin.ad_banner'), admin_ad_banners_path %> | ||||||
|  | 	<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('ad_banners', 'ad_images')) do -%> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.all_ad_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.new_ad_banner'), new_admin_ad_banner_path), :class => active_for_action('ad_banners', 'new') %> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.new_ad_image'), new_ad_image_admin_ad_banners_path), :class => active_for_action('ad_images', 'new') %> | ||||||
|  | 	<% end %> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | <%= content_tag :li, :class => active_for_controllers('web_links', 'tags', 'web_link_categorys') do -%> | ||||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-link') + t('admin.link'), panel_web_resource_back_end_web_links_path %> | 	<%= link_to content_tag(:i, nil, :class => 'icons-link') + t('admin.link'), panel_web_resource_back_end_web_links_path %> | ||||||
|  | 	  <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('web_links', 'tags', 'web_link_categorys')) do -%> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.all_articles'), panel_web_resource_back_end_web_links_path), :class => active_for_action('web_link', 'index') %> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.add_new'), new_panel_web_resource_back_end_web_link_path), :class => active_for_action('web_link', 'new') %> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.categories'), panel_web_resource_back_end_web_link_categorys_path), :class => active_for_action('web_link_categorys', 'index') %> | ||||||
|  | 		<%= content_tag :li, link_to(t('admin.tags'), panel_web_resource_back_end_tags_path), :class => active_for_action('panel/web_resource/back_end/tags', 'index') %> | ||||||
|  | 	<% end -%> | ||||||
| <% end -%> | <% end -%> | ||||||
| 
 | 
 | ||||||
| <%= content_tag :li, :class => active_for_controllers(nil) do -%> | <%= content_tag :li, :class => active_for_controllers(nil) do -%> | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | 	<link rel="shortcut icon" href="/favicon.ico"> | ||||||
| 	<!--[if lt IE 9]> | 	<!--[if lt IE 9]> | ||||||
| 	<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> | 	   <%= javascript_include_tag "html5" %> | ||||||
| 	<![endif]--> | 	<![endif]--> | ||||||
| 	<%= stylesheet_link_tag "admin" %> | 	<%= stylesheet_link_tag "admin" %> | ||||||
| 	<%= javascript_include_tag "admin" %> | 	<%= javascript_include_tag "admin" %> | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
| <meta charset="utf-8"> | <meta charset="utf-8"> | ||||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||||
| 	<!--[if lt IE 9]> | 	<!--[if lt IE 9]> | ||||||
| 		<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> | 	   <%= javascript_include_tag "html5" %> | ||||||
| 	<![endif]--> | 	<![endif]--> | ||||||
| 	<%= stylesheet_link_tag "devise" %> | 	<%= stylesheet_link_tag "devise" %> | ||||||
| 	<%= javascript_include_tag "devise" %> | 	<%= javascript_include_tag "devise" %> | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| <html> | <html> | ||||||
| <head> | <head> | ||||||
| 	<!--[if lt IE 9]> | 	<!--[if lt IE 9]> | ||||||
| 	<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> | 	   <%= javascript_include_tag "html5" %> | ||||||
| 	<![endif]--> | 	<![endif]--> | ||||||
| 	<%#= stylesheet_link_tag "module_widget" %> | 	<%#= stylesheet_link_tag "module_widget" %> | ||||||
| 	<%= javascript_include_tag "module_widget" %> | 	<%= javascript_include_tag "module_widget" %> | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
| <meta charset="utf-8"> | <meta charset="utf-8"> | ||||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||||
| 	<!--[if lt IE 9]> | 	<!--[if lt IE 9]> | ||||||
| 		<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> | 	   <%= javascript_include_tag "html5" %> | ||||||
| 	<![endif]--> | 	<![endif]--> | ||||||
| 	<%= stylesheet_link_tag "new_admin" %> | 	<%= stylesheet_link_tag "new_admin" %> | ||||||
| 	<%= javascript_include_tag "new_admin" %> | 	<%= javascript_include_tag "new_admin" %> | ||||||
|  |  | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | <!DOCTYPE HTML> | ||||||
|  | <html> | ||||||
|  | <head> | ||||||
|  | <meta charset="utf-8"> | ||||||
|  | 	<%= page_title(@item).html_safe %> | ||||||
|  | 	<%= page_metas(@item).html_safe %> | ||||||
|  | 	<%= @metas %> | ||||||
|  | 	<!--[if lt IE 9]> | ||||||
|  | 	   <%= javascript_include_tag "html5" %> | ||||||
|  | 	<![endif]--> | ||||||
|  | 	<%= page_stylesheets(@item).html_safe %> | ||||||
|  | 	<%= page_javascripts(@item).html_safe %> | ||||||
|  | </head> | ||||||
|  | <body> | ||||||
|  | 	<%= yield %> | ||||||
|  | </body> | ||||||
|  | </html> | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | 	<link rel="shortcut icon" href="/favicon.ico"> | ||||||
| 	<!--[if lt IE 9]> | 	<!--[if lt IE 9]> | ||||||
| 	<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> | 	   <%= javascript_include_tag "html5" %> | ||||||
| 	<![endif]--> | 	<![endif]--> | ||||||
| 	<%= stylesheet_link_tag "site_editor" %> | 	<%= stylesheet_link_tag "site_editor" %> | ||||||
| 	<%= javascript_include_tag "site_editor" %> | 	<%= javascript_include_tag "site_editor" %> | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| # This file is used by Rack-based servers to start the application. | # This file is used by Rack-based servers to start the application. | ||||||
| 
 | 
 | ||||||
| require ::File.expand_path('../config/environment',  __FILE__) | require ::File.expand_path('../config/environment',  __FILE__) | ||||||
| run PrototypeR4::Application | run Orbit::Application | ||||||
|  |  | ||||||
|  | @ -13,13 +13,14 @@ require 'sprockets/railtie' | ||||||
| # or test environments. | # or test environments. | ||||||
| Bundler.require *Rails.groups(:assets) if defined?(Bundler) | Bundler.require *Rails.groups(:assets) if defined?(Bundler) | ||||||
| 
 | 
 | ||||||
| module PrototypeR4 | module Orbit | ||||||
|   class Application < Rails::Application |   class Application < Rails::Application | ||||||
| 
 | 
 | ||||||
|     # Add directories for plugins |     # Add directories for plugins | ||||||
|     config.paths["vendor/plugins"] += %W(#{config.root}/vendor/built_in_modules) |     config.paths["vendor/plugins"] += %W(#{config.root}/vendor/built_in_modules) | ||||||
|     config.paths["vendor/plugins"] += %W(#{config.root}/vendor/downloaded_modules) |     config.paths["vendor/plugins"] += %W(#{config.root}/vendor/downloaded_modules) | ||||||
|     config.paths.app.views << "app/views/devise" |     config.paths["app/views"] += %W(#{config.root}/app/views/devise) | ||||||
|  |      | ||||||
|      |      | ||||||
|     # Settings in config/environments/* take precedence over those specified here. |     # Settings in config/environments/* take precedence over those specified here. | ||||||
|     # Application configuration should go into files in config/initializers |     # Application configuration should go into files in config/initializers | ||||||
|  | @ -30,6 +31,7 @@ module PrototypeR4 | ||||||
|     config.autoload_paths += %W(#{config.root}/lib) |     config.autoload_paths += %W(#{config.root}/lib) | ||||||
|     config.autoload_paths += %W(#{config.root}/lib/parsers) |     config.autoload_paths += %W(#{config.root}/lib/parsers) | ||||||
|     config.autoload_paths += %W(#{config.root}/app/models/design) |     config.autoload_paths += %W(#{config.root}/app/models/design) | ||||||
|  |     config.autoload_paths += %W(#{config.root}/app/models/meta) | ||||||
|     config.autoload_paths += %W(#{config.root}/app/models/purchase) |     config.autoload_paths += %W(#{config.root}/app/models/purchase) | ||||||
|     config.autoload_paths += %W(#{config.root}/app/models/user) |     config.autoload_paths += %W(#{config.root}/app/models/user) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,4 +4,4 @@ require 'yaml' | ||||||
| YAML::ENGINE.yamler = 'syck' | YAML::ENGINE.yamler = 'syck' | ||||||
| 
 | 
 | ||||||
| # Initialize the rails application | # Initialize the rails application | ||||||
| PrototypeR4::Application.initialize! | Orbit::Application.initialize! | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| PrototypeR4::Application.configure do | Orbit::Application.configure do | ||||||
|   # Settings specified here will take precedence over those in config/application.rb |   # Settings specified here will take precedence over those in config/application.rb | ||||||
| 
 | 
 | ||||||
|   # In the development environment your application's code is reloaded on |   # In the development environment your application's code is reloaded on | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| PrototypeR4::Application.configure do | Orbit::Application.configure do | ||||||
|   # Settings specified here will take precedence over those in config/application.rb |   # Settings specified here will take precedence over those in config/application.rb | ||||||
| 
 | 
 | ||||||
|   # The production environment is meant for finished, "live" apps. |   # The production environment is meant for finished, "live" apps. | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| PrototypeR4::Application.configure do | Orbit::Application.configure do | ||||||
|   # Settings specified here will take precedence over those in config/application.rb |   # Settings specified here will take precedence over those in config/application.rb | ||||||
| 
 | 
 | ||||||
|   # The test environment is used exclusively to run your application's |   # The test environment is used exclusively to run your application's | ||||||
|  |  | ||||||
|  | @ -4,4 +4,4 @@ | ||||||
| # If you change this key, all old signed cookies will become invalid! | # If you change this key, all old signed cookies will become invalid! | ||||||
| # Make sure the secret is at least 30 characters and all random,  | # Make sure the secret is at least 30 characters and all random,  | ||||||
| # no regular words or you'll be exposed to dictionary attacks. | # no regular words or you'll be exposed to dictionary attacks. | ||||||
| PrototypeR4::Application.config.secret_token =  'cbf6409102b30cb9f4da455ee08c3a7e9d8b2a3d32a0e5b59a354dad03f469d363a8127ef4b7bc3b1afa632d7cf947a1e59e09022d2d4cd8df1f4fa521d7ec07' | Orbit::Application.config.secret_token =  'cbf6409102b30cb9f4da455ee08c3a7e9d8b2a3d32a0e5b59a354dad03f469d363a8127ef4b7bc3b1afa632d7cf947a1e59e09022d2d4cd8df1f4fa521d7ec07' | ||||||
|  |  | ||||||
|  | @ -4,4 +4,4 @@ | ||||||
| # If you change this key, all old signed cookies will become invalid! | # If you change this key, all old signed cookies will become invalid! | ||||||
| # Make sure the secret is at least 30 characters and all random, | # Make sure the secret is at least 30 characters and all random, | ||||||
| # no regular words or you'll be exposed to dictionary attacks. | # no regular words or you'll be exposed to dictionary attacks. | ||||||
| PrototypeR4::Application.config.secret_token = 'b8d78ecaf3086ebfc1ba42e912acba60d85cf3d789d933e117770e1a045a12911f121ff012a234982abb446c8b8c768052eea4bf8b2d5d336be821e2c25d8cdb' | Orbit::Application.config.secret_token = 'b8d78ecaf3086ebfc1ba42e912acba60d85cf3d789d933e117770e1a045a12911f121ff012a234982abb446c8b8c768052eea4bf8b2d5d336be821e2c25d8cdb' | ||||||
|  |  | ||||||
|  | @ -1,8 +1,3 @@ | ||||||
| # Be sure to restart your server when you modify this file. | # Be sure to restart your server when you modify this file. | ||||||
| 
 | 
 | ||||||
| PrototypeR4::Application.config.session_store :cookie_store, :key => '_prototype_R4_session' | Orbit::Application.config.session_store :mongoid_store | ||||||
| 
 |  | ||||||
| # 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 |  | ||||||
|  |  | ||||||
|  | @ -39,6 +39,14 @@ zh_tw: | ||||||
|   admin: |   admin: | ||||||
|     action: 操作 |     action: 操作 | ||||||
|     ad_banner: 廣告輪播 |     ad_banner: 廣告輪播 | ||||||
|  |     ad: | ||||||
|  |       ab_fx: 轉場特效 | ||||||
|  |       all_banners: 輪播清單 | ||||||
|  |       new_banner: 新增輪播 | ||||||
|  |       new_image: 新增橫幅 | ||||||
|  |       title: 標題 | ||||||
|  |       transition_sec: 轉場單位時間 | ||||||
|  |       trans_unit_sec: 秒 | ||||||
|     add: 新增 |     add: 新增 | ||||||
|     add_item: 新增項目 |     add_item: 新增項目 | ||||||
|     add_language: 新增語言 |     add_language: 新增語言 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| PrototypeR4::Application.routes.draw do | Orbit::Application.routes.draw do | ||||||
| 
 | 
 | ||||||
|   devise_for :users,:controllers => {:sessions => 'sessions'} |   devise_for :users,:controllers => {:sessions => 'sessions'} | ||||||
|    |    | ||||||
|  | @ -24,7 +24,14 @@ PrototypeR4::Application.routes.draw do | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     resources :ad_banners |      | ||||||
|  |     resources :ad_banners do  | ||||||
|  |         collection do | ||||||
|  |           match 'new_ad_image' => 'ad_images#new',:as => :new_ad_image,:via => :get | ||||||
|  |           match 'new_ad_image' => 'ad_images#create',:as => :create_ad_image,:via => :post | ||||||
|  |         end | ||||||
|  |         resources :ad_images ,:except => [:show,:index] | ||||||
|  |     end | ||||||
|     resources :dashboards |     resources :dashboards | ||||||
|     resources :designs do |     resources :designs do | ||||||
|       collection do |       collection do | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							|  | @ -0,0 +1,184 @@ | ||||||
|  | <!DOCTYPE html> | ||||||
|  | 
 | ||||||
|  | <html> | ||||||
|  |   <head> | ||||||
|  | 	  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||||||
|  | 	  <title>RulingSite</title> | ||||||
|  | 			<link rel="stylesheet" type="text/css" href="themes/ini.css" media="all" style=""/> | ||||||
|  | 			<link rel="stylesheet" type="text/css" href="themes/comp.css" media="all" style=""/> | ||||||
|  | 			<link rel="stylesheet" type="text/css" href="default.css" media="all" style=""/> | ||||||
|  | 			<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> | ||||||
|  | 			<script type="text/javascript" src="javascript/jquery.tinyscrollbar.min.js"></script> | ||||||
|  | 			<script type="text/javascript" src="javascript/rc.js"></script> | ||||||
|  | 			<script type="text/javascript" src="javascript/ccu.js"></script> | ||||||
|  |   </head> | ||||||
|  | 
 | ||||||
|  |   <body> | ||||||
|  | 		<div id="wrapper"> | ||||||
|  | 		<div id="header" class="header"> | ||||||
|  | 		 | ||||||
|  | 			<h1 id="logo" class="ini_heading"><a href="">國立政治大學</a><span>National Chengchi University</span></h1> | ||||||
|  | 			 | ||||||
|  | 			<div id="nav" class="header_nav"> | ||||||
|  | 				<ul class="nav_1"> | ||||||
|  | 					<li><a href="#" class="nav1">在校學生</a></li><span class="line"> | </span> | ||||||
|  | 					<li><a href="#" class="nav2">校友</a></li><span class="line"> | </span> | ||||||
|  | 					<li><a href="#" class="nav3">教職員工</a></li><span class="line"> | </span> | ||||||
|  | 					<li><a href="#" class="nav4">訪客</a></li> | ||||||
|  | 				</ul> | ||||||
|  | 				<ul class="nav_2"> | ||||||
|  | 					<li><a href="#">網站地圖</a></li><span class="line"> | </span> | ||||||
|  | 					<li><a href="#">iNCCU 愛政大</a></li><span class="line"> | </span> | ||||||
|  | 					<li> | ||||||
|  | 						<a href="#" class="mail">郵件信箱</a> | ||||||
|  | 						<ul class="nav_menu2"> | ||||||
|  | 							<li class="mail">郵件信箱</li> | ||||||
|  | 							<li><a href="">教職員生</a></li> | ||||||
|  | 							<li><a href="">校友</a></li> | ||||||
|  | 						</ul> | ||||||
|  | 					</li> | ||||||
|  | 				</ul> | ||||||
|  | 			</div> | ||||||
|  | 			 | ||||||
|  | 			<nav id="nav2" class="site_menu menu"> | ||||||
|  | 				<ul class="nav ini_list page_menu" level='1' id='nav' class='nav ini_list' home='true' li_class='nav' li_incremental='true'> | ||||||
|  | 					<li><a href=""><span>關於政大</span></a></li> | ||||||
|  | 					<li> | ||||||
|  | 						<a href=""><span>學術單位</span></a> | ||||||
|  | 						<span class="dot"></span> | ||||||
|  | 						<ul class="site_menu2 page_menu" level='2' id='navi' li_class='navi'> | ||||||
|  | 							<li><a href=""><span>文學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>理學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>社會科學學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>法學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>商學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>外國語文學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>傳播學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>國際事務學院</span></a></li> | ||||||
|  | 							<li><a href=""><span>教育學院</span></a></li> | ||||||
|  | 						</ul> | ||||||
|  | 					</li> | ||||||
|  | 					<li> | ||||||
|  | 						<a href=""><span>研究單位</span></a>								 | ||||||
|  | 						<span class="dot"></span> | ||||||
|  | 						<ul class="site_menu2 ini_list"> | ||||||
|  | 							<li><a href=""><span>國際關係研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>選舉研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>第三部門研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>創新與創造力研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>台灣研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>中國大陸研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>人文研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>心智、大腦與學習研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>原住民族研究中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>附屬研究中心</span></a></li> | ||||||
|  | 						</ul> | ||||||
|  | 					</li> | ||||||
|  | 					<li> | ||||||
|  | 						<a href=""><span>行政組織</span></a>						 | ||||||
|  | 						<span class="dot"></span> | ||||||
|  | 						<ul class="site_menu2"> | ||||||
|  | 							<li><a href=""><span>教務處</span></a></li> | ||||||
|  | 							<li><a href=""><span>學生事務處</span></a></li> | ||||||
|  | 							<li><a href=""><span>總務處</span></a></li> | ||||||
|  | 							<li><a href=""><span>研究發展處</span></a></li> | ||||||
|  | 							<li><a href=""><span>國際合作事務處</span></a></li> | ||||||
|  | 							<li><a href=""><span>秘書處</span></a></li> | ||||||
|  | 							<li><a href=""><span>會計室</span></a></li> | ||||||
|  | 							<li><a href=""><span>人事室</span></a></li> | ||||||
|  | 							<li><a href=""><span>圖書館</span></a></li> | ||||||
|  | 							<li><a href=""><span>體育室</span></a></li> | ||||||
|  | 							<li><a href=""><span>公共行政及企業管理教育中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>社會科學資料中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>電子計算機中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>附設公務人員教育中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>教學發展中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>華語文教學中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>創新育成中心</span></a></li> | ||||||
|  | 							<li><a href=""><span>附設實驗國民小學</span></a></li> | ||||||
|  | 							<li><a href=""><span>附屬高級中學</span></a></li> | ||||||
|  | 							<li><a href=""><span>性別平等教育委員會</span></a></li> | ||||||
|  | 						</ul> | ||||||
|  | 					</li> | ||||||
|  | 					<li><a href=""><span>招生入學</span></a></li> | ||||||
|  | 					<li> | ||||||
|  | 						<a href=""><span>資訊服務</span></a>						 | ||||||
|  | 						<ul class="site_menu2"> | ||||||
|  | 							<li><a href=""><span>校務系統</span></a></li> | ||||||
|  | 							<li><a href=""><span>校園授權軟體</span></a></li> | ||||||
|  | 							<li><a href=""><span>校園網路</span></a></li> | ||||||
|  | 							<li><a href=""><span>校園資訊服務</span></a></li> | ||||||
|  | 							<li><a href=""><span>教學軟硬體資源</span></a></li> | ||||||
|  | 						</ul> | ||||||
|  | 					</li> | ||||||
|  | 					<li><a href=""><span>聯絡我們</span></a></li> | ||||||
|  | 				</ul> | ||||||
|  | 			</nav> | ||||||
|  | 			 | ||||||
|  | 			<div id="banner_box"> | ||||||
|  | 				<div id="banner" name='content_1' class="banner page_content"> | ||||||
|  | 				</div> | ||||||
|  | 			</div> | ||||||
|  | 			 | ||||||
|  | 		</div> | ||||||
|  | 		 | ||||||
|  | 		<div id="main_content" class="content"> | ||||||
|  | 			<div class="content2"> | ||||||
|  | 					<div class="topic_news"> | ||||||
|  | 					<div class="topic_news2">	 | ||||||
|  | 						<div class="main_content page_content" name='content_2'> | ||||||
|  | 						</div> | ||||||
|  | 						<div class="news_content page_content" name='content_2' main='true'> | ||||||
|  | 						</div> | ||||||
|  | 						<div class="sidebar page_content" name='content_7'> | ||||||
|  | 						</div> | ||||||
|  | 					</div> | ||||||
|  | 					</div> | ||||||
|  | 				<div class="clear"></div> | ||||||
|  | 				 | ||||||
|  | 				<div class="post_panel"> | ||||||
|  | 				<div class="post_panel2"> | ||||||
|  | 					<div class="announcements page_content" name='content_3'> | ||||||
|  | 					</div> | ||||||
|  | 					<div class="events page_content" name='content_4'> | ||||||
|  | 					</div> | ||||||
|  | 				</div> | ||||||
|  | 				</div> | ||||||
|  | 				 | ||||||
|  | 				<div class="clear"></div> | ||||||
|  | 				 | ||||||
|  | 				<div class="links_panel"> | ||||||
|  | 				<div class="links_panel2"> | ||||||
|  | 					<div class="adbanner1 page_content" name='content_5'> | ||||||
|  | 					</div> | ||||||
|  | 					<div class="quicklinks page_content" name='content_6'> | ||||||
|  | 					</div> | ||||||
|  | 					 | ||||||
|  | 				</div> | ||||||
|  | 				</div> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 
 | ||||||
|  | 		<div id="footer" class="footer"> | ||||||
|  | 			<div class="copyright"> | ||||||
|  | 			<p> | ||||||
|  | 				本網站著作權屬於國立政治大學,請詳見使用規則。 | ||||||
|  | 			</p> | ||||||
|  | 			<p> | ||||||
|  | 				總機電話:02-29393091<br/> | ||||||
|  | 				傳真:02-29379611<br/> | ||||||
|  | 				地址:11605 台北市文山區指南路二段64號<br/> | ||||||
|  | 			</p> | ||||||
|  | 			</div> | ||||||
|  | 			<div class="notice"> | ||||||
|  | 				校園安全緊急通報 | 著作權 | 個人資料保護宣告 | 資訊安全宣告 | 聯絡我們 | ||||||
|  | 			</div> | ||||||
|  | 			<div class="ruling"> | ||||||
|  | 				<a href=""> | ||||||
|  | 					<img src="images/ruling.png" alt="Rulingdigital" name="ruling_pic" id="ruling_pic" class="ruling_pic page_image" />	 | ||||||
|  | 				</a> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 		</div> | ||||||
|  |   </body> | ||||||
|  | </html> | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue