Back-end standardization
This commit is contained in:
		
							parent
							
								
									b77282c643
								
							
						
					
					
						commit
						f774084e9a
					
				|  | @ -0,0 +1,278 @@ | |||
| html, body{ | ||||
|     height: 100%; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| html{ | ||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat scroll 0 0 transparent; | ||||
| 	background-size: cover; | ||||
| } | ||||
| 
 | ||||
| body{ | ||||
|     color: #000000; | ||||
|     font-family: Helvetica, '微軟正黑體'; | ||||
| } | ||||
| 
 | ||||
| #panel_banner_link{ | ||||
|     background: url(<%= asset_path "orbitbar1.png" %>) repeat-x scroll 0 0; | ||||
|     height: 50px; | ||||
|     left: 0; | ||||
|     position: fixed; | ||||
|     top: 0; | ||||
|     width: 100%; | ||||
| 	z-index: 5; | ||||
| } | ||||
| .hmenu{ | ||||
|     height: 40px; | ||||
|     position: absolute; | ||||
|     right: 0; | ||||
|     top: 1px; | ||||
|     width: 250px; | ||||
| } | ||||
| #orbit{ | ||||
|     background: url(<%= asset_path "bar_orbit.png" %>) no-repeat scroll 0 0 transparent; | ||||
| 	cursor:pointer; | ||||
|     height: 43px; | ||||
|     left: 10px; | ||||
|     position: relative; | ||||
|     width: 41px; | ||||
| } | ||||
| #orbit:hover{ | ||||
| 	background-position:0 -43px; | ||||
|     box-shadow: 0 3px 3px #000000; | ||||
| } | ||||
| #orbit:hover #orblist{ | ||||
| 	display:block; | ||||
| } | ||||
| #orblist{ | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
|     border-radius: 0 3px 3px 3px; | ||||
|     box-shadow: 0 3px 3px #000000; | ||||
|     display: none; | ||||
|     margin: 0; | ||||
|     padding: 10px; | ||||
|     position: absolute; | ||||
|     top: 43px; | ||||
|     width: 130px; | ||||
| } | ||||
| #orblist li{ | ||||
| 	border-bottom:1px solid #aaa; | ||||
| 	list-style:none; | ||||
| } | ||||
| .orblink{ | ||||
|     color: #333333; | ||||
|     display: block; | ||||
|     font: 12px/100% arial,sans-serif; | ||||
|     padding: 5px; | ||||
|     text-decoration: none; | ||||
| } | ||||
| .orblink:hover{ | ||||
| 	background:#eee; | ||||
| 	color:#333; | ||||
| } | ||||
| 
 | ||||
| #log_out a{ | ||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right 0 transparent; | ||||
|     border: medium none !important; | ||||
|     display: block !important; | ||||
|     height: 40px !important; | ||||
|     line-height: normal !important; | ||||
|     padding: 0 !important; | ||||
|     position: absolute; | ||||
|     right: 0px; | ||||
|     text-indent: -10000px; | ||||
|     top: 0px; | ||||
|     width: 43px !important; | ||||
| } | ||||
| #log_out a:hover{ | ||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right bottom transparent !important; | ||||
| } | ||||
| .lang{ | ||||
|     color: #FFFFFF; | ||||
|     font-size: 15px; | ||||
|     line-height: 40px; | ||||
|     position: absolute; | ||||
|     right: 55px; | ||||
|     top: 0; | ||||
| } | ||||
| 
 | ||||
| .lang a{ | ||||
| 	color:#fff; | ||||
| 	text-decoration:none; | ||||
| } | ||||
| 
 | ||||
| .lang a:hover{ | ||||
| 	text-decoration:underline; | ||||
| } | ||||
| 
 | ||||
| #content{ | ||||
|     height: 100%; | ||||
| } | ||||
| #sidebar { | ||||
| 	background: url(<%= asset_path "75.png" %>) repeat scroll left top transparent; | ||||
| 	box-shadow: 3px 0 4px #472A12; | ||||
| 	border-right: 1px solid #121212; | ||||
| 	height: 100%; | ||||
| 	left: 0; | ||||
| 	position: fixed; | ||||
| 	top: 0; | ||||
| 	width: 220px; | ||||
| } | ||||
| #search { | ||||
|     background: url(<%= asset_path "search_block_bg.jpg" %>) repeat-x scroll left top transparent; | ||||
|     height: 20px; | ||||
|     margin-top: 43px; | ||||
|     padding: 15px 12px; | ||||
| } | ||||
| #search input { | ||||
|     background: url(<%= asset_path "search_bg.png" %>) no-repeat scroll left top transparent; | ||||
|     border: medium none; | ||||
|     font-family: Helvetica; | ||||
|     height: 20px; | ||||
|     padding: 0 20px; | ||||
|     width: 154px; | ||||
| } | ||||
| h1 { | ||||
|     background: url(<%= asset_path "h1_bg.png" %>) repeat-x scroll left top transparent; | ||||
|     border-bottom: 1px solid #1B1B1B; | ||||
|     border-top: 1px solid #424344; | ||||
|     color: #FFFFFF; | ||||
|     font-size: 12px; | ||||
|     font-weight: normal; | ||||
|     height: 21px; | ||||
|     line-height: 21px; | ||||
|     margin: 0; | ||||
|     padding-left: 10px; | ||||
|     text-shadow: 0 -1px 0 #000000; | ||||
| } | ||||
| .member_setup .list { | ||||
| 	color:#fff; | ||||
| 	font-size:12px; | ||||
| 	background:url(<%= asset_path "line.png" %>) repeat-x left bottom; | ||||
| } | ||||
| .member_setup .list li { | ||||
| 	background:url(<%= asset_path "sidebar_li.jpg" %>) repeat-x left top; | ||||
| 	border-top:1px solid #424344; | ||||
| 	border-bottom:1px solid #000000; | ||||
| } | ||||
| .member_setup .list li:hover { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| .member_setup .list li a { | ||||
| 	display: block; | ||||
|     padding: 7px 0 6px 12px; | ||||
| 	color:#c4c4c4; | ||||
| } | ||||
| .member_setup .list li a span { | ||||
| 	background:url(<%= asset_path "add_mamber.png" %>) left top no-repeat; | ||||
| 	text-shadow: 0px 1px 0px #000; | ||||
| 	line-height: 18px; | ||||
| 	padding: 2px 0 1px 35px; | ||||
| } | ||||
| .member_setup .list li a:hover span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| .users .list .set_1 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| .users .list .set_1 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| .user_role_models .list .set_2 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| .user_role_models .list .set_2 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| .user_info_models .list .set_3 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| .user_info_models .list .set_3 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| .main { | ||||
| 	height: 100%; | ||||
| 	margin-left: 260px; | ||||
| 	padding-right: 40px; | ||||
| 	position: relative; | ||||
| } | ||||
| .main_list { | ||||
|     padding-top: 70px; | ||||
| } | ||||
| .main_list ul { | ||||
| 	clear:both; | ||||
| } | ||||
| #porfile { | ||||
| 	padding-top: 100px; | ||||
| } | ||||
| /*add_buttom*/ | ||||
| .button_bar { | ||||
| 	float: right; | ||||
| 	-moz-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	-webkit-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4f4f4f), color-stop(1, #000000) ); | ||||
| 	background:-moz-linear-gradient( center top, #4f4f4f 5%, #000000 100% ); | ||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f4f4f', endColorstr='#000000'); | ||||
| 	background-color:#4f4f4f; | ||||
| 	-moz-border-radius:5px; | ||||
| 	-webkit-border-radius:5px; | ||||
| 	border-radius:5px; | ||||
| 	display:inline-block; | ||||
| 	padding:0; | ||||
| 	margin:10px 0; | ||||
| } | ||||
| .button_bar a { | ||||
| 	text-decoration:none; | ||||
| 	text-shadow:0px -1px 0px #000000; | ||||
| 	font-size:12px; | ||||
| 	color:#EDEDED; | ||||
| 	border-right:1px solid #555; | ||||
| 	-moz-box-shadow:1px 0px 0px black; | ||||
| 	-webkit-box-shadow:1px 0px 0px black; | ||||
| 	box-shadow:1px 0px 0px black; | ||||
| 	padding: 6px 10px 4px; | ||||
| 	display: inline-block; | ||||
| 	float: left; | ||||
| } | ||||
| .button_bar a:active { | ||||
| 	padding: 7px 10px 3px; | ||||
| 	text-shadow:0px 1px 0px #000000; | ||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #000000), color-stop(1, #4f4f4f) ); | ||||
| 	background:-moz-linear-gradient( center top, #000000 5%, #4f4f4f 100% ); | ||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#4f4f4f'); | ||||
| } | ||||
| .button_bar a:last-child { | ||||
| 	border-right:none; | ||||
| 	-moz-box-shadow:none; | ||||
| 	-webkit-box-shadow:none; | ||||
| 	box-shadow:none; | ||||
| 	-moz-border-radius:0px 5px 5px 0px; | ||||
| 	-webkit-border-radius:0px 5px 5px 0px; | ||||
| 	border-radius:0px 5px 5px 0px; | ||||
| } | ||||
| .button_bar a:first-child { | ||||
| 	-moz-border-radius:5px 0px 0px 5px; | ||||
| 	-webkit-border-radius:5px 0px 0px 5px; | ||||
| 	border-radius:5px 0px 0px 5px; | ||||
| } | ||||
| .button_bar a.new { | ||||
| 	-moz-border-radius:5px; | ||||
| 	-webkit-border-radius:5px; | ||||
| 	border-radius:5px; | ||||
| } | ||||
| .button_bar a:hover { | ||||
| 	color:#FFFFFF; | ||||
| } | ||||
|  | @ -30,4 +30,4 @@ $('.select_type select').live('change', function(){ | |||
|   { | ||||
|     $(this).next().hide(); | ||||
|   } | ||||
| }); | ||||
| });	 | ||||
|  | @ -0,0 +1,57 @@ | |||
| <div id="UserRole_block" class="roles_block <%= @class %>"> | ||||
| 	<h2><%= t("admin.user_#{@attribute}") %></h2> | ||||
| 	<div class="info_input"> | ||||
| 		<table border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t('admin.key') %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 			      	<td><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			    	<% end %> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tbody> | ||||
| 			<tr class="list_item"> | ||||
| 			    <td><%= is_new ? (f.text_field :key, {:style => "width:150px"}) : @user_attribute_model.key %></td> | ||||
| 			    <% @site_valid_locales.each do |locale| %> | ||||
| 			      <td> | ||||
| 			        <%= text_field_tag "user_#{@attribute}_model[i18n_variable][#{locale}]", (@i18n_variable[locale] if @i18n_variable), :style => "width:150px" %> | ||||
| 			      </td> | ||||
| 			    <% end %> | ||||
| 			  </tr> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| <div id="attributes_block" class="roles_block <%= @class %>"> | ||||
| 	<h2>Attributes</h2> | ||||
| 	<div class="info_input"> | ||||
| 		<table id='attributes' border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t('admin.key') %></td> | ||||
| 					<td><%= t('admin.multilingual') %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 			      	<td><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			    	<% end %> | ||||
| 					<td><%= t('admin.type')%></td> | ||||
| 					<td> </td> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tfoot> | ||||
| 				<tr> | ||||
| 					<td colspan="5"><a href="#" class="add"><%= t(:add) %></a></td> | ||||
| 				</tr> | ||||
| 			</tfoot> | ||||
| 			<tbody> | ||||
| 				<%= render :partial => 'admin/user_attribute_models/attribute_model', :collection => @user_attribute_model.attribute_models %> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "user_attribute_model_form" %> | ||||
| <% end -%> | ||||
|  | @ -1,8 +1,9 @@ | |||
| /* | ||||
|  *This is a manifest file that'll automatically include all the stylesheets available in this directory | ||||
|  *and any sub-directories. You're free to add application-wide styles to this file and they'll appear at | ||||
|  *the top of the compiled file, but it's generally better to create a new file per style scope. | ||||
|  *= require_self | ||||
|  *= require message | ||||
|  *= require admin_back_end | ||||
| /* | ||||
|  *This is a manifest file that'll automatically include all the stylesheets available in this directory | ||||
|  *and any sub-directories. You're free to add application-wide styles to this file and they'll appear at | ||||
|  *the top of the compiled file, but it's generally better to create a new file per style scope. | ||||
|  *= require reset | ||||
|  *= require_self | ||||
|  *= require message | ||||
|  *= require admin_back_end | ||||
| */ | ||||
|  | @ -1,354 +1,490 @@ | |||
| html, body{ | ||||
|     height: 100%; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| html{ | ||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat scroll 0 0 transparent; | ||||
| 	background-size: cover; | ||||
| } | ||||
| 
 | ||||
| body{ | ||||
|     color: #000000; | ||||
|     font-family: helvetica,arial,sans-serif; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| 
 | ||||
| #panel_banner_link{ | ||||
|     background: url(<%= asset_path "orbitbar1.png" %>) repeat-x scroll 0 0; | ||||
|     height: 52px; | ||||
|     left: 0; | ||||
|     position: absolute; | ||||
|     top: 0; | ||||
|     width: 100%; | ||||
| } | ||||
| .hmenu{ | ||||
|     height: 40px; | ||||
|     position: absolute; | ||||
|     right: 0; | ||||
|     top: 1px; | ||||
|     width: 250px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #orbit{ | ||||
|     background: url(<%= asset_path "bar_orbit.png" %>) no-repeat scroll 0 0 transparent; | ||||
| 	cursor:pointer; | ||||
|     height: 43px; | ||||
|     left: 10px; | ||||
|     position: relative; | ||||
|     width: 41px; | ||||
| } | ||||
| 
 | ||||
| #orbit:hover{ | ||||
| 	background-position:0 -43px; | ||||
|     box-shadow: 0 3px 3px #000000; | ||||
| } | ||||
| #orbit:hover #orblist{ | ||||
| 	display:block; | ||||
| } | ||||
| #orblist{ | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
|     border-radius: 0 3px 3px 3px; | ||||
|     box-shadow: 0 3px 3px #000000; | ||||
|     display: none; | ||||
|     margin: 0; | ||||
|     padding: 10px; | ||||
|     position: absolute; | ||||
|     top: 43px; | ||||
|     width: 130px; | ||||
| } | ||||
| #orblist li{ | ||||
| 	border-bottom:1px solid #aaa; | ||||
| 	list-style:none; | ||||
| } | ||||
| .orblink{ | ||||
|     color: #333333; | ||||
|     display: block; | ||||
|     font: 12px/100% arial,sans-serif; | ||||
|     padding: 5px; | ||||
|     text-decoration: none; | ||||
| } | ||||
| .orblink:hover{ | ||||
| 	background:#eee; | ||||
| 	color:#333; | ||||
| } | ||||
| 
 | ||||
| #log_out a{ | ||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right 0 transparent; | ||||
|     border: medium none !important; | ||||
|     display: block !important; | ||||
|     height: 40px !important; | ||||
|     line-height: normal !important; | ||||
|     padding: 0 !important; | ||||
|     position: absolute; | ||||
|     right: 0px; | ||||
|     text-indent: -10000px; | ||||
|     top: 0px; | ||||
|     width: 43px !important; | ||||
| } | ||||
| #log_out a:hover{ | ||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right bottom transparent !important; | ||||
| } | ||||
| .lang{ | ||||
|     color: #FFFFFF; | ||||
|     font-size: 15px; | ||||
|     line-height: 40px; | ||||
|     position: absolute; | ||||
|     right: 55px; | ||||
|     top: 0; | ||||
| } | ||||
| 
 | ||||
| .lang a{ | ||||
| 	color:#fff; | ||||
| 	text-decoration:none; | ||||
| } | ||||
| 
 | ||||
| .lang a:hover{ | ||||
| 	text-decoration:underline; | ||||
| } | ||||
| 
 | ||||
| #panel_container{ | ||||
|     height: 100%; | ||||
| } | ||||
| 
 | ||||
| #panel_container h1{ | ||||
|     color: #FFFFFF; | ||||
|     font: 32px/100% helvetica,arial,sans-serif; | ||||
|     margin: 0 0 20px; | ||||
|     padding: 0; | ||||
|     text-shadow: 0 0 5px #000000; | ||||
| } | ||||
| 
 | ||||
| #panel_header{ | ||||
|     background: none repeat scroll 0 0 #F1F1F1; | ||||
|     border-bottom: 1px solid #818181; | ||||
|     padding: 10px; | ||||
| } | ||||
| #panel_header :after { | ||||
| 	content: ".";  | ||||
| 	display: block; | ||||
| 	height: 0;  | ||||
| 	clear: both;  | ||||
| 	visibility: hidden; | ||||
| } | ||||
| #panel_header #nav{ | ||||
| 	margin:0; | ||||
| 	padding:0; | ||||
| 	width:100%; | ||||
| } | ||||
| 
 | ||||
| #panel_header #nav li{ | ||||
|     float: left; | ||||
|     list-style: none outside none; | ||||
| } | ||||
| 
 | ||||
| #panel_header #nav li a{ | ||||
|     background: none repeat scroll 0 0 #fff; | ||||
|     border-radius: 13px 13px 13px 13px; | ||||
|     border: 1px solid #D6D6D6; | ||||
|     color: #000000; | ||||
|     float: left; | ||||
| 	font-size:15px; | ||||
|     margin: 0 20px 0 0; | ||||
|     padding: 5px 10px; | ||||
|     text-decoration: none; | ||||
| } | ||||
| 
 | ||||
| #panel_header #nav li a:hover{ | ||||
|     background: none repeat scroll 0 0 #818181; | ||||
|     border-radius: 13px 13px 13px 13px; | ||||
|     color: #fff; | ||||
| } | ||||
| 
 | ||||
| #panel_content{ | ||||
|     height: 100%; | ||||
| } | ||||
| 
 | ||||
| .main{ | ||||
|     float: left; | ||||
|     height: 100%; | ||||
|     padding: 0 1%; | ||||
|     width: 81%; | ||||
| } | ||||
| .main2{ | ||||
|     padding: 62px 0 0; | ||||
| } | ||||
| .main table{ | ||||
|     border-collapse: collapse; | ||||
| 	width:100%; | ||||
| } | ||||
| .main table th{ | ||||
|     border-bottom: 1px solid #222222; | ||||
|     color: #FFFFFF; | ||||
|     font: 20px/100% helvetica,arial,sans-serif; | ||||
|     letter-spacing: 0.05em; | ||||
|     padding: 10px; | ||||
|     text-shadow: 0 0 3px #000000; | ||||
| } | ||||
| .main table td{ | ||||
|     background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5); | ||||
|     border-bottom: 1px solid #222222; | ||||
|     color: #FFFFFF; | ||||
|     padding: 10px; | ||||
|     text-align: center; | ||||
| } | ||||
| 
 | ||||
| .main table td a{ | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     color: #000000; | ||||
|     padding: 5px; | ||||
|     text-decoration: none; | ||||
| } | ||||
| 
 | ||||
| .main table td a:hover{ | ||||
|     background: none repeat scroll 0 0 #eee; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     color: #333; | ||||
| } | ||||
| .secondary{ | ||||
|     background: none repeat scroll 0 0 rgba(0, 0, 0, 0.75); | ||||
|     box-shadow: 3px 0 3px #000000; | ||||
|     float: left; | ||||
|     height: 100%; | ||||
|     padding: 0 1%; | ||||
|     width: 14%; | ||||
| } | ||||
| .secondary2{ | ||||
|     padding: 62px 0 0; | ||||
| } | ||||
| .secondary ul{ | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| .secondary ul li{ | ||||
| 	list-style:none; | ||||
| } | ||||
| .secondary ul li a{ | ||||
|     border-bottom: 1px solid #333; | ||||
|     color: #AAAAAA; | ||||
|     display: block; | ||||
|     padding: 14px 0; | ||||
|     text-align: left; | ||||
|     text-decoration: none; | ||||
| } | ||||
| .seclink1{ | ||||
|     background: url(<%= asset_path "icon1.png" %>) no-repeat scroll 20px 8px transparent; | ||||
|     border-bottom: 1px solid #333; | ||||
|     color: #AAAAAA; | ||||
|     display: block; | ||||
|     padding: 14px 0 14px 60px !important; | ||||
|     text-align: left; | ||||
|     text-decoration: none; | ||||
| } | ||||
| .seclink2{ | ||||
|     background: url(<%= asset_path "icon2.png" %>) no-repeat scroll 20px 14px transparent; | ||||
|     border-bottom: 1px solid #333; | ||||
|     color: #AAAAAA; | ||||
|     display: block; | ||||
|     padding: 14px 0 14px 60px !important; | ||||
|     text-align: left; | ||||
|     text-decoration: none; | ||||
| } | ||||
| .secondary ul li a:hover{ | ||||
|     color: #fff; | ||||
| } | ||||
| 
 | ||||
| #panel_footer{ | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
| 	display:none; | ||||
|     clear: both; | ||||
|     padding: 10px; | ||||
| } | ||||
| #panel_footer p{  | ||||
| 	margin:0; | ||||
| } | ||||
| label{ | ||||
|     color: #FFFFFF; | ||||
|     display: block; | ||||
|     text-shadow: 0 0 5px #000000; | ||||
|     width: 130px; | ||||
| } | ||||
| p{ | ||||
| 	margin:0 0 10px; | ||||
| } | ||||
| #panel_main p label{ | ||||
|     float: left; | ||||
|     padding: 3px; | ||||
|     width: 100px; | ||||
| } | ||||
| #panel_main .translation_missing{ | ||||
|     float: left; | ||||
|     padding: 3px; | ||||
|     width: 100px; | ||||
| 
 | ||||
| } | ||||
| .text{ | ||||
|     border: 1px solid #818181; | ||||
|     border-radius: 3px 3px 3px 3px; | ||||
|     font: 12px/100% helvetica,arial,sans-serif; | ||||
|     padding: 3px; | ||||
|     width: 205px; | ||||
| } | ||||
| 
 | ||||
| #site_info{ | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     box-shadow: 0 0 5px #000000; | ||||
| /*    height: 289px;*/ | ||||
|     margin: 0 0 20px; | ||||
|     overflow: hidden; | ||||
|     width: 600px; | ||||
| } | ||||
| #siteinfo_title{ | ||||
|     background: none repeat scroll 0 0 #333333; | ||||
|     color: #FFFFFF; | ||||
|     font: 24px/50px arial,sans-serif; | ||||
|     height: 50px; | ||||
|     margin: 0; | ||||
|     padding: 0 0 0 20px; | ||||
|     text-shadow: 0 1px 0 #000000; | ||||
| } | ||||
| #siteinfo_tb{ | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
| } | ||||
| #siteinfo_tb td{ | ||||
|     background: none repeat scroll 0 0 transparent; | ||||
|     border-bottom: 1px solid #333333; | ||||
|     color: #333333; | ||||
| } | ||||
| 
 | ||||
| .buy_btn{ | ||||
| 	float:left; | ||||
| 	margin: 0 10px 0 0; | ||||
| } | ||||
| .main table td .buy_btn a{ | ||||
|     background: url("/assets/buy_btn.png") no-repeat scroll 0 0 transparent; | ||||
|     color: #000000; | ||||
|     display: block; | ||||
|     font-size: 22px; | ||||
|     height: 37px; | ||||
|     line-height: 37px; | ||||
|     text-align: center; | ||||
|     text-decoration: none; | ||||
|     text-shadow: 0 1px 0 #FFFFFF; | ||||
|     width: 170px; | ||||
| 		padding: 0px; | ||||
| } | ||||
| .buy_btn a:hover{ | ||||
| 	background-position:0 bottom; | ||||
| } | ||||
| .bought_btn{ | ||||
|     background: url("/assets/bought_btn.png") no-repeat scroll 0 0 transparent; | ||||
|     color: #FFFFFF; | ||||
| 	float:left; | ||||
|     font-size: 22px; | ||||
|     height: 37px; | ||||
|     line-height: 37px; | ||||
| 	margin: 0 10px 0 0; | ||||
|     text-align: center; | ||||
|     text-shadow: 0 1px 0 #C06408; | ||||
|     width: 170px; | ||||
| html, body{ | ||||
|     height: 100%; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| html{ | ||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat scroll 0 0 transparent; | ||||
| 	background-size: cover; | ||||
| } | ||||
| 
 | ||||
| body{ | ||||
|     color: #000000; | ||||
|     font-family: Helvetica, '微軟正黑體'; | ||||
| } | ||||
| 
 | ||||
| #panel_banner_link{ | ||||
|     background: url(<%= asset_path "orbitbar1.png" %>) repeat-x scroll 0 0; | ||||
|     height: 50px; | ||||
|     left: 0; | ||||
|     position: fixed; | ||||
|     top: 0; | ||||
|     width: 100%; | ||||
| 	z-index: 5; | ||||
| } | ||||
| .hmenu{ | ||||
|     height: 40px; | ||||
|     position: absolute; | ||||
|     right: 0; | ||||
|     top: 1px; | ||||
|     width: 250px; | ||||
| } | ||||
| #orbit{ | ||||
|     background: url(<%= asset_path "bar_orbit.png" %>) no-repeat scroll 0 0 transparent; | ||||
| 	cursor:pointer; | ||||
|     height: 43px; | ||||
|     left: 10px; | ||||
|     position: relative; | ||||
|     width: 41px; | ||||
| } | ||||
| #orbit:hover{ | ||||
| 	background-position:0 -43px; | ||||
|     box-shadow: 0 3px 3px #000000; | ||||
| } | ||||
| #orbit:hover #orblist{ | ||||
| 	display:block; | ||||
| } | ||||
| #orblist{ | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
|     border-radius: 0 3px 3px 3px; | ||||
|     box-shadow: 0 3px 3px #000000; | ||||
|     display: none; | ||||
|     margin: 0; | ||||
|     padding: 10px; | ||||
|     position: absolute; | ||||
|     top: 43px; | ||||
|     width: 130px; | ||||
| } | ||||
| #orblist li{ | ||||
| 	border-bottom:1px solid #aaa; | ||||
| 	list-style:none; | ||||
| } | ||||
| .orblink{ | ||||
|     color: #333333; | ||||
|     display: block; | ||||
|     font: 12px/100% arial,sans-serif; | ||||
|     padding: 5px; | ||||
|     text-decoration: none; | ||||
| } | ||||
| .orblink:hover{ | ||||
| 	background:#eee; | ||||
| 	color:#333; | ||||
| } | ||||
| 
 | ||||
| #log_out a{ | ||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right 0 transparent; | ||||
|     border: medium none !important; | ||||
|     display: block !important; | ||||
|     height: 40px !important; | ||||
|     line-height: normal !important; | ||||
|     padding: 0 !important; | ||||
|     position: absolute; | ||||
|     right: 0px; | ||||
|     text-indent: -10000px; | ||||
|     top: 0px; | ||||
|     width: 43px !important; | ||||
| } | ||||
| #log_out a:hover{ | ||||
|     background: url(<%= asset_path "service_btn.png" %>) no-repeat scroll right bottom transparent !important; | ||||
| } | ||||
| .lang{ | ||||
|     color: #FFFFFF; | ||||
|     font-size: 15px; | ||||
|     line-height: 40px; | ||||
|     position: absolute; | ||||
|     right: 55px; | ||||
|     top: 0; | ||||
| } | ||||
| .lang a{ | ||||
| 	color:#fff; | ||||
| 	text-decoration:none; | ||||
| } | ||||
| .lang a:hover{ | ||||
| 	text-decoration:underline; | ||||
| } | ||||
| #content{ | ||||
|     height: 100%; | ||||
| } | ||||
| #panel_footer{ | ||||
| 	background-color: #101010; | ||||
| 	bottom: 0; | ||||
| 	color: #FFFFFF; | ||||
| 	font-size: 11px; | ||||
| 	padding: 10px; | ||||
| 	position: fixed; | ||||
| 	width: 100%; | ||||
| 	left: 0; | ||||
| 	box-shadow: 0 -3px 4px #000; | ||||
| } | ||||
| #sidebar { | ||||
| 	background: url(<%= asset_path "75.png" %>) repeat scroll left top transparent; | ||||
| 	box-shadow: 3px 0 4px #472A12; | ||||
| 	border-right: 1px solid #121212; | ||||
| 	height: 100%; | ||||
| 	left: 0; | ||||
| 	position: fixed; | ||||
| 	top: 0; | ||||
| 	width: 220px; | ||||
| } | ||||
| #search { | ||||
|     background: url(<%= asset_path "search_block_bg.jpg" %>) repeat-x scroll left top transparent; | ||||
|     height: 20px; | ||||
|     margin-top: 43px; | ||||
|     padding: 15px 12px; | ||||
| } | ||||
| #search input { | ||||
|     background: url(<%= asset_path "search_bg.png" %>) no-repeat scroll left top transparent; | ||||
|     border: medium none; | ||||
|     font-family: Helvetica; | ||||
|     height: 20px; | ||||
|     padding: 0 20px; | ||||
|     width: 154px; | ||||
| } | ||||
| h1 { | ||||
|     background: url(<%= asset_path "h1_bg.png" %>) repeat-x scroll left top transparent; | ||||
|     border-bottom: 1px solid #1B1B1B; | ||||
|     border-top: 1px solid #424344; | ||||
|     color: #FFFFFF; | ||||
|     font-size: 12px; | ||||
|     font-weight: normal; | ||||
|     height: 21px; | ||||
|     line-height: 21px; | ||||
|     margin: 0; | ||||
|     padding-left: 10px; | ||||
|     text-shadow: 0 -1px 0 #000000; | ||||
| } | ||||
| .member_setup .list { | ||||
| 	color:#fff; | ||||
| 	font-size:12px; | ||||
| 	background:url(<%= asset_path "line.png" %>) repeat-x left bottom; | ||||
| } | ||||
| .member_setup .list li { | ||||
| 	background:url(<%= asset_path "sidebar_li.jpg" %>) repeat-x left top; | ||||
| 	border-top:1px solid #424344; | ||||
| 	border-bottom:1px solid #000000; | ||||
| } | ||||
| .member_setup .list li:hover { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| .member_setup .list li a { | ||||
| 	display: block; | ||||
|     padding: 7px 0 6px 12px; | ||||
| 	color:#c4c4c4; | ||||
| } | ||||
| .member_setup .list li a span { | ||||
| 	background:url(<%= asset_path "add_mamber.png" %>) left top no-repeat; | ||||
| 	text-shadow: 0px 1px 0px #000; | ||||
| 	line-height: 18px; | ||||
| 	padding: 2px 0 1px 35px; | ||||
| } | ||||
| .member_setup .list li a:hover span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| #sidebar .users .list .set_1 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| #sidebar .users .list .set_1 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| #sidebar .roles .list .set_2 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| #sidebar .roles .list .set_2 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| #sidebar .infos .list .set_3 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| #sidebar .infos .list .set_3 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| .main { | ||||
| 	height: 100%; | ||||
| 	margin-left: 260px; | ||||
| 	padding-right: 40px; | ||||
| 	position: relative; | ||||
| } | ||||
| .main_list { | ||||
|     padding-top: 70px; | ||||
| } | ||||
| .main_list ul { | ||||
| 	clear:both; | ||||
| } | ||||
| #porfile { | ||||
| 	padding-top: 100px; | ||||
| } | ||||
| /*add_buttom*/ | ||||
| .button_bar { | ||||
| 	float: right; | ||||
| 	-moz-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	-webkit-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4f4f4f), color-stop(1, #000000) ); | ||||
| 	background:-moz-linear-gradient( center top, #4f4f4f 5%, #000000 100% ); | ||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f4f4f', endColorstr='#000000'); | ||||
| 	background-color:#4f4f4f; | ||||
| 	-moz-border-radius:5px; | ||||
| 	-webkit-border-radius:5px; | ||||
| 	border-radius:5px; | ||||
| 	display:inline-block; | ||||
| 	padding:0; | ||||
| 	margin:10px 0 60px; | ||||
| } | ||||
| .button_bar a { | ||||
| 	text-decoration:none; | ||||
| 	text-shadow:0px -1px 0px #000000; | ||||
| 	font-size:12px; | ||||
| 	color:#EDEDED; | ||||
| 	border-right:1px solid #555; | ||||
| 	-moz-box-shadow:1px 0px 0px black; | ||||
| 	-webkit-box-shadow:1px 0px 0px black; | ||||
| 	box-shadow:1px 0px 0px black; | ||||
| 	padding: 6px 10px 4px; | ||||
| 	display: inline-block; | ||||
| 	float: left; | ||||
| } | ||||
| .button_bar a:active { | ||||
| 	padding: 7px 10px 3px !important; | ||||
| 	text-shadow:0px 1px 0px #000000; | ||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #000000), color-stop(1, #4f4f4f) ); | ||||
| 	background:-moz-linear-gradient( center top, #000000 5%, #4f4f4f 100% ); | ||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#4f4f4f'); | ||||
| } | ||||
| .button_bar a:last-child { | ||||
| 	border-right:none; | ||||
| 	-moz-box-shadow:none; | ||||
| 	-webkit-box-shadow:none; | ||||
| 	box-shadow:none; | ||||
| 	-moz-border-radius:0px 5px 5px 0px; | ||||
| 	-webkit-border-radius:0px 5px 5px 0px; | ||||
| 	border-radius:0px 5px 5px 0px; | ||||
| } | ||||
| .button_bar a:first-child { | ||||
| 	-moz-border-radius:5px 0px 0px 5px; | ||||
| 	-webkit-border-radius:5px 0px 0px 5px; | ||||
| 	border-radius:5px 0px 0px 5px; | ||||
| } | ||||
| .button_bar a.new { | ||||
| 	padding: 5px 10px; | ||||
| 	-moz-border-radius:5px; | ||||
| 	-webkit-border-radius:5px; | ||||
| 	border-radius:5px; | ||||
| } | ||||
| .button_bar a:hover { | ||||
| 	color:#FFFFFF; | ||||
| } | ||||
| .up { | ||||
| 	margin:10px 0; | ||||
| } | ||||
| #person { | ||||
| 	left: 245px; | ||||
| 	position: fixed; | ||||
| 	text-align: center; | ||||
| 	top: 75px; | ||||
| 	width: 140px; | ||||
| 	background-color:#FFF; | ||||
| 	padding:15px; | ||||
| 	border-radius: 5px; | ||||
| 	-moz-border-radius: 5px; | ||||
| 	-webkit-border-radius: 5px; | ||||
| 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | ||||
| 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | ||||
| 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | ||||
| } | ||||
| #file { | ||||
| 	display:none; | ||||
| } | ||||
| #person img { | ||||
| } | ||||
| .user_mail { | ||||
|     border: medium none; | ||||
| 	border:1px solid #DDDDDD; | ||||
|     color: #666666; | ||||
|     font-size: 12px; | ||||
|     width: 140px; | ||||
| } | ||||
| #person label { | ||||
| 	display: block; | ||||
| 	margin: 15px 0 0; | ||||
| } | ||||
| #person label input { | ||||
| } | ||||
| #person label #user_admin { | ||||
| 	float:right; | ||||
| 	margin: 0; | ||||
| } | ||||
| #person label span { | ||||
| 	text-align:left; | ||||
| 	font-size:11px; | ||||
| 	color:#888; | ||||
| 	display:block; | ||||
| } | ||||
| #person select { | ||||
|     border: 1px solid #DDDDDD; | ||||
|     padding: 0; | ||||
|     width: 140px; | ||||
| } | ||||
| #porfile .users{ | ||||
| 	margin-left: 180px; | ||||
| } | ||||
| .roles_block { | ||||
|     background: url(<%= asset_path "75.png" %>) repeat left top; | ||||
| 	min-width:710px; | ||||
| 	margin-bottom:50px; | ||||
| 	position:relative; | ||||
| 	padding-bottom: 20px; | ||||
| 	border-radius: 5px; | ||||
| 	-moz-border-radius: 5px; | ||||
| 	-webkit-border-radius: 5px; | ||||
| 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | ||||
| 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | ||||
| 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | ||||
| } | ||||
| .roles_block h2 { | ||||
|     color: #FFFFFF; | ||||
|     font-weight: normal; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
|     position: absolute; | ||||
|     text-shadow: 0 3px 2px #000000; | ||||
|     top: -30px; | ||||
| } | ||||
| .main hr { | ||||
| 	height:8px; | ||||
| 	border:none; | ||||
| 	margin:0; | ||||
| 	border-radius: 5px 5px 0px 0px; | ||||
| 	-moz-border-radius: 5px 5px 0px 0px; | ||||
| 	-webkit-border-radius: 5px 5px 0px 0px; | ||||
| 	border-bottom:1px solid #000; | ||||
| } | ||||
| #basic_block hr { | ||||
|     background-color: #666666; | ||||
| } | ||||
| #teacher_block hr { | ||||
|     background-color: #0071A9; | ||||
| } | ||||
| #student_block hr { | ||||
|     background-color: #AF0045; | ||||
| } | ||||
| .info_input { | ||||
| 	padding:10px 20px; | ||||
| } | ||||
| .info_input table { | ||||
| 	color:#fff; | ||||
| 	width:100%; | ||||
| 	font-size:14px; | ||||
| } | ||||
| .info_input table td { | ||||
| 	padding:5px 10px 5px 0; | ||||
| 	width: 10%; | ||||
| } | ||||
| .info_input .list_head { | ||||
| 	background:url(<%= asset_path "line.png" %>) left bottom repeat-x; | ||||
| } | ||||
| .info_input .list_head td { | ||||
| } | ||||
| .info_input .list_item { | ||||
| 	color:#AEAEAE; | ||||
| } | ||||
| .info_input .add { | ||||
| 	display:block; | ||||
| 	padding-left:22px; | ||||
| 	font-size:12px; | ||||
| 	line-height:21px; | ||||
| 	height:19px; | ||||
| 	background:url(<%= asset_path "icon.png" %>) no-repeat -59px 0; | ||||
| 	margin-top: 10px; | ||||
| 	color: #DDDDDD; | ||||
| } | ||||
| 
 | ||||
| .main table { | ||||
| 	width:100%; | ||||
| } | ||||
| .main td { | ||||
| 	padding-left:20px; | ||||
| 	color:#fff; | ||||
| 	font-size:14px; | ||||
| 	line-height:40px; | ||||
| } | ||||
| .main thead td { | ||||
| 	line-height:40px; | ||||
| 	font-size:16px; | ||||
| 	text-shadow: 0px 1px 1px #3e2914; | ||||
| } | ||||
| .main thead td.action { | ||||
| 	width:15% | ||||
| } | ||||
| .main tbody td.roles { | ||||
|     background-image: url(<%= asset_path "roles_type.jpg" %>); | ||||
|     background-repeat: repeat-x; | ||||
| } | ||||
| .main tbody td.teacher { | ||||
|     background-position: 0 -54px; | ||||
| } | ||||
| .main tbody td.student { | ||||
| 	background-position: 0 -5px; | ||||
| } | ||||
| .main tbody td.action a { | ||||
|     background-image: url(<%= asset_path "icon.png" %>); | ||||
|     display: inline-block; | ||||
|     height: 19px; | ||||
|     margin-right: 10px; | ||||
|     top: 8px; | ||||
|     text-indent: -9999px; | ||||
|     width: 19px; | ||||
| 	position: relative; | ||||
| } | ||||
| .main tbody td.action a.show { | ||||
|     background-position: left top; | ||||
| } | ||||
| .main tbody td.action a.show:hover { | ||||
|     background-position: left -19px; | ||||
| } | ||||
| .main tbody td.action a.edit { | ||||
|     background-position: -19px top; | ||||
| } | ||||
| .main tbody td.action a.edit:hover { | ||||
|     background-position: -19px -19px; | ||||
| } | ||||
| .main tbody td.action a.delete { | ||||
|     background-position: -38px top; | ||||
| } | ||||
| .main tbody td.action a.delete:hover { | ||||
|     background-position: -38px -19px; | ||||
| } | ||||
| .main tbody td.action a.switch { | ||||
|     background: url(<%= asset_path "switch.png" %>) no-repeat left 3px; | ||||
|     width: 40px; | ||||
| } | ||||
| .main tbody tr.disable td.action a.switch { | ||||
|     background-position:left bottom; | ||||
| } | ||||
| .main tbody td.action a.delete:hover { | ||||
|     background-position: -38px -19px; | ||||
| } | ||||
| .main tbody tr.have { | ||||
| 	background: url(<%= asset_path "75.png" %>) repeat left top; | ||||
| 	-moz-box-shadow: 0px 0px 6px #291508; /* Firefox */ | ||||
| 	-webkit-box-shadow: 0px 0px 6px #291508;/* Safari 和 Chrome */ | ||||
| 	box-shadow: 0px 0px 6px #291508; /* Opera 10.5 + */ | ||||
| } | ||||
| .main tbody tr.disable { | ||||
|     opacity: 0.7; | ||||
| } | ||||
| .main tbody tr { | ||||
| 	background:none; | ||||
| 	height:15px; | ||||
| } | ||||
|  | @ -0,0 +1,44 @@ | |||
| html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { | ||||
|      margin: 0; | ||||
|      padding: 0; | ||||
|      border: 0; | ||||
|      font-size: 100%; | ||||
|      font: inherit; | ||||
|      vertical-align: baseline; | ||||
| } | ||||
| /* HTML5 display-role reset for older browsers */ | ||||
| article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { | ||||
|      display: block; | ||||
| } | ||||
| a { | ||||
| 	text-decoration:none; | ||||
| } | ||||
| body { | ||||
|      line-height: 1; | ||||
| } | ||||
| ol, ul { | ||||
|      list-style: none; | ||||
| } | ||||
| blockquote, q { | ||||
|      quotes: none; | ||||
| } | ||||
| blockquote:before, blockquote:after, q:before, q:after { | ||||
|      content: ''; | ||||
|      content: none; | ||||
| } | ||||
| table { | ||||
|      border-collapse: collapse; | ||||
|      border-spacing: 0; | ||||
| } | ||||
| /*自定*/ | ||||
| input:focus, select:focus, textarea:focus { | ||||
|     outline:none; | ||||
|     -moz-outline-radius: 0; | ||||
| } | ||||
| .clear:after { | ||||
|      content:"."; | ||||
|      clear:both; | ||||
|      display:block; | ||||
|      height:0; | ||||
|      visibility:hidden; | ||||
| } | ||||
|  | @ -0,0 +1,44 @@ | |||
| html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { | ||||
|      margin: 0; | ||||
|      padding: 0; | ||||
|      border: 0; | ||||
|      font-size: 100%; | ||||
|      font: inherit; | ||||
|      vertical-align: baseline; | ||||
| } | ||||
| /* HTML5 display-role reset for older browsers */ | ||||
| article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { | ||||
|      display: block; | ||||
| } | ||||
| a { | ||||
| 	text-decoration:none; | ||||
| } | ||||
| body { | ||||
|      line-height: 1; | ||||
| } | ||||
| ol, ul { | ||||
|      list-style: none; | ||||
| } | ||||
| blockquote, q { | ||||
|      quotes: none; | ||||
| } | ||||
| blockquote:before, blockquote:after, q:before, q:after { | ||||
|      content: ''; | ||||
|      content: none; | ||||
| } | ||||
| table { | ||||
|      border-collapse: collapse; | ||||
|      border-spacing: 0; | ||||
| } | ||||
| /*自定*/ | ||||
| input:focus, select:focus, textarea:focus { | ||||
|     outline:none; | ||||
|     -moz-outline-radius: 0; | ||||
| } | ||||
| .clear:after { | ||||
|      content:"."; | ||||
|      clear:both; | ||||
|      display:block; | ||||
|      height:0; | ||||
|      visibility:hidden; | ||||
| } | ||||
|  | @ -1,58 +1,59 @@ | |||
| class Admin::UserInfoModelsController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
| 
 | ||||
|   def index | ||||
|     @user_attribute_models = UserInfoModel.all.entries | ||||
|     render :template => 'admin/user_attribute_models/index' | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|     #@user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|   end | ||||
|    | ||||
|   def new | ||||
|     @user_attribute_model = UserInfoModel.new | ||||
|     render :template => 'admin/user_attribute_models/new' | ||||
|   end | ||||
|    | ||||
|   def edit | ||||
|     @user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|     @i18n_variable = @user_attribute_model.i18n_variable | ||||
|     render :template => 'admin/user_attribute_models/edit' | ||||
|   end | ||||
|    | ||||
|   def create | ||||
|     @user_attribute_model = UserInfoModel.new(params[:user_info_model]) | ||||
|     @user_attribute_model.save | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   def update | ||||
|     @user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|     @user_attribute_model.update_attributes(params[:user_info_model]) | ||||
|     respond_to do |format| | ||||
|       format.html { redirect_to :action => :index } | ||||
|       format.js  { render 'admin/user_attribute_models/toggle_enable' } | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def destroy | ||||
|     @user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|     @user_attribute_model.destroy | ||||
|      | ||||
|     @user_attribute_model.destroy_i18n_variables | ||||
|      | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   def set_attribute | ||||
|     @attribute = 'info' | ||||
|   end | ||||
|    | ||||
| end | ||||
| class Admin::UserInfoModelsController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
| 
 | ||||
|   def index | ||||
|     @user_attribute_models = UserInfoModel.all.entries | ||||
|     render :template => 'admin/user_attribute_models/index' | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|     #@user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|   end | ||||
|    | ||||
|   def new | ||||
|     @user_attribute_model = UserInfoModel.new | ||||
|     render :template => 'admin/user_attribute_models/new' | ||||
|   end | ||||
|    | ||||
|   def edit | ||||
|     @user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|     @i18n_variable = @user_attribute_model.i18n_variable | ||||
|     render :template => 'admin/user_attribute_models/edit' | ||||
|   end | ||||
|    | ||||
|   def create | ||||
|     @user_attribute_model = UserInfoModel.new(params[:user_info_model]) | ||||
|     @user_attribute_model.save | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   def update | ||||
|     @user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|     @user_attribute_model.update_attributes(params[:user_info_model]) | ||||
|     respond_to do |format| | ||||
|       format.html { redirect_to :action => :index } | ||||
|       format.js  { render 'admin/user_attribute_models/toggle_enable' } | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def destroy | ||||
|     @user_attribute_model = UserInfoModel.find(params[:id]) | ||||
|     @user_attribute_model.destroy | ||||
|      | ||||
|     @user_attribute_model.destroy_i18n_variables | ||||
|      | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   def set_attribute | ||||
|     @attribute = 'info' | ||||
| 	@class = 'infos' | ||||
|   end | ||||
|    | ||||
| end | ||||
|  |  | |||
|  | @ -1,59 +1,60 @@ | |||
| class Admin::UserRoleModelsController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
| 
 | ||||
|   def index | ||||
|     @user_attribute_models = UserRoleModel.all.entries | ||||
|     render :template => 'admin/user_attribute_models/index' | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|     #@user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|   end | ||||
|    | ||||
|   def new | ||||
|     @user_attribute_model = UserRoleModel.new | ||||
|     render :template => 'admin/user_attribute_models/new' | ||||
|   end | ||||
|    | ||||
|   def edit | ||||
|     @user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|     @i18n_variable = @user_attribute_model.i18n_variable | ||||
|     render :template => 'admin/user_attribute_models/edit' | ||||
|   end | ||||
|    | ||||
|   def create | ||||
|     @user_attribute_model = UserRoleModel.new(params[:user_role_model]) | ||||
|     @user_attribute_model.save | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   def update | ||||
|     @user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|     @user_attribute_model.update_attributes(params[:user_role_model]) | ||||
|      | ||||
|     respond_to do |format| | ||||
|       format.html { redirect_to :action => :index } | ||||
|       format.js  { render 'admin/user_attribute_models/toggle_enable' } | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def destroy | ||||
|     @user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|     @user_attribute_model.destroy | ||||
|      | ||||
|     @user_attribute_model.destroy_i18n_variables | ||||
|      | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   def set_attribute | ||||
|     @attribute = 'role' | ||||
|   end | ||||
|    | ||||
| end | ||||
| class Admin::UserRoleModelsController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
| 
 | ||||
|   def index | ||||
|     @user_attribute_models = UserRoleModel.all.entries | ||||
|     render :template => 'admin/user_attribute_models/index' | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|     #@user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|   end | ||||
|    | ||||
|   def new | ||||
|     @user_attribute_model = UserRoleModel.new | ||||
|     render :template => 'admin/user_attribute_models/new' | ||||
|   end | ||||
|    | ||||
|   def edit | ||||
|     @user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|     @i18n_variable = @user_attribute_model.i18n_variable | ||||
|     render :template => 'admin/user_attribute_models/edit' | ||||
|   end | ||||
|    | ||||
|   def create | ||||
|     @user_attribute_model = UserRoleModel.new(params[:user_role_model]) | ||||
|     @user_attribute_model.save | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   def update | ||||
|     @user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|     @user_attribute_model.update_attributes(params[:user_role_model]) | ||||
|      | ||||
|     respond_to do |format| | ||||
|       format.html { redirect_to :action => :index } | ||||
|       format.js  { render 'admin/user_attribute_models/toggle_enable' } | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def destroy | ||||
|     @user_attribute_model = UserRoleModel.find(params[:id]) | ||||
|     @user_attribute_model.destroy | ||||
|      | ||||
|     @user_attribute_model.destroy_i18n_variables | ||||
|      | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   def set_attribute | ||||
|     @attribute = 'role' | ||||
| 	@class = 'roles' | ||||
|   end | ||||
|    | ||||
| end | ||||
|  |  | |||
|  | @ -1,84 +1,89 @@ | |||
| class Admin::UsersController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   before_filter :authenticate_user! | ||||
|    | ||||
|   def index | ||||
|     @users = User.all.entries | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|     @user = User.find(params[:id]) | ||||
|     get_info_role_models | ||||
|   end | ||||
|    | ||||
|   def new | ||||
|     @user = User.new | ||||
|     get_info_role_models | ||||
|   end | ||||
|    | ||||
|   def create | ||||
|     @user = User.new(params[:user]) | ||||
|     if @user.save | ||||
|       @user.user_infos.each do |user_info| | ||||
|         user_info.save | ||||
|         user_info.attribute_values.each(&:save) | ||||
|       end | ||||
|       @user.user_roles.each do |user_role| | ||||
|         user_role.save | ||||
|         user_role.attribute_values.each(&:save) | ||||
|       end | ||||
|       flash[:notice] = t('admin.create_success_user') | ||||
|       redirect_to :action => :index | ||||
|     else | ||||
|       render :action => :new       | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def edit | ||||
|     @user = User.find(params[:id]) | ||||
|     get_info_role_models | ||||
|   end | ||||
|    | ||||
|   def update | ||||
|     @user = User.find(params[:id]) | ||||
|      | ||||
|     # Update changes to the avatar | ||||
|     @user.remove_avatar! if params[:file] | ||||
|     @user.avatar = params[:file] if params[:file] | ||||
|      | ||||
|     if @user.id.to_s.eql?(session['warden.user.user.key'][1].to_s) && @user.admin != params[:user][:admin].to_i.to_b | ||||
|       flash.now[:error] = t('admin.cant_revoke_self_admin') | ||||
|     end | ||||
|     if !flash[:error] && @user.update_attributes(params[:user]) | ||||
|       flash[:notice] = t('admin.update_success_user') | ||||
|       redirect_to :action => :index | ||||
|     else | ||||
|       get_info_role_models | ||||
|       render :action => :edit | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def destroy | ||||
|     if params[:id].eql?(session['warden.user.user.key'][1].to_s) | ||||
|       flash[:error] = t('admin.cant_delete_self') | ||||
|     else | ||||
|       @user = User.find(params[:id])  | ||||
|       @user.destroy | ||||
|       @user.user_attributes.each do |ua| | ||||
|         ua.attribute_values.each(&:destroy) | ||||
|         ua.destroy | ||||
|       end | ||||
|     end | ||||
|      | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   def get_info_role_models | ||||
|     @user_info_models = UserInfoModel.excludes('disabled' => true) | ||||
|     @user_role_models = UserRoleModel.excludes('disabled' => true) | ||||
|   end | ||||
|    | ||||
| end | ||||
| class Admin::UsersController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
|    | ||||
|   def index | ||||
|     @users = User.all.entries | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|     @user = User.find(params[:id]) | ||||
|     get_info_role_models | ||||
|   end | ||||
|    | ||||
|   def new | ||||
|     @user = User.new | ||||
|     get_info_role_models | ||||
|   end | ||||
|    | ||||
|   def create | ||||
|     @user = User.new(params[:user]) | ||||
|     if @user.save | ||||
|       @user.user_infos.each do |user_info| | ||||
|         user_info.save | ||||
|         user_info.attribute_values.each(&:save) | ||||
|       end | ||||
|       @user.user_roles.each do |user_role| | ||||
|         user_role.save | ||||
|         user_role.attribute_values.each(&:save) | ||||
|       end | ||||
|       flash[:notice] = t('admin.create_success_user') | ||||
|       redirect_to :action => :index | ||||
|     else | ||||
|       render :action => :new       | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def edit | ||||
|     @user = User.find(params[:id]) | ||||
|     get_info_role_models | ||||
|   end | ||||
|    | ||||
|   def update | ||||
|     @user = User.find(params[:id]) | ||||
|      | ||||
|     # Update changes to the avatar | ||||
|     @user.remove_avatar! if params[:file] | ||||
|     @user.avatar = params[:file] if params[:file] | ||||
|      | ||||
|     if @user.id.to_s.eql?(session['warden.user.user.key'][1].to_s) && @user.admin != params[:user][:admin].to_i.to_b | ||||
|       flash.now[:error] = t('admin.cant_revoke_self_admin') | ||||
|     end | ||||
|     if !flash[:error] && @user.update_attributes(params[:user]) | ||||
|       flash[:notice] = t('admin.update_success_user') | ||||
|       redirect_to :action => :index | ||||
|     else | ||||
|       get_info_role_models | ||||
|       render :action => :edit | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def destroy | ||||
|     if params[:id].eql?(session['warden.user.user.key'][1].to_s) | ||||
|       flash[:error] = t('admin.cant_delete_self') | ||||
|     else | ||||
|       @user = User.find(params[:id])  | ||||
|       @user.destroy | ||||
|       @user.user_attributes.each do |ua| | ||||
|         ua.attribute_values.each(&:destroy) | ||||
|         ua.destroy | ||||
|       end | ||||
|     end | ||||
|      | ||||
|     redirect_to :action => :index | ||||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   def get_info_role_models | ||||
|     @user_info_models = UserInfoModel.excludes('disabled' => true) | ||||
|     @user_role_models = UserRoleModel.excludes('disabled' => true) | ||||
|   end | ||||
|    | ||||
|   def set_attribute | ||||
|     @class = 'users' | ||||
|   end | ||||
|    | ||||
| end | ||||
|  |  | |||
|  | @ -1,57 +1,57 @@ | |||
| <div id="UserRole_block" class="roles_block"> | ||||
| 	<h2><%= t("admin.user_#{@attribute}") %></h2> | ||||
| 	<div class="info_input"> | ||||
| 		<table border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t('admin.key') %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 			      <td style="color:<%= colorize_in_use_locale(locale) %>"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			    <% end %> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tbody> | ||||
| 			<tr class="list_item"> | ||||
| 			    <td><%= is_new ? (f.text_field :key, {:style => "width:150px"}) : @user_attribute_model.key %></td> | ||||
| 			    <% @site_valid_locales.each do |locale| %> | ||||
| 			      <td> | ||||
| 			        <%= text_field_tag "user_#{@attribute}_model[i18n_variable][#{locale}]", (@i18n_variable[locale] if @i18n_variable), :style => "width:150px" %> | ||||
| 			      </td> | ||||
| 			    <% end %> | ||||
| 			  </tr> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| <div id="attributes_block" class="roles_block"> | ||||
| 	<h2>Attributes</h2> | ||||
| 	<div class="info_input"> | ||||
| 		<table id='attributes' border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t('admin.key') %></td> | ||||
| 					<td><%= t('admin.multilingual') %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 			      <td style="color:<%= colorize_in_use_locale(locale) %>"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			    <% end %> | ||||
| 					<td><%= t('admin.type')%></td> | ||||
| 					<td> </td> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tfoot> | ||||
| 				<tr> | ||||
| 					<td colspan="5"><a href="#" class="add"><%= t(:add) %></a></td> | ||||
| 				</tr> | ||||
| 			</tfoot> | ||||
| 			<tbody> | ||||
| 				<%= render :partial => 'admin/user_attribute_models/attribute_model', :collection => @user_attribute_model.attribute_models %> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "user_attribute_model_form" %> | ||||
| <% end -%> | ||||
| <div id="UserRole_block" class="roles_block <%= @class %>"> | ||||
| 	<h2><%= t("admin.user_#{@attribute}") %></h2> | ||||
| 	<div class="info_input"> | ||||
| 		<table border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t('admin.key') %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 			      	<td><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			    	<% end %> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tbody> | ||||
| 			<tr class="list_item"> | ||||
| 			    <td><%= is_new ? (f.text_field :key, {:style => "width:150px"}) : @user_attribute_model.key %></td> | ||||
| 			    <% @site_valid_locales.each do |locale| %> | ||||
| 			      <td> | ||||
| 			        <%= text_field_tag "user_#{@attribute}_model[i18n_variable][#{locale}]", (@i18n_variable[locale] if @i18n_variable), :style => "width:150px" %> | ||||
| 			      </td> | ||||
| 			    <% end %> | ||||
| 			  </tr> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| <div id="attributes_block" class="roles_block <%= @class %>"> | ||||
| 	<h2>Attributes</h2> | ||||
| 	<div class="info_input"> | ||||
| 		<table id='attributes' border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t('admin.key') %></td> | ||||
| 					<td><%= t('admin.multilingual') %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 			      	<td><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			    	<% end %> | ||||
| 					<td><%= t('admin.type')%></td> | ||||
| 					<td> </td> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tfoot> | ||||
| 				<tr> | ||||
| 					<td colspan="5"><a href="#" class="add"><%= t(:add) %></a></td> | ||||
| 				</tr> | ||||
| 			</tfoot> | ||||
| 			<tbody> | ||||
| 				<%= render :partial => 'admin/user_attribute_models/attribute_model', :collection => @user_attribute_model.attribute_models %> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "user_attribute_model_form" %> | ||||
| <% end -%> | ||||
|  |  | |||
|  | @ -0,0 +1,31 @@ | |||
| <!DOCTYPE HTML> | ||||
| <html> | ||||
| <head> | ||||
| 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | ||||
| 	<%= stylesheet_link_tag "admin" %> | ||||
| 	<%= javascript_include_tag "admin" %> | ||||
| 	<%= yield :page_specific_css %> | ||||
| 	<%= yield :page_specific_javascript %> | ||||
| 	<%= csrf_meta_tag %> | ||||
| </head> | ||||
| <body> | ||||
| 	<div id="panel_banner_link" > | ||||
| 		<div id="orbit"><%= render 'layouts/drop_down_menu' %></div>	 | ||||
| 		<div class="hmenu"> | ||||
| 			<div class="lang"><%= render 'layouts/lang_menu' %></div> | ||||
| 			<%= render 'devise/menu/login_items' %> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<div id="content"> | ||||
| 		<div id="sidebar"><%= yield :secondary %></div> | ||||
| 		<div class="main"> | ||||
| 			<%= yield %> | ||||
| 		</div> | ||||
| 		<div class="tertiary"><%= yield :tertiary %></div> | ||||
| 		<div id="panel_footer"><p><%= APP_CONFIG['ruling_digital'] %></p></div> | ||||
| 	</div> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -1,12 +1,14 @@ | |||
| <div id="porfile"> | ||||
| 	<%= form_for @user_attribute_model, :url => eval("admin_user_#{@attribute}_model_path(@user_role_model)") do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => "admin/user_attribute_models/form", :locals => { :f => f, :is_new => false } %> | ||||
|     <div id="update" class='buttom clear'> | ||||
| 			<%= link_to t('update'), "#", :onclick=>"$('#edit_user_role_model_#{@user_attribute_model.id}').submit()" %> | ||||
|     </div> | ||||
|     <div id="back" class='buttom clear'> | ||||
|     	<%= link_back %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| 	<%= form_for @user, :url => admin_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|     <div class="button_bar"> | ||||
|     	<%= link_back %> | ||||
| 		<%= link_to t('update'), "#", :onclick=>"$('#edit_user_#{@user.id}').submit()" %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
|  | @ -1,30 +1,41 @@ | |||
| <div class="main_list"> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path") %> | ||||
| 	</div> | ||||
| 	<ul> | ||||
| 		<li class="list_head clear"> | ||||
| 			<span class="<%= @attribute %>s"><%= t("admin.#{@attribute}") %></span> | ||||
| 			<span class="action"><%= t('admin.action') %></span> | ||||
| 		</li> | ||||
| 		<% @user_attribute_models.each do |user_attribute_model| %> | ||||
| 		<li id="attribute_<%= user_attribute_model.id %>" class="list_item <%= "#{user_attribute_model.is_disabled? ? 'disable' : ''}" %> clear"> | ||||
| 			<span class="<%= @attribute %>s <%= user_attribute_model.i18n_variable[:key].downcase %>"><%= user_attribute_model.i18n_variable[I18n.locale] %></span> | ||||
| 			<span class="action"> | ||||
| 				 | ||||
| 				<%= link_to t(:edit), eval("edit_admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'edit' %> | ||||
| 				<% if user_attribute_model.is_built_in? %> | ||||
| 					<%= link_to t(:enable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => true})"), :remote => true, :method => :put, :id => "disable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? 'none' : ''}", :class => 'switch' %> | ||||
| 					<%= link_to t(:disable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => false})"), :remote => true, :method => :put, :id => "enable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? '' : 'none'}", :class => 'switch' %> | ||||
| 				<% else %> | ||||
| 	      	<%= link_to t(:delete), eval("admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'delete', :confirm => t('sure?'), :method => :delete %> | ||||
| 				<% end %> | ||||
| 				 | ||||
| 			</span> | ||||
| 		</li> | ||||
| 		<% end %>			 | ||||
| 	</ul> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path") %> | ||||
| 	</div> | ||||
| </div> | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'admin/users/side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div class="main_list"> | ||||
| 	<div class="button_bar up"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path"), :class => 'new' %> | ||||
| 	</div> | ||||
| 	<table> | ||||
| 		<thead> | ||||
| 		<tr> | ||||
| 			<td class="<%= @attribute %>s"><%= t("admin.#{@attribute}") %></td> | ||||
| 			<td class="action"><%= t('admin.action') %></td> | ||||
| 		</tr> | ||||
| 		</thead> | ||||
| 		<tbody> | ||||
| 		<% @user_attribute_models.each do |user_attribute_model| %> | ||||
| 		<tr id="attribute_<%= user_attribute_model.id %>" class="have <%= "#{user_attribute_model.is_disabled? ? 'disable' : ''}" %>"> | ||||
| 			<td class="<%= @attribute %>s <%= user_attribute_model.i18n_variable[:key].downcase %>"><%= user_attribute_model.i18n_variable[I18n.locale] %></td> | ||||
| 			<td class="action"> | ||||
| 				<%= link_to t(:edit), eval("edit_admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'edit' %> | ||||
| 				<% if user_attribute_model.is_built_in? %> | ||||
| 					<%= link_to t(:enable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => true})"), :remote => true, :method => :put, :id => "disable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? 'none' : ''}", :class => 'switch' %> | ||||
| 					<%= link_to t(:disable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => false})"), :remote => true, :method => :put, :id => "enable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? '' : 'none'}", :class => 'switch' %> | ||||
| 					<% else %> | ||||
| 					<%= link_to t(:enable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => true})"), :remote => true, :method => :put, :id => "disable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? 'none' : ''}", :class => 'switch' %> | ||||
| 					<%= link_to t(:disable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => false})"), :remote => true, :method => :put, :id => "enable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? '' : 'none'}", :class => 'switch' %> | ||||
| 					<%= link_to t(:delete), eval("admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'delete', :confirm => t('sure?'), :method => :delete %> | ||||
| 					<% end %> | ||||
| 			</td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 		<td colspan="5"></td> | ||||
| 		</tr> | ||||
| 		<% end %> | ||||
| 		</tbody>		 | ||||
| 	</table> | ||||
| 	<div class="button_bar"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path"), :class => 'new' %> | ||||
| 	</div> | ||||
| </div> | ||||
|  |  | |||
|  | @ -1,16 +1,18 @@ | |||
| <div id="porfile"> | ||||
| 	<%= form_for @user_attribute_model, :url => eval("admin_user_#{@attribute}_models_path") do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => "admin/user_attribute_models/form", :locals => { :f => f, :is_new => true } %> | ||||
|     <div id="create" class='buttom clear'> | ||||
| 			<%= link_to t('create'), "#", :onclick=>"$('#new_user_attribute_model').submit()" %> | ||||
|     </div> | ||||
|     <div id="back" class='buttom clear'> | ||||
|     	<%= link_back %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'admin/users/side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| 	<%= form_for @user_attribute_model, :url => eval("admin_user_#{@attribute}_models_path") do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => "admin/user_attribute_models/form", :locals => { :f => f, :is_new => true } %> | ||||
|     <div class="button_bar"> | ||||
|     	<%= link_back %> | ||||
| 		<%= link_to t('create'), "#", :onclick=>"$('#new_user_attribute_model').submit()" %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    | ||||
|  |  | |||
|  | @ -1,23 +1,34 @@ | |||
| <h1>Listing user attributes</h1> | ||||
| 
 | ||||
| <table> | ||||
|   <tr> | ||||
|       <th>名稱</th> | ||||
|       <th>Key</th> | ||||
|       <th></th> | ||||
|       <th></th> | ||||
|   </tr> | ||||
| 
 | ||||
| <% @user_attributes.each do |user_attribute| %> | ||||
|   <tr> | ||||
|     <td><%= user_attribute.name %></td> | ||||
|     <td><%= user_attribute.key %></td> | ||||
|     <td><%= link_to t(:edit), edit_admin_user_attribute_path(user_attribute) %></td> | ||||
|     <td><%= link_to t(:delete), admin_user_attribute_path(user_attribute), :confirm => 'Are you sure?', :method => :delete %></td> | ||||
|   </tr> | ||||
| <% end %> | ||||
| </table> | ||||
| 
 | ||||
| <br /> | ||||
| 
 | ||||
| <%= link_to t(:new_user_attribute, :scope => :admin), new_admin_user_attribute_path, :class => 'button positive' %> | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'admin/users/side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div class="main_list"> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path") %> | ||||
| 	</div> | ||||
| 	<ul> | ||||
| 		<li class="list_head clear"> | ||||
| 			<span class="<%= @attribute %>s"><%= t("admin.#{@attribute}") %></span> | ||||
| 			<span class="action"><%= t('admin.action') %></span> | ||||
| 		</li> | ||||
| 		<% @user_attribute_models.each do |user_attribute_model| %> | ||||
| 		<li id="attribute_<%= user_attribute_model.id %>" class="list_item <%= "#{user_attribute_model.is_disabled? ? 'disable' : ''}" %> clear"> | ||||
| 			<span class="<%= @attribute %>s <%= user_attribute_model.i18n_variable[:key].downcase %>"><%= user_attribute_model.i18n_variable[I18n.locale] %></span> | ||||
| 			<span class="action"> | ||||
| 				 | ||||
| 				<%= link_to t(:edit), eval("edit_admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'edit' %> | ||||
| 				<% if user_attribute_model.is_built_in? %> | ||||
| 					<%= link_to t(:enable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => true})"), :remote => true, :method => :put, :id => "disable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? 'none' : ''}", :class => 'switch' %> | ||||
| 					<%= link_to t(:disable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => false})"), :remote => true, :method => :put, :id => "enable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? '' : 'none'}", :class => 'switch' %> | ||||
| 				<% else %> | ||||
| 	      	<%= link_to t(:delete), eval("admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'delete', :confirm => t('sure?'), :method => :delete %> | ||||
| 				<% end %> | ||||
| 				 | ||||
| 			</span> | ||||
| 		</li> | ||||
| 		<% end %>			 | ||||
| 	</ul> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path") %> | ||||
| 	</div> | ||||
| </div> | ||||
|  |  | |||
|  | @ -1,4 +1,3 @@ | |||
| 
 | ||||
| <h1>New user attribute: <%= @user_attribute.key %></h1> | ||||
| 
 | ||||
| <% form_for @user_attribute, :url => admin_user_attributes_path do |f| %> | ||||
|  |  | |||
|  | @ -1,40 +1,47 @@ | |||
| <div id="person"> | ||||
| 	<% if @user.avatar? %> | ||||
| 		<%= image_tag(@user.avatar.thumb.url) %> | ||||
| 	<% else %> | ||||
| 		<%= image_tag "person.png" %> | ||||
| 	<% end %> | ||||
|  	<%= file_field_tag 'file' %> | ||||
|  	<%= hidden_field_tag :avatar_cache %> | ||||
| 	<%= f.text_field :email, :onfocus => "this.value='';", :onblur => "if(this.value==''){this.value=#{t('admin.email')};}", :value => (@user.email.blank? ? t('admin.email') : @user.email), :class => 'user_mail' %> | ||||
| 	<label> | ||||
|     <%= f.check_box :admin %><span><%= t('admin.admin') %></span> | ||||
| 	</label> | ||||
| 	<%= f.select :active_role, @user_role_models.sort_by{|role| role.key }.collect {|role| [ role.i18n_variable[I18n.locale], role.key ]}, :selected => (@user.active_role || 'student') %> | ||||
| </div> | ||||
| 
 | ||||
| <% @user_info_models.each do |ua| %> | ||||
| 	<div id="basic_block" class="roles_block"> | ||||
| 		<h2><%= ua.i18n_variable[I18n.locale] %></h2> | ||||
| 		<hr> | ||||
| 		<%= render :partial => 'user_attribute', | ||||
| 		  :object => (@user.user_infos.detect {|u| u.key == ua.key } || @user.user_infos.build), | ||||
| 		  :locals => {:ua => ua, :type => 'info'} %> | ||||
| 	</div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <div id='role_models'> | ||||
| 	<% @user_role_models.each do |ua| %> | ||||
| 		<div id="<%= ua.key %>_block" class="roles_block" <%= raw(' style="display: none;"') unless ((@user.active_role.eql?(ua.key) rescue nil) || (ua.key.eql?('student') && @user.new_record?)) %>> | ||||
| 			<h2><%= ua.i18n_variable[I18n.locale] %></h2> | ||||
| 			<hr> | ||||
| 			<%= render :partial => 'user_attribute', | ||||
| 	      :object => (@user.user_roles.detect {|u| u.key == ua.key } || @user.user_roles.build), | ||||
| 	      :locals => {:ua => ua, :type => 'role'} %> | ||||
| 		</div>	 | ||||
| 	<% end -%> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "user_form" %> | ||||
| <% end -%> | ||||
| <div id="person" class="clear"> | ||||
| 	<% if @user.avatar? %> | ||||
| 		<%= image_tag(@user.avatar.thumb.url) %> | ||||
| 	<% else %> | ||||
| 		<%= image_tag "person.png" %> | ||||
| 	<% end %> | ||||
|  	<%= file_field_tag 'file' %> | ||||
|  	<%= hidden_field_tag :avatar_cache %> | ||||
| 	<label> | ||||
| 	<span><%= t('admin.email') %>:</span> | ||||
| 	<%= f.text_field :email, :onfocus => "this.value='';", :onblur => "if(this.value==''){this.value=#{t('admin.email')};}", :value => (@user.email.blank? ? t('admin.email') : @user.email), :class => 'user_mail' %> | ||||
| 	</label> | ||||
| 	<label> | ||||
|     <%= f.check_box :admin %> | ||||
| 	<span><%= t('admin.admin') %>:</span> | ||||
| 	</label> | ||||
| 	<label> | ||||
| 	<span><%= t('admin.role') %>:</span> | ||||
| 	<%= f.select :active_role, @user_role_models.sort_by{|role| role.key }.collect {|role| [ role.i18n_variable[I18n.locale], role.key ]}, :selected => (@user.active_role || 'student') %> | ||||
| 	</label> | ||||
| </div> | ||||
| 
 | ||||
| <% @user_info_models.each do |ua| %> | ||||
| 	<div id="basic_block" class="roles_block <%= @class %>"> | ||||
| 		<h2><%= ua.i18n_variable[I18n.locale] %></h2> | ||||
| 		<hr> | ||||
| 		<%= render :partial => 'user_attribute', | ||||
| 		  :object => (@user.user_infos.detect {|u| u.key == ua.key } || @user.user_infos.build), | ||||
| 		  :locals => {:ua => ua, :type => 'info'} %> | ||||
| 	</div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <div id='role_models'> | ||||
| 	<% @user_role_models.each do |ua| %> | ||||
| 		<div id="<%= ua.key %>_block" class="roles_block <%= @class %>" <%= raw(' style="display: none;"') unless ((@user.active_role.eql?(ua.key) rescue nil) || (ua.key.eql?('student') && @user.new_record?)) %>> | ||||
| 			<h2><%= ua.i18n_variable[I18n.locale] %></h2> | ||||
| 			<hr> | ||||
| 			<%= render :partial => 'user_attribute', | ||||
| 	      :object => (@user.user_roles.detect {|u| u.key == ua.key } || @user.user_roles.build), | ||||
| 	      :locals => {:ua => ua, :type => 'role'} %> | ||||
| 		</div>	 | ||||
| 	<% end -%> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "user_form" %> | ||||
| <% end -%> | ||||
|  |  | |||
|  | @ -1,27 +1,27 @@ | |||
| <div class="info_input"> | ||||
| 	<table border="0" cellspacing="0" cellpadding="0"> | ||||
| 		<thead class="list_head"> | ||||
| 			<td><%= t("admin.key") %></td> | ||||
| 			<% @site_valid_locales.each do |locale| %> | ||||
| 			<td style="color:<%= colorize_in_use_locale(locale) %>"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			<% end %> | ||||
| 		</thead> | ||||
| 		<tbody> | ||||
| 			<% am.get_enabled_attribute_models.each do |attr| %> | ||||
| 			<tr class="list_item"> | ||||
| 			<td><%= attr.i18n_variable[I18n.locale] %></td> | ||||
| 			 | ||||
| 			<% @site_valid_locales.each do |locale| %> | ||||
| 			<td> | ||||
| 				<% if attr["locale"] && attr["markup"] == 'text_field' %> | ||||
| 				<%= show_user_attribute(object, attr.key, locale) %> | ||||
| 				<% else %> | ||||
| 				<%= show_user_attribute(object, attr.key) %>   | ||||
| 				<% end %> | ||||
| 			</td> | ||||
| 			<% end %> | ||||
| 		</tr> | ||||
| 		<% end %> | ||||
| 	</tbody> | ||||
| </table> | ||||
| <div class="info_input"> | ||||
| 	<table border="0" cellspacing="0" cellpadding="0"> | ||||
| 		<thead class="list_head"> | ||||
| 			<td><%= t("admin.key") %></td> | ||||
| 			<% @site_valid_locales.each do |locale| %> | ||||
| 			<td><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 			<% end %> | ||||
| 		</thead> | ||||
| 		<tbody> | ||||
| 			<% am.get_enabled_attribute_models.each do |attr| %> | ||||
| 			<tr class="list_item"> | ||||
| 			<td><%= attr.i18n_variable[I18n.locale] %></td> | ||||
| 			 | ||||
| 			<% @site_valid_locales.each do |locale| %> | ||||
| 			<td> | ||||
| 				<% if attr["locale"] && attr["markup"] == 'text_field' %> | ||||
| 				<%= show_user_attribute(object, attr.key, locale) %> | ||||
| 				<% else %> | ||||
| 				<%= show_user_attribute(object, attr.key) %>   | ||||
| 				<% end %> | ||||
| 			</td> | ||||
| 			<% end %> | ||||
| 		</tr> | ||||
| 		<% end %> | ||||
| 	</tbody> | ||||
| </table> | ||||
| </div> | ||||
|  | @ -0,0 +1,11 @@ | |||
| <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_user_roles')), admin_user_role_models_path %></li> | ||||
| 	<li class="set_3"><%= link_to content_tag(:span, t('admin.list_user_infos')), admin_user_info_models_path %></li> | ||||
| </ul>	 | ||||
| </div> | ||||
|  | @ -1,44 +1,44 @@ | |||
| <%= fields_for "user[user_#{type}s]", user_attribute, :index => nil do |f| %> | ||||
|   <%= f.hidden_field :key, :value => ua.key %> | ||||
|   <%= f.hidden_field :id unless user_attribute.new_record? %> | ||||
|    | ||||
| 	<div class="info_input"> | ||||
| 		<table border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t("admin.key") %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 		        <td style="color:<%= colorize_in_use_locale(locale) %>"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 		      <% end %> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tbody> | ||||
| 				<% ua.get_enabled_attribute_models.each do |attr| %> | ||||
| 					<% value = user_attribute.attribute_values.detect{|v| v.key == attr.key } %> | ||||
| 					<%= hidden_field_tag "user[user_#{type}s][][attribute_values][][id]", value.id rescue nil %> | ||||
| 					<%= hidden_field_tag "user[user_#{type}s][][attribute_values][][key]", attr.key %> | ||||
| 		      <tr class="list_item"> | ||||
| 		        <td><%= attr.i18n_variable[I18n.locale] %></td> | ||||
| 		        <% if attr["locale"] && attr["markup"] == 'text_field' %> | ||||
| 							<%= hidden_field_tag "user[user_#{type}s][][attribute_values][][non_locale]", nil %> | ||||
| 		          <% @site_valid_locales.each do |locale| %> | ||||
| 		            <td> | ||||
| 		              <%= text_field_tag "user[user_#{type}s][][attribute_values][][#{locale}]", (value[locale] rescue nil) %> | ||||
| 		            </td> | ||||
| 		          <% end -%>  | ||||
| 		        <% else %> | ||||
| 		          <td colspan=<%= @site_valid_locales.size %>> | ||||
| 		            <% if attr["markup"] == "text_field"  %> | ||||
| 		              <%= text_field_tag "user[user_#{type}s][][attribute_values][][non_locale]", (value['non_locale'] rescue nil) %> | ||||
| 		            <% elsif attr["markup"] == "select" %> | ||||
| 		              <%= select_tag "user[user_#{type}s][][attribute_values][][non_locale]", options_for_select(attr["options"], value['non_locale']) %> | ||||
| 		            <% end -%> | ||||
| 		          </td>         | ||||
| 		        <% end -%> | ||||
| 		      </tr> | ||||
| 		    <% end %> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
|    | ||||
| <% end %> | ||||
| <%= fields_for "user[user_#{type}s]", user_attribute, :index => nil do |f| %> | ||||
|   <%= f.hidden_field :key, :value => ua.key %> | ||||
|   <%= f.hidden_field :id unless user_attribute.new_record? %> | ||||
|    | ||||
| 	<div class="info_input"> | ||||
| 		<table border="0" cellspacing="0" cellpadding="0"> | ||||
| 			<thead class="list_head"> | ||||
| 				<tr> | ||||
| 					<td><%= t("admin.key") %></td> | ||||
| 					<% @site_valid_locales.each do |locale| %> | ||||
| 		        	<td><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></td> | ||||
| 		      		<% end %> | ||||
| 				</tr> | ||||
| 			</thead> | ||||
| 			<tbody> | ||||
| 				<% ua.get_enabled_attribute_models.each do |attr| %> | ||||
| 					<% value = user_attribute.attribute_values.detect{|v| v.key == attr.key } %> | ||||
| 					<%= hidden_field_tag "user[user_#{type}s][][attribute_values][][id]", value.id rescue nil %> | ||||
| 					<%= hidden_field_tag "user[user_#{type}s][][attribute_values][][key]", attr.key %> | ||||
| 		      <tr class="list_item"> | ||||
| 		        <td><%= attr.i18n_variable[I18n.locale] %></td> | ||||
| 		        <% if attr["locale"] && attr["markup"] == 'text_field' %> | ||||
| 							<%= hidden_field_tag "user[user_#{type}s][][attribute_values][][non_locale]", nil %> | ||||
| 		          <% @site_valid_locales.each do |locale| %> | ||||
| 		            <td> | ||||
| 		              <%= text_field_tag "user[user_#{type}s][][attribute_values][][#{locale}]", (value[locale] rescue nil) %> | ||||
| 		            </td> | ||||
| 		          <% end -%>  | ||||
| 		        <% else %> | ||||
| 		          <td colspan=<%= @site_valid_locales.size %>> | ||||
| 		            <% if attr["markup"] == "text_field"  %> | ||||
| 		              <%= text_field_tag "user[user_#{type}s][][attribute_values][][non_locale]", (value['non_locale'] rescue nil) %> | ||||
| 		            <% elsif attr["markup"] == "select" %> | ||||
| 		              <%= select_tag "user[user_#{type}s][][attribute_values][][non_locale]", options_for_select(attr["options"], value['non_locale']) %> | ||||
| 		            <% end -%> | ||||
| 		          </td>         | ||||
| 		        <% end -%> | ||||
| 		      </tr> | ||||
| 		    <% end %> | ||||
| 			</tbody> | ||||
| 		</table> | ||||
| 	</div> | ||||
|    | ||||
| <% end %> | ||||
|  |  | |||
|  | @ -1,12 +1,14 @@ | |||
| <div id="porfile"> | ||||
| 	<%= form_for @user, :url => admin_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|     <div id="update" class='buttom clear'> | ||||
| 			<%= link_to t('update'), "#", :onclick=>"$('#edit_user_#{@user.id}').submit()" %> | ||||
|     </div> | ||||
|     <div id="back" class='buttom clear'> | ||||
|     	<%= link_back %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| 	<%= form_for @user, :url => admin_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|     <div class="button_bar"> | ||||
|     	<%= link_back %> | ||||
| 		<%= link_to t('update'), "#", :onclick=>"$('#edit_user_#{@user.id}').submit()" %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
|  | @ -1,32 +1,43 @@ | |||
| <div class="main_list"> | ||||
| 	<%= flash_messages %> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t('admin.new_user'), new_admin_user_path %> | ||||
| 	</div> | ||||
| 	<ul> | ||||
| 		<li class="list_head clear"> | ||||
| 			<span class="roles"><%= t('admin.role') %></span> | ||||
| 			<span class="name"><%= t('admin.name') %></span> | ||||
| 			<span class="email"><%= t('admin.email') %></span> | ||||
| 			<span class="admin"><%= t('admin.admin') %></span> | ||||
| 			<span class="action"><%= t('admin.action') %></span> | ||||
| 		</li> | ||||
| 		<% @users.each do |user| %> | ||||
| 		<li class="list_item clear"> | ||||
| 			<% active_role = UserRoleModel.get_role_model_from_key(user.active_role) %> | ||||
| 			<span class="roles <%= active_role.key.downcase rescue nil %>"><%= active_role.i18n_variable[I18n.locale] rescue nil %></span> | ||||
| 			<span class="name"><%= user.name ? user.name : 'bob' %></span> | ||||
| 			<span class="email"><%= user.email %></span> | ||||
| 			<span class="admin"><%= user.admin ? t(:yes_) : t(:no_) %></span> | ||||
| 			<span class="action"> | ||||
| 				<%= link_to t(:show), admin_user_path(user), :class => 'show' %> | ||||
| 				<%= link_to t(:edit), edit_admin_user_path(user), :class => 'edit' %> | ||||
| 				<%= link_to t(:delete), admin_user_path(user), :class => 'delete', :confirm => t('sure?'), :method => :delete %> | ||||
| 			</span> | ||||
| 		</li>   | ||||
| 		<% end %> | ||||
| 	</ul> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t('admin.new_user'), new_admin_user_path %> | ||||
| 	</div>	 | ||||
| </div> | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div class="main_list"> | ||||
| 	<%= flash_messages %> | ||||
| 	<div class="button_bar up"> | ||||
| 		<%= link_to t('admin.new_user'), new_admin_user_path, :class => 'new' %> | ||||
| 	</div> | ||||
| 	<table> | ||||
| 		<thead> | ||||
| 			<tr> | ||||
| 				<td class="roles"><%= t('admin.role') %></td> | ||||
| 				<td class="name"><%= t('admin.name') %></td> | ||||
| 				<td class="email"><%= t('admin.email') %></td> | ||||
| 				<td class="admin"><%= t('admin.admin') %></td> | ||||
| 				<td class="action"><%= t('admin.action') %></td> | ||||
| 			</tr> | ||||
| 		</thead> | ||||
| 		<tbody> | ||||
| 			<% @users.each do |user| %> | ||||
| 			<% active_role = UserRoleModel.get_role_model_from_key(user.active_role) %> | ||||
| 			<tr class="have"> | ||||
| 				<td class="roles <%= active_role.key.downcase rescue nil %>"><%= active_role.i18n_variable[I18n.locale] rescue nil %></td> | ||||
| 				<td class="name"><%= user.name ? user.name : 'bob' %></td> | ||||
| 				<td class="email"><%= user.email %></td> | ||||
| 				<td class="admin"><%= user.admin ? t(:yes_) : t(:no_) %></td> | ||||
| 				<td class="action"> | ||||
| 					<%= link_to t(:show), admin_user_path(user), :class => 'show' %> | ||||
| 					<%= link_to t(:edit), edit_admin_user_path(user), :class => 'edit' %> | ||||
| 					<%= link_to t(:delete), admin_user_path(user), :class => 'delete', :confirm => t('sure?'), :method => :delete %> | ||||
| 				</td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td colspan="5"></td> | ||||
| 			</tr> | ||||
| 			<% end %> | ||||
| 		</tbody> | ||||
| 	</table> | ||||
| 	<div class="button_bar"> | ||||
| 		<%= link_to t('admin.new_user'), new_admin_user_path, :class => 'new' %> | ||||
| 	</div>	 | ||||
| </div> | ||||
|  |  | |||
|  | @ -1,17 +1,19 @@ | |||
| <div id="porfile"> | ||||
| 	<%= form_for @user, :url => admin_users_path, :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|     <div id="create" class='buttom clear'> | ||||
| 			<%= link_to t('create'), "#", :onclick=>"$('#new_user').submit()" %> | ||||
|     </div> | ||||
|     <div id="back" class='buttom clear'> | ||||
|     	<%= link_back %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| 	<%= form_for @user, :url => admin_users_path, :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|     <div class="button_bar"> | ||||
|     	<%= link_back %> | ||||
| 		<%= link_to t('create'), "#", :onclick=>"$('#new_user').submit()" %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,28 +1,34 @@ | |||
| <div id="porfile"> | ||||
| 	 | ||||
| 	<div id="person"> | ||||
| 	<% if @user.avatar? %> | ||||
| 		<%= image_tag(@user.avatar.thumb.url) %> | ||||
| 		<% else %> | ||||
| 		<%= image_tag "person.png" %> | ||||
| 		<% end %> | ||||
| 		<%= link_to t(:edit), edit_admin_user_path(@user), :id => 'edit' %> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<% @user_info_models.each do |am| %> | ||||
| 		<div id="basic_block" class="roles_block"> | ||||
| 			<h2><%= am.i18n_variable[I18n.locale] %></h2> | ||||
| 			<hr> | ||||
| 			<%= render :partial => 'show_user_attribute', :locals => {:am => am, :object => @user.get_info_from_model_key(am.key)} %> | ||||
| 		</div> | ||||
| 	<% end -%> | ||||
| 
 | ||||
| 	<div id="<%= @user.active_role %>_block" class="roles_block"> | ||||
| 		<% active_role = UserRoleModel.get_role_model_from_key(@user.active_role) %> | ||||
| 		<h2><%= active_role.i18n_variable[I18n.locale] %></h2> | ||||
| 		<hr> | ||||
| 		<%= render :partial => 'show_user_attribute', :locals => {:am => active_role, :object => @user.get_role_from_model_key(active_role.key)} %> | ||||
| 	</div> | ||||
| 	 | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :secondary do %> | ||||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| 	 | ||||
| 	<div id="person"> | ||||
| 	<% if @user.avatar? %> | ||||
| 		<%= image_tag(@user.avatar.thumb.url) %> | ||||
| 		<% else %> | ||||
| 		<%= image_tag "person.png" %> | ||||
| 		<% end %> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<% @user_info_models.each do |am| %> | ||||
| 		<div id="basic_block" class="roles_block <%= @class %>"> | ||||
| 			<h2><%= am.i18n_variable[I18n.locale] %></h2> | ||||
| 			<hr> | ||||
| 			<%= render :partial => 'show_user_attribute', :locals => {:am => am, :object => @user.get_info_from_model_key(am.key)} %> | ||||
| 		</div> | ||||
| 	<% end -%> | ||||
| 
 | ||||
| 	<div id="<%= @user.active_role %>_block" class="roles_block <%= @class %>"> | ||||
| 		<% active_role = UserRoleModel.get_role_model_from_key(@user.active_role) %> | ||||
| 		<h2><%= active_role.i18n_variable[I18n.locale] %></h2> | ||||
| 		<hr> | ||||
| 		<%= render :partial => 'show_user_attribute', :locals => {:am => active_role, :object => @user.get_role_from_model_key(active_role.key)} %> | ||||
| 	</div> | ||||
|     <div class="button_bar"> | ||||
| 		<%= link_to t(:edit), edit_admin_user_path(@user) %> | ||||
|     	<%= link_back %> | ||||
|     </div> | ||||
| </div> | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,36 +1,31 @@ | |||
| <!DOCTYPE HTML> | ||||
| <html> | ||||
| <head> | ||||
| 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | ||||
| 	<%= stylesheet_link_tag "admin" %> | ||||
| 	<%= javascript_include_tag "admin" %> | ||||
| 	<%= yield :page_specific_css %> | ||||
| 	<%= yield :page_specific_javascript %> | ||||
| 	<%= csrf_meta_tag %> | ||||
| </head> | ||||
| <body> | ||||
| 
 | ||||
| 	<div id="panel_banner_link" > | ||||
| 		<div id="orbit"><%= render 'layouts/drop_down_menu' %></div>	 | ||||
| 		<div class="hmenu"> | ||||
| 			<div class="lang"><%= render 'layouts/lang_menu' %></div> | ||||
| 			<%= render 'devise/menu/login_items' %> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<div id="panel_container"> | ||||
| 		<div id="panel_content"> | ||||
| 			<div class="secondary"> | ||||
| 				<div class="secondary2"><%= yield :secondary %></div> | ||||
| 			</div> | ||||
| 			<div class="main"> | ||||
| 				<div class="main2"><%= yield %></div> | ||||
| 			</div> | ||||
| 			<div class="tertiary"><%= yield :tertiary %></div> | ||||
| 		</div> | ||||
| 		<div id="panel_footer"><p><%= APP_CONFIG['ruling_digital'] %></p></div> | ||||
| 	</div> | ||||
| </body> | ||||
| </html> | ||||
| <!DOCTYPE HTML> | ||||
| <html> | ||||
| <head> | ||||
| 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | ||||
| 	<%= stylesheet_link_tag "admin" %> | ||||
| 	<%= javascript_include_tag "admin" %> | ||||
| 	<%= yield :page_specific_css %> | ||||
| 	<%= yield :page_specific_javascript %> | ||||
| 	<%= csrf_meta_tag %> | ||||
| </head> | ||||
| <body> | ||||
| 	<div id="panel_banner_link" > | ||||
| 		<div id="orbit"><%= render 'layouts/drop_down_menu' %></div>	 | ||||
| 		<div class="hmenu"> | ||||
| 			<div class="lang"><%= render 'layouts/lang_menu' %></div> | ||||
| 			<%= render 'devise/menu/login_items' %> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<div id="content"> | ||||
| 		<div id="sidebar"><%= yield :secondary %></div> | ||||
| 		<div class="main"> | ||||
| 			<%= yield %> | ||||
| 		</div> | ||||
| 		<div class="tertiary"><%= yield :tertiary %></div> | ||||
| 		<div id="panel_footer"><p><%= APP_CONFIG['ruling_digital'] %></p></div> | ||||
| 	</div> | ||||
| </body> | ||||
| </html> | ||||
|  |  | |||
|  | @ -0,0 +1,36 @@ | |||
| <!DOCTYPE HTML> | ||||
| <html> | ||||
| <head> | ||||
| 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
| 	<title><%= @title || APP_CONFIG['orbit'] %></title> | ||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | ||||
| 	<%= stylesheet_link_tag "admin" %> | ||||
| 	<%= javascript_include_tag "admin" %> | ||||
| 	<%= yield :page_specific_css %> | ||||
| 	<%= yield :page_specific_javascript %> | ||||
| 	<%= csrf_meta_tag %> | ||||
| </head> | ||||
| <body> | ||||
| 
 | ||||
| 	<div id="panel_banner_link" > | ||||
| 		<div id="orbit"><%= render 'layouts/drop_down_menu' %></div>	 | ||||
| 		<div class="hmenu"> | ||||
| 			<div class="lang"><%= render 'layouts/lang_menu' %></div> | ||||
| 			<%= render 'devise/menu/login_items' %> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<div id="panel_container"> | ||||
| 		<div id="panel_content"> | ||||
| 			<div class="secondary"> | ||||
| 				<div class="secondary2"><%= yield :secondary %></div> | ||||
| 			</div> | ||||
| 			<div class="main"> | ||||
| 				<div class="main2"><%= yield %></div> | ||||
| 			</div> | ||||
| 			<div class="tertiary"><%= yield :tertiary %></div> | ||||
| 		</div> | ||||
| 		<div id="panel_footer"><p><%= APP_CONFIG['ruling_digital'] %></p></div> | ||||
| 	</div> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -0,0 +1,14 @@ | |||
| <% content_for :secondary do %> | ||||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| 	<%= form_for @user, :url => admin_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|     <div class="button_bar"> | ||||
| 		<%= link_to t('update'), "#", :onclick=>"$('#edit_user_#{@user.id}').submit()" %> | ||||
|     	<%= link_back %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
|  | @ -0,0 +1,34 @@ | |||
| <% content_for :secondary do %> | ||||
| 	<%= render 'admin/users/side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div class="main_list"> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path") %> | ||||
| 	</div> | ||||
| 	<ul> | ||||
| 		<li class="list_head clear"> | ||||
| 			<span class="<%= @attribute %>s"><%= t("admin.#{@attribute}") %></span> | ||||
| 			<span class="action"><%= t('admin.action') %></span> | ||||
| 		</li> | ||||
| 		<% @user_attribute_models.each do |user_attribute_model| %> | ||||
| 		<li id="attribute_<%= user_attribute_model.id %>" class="list_item <%= "#{user_attribute_model.is_disabled? ? 'disable' : ''}" %> clear"> | ||||
| 			<span class="<%= @attribute %>s <%= user_attribute_model.i18n_variable[:key].downcase %>"><%= user_attribute_model.i18n_variable[I18n.locale] %></span> | ||||
| 			<span class="action"> | ||||
| 				 | ||||
| 				<%= link_to t(:edit), eval("edit_admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'edit' %> | ||||
| 				<% if user_attribute_model.is_built_in? %> | ||||
| 					<%= link_to t(:enable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => true})"), :remote => true, :method => :put, :id => "disable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? 'none' : ''}", :class => 'switch' %> | ||||
| 					<%= link_to t(:disable), eval("admin_user_#{@attribute}_model_path(user_attribute_model, :authenticity_token => form_authenticity_token, :user_#{@attribute}_model => {:disabled => false})"), :remote => true, :method => :put, :id => "enable_#{user_attribute_model.id}", :style => "display:#{user_attribute_model.is_disabled? ? '' : 'none'}", :class => 'switch' %> | ||||
| 				<% else %> | ||||
| 	      	<%= link_to t(:delete), eval("admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'delete', :confirm => t('sure?'), :method => :delete %> | ||||
| 				<% end %> | ||||
| 				 | ||||
| 			</span> | ||||
| 		</li> | ||||
| 		<% end %>			 | ||||
| 	</ul> | ||||
| 	<div id="add_new" class="buttom clear"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path") %> | ||||
| 	</div> | ||||
| </div> | ||||
		Loading…
	
		Reference in New Issue