Partial sitemap
This commit is contained in:
		
							parent
							
								
									12f9f666eb
								
							
						
					
					
						commit
						db9c4c0e10
					
				
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -570,53 +570,342 @@ | ||||||
|     padding: 5px; |     padding: 5px; | ||||||
| } | } | ||||||
| .popover-content { | .popover-content { | ||||||
| 	-webkit-border-radius: 0 0 3px 3px; |     border-radius: 3px; | ||||||
| 	-moz-border-radius: 0 0 3px 3px; |  | ||||||
| 	border-radius: 0 0 3px 3px; |  | ||||||
|     padding: 5px; |     padding: 5px; | ||||||
| } | } | ||||||
| .popover-title { | .popover-title { | ||||||
| 	display: none; | 	display: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*show link and file*/ | .member td.teacher { | ||||||
| .linkAndFile { | 	/*background-color: #AF0045; | ||||||
|  | 	border-left: 2px solid #AF0045;*/ | ||||||
|  | } | ||||||
|  | .user-info .roles-nav { | ||||||
|  | 	margin: 0; | ||||||
|  | 	position: relative; | ||||||
| 	clear: both; | 	clear: both; | ||||||
| } | } | ||||||
| .linkAndFile>div { | .user-info .roles-nav li { | ||||||
| 	margin-top: 20px; |  | ||||||
| } |  | ||||||
| .linkAndFile [class^="icons-"] { |  | ||||||
| 	float: left; | 	float: left; | ||||||
| 	margin-top: 10px; | 	list-style: none; | ||||||
|  | 	background-color: #FFFFFF; | ||||||
| } | } | ||||||
| .linkAndFile .showLink, .linkAndFile .showFile { | .user-info .roles-nav li a { | ||||||
| 	background-color: #ededed; | 	text-indent: -9999px; | ||||||
| 	padding: 5px; | 	display: block; | ||||||
| 	border-radius: 5px; | 	height: 15px; | ||||||
| 	margin-left: 25px; | 	width: 100px; | ||||||
|  | 	margin-top: 3px; | ||||||
|  | 	opacity: 0.3; | ||||||
|  | 	-moz-opacity: 0.3; | ||||||
|  | 	filter:alpha(opacity=3); | ||||||
| } | } | ||||||
| .linkAndFile .showLink a, .linkAndFile .showFile a { | .user-info .roles-nav li:first-child a { | ||||||
|  | 	border-radius: 0 0 0 4px; | ||||||
|  | } | ||||||
|  | .user-info .roles-nav li:last-child a { | ||||||
|  | 	border-radius: 0 0 4px 0; | ||||||
|  | } | ||||||
|  | .user-info .roles-nav li hr { | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 0; | ||||||
|  | 	left: 0; | ||||||
|  | 	right: 0; | ||||||
|  | 	height: 3px; | ||||||
|  | 	margin: 0; | ||||||
|  | 	border: none; | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  | .user-info .roles-nav li.teacher a { | ||||||
|  | 	background-color: #F36F08; | ||||||
|  | } | ||||||
|  | .user-info .roles-nav li.student a { | ||||||
|  | 	background-color: #186AB6; | ||||||
|  | } | ||||||
|  | .user-info .roles-nav li.staff a { | ||||||
|  | 	background-color: #139E2F; | ||||||
|  | } | ||||||
|  | .user-info .roles-nav li.active a { | ||||||
|  | 	border-bottom: none; | ||||||
|  | 	height: 18px; | ||||||
|  | 	margin-top: 0; | ||||||
|  | 	opacity: 1; | ||||||
|  | 	-moz-opacity: 1; | ||||||
|  | 	filter:alpha(opacity=10); | ||||||
|  | } | ||||||
|  | .user-info .roles-nav li.active hr { | ||||||
|  | 	display: block; | ||||||
|  | } | ||||||
|  | .user-info-basic { | ||||||
|  | 	padding: 20px; | ||||||
|  | 	min-width: 220px; | ||||||
| 	display: inline-block; | 	display: inline-block; | ||||||
|     margin: 5px 10px; | 	float: left; | ||||||
| } | } | ||||||
| .linkAndFile>div>a:last-child { | .user-info-roles { | ||||||
|     margin-right: 5px | 	padding: 20px; | ||||||
| } | } | ||||||
| .news_paragraph p { | .user-avatar { | ||||||
|     line-height: 20px; | 	overflow: hidden; | ||||||
|  | 	width: 80px; | ||||||
|  | 	height: 80px; | ||||||
|  | 	border-radius: 5px; | ||||||
|  | 	box-shadow: 0 1px 3px rgba(0,0,0,.8); | ||||||
|  | 	margin-right: 10px; | ||||||
| } | } | ||||||
| .nav-tabs>li>.edit, .nav-tabs>li>.edit:hover { | .user-avatar .reflective { | ||||||
| 	background-color: #333; | 	background-image: url(img/reflective.png); | ||||||
| 	color: #FFF; | 	background-repeat: no-repeat; | ||||||
| 	padding-right: 12px; | 	background-position: 0; | ||||||
|  | 	height: 80px; | ||||||
|  | 	width: 80px; | ||||||
|  | 	position: absolute; | ||||||
| } | } | ||||||
| .nav-tabs li .icons-pencil { | .user .user-avatar .reflective { | ||||||
| 	float: right; | 	background-image: url(img/reflective.png); | ||||||
|  | 	background-repeat: no-repeat; | ||||||
|  | 	background-position: 0 -20px; | ||||||
|  | 	height: 80px; | ||||||
|  | 	width: 80px; | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 10px; | ||||||
|  | 	left: 10px; | ||||||
|  | 	opacity: 0; | ||||||
|  | 	-moz-opacity: 0; | ||||||
|  | 	filter:alpha(opacity=0); | ||||||
|  | } | ||||||
|  | .user:hover .user-avatar .reflective { | ||||||
|  | 	background-position: 0 0; | ||||||
|  | 	opacity: 1; | ||||||
|  | 	-moz-opacity: 1; | ||||||
|  | 	filter:alpha(opacity=10); | ||||||
|  | } | ||||||
|  | .user-name { | ||||||
|  | 	font-size: 22px; | ||||||
|  | 	line-height: 24px; | ||||||
|  | 	color: #555; | ||||||
|  | 	margin: 0 0 3px; | ||||||
|  | 	font-family: Helvetica, "微軟正黑體"; | ||||||
|  | } | ||||||
|  | .user-data { | ||||||
|  | 	padding: 20px; | ||||||
|  | 	position: relative; | ||||||
|  | } | ||||||
|  | .data-block hr { | ||||||
|  | 	background-color: #666; | ||||||
|  | 	height: 8px; | ||||||
|  | 	border: none; | ||||||
|  | 	margin: 0; | ||||||
|  | 	border-radius: 5px 5px 0px 0px; | ||||||
|  | 	-moz-border-radius: 5px 5px 0px 0px; | ||||||
|  | 	-webkit-border-radius: 5px 5px 0px 0px; | ||||||
|  | } | ||||||
|  | .data-block .info_input { | ||||||
|  | 	margin-bottom:50px; | ||||||
|  | 	position:relative; | ||||||
|  | 	padding: 10px; | ||||||
|  | 	background-color: rgba(227,227,227,1); | ||||||
|  | 	border-radius: 0px 0px 5px 5px; | ||||||
|  | 	-moz-border-radius: 0px 0px 5px 5px; | ||||||
|  | 	-webkit-border-radius: 0px 0px 5px 5px; | ||||||
|  | 	-moz-box-shadow: 0px 1px 0px rgba(0,0,0,.3); /* Firefox */ | ||||||
|  | 	-webkit-box-shadow: 0px 1px 0px rgba(0,0,0,.3);/* Safari 和 Chrome */ | ||||||
|  | 	box-shadow: 0px 1px 0px rgba(0,0,0,.3); /* Opera 10.5 + */ | ||||||
|  | } | ||||||
|  | .data-block .info_input table { | ||||||
|  | 	width: 100%; | ||||||
|  | } | ||||||
|  | .data-block .info_input table .list_head td { | ||||||
|  | 	border-bottom: 1px solid #AAA; | ||||||
|  | } | ||||||
|  | .teacher hr { | ||||||
|  | 	background-color: #F36F08; | ||||||
|  | } | ||||||
|  | .student hr { | ||||||
|  | 	background-color: #186AB6; | ||||||
|  | } | ||||||
|  | .staff hr { | ||||||
|  | 	background-color: #139E2F; | ||||||
|  | } | ||||||
|  | .view-mode { | ||||||
|  | 	margin: 4px 20px 0 0; | ||||||
|  | } | ||||||
|  | .view-mode i { | ||||||
|  | 	font-size: 14px; | ||||||
|  | 	line-height: 6px !important; | ||||||
|  | } | ||||||
|  | .member-abstract, .member-large { | ||||||
|  | 	padding: 15px; | ||||||
|  | } | ||||||
|  | .member-abstract ul, .member-large ul { | ||||||
|  | 	margin: 0; | ||||||
|  | 	padding: 0; | ||||||
|  | 	list-style: none; | ||||||
|  | } | ||||||
|  | .member-abstract>ul>li, .member-large>ul>li { | ||||||
|  | 	margin: 5px; | ||||||
|  | 	overflow: hidden; | ||||||
|  | 	border-radius: 5px; | ||||||
|  | 	box-shadow: 0 1px 3px rgba(0,0,0,.3); | ||||||
|  | } | ||||||
|  | .member-abstract .user *, .member-large .user * { | ||||||
|  | 	-webkit-transition: all .3s ease; | ||||||
|  | 	   -moz-transition: all .3s ease; | ||||||
|  | 	     -o-transition: all .3s ease; | ||||||
|  | 	        transition: all .3s ease; | ||||||
|  | } | ||||||
|  | .member-abstract .user, .member-large .user { | ||||||
|  | 	background-color: #EDEDED; | ||||||
|  | 	padding: 10px; | ||||||
|  | 	position: relative; | ||||||
|  | 	border-radius: 0 0 5px 5px; | ||||||
|  | 	width: 360px; | ||||||
|  | 	-webkit-transition: all .3s ease; | ||||||
|  | 	   -moz-transition: all .3s ease; | ||||||
|  | 	     -o-transition: all .3s ease; | ||||||
|  | 	        transition: all .3s ease; | ||||||
|  | } | ||||||
|  | .member-abstract .user:hover, .member-large .user:hover { | ||||||
|  | 	background-color: #333333; | ||||||
|  | } | ||||||
|  | .member-abstract .user:hover .user-name, .member-large .user:hover .user-name { | ||||||
|  | 	color: #DDD; | ||||||
|  | } | ||||||
|  | .member-abstract .user .user-meta { | ||||||
|  | 	margin-left: 90px; | ||||||
|  | } | ||||||
|  | .member-abstract .user .user-title span { | ||||||
|  | 	color: #5e5e5e; | ||||||
|  | 	font-size: 13px; | ||||||
|  | 	padding-right: 10px; | ||||||
|  | } | ||||||
|  | .member-abstract .user:hover .user-title span { | ||||||
|  | 	color: #AAA; | ||||||
|  | } | ||||||
|  | .member-abstract .user ul.user-itemborder { | ||||||
| 	margin-top: 8px; | 	margin-top: 8px; | ||||||
|  | 	border-top: 1px solid #D5D5D5; | ||||||
|  | 	padding: 4px 0 0; | ||||||
| } | } | ||||||
| .nav-tabs li a { | .member-abstract .user ul.user-itemborder li, .member-abstract .user ul.user-itemborder li span { | ||||||
| 	padding-right: 32px; | 	color: #333; | ||||||
|  | } | ||||||
|  | .member-abstract .user:hover ul.user-itemborder { | ||||||
|  | 	color: #EDEDED; | ||||||
|  | 	border-top: 1px solid #666; | ||||||
|  | } | ||||||
|  | .member-abstract .user:hover ul.user-itemborder li, .member-abstract .user:hover ul.user-itemborder li span { | ||||||
|  | 	color: #EDEDED; | ||||||
|  | } | ||||||
|  | .member-abstract .user ul.user-itemborder li { | ||||||
|  | 	width: 33%; | ||||||
|  | 	font-size: 11px; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | .member-abstract .user ul.user-itemborder li span { | ||||||
|  | 	font-size: 13px; | ||||||
|  | 	font-weight: bold; | ||||||
|  | 	padding-right: 5px; | ||||||
|  | } | ||||||
|  | .member-large .user { | ||||||
|  | 	width: 80px; | ||||||
|  | 	min-height: 125px; | ||||||
|  | } | ||||||
|  | .member-large .user-avatar { | ||||||
|  | 	margin-right: 0; | ||||||
|  | } | ||||||
|  | .member-large .user-name { | ||||||
|  | 	font-weight: bold; | ||||||
|  | 	font-size: 13px; | ||||||
|  | 	width: 80px; | ||||||
|  | 	line-height: 18px; | ||||||
|  | 	padding-top: 5px; | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | .rolesTag { | ||||||
|  | 	width: 100%; | ||||||
|  | } | ||||||
|  | .rolesTag td { | ||||||
|  | 	height: 6px; | ||||||
|  | 	background-color: #333; | ||||||
|  | } | ||||||
|  | .rolesTag td.teacher { | ||||||
|  | 	background-color: #F38C08; | ||||||
|  | } | ||||||
|  | .rolesTag td.student { | ||||||
|  | 	background-color: #186AB6; | ||||||
|  | } | ||||||
|  | .rolesTag td.staff { | ||||||
|  | 	background-color: #139E2F; | ||||||
|  | } | ||||||
|  | .site-map { | ||||||
|  | 	padding: 15px; | ||||||
|  | } | ||||||
|  | .site-map .map-block { | ||||||
|  | 	width: 250px; | ||||||
|  | 	min-height: 20px; | ||||||
|  | 	border: 1px solid #dedede; | ||||||
|  | 	background-color: #E6E6E6; | ||||||
|  | 	-webkit-border-radius: 4px; | ||||||
|  | 	-moz-border-radius: 4px; | ||||||
|  | 	border-radius: 4px; | ||||||
|  | 	margin-bottom: 10px; | ||||||
|  | } | ||||||
|  | .site-map .map-block ul { | ||||||
|  | 	margin: 0px; | ||||||
|  | 	list-style: none; | ||||||
|  | } | ||||||
|  | .site-map .map-block li { | ||||||
|  | 	font-size: 12px; | ||||||
|  | 	background-color: #F7F7F7; | ||||||
|  | 	padding: 5px 15px; | ||||||
|  | 	border-top: 1px solid #FFF; | ||||||
|  | 	border-bottom: 1px solid #dedede; | ||||||
|  | } | ||||||
|  | .site-map .map-block li:last-child { | ||||||
|  | 	border-radius: 0 0 4px 4px; | ||||||
|  | 	border-bottom: none; | ||||||
|  | } | ||||||
|  | .site-map .map-block li:hover a {; | ||||||
|  | 	text-decoration: none; | ||||||
|  | } | ||||||
|  | .site-map .map-block li.disabled { | ||||||
|  | 	color: #C9C9C9; | ||||||
|  | } | ||||||
|  | .site-map .map-block li.disabled .onoff { | ||||||
|  |     box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5), 0 0 5px rgba(0,0,0,.2) inset; | ||||||
|  | 	background-color: #9C9C9C; | ||||||
|  | 	color: #CACACA; | ||||||
|  | } | ||||||
|  | .site-map .map-block h4 { | ||||||
|  | 	line-height: 30px; | ||||||
|  | 	padding: 0 15px; | ||||||
|  | 	border-radius: 4px 4px 0 0; | ||||||
|  | 	box-shadow: 0px 1px 2px #A8A8A8; | ||||||
|  | 	position: relative; | ||||||
|  | 	background-image: -moz-linear-gradient(top, #FCFCFC, #DFDFDF); | ||||||
|  | 	background-image: -ms-linear-gradient(top, #FCFCFC, #DFDFDF); | ||||||
|  | 	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FCFCFC), to(#DFDFDF)); | ||||||
|  | 	background-image: -webkit-linear-gradient(top, #FCFCFC, #DFDFDF); | ||||||
|  | 	background-image: -o-linear-gradient(top, #FCFCFC, #DFDFDF); | ||||||
|  | 	background-image: linear-gradient(top, #FCFCFC, #DFDFDF); | ||||||
|  | 	background-repeat: repeat-x; | ||||||
|  | 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#DFDFDF', GradientType=0); | ||||||
|  | } | ||||||
|  | .onoff { | ||||||
|  | 	display: block; | ||||||
|  | 	background-color: #5EB92B; | ||||||
|  |     font-size: 9px; | ||||||
|  |     padding: 0px 10px; | ||||||
|  |     border-radius: 8px; | ||||||
|  |     line-height: 16px; | ||||||
|  |     height: 15px; | ||||||
|  |     color: #FFF; | ||||||
|  |     width: 38px; | ||||||
|  |     border: none; | ||||||
|  |     box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5), 0 0 5px rgba(13, 75, 23, 0.5) inset; | ||||||
|  |     margin-top: 2px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -19,22 +19,28 @@ class Admin::SitesController < ApplicationController | ||||||
|     redirect_to :back |     redirect_to :back | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def mail_setting | ||||||
|  |      | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def site_info |   def site_info | ||||||
|      |      | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def sitemap | ||||||
|  |     @items = get_homepage.children rescue [] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def sitemap_toggle | ||||||
|  |     @item = Item.find(params[:id]) | ||||||
|  |     @item.sitemap_enabled = !@item.sitemap_enabled | ||||||
|  |     @item.save | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def system_info |   def system_info | ||||||
|      |      | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def language |  | ||||||
|      |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def mail_setting |  | ||||||
|      |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def ui_theme |   def ui_theme | ||||||
|      |      | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ class Item | ||||||
|   field :enabled_for, :type => Array, :default => nil |   field :enabled_for, :type => Array, :default => nil | ||||||
|   field :menu_enabled_for, :type => Array, :default => nil |   field :menu_enabled_for, :type => Array, :default => nil | ||||||
|   field :title, localize: true |   field :title, localize: true | ||||||
|  |   field :sitemap_enabled, :type => Boolean, :default => true | ||||||
| 
 | 
 | ||||||
|   |   | ||||||
|   validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/ |   validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/ | ||||||
|  |  | ||||||
|  | @ -0,0 +1,13 @@ | ||||||
|  | <div class="map-block"> | ||||||
|  |     <h4><%= sitemap_block.i18n_variable[I18n.locale] %></h4> | ||||||
|  |     <ul> | ||||||
|  |     	<% sitemap_block.children.each do |child| %> | ||||||
|  |         <li class="clear"> | ||||||
|  |         	<%= child.i18n_variable[I18n.locale] %> | ||||||
|  |         	<button id="<%= child.id %>" class="onoff pull-right"> | ||||||
|  |         		<%= child.sitemap_enabled ? t('on_cap') : t('off_cap') %> | ||||||
|  |         	</button> | ||||||
|  |         </li> | ||||||
|  |       <% end if sitemap_block.children %> | ||||||
|  |     </ul> | ||||||
|  | </div> | ||||||
|  | @ -0,0 +1,30 @@ | ||||||
|  | <% content_for :side_bar do %> | ||||||
|  | 	<%= render 'side_bar' %> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div class="site-map"> | ||||||
|  |   <%= render :partial => 'sitemap_block', :collection => @items %> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <% content_for :page_specific_javascript do %> | ||||||
|  | 	<%= javascript_include_tag "lib/jquery.masonry.min.js" %> | ||||||
|  | 	    <script> | ||||||
|  | 		    $(document).ready(function(){ | ||||||
|  | 	        $('.site-map').masonry({ | ||||||
|  | 	            itemSelector: '.map-block', | ||||||
|  | 	            columnWidth: 260, | ||||||
|  | 	            isAnimated: true | ||||||
|  | 	        }); | ||||||
|  | 	      }); | ||||||
|  |         $(document).on('click', '.onoff', function () { | ||||||
|  |             $(this).parents("li").toggleClass("disabled"); | ||||||
|  |             if($(this).parents("li").attr("class").indexOf("disabled") > 0){ | ||||||
|  |                 $(this).text('OFF') | ||||||
|  |             } else { | ||||||
|  |                 $(this).text('ON') | ||||||
|  |             } | ||||||
|  |             $.getScript('admin_sites_path' + '/' + $(this).attr('id') + '/sitemap_toggle'); | ||||||
|  |         }); | ||||||
|  |     </script> | ||||||
|  | <% end %> | ||||||
|  | @ -114,11 +114,12 @@ Orbit::Application.routes.draw do | ||||||
|       get 'add_attribute_field' |       get 'add_attribute_field' | ||||||
|     end |     end | ||||||
|     resources :sites do |     resources :sites do | ||||||
|       get 'site_info' |  | ||||||
|       get 'system_info' |  | ||||||
|       get 'language' |  | ||||||
|       get 'mail_setting' |       get 'mail_setting' | ||||||
|  |       get 'site_info' | ||||||
|  |       get 'sitemap' | ||||||
|  |       get 'system_info' | ||||||
|       get 'ui_theme' |       get 'ui_theme' | ||||||
|  |       put 'sitemap_toggle', :on => :member | ||||||
|     end |     end | ||||||
|     resources :snippets |     resources :snippets | ||||||
|     resources :tags |     resources :tags | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue