Ray's back_end modification before sub_roles
This commit is contained in:
		
							parent
							
								
									f774084e9a
								
							
						
					
					
						commit
						fc591ee308
					
				
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 958 B After Width: | Height: | Size: 983 B | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.7 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 342 B | 
|  | @ -1,9 +1,12 @@ | |||
| /* | ||||
|  *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 | ||||
| /* | ||||
|  *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 | ||||
|  *= require sidebar | ||||
|  *= require site_designs | ||||
|  *= require site_assets | ||||
| */ | ||||
|  | @ -4,7 +4,7 @@ html, body{ | |||
|     padding: 0; | ||||
| } | ||||
| html{ | ||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat scroll 0 0 transparent; | ||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat fixed 0 0 transparent; | ||||
| 	background-size: cover; | ||||
| } | ||||
| 
 | ||||
|  | @ -116,16 +116,6 @@ body{ | |||
| 	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; | ||||
|  | @ -140,7 +130,18 @@ body{ | |||
|     padding: 0 20px; | ||||
|     width: 154px; | ||||
| } | ||||
| h1 { | ||||
| /* | ||||
| #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; | ||||
| } | ||||
| #sidebar h1 { | ||||
|     background: url(<%= asset_path "h1_bg.png" %>) repeat-x scroll left top transparent; | ||||
|     border-bottom: 1px solid #1B1B1B; | ||||
|     border-top: 1px solid #424344; | ||||
|  | @ -153,33 +154,33 @@ h1 { | |||
|     padding-left: 10px; | ||||
|     text-shadow: 0 -1px 0 #000000; | ||||
| } | ||||
| .member_setup .list { | ||||
| #sidebar .list { | ||||
| 	color:#fff; | ||||
| 	font-size:12px; | ||||
| 	background:url(<%= asset_path "line.png" %>) repeat-x left bottom; | ||||
| } | ||||
| .member_setup .list li { | ||||
| #sidebar .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 { | ||||
| #sidebar .list li:hover { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| .member_setup .list li a { | ||||
| #sidebar .list li a { | ||||
| 	display: block; | ||||
|     padding: 7px 0 6px 12px; | ||||
| 	color:#c4c4c4; | ||||
| } | ||||
| .member_setup .list li a span { | ||||
| #sidebar .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 { | ||||
| #sidebar .list li a:hover span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
|  | @ -210,6 +211,7 @@ h1 { | |||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| */ | ||||
| .main { | ||||
| 	height: 100%; | ||||
| 	margin-left: 260px; | ||||
|  | @ -262,7 +264,7 @@ h1 { | |||
| 	background:-moz-linear-gradient( center top, #000000 5%, #4f4f4f 100% ); | ||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#4f4f4f'); | ||||
| } | ||||
| .button_bar a:last-child { | ||||
| .button_bar a:last-child, .button_bar input { | ||||
| 	border-right:none; | ||||
| 	-moz-box-shadow:none; | ||||
| 	-webkit-box-shadow:none; | ||||
|  | @ -285,6 +287,30 @@ h1 { | |||
| .button_bar a:hover { | ||||
| 	color:#FFFFFF; | ||||
| } | ||||
| .button_bar input { | ||||
| 	background-color:transparent; | ||||
| 	text-decoration:none; | ||||
| 	text-shadow:0px -1px 0px #000000; | ||||
| 	font-size:12px; | ||||
| 	color:#EDEDED; | ||||
| 	border-right:1px solid #555; | ||||
| 	border-top:none; | ||||
| 	border-left:none; | ||||
| 	border-bottom:none; | ||||
| 	-moz-box-shadow:1px 0px 0px black; | ||||
| 	-webkit-box-shadow:1px 0px 0px black; | ||||
| 	box-shadow:1px 0px 0px black; | ||||
| 	padding: 3px 10px 1px; | ||||
| 	display: inline-block; | ||||
| 	float: left; | ||||
| } | ||||
| .button_bar input:focus { | ||||
| 	padding: 4px 10px 0px !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'); | ||||
| } | ||||
| .up { | ||||
| 	margin:10px 0; | ||||
| } | ||||
|  | @ -413,19 +439,44 @@ h1 { | |||
| .main table { | ||||
| 	width:100%; | ||||
| } | ||||
| 
 | ||||
| .main th { | ||||
| 	color:#fff; | ||||
| } | ||||
| .main td { | ||||
| 	padding-left:20px; | ||||
| 	color:#fff; | ||||
| 	font-size:14px; | ||||
| 	line-height:40px; | ||||
| 	line-height:20px; | ||||
| } | ||||
| .main tr.have td{ | ||||
| 	background: url(<%= asset_path "75.png" %>) repeat left top; | ||||
| 	padding-bottom: 10px; | ||||
| 	padding-top: 10px; | ||||
| 	vertical-align: middle; | ||||
| } | ||||
| .main tr.have td:first-child{ | ||||
| 	border-radius: 5px 0 0 5px; | ||||
| 	-moz-border-radius: 5px 0 0 5px; | ||||
| 	-webkit-border-radius: 5px 0 0 5px; | ||||
| } | ||||
| .main tr.have td:last-child{ | ||||
| 	border-radius: 0 5px 5px 0; | ||||
| 	-moz-border-radius: 0 5px 5px 0; | ||||
| 	-webkit-border-radius: 0 5px 5px 0; | ||||
| } | ||||
| .main thead td { | ||||
| 	line-height:40px; | ||||
| 	font-size:16px; | ||||
| 	text-shadow: 0px 1px 1px #3e2914; | ||||
| } | ||||
| .main thead th { | ||||
| 	line-height:40px; | ||||
| 	font-size:16px; | ||||
| 	text-shadow: 0px 1px 1px #3e2914; | ||||
| } | ||||
| .main thead td.action { | ||||
| 	width:15% | ||||
| 	width:140px; | ||||
| } | ||||
| .main tbody td.roles { | ||||
|     background-image: url(<%= asset_path "roles_type.jpg" %>); | ||||
|  | @ -442,7 +493,7 @@ h1 { | |||
|     display: inline-block; | ||||
|     height: 19px; | ||||
|     margin-right: 10px; | ||||
|     top: 8px; | ||||
| 	outline:none; | ||||
|     text-indent: -9999px; | ||||
|     width: 19px; | ||||
| 	position: relative; | ||||
|  | @ -465,6 +516,12 @@ h1 { | |||
| .main tbody td.action a.delete:hover { | ||||
|     background-position: -38px -19px; | ||||
| } | ||||
| .main tbody td.action a.download { | ||||
|     background-position: -74px top; | ||||
| } | ||||
| .main tbody td.action a.download:hover { | ||||
|     background-position: -74px -19px; | ||||
| } | ||||
| .main tbody td.action a.switch { | ||||
|     background: url(<%= asset_path "switch.png" %>) no-repeat left 3px; | ||||
|     width: 40px; | ||||
|  | @ -476,10 +533,6 @@ h1 { | |||
|     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; | ||||
|  | @ -487,4 +540,16 @@ h1 { | |||
| .main tbody tr { | ||||
| 	background:none; | ||||
| 	height:15px; | ||||
| } | ||||
| .main tbody tr.have .assets_pic { | ||||
| 	height: 40px; | ||||
| 	overflow: hidden; | ||||
| 	width: 40px; | ||||
| 	position: relative; | ||||
| } | ||||
| .main tbody tr.have .assets_pic img { | ||||
| 	left: -15%; | ||||
| 	position: absolute; | ||||
| 	top: -15%; | ||||
| 	width: 130%; | ||||
| } | ||||
|  | @ -0,0 +1,85 @@ | |||
| 
 | ||||
| #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; | ||||
| } | ||||
| 
 | ||||
| #sidebar 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: 16px; | ||||
|     font-weight: normal; | ||||
|     height: 40px; | ||||
|     line-height: 40px; | ||||
|     margin: 0; | ||||
|     padding-left: 10px; | ||||
|     text-shadow: 0 -1px 0 #000000; | ||||
| } | ||||
| #sidebar .list { | ||||
| 	color:#fff; | ||||
| 	font-size:12px; | ||||
| 	background:url(<%= asset_path "line.png" %>) repeat-x left bottom; | ||||
| } | ||||
| #sidebar .list li { | ||||
| 	background:url(<%= asset_path "sidebar_li.jpg" %>) repeat-x left top; | ||||
| 	border-top:1px solid #424344; | ||||
| 	border-bottom:1px solid #000000; | ||||
| } | ||||
| #sidebar .list li:hover { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| #sidebar .list li a { | ||||
| 	display: block; | ||||
|     padding: 7px 0 6px 12px; | ||||
| 	color:#c4c4c4; | ||||
| } | ||||
| #sidebar .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; | ||||
| } | ||||
| #sidebar .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; | ||||
| } | ||||
| #sidebar .translations_setup { | ||||
| 	margin-top: 42px; | ||||
| } | ||||
|  | @ -0,0 +1,3 @@ | |||
| .assets_setup{ | ||||
| 	padding:42px 0 0 0; | ||||
| } | ||||
|  | @ -0,0 +1,26 @@ | |||
| .designs_setup{ | ||||
| 	padding:42px 0 0 0; | ||||
| } | ||||
| .main2{ | ||||
| 	padding:70px 0 0 0; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #sidebar .list li a span { | ||||
| 	background:none; | ||||
| 	padding: 0; | ||||
| } | ||||
| 
 | ||||
| h1{ | ||||
| 	color:#fff; | ||||
| 	margin:0 0 20px; | ||||
| } | ||||
| form p{ | ||||
| 	margin:0 0 10px; | ||||
| } | ||||
| form label{ | ||||
|     color: #FFFFFF; | ||||
|     display: block; | ||||
|     width: 100px; | ||||
| } | ||||
| 
 | ||||
|  | @ -1,229 +0,0 @@ | |||
| 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; | ||||
| 	z-index:10; | ||||
| } | ||||
| #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{ | ||||
|     font: 28px/100% helvetica,arial,sans-serif; | ||||
|     margin: 0 0 20px; | ||||
|     padding: 0; | ||||
| } | ||||
| 
 | ||||
| #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 #panel_nav{ | ||||
| 	margin:0; | ||||
| 	padding:0; | ||||
| 	width:100%; | ||||
| } | ||||
| 
 | ||||
| #panel_header #panel_nav li{ | ||||
|     float: left; | ||||
|     list-style: none outside none; | ||||
| } | ||||
| 
 | ||||
| #panel_header #panel_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 #panel_nav li a:hover{ | ||||
|     background: none repeat scroll 0 0 #818181; | ||||
|     border-radius: 13px 13px 13px 13px; | ||||
|     color: #fff; | ||||
| } | ||||
| 
 | ||||
| #panel_content{ | ||||
|     height: 100%; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| #panel_sidebar2{ | ||||
|     background: none repeat scroll 0 0 rgba(0, 0, 0, 0.75); | ||||
|     box-shadow: 3px 0 3px #000000; | ||||
|     float: left; | ||||
|     height: 100%; | ||||
|     width: 16%; | ||||
| } | ||||
| #panel_sidebar{ | ||||
|     padding: 62px 0 0; | ||||
| } | ||||
| #panel_sidebar ul{ | ||||
|     background: none repeat scroll 0 0 #13547C; | ||||
|     margin: 0; | ||||
|     padding: 0 0 0 10px; | ||||
| } | ||||
| #panel_sidebar ul li{ | ||||
|     background: none repeat scroll 0 0 #13547C; | ||||
|     border-top: 1px solid #145B87; | ||||
|     color: #FFFFFF; | ||||
|     font-size: 11px; | ||||
|     line-height: 29px; | ||||
|     list-style: none outside none; | ||||
| } | ||||
| #panel_sidebar li ul{ | ||||
| } | ||||
| #panel_sidebar li ul ul{ | ||||
| } | ||||
| #panel_sidebar a{ | ||||
|     color: #FFFFFF; | ||||
|     font-size: 11px; | ||||
|     text-decoration: none; | ||||
| } | ||||
| #panel_sidebar a:hover{} | ||||
| #panel_main2{ | ||||
| 	background:#fff; | ||||
|     float: left; | ||||
|     height: 100%; | ||||
|     padding: 0 1%; | ||||
|     width: 82%; | ||||
| } | ||||
| #panel_main{ | ||||
|     padding: 62px 0 0; | ||||
| } | ||||
| 
 | ||||
| #panel_main p label{ | ||||
|     display: block; | ||||
|     padding: 3px; | ||||
| } | ||||
| #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; | ||||
| } | ||||
|  | @ -2,7 +2,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 reset | ||||
|  *= require_self | ||||
|  *= require message | ||||
|  *= require site_edition | ||||
|  *= require site_items | ||||
|  *= require sidebar | ||||
| */ | ||||
|  | @ -0,0 +1,445 @@ | |||
| html, body{ | ||||
|     height: 100%; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| html{ | ||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat fixed 0 0 transparent; | ||||
| 	background-size: cover; | ||||
| } | ||||
| 
 | ||||
| body{ | ||||
|     color: #000000; | ||||
|     font-family: Helvetica, '微軟正黑體'; | ||||
| } | ||||
| #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; | ||||
| } | ||||
| .items_setup{ | ||||
| 	padding:42px 0 0 0; | ||||
| } | ||||
| #sidebar .items_setup .list li{ | ||||
|     padding: 6px 0 7px 5px; | ||||
| } | ||||
| #sidebar .items_setup .list li a{ | ||||
|     display: inline; | ||||
|     font-size: 0.9em; | ||||
|     padding: 0; | ||||
| } | ||||
| #sidebar .items_setup .list li a span{ | ||||
| 	background:none; | ||||
| 	padding:0; | ||||
| 	text-shadow:none; | ||||
| } | ||||
| .main { | ||||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
|     height: 100%; | ||||
|     margin-left: 220px; | ||||
|     padding: 0 40px; | ||||
|     position: relative; | ||||
| } | ||||
| .main_list { | ||||
|     padding-top: 70px; | ||||
| } | ||||
| .main_list ul { | ||||
| 	clear:both; | ||||
| } | ||||
| #porfile { | ||||
| 	padding-top: 100px; | ||||
| } | ||||
| /*add_buttom*/ | ||||
| .button_bar { | ||||
| 	float: right; | ||||
| 	-moz-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	-webkit-box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	box-shadow:inset 0px 1px 0px 0px #666, 0px 0px 3px black; | ||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #4f4f4f), color-stop(1, #000000) ); | ||||
| 	background:-moz-linear-gradient( center top, #4f4f4f 5%, #000000 100% ); | ||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4f4f4f', endColorstr='#000000'); | ||||
| 	background-color:#4f4f4f; | ||||
| 	-moz-border-radius:5px; | ||||
| 	-webkit-border-radius:5px; | ||||
| 	border-radius:5px; | ||||
| 	display:inline-block; | ||||
| 	padding:0; | ||||
| 	margin:10px 0 60px; | ||||
| } | ||||
| .button_bar a { | ||||
| 	text-decoration:none; | ||||
| 	text-shadow:0px -1px 0px #000000; | ||||
| 	font-size:12px; | ||||
| 	color:#EDEDED; | ||||
| 	border-right:1px solid #555; | ||||
| 	-moz-box-shadow:1px 0px 0px black; | ||||
| 	-webkit-box-shadow:1px 0px 0px black; | ||||
| 	box-shadow:1px 0px 0px black; | ||||
| 	padding: 6px 10px 4px; | ||||
| 	display: inline-block; | ||||
| 	float: left; | ||||
| } | ||||
| .button_bar a:active { | ||||
| 	padding: 7px 10px 3px !important; | ||||
| 	text-shadow:0px 1px 0px #000000; | ||||
| 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #000000), color-stop(1, #4f4f4f) ); | ||||
| 	background:-moz-linear-gradient( center top, #000000 5%, #4f4f4f 100% ); | ||||
| 	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#4f4f4f'); | ||||
| } | ||||
| .button_bar a:last-child { | ||||
| 	border-right:none; | ||||
| 	-moz-box-shadow:none; | ||||
| 	-webkit-box-shadow:none; | ||||
| 	box-shadow:none; | ||||
| 	-moz-border-radius:0px 5px 5px 0px; | ||||
| 	-webkit-border-radius:0px 5px 5px 0px; | ||||
| 	border-radius:0px 5px 5px 0px; | ||||
| } | ||||
| .button_bar a:first-child { | ||||
| 	-moz-border-radius:5px 0px 0px 5px; | ||||
| 	-webkit-border-radius:5px 0px 0px 5px; | ||||
| 	border-radius:5px 0px 0px 5px; | ||||
| } | ||||
| .button_bar a.new { | ||||
| 	padding: 5px 10px; | ||||
| 	-moz-border-radius:5px; | ||||
| 	-webkit-border-radius:5px; | ||||
| 	border-radius:5px; | ||||
| } | ||||
| .button_bar a:hover { | ||||
| 	color:#FFFFFF; | ||||
| } | ||||
| .up { | ||||
| 	margin:10px 0; | ||||
| } | ||||
| #person { | ||||
| 	left: 245px; | ||||
| 	position: fixed; | ||||
| 	text-align: center; | ||||
| 	top: 75px; | ||||
| 	width: 140px; | ||||
| 	background-color:#FFF; | ||||
| 	padding:15px; | ||||
| 	border-radius: 5px; | ||||
| 	-moz-border-radius: 5px; | ||||
| 	-webkit-border-radius: 5px; | ||||
| 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | ||||
| 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | ||||
| 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | ||||
| } | ||||
| #file { | ||||
| 	display:none; | ||||
| } | ||||
| #person img { | ||||
| } | ||||
| .user_mail { | ||||
|     border: medium none; | ||||
| 	border:1px solid #DDDDDD; | ||||
|     color: #666666; | ||||
|     font-size: 12px; | ||||
|     width: 140px; | ||||
| } | ||||
| #person label { | ||||
| 	display: block; | ||||
| 	margin: 15px 0 0; | ||||
| } | ||||
| #person label input { | ||||
| } | ||||
| #person label #user_admin { | ||||
| 	float:right; | ||||
| 	margin: 0; | ||||
| } | ||||
| #person label span { | ||||
| 	text-align:left; | ||||
| 	font-size:11px; | ||||
| 	color:#888; | ||||
| 	display:block; | ||||
| } | ||||
| #person select { | ||||
|     border: 1px solid #DDDDDD; | ||||
|     padding: 0; | ||||
|     width: 140px; | ||||
| } | ||||
| #porfile .users{ | ||||
| 	margin-left: 180px; | ||||
| } | ||||
| .roles_block { | ||||
|     background: url(<%= asset_path "75.png" %>) repeat left top; | ||||
| 	min-width:710px; | ||||
| 	margin-bottom:50px; | ||||
| 	position:relative; | ||||
| 	padding-bottom: 20px; | ||||
| 	border-radius: 5px; | ||||
| 	-moz-border-radius: 5px; | ||||
| 	-webkit-border-radius: 5px; | ||||
| 	-moz-box-shadow: 0px 0px 4px #180902; /* Firefox */ | ||||
| 	-webkit-box-shadow: 0px 0px 4px #180902;/* Safari 和 Chrome */ | ||||
| 	box-shadow: 0px 0px 4px #180902; /* Opera 10.5 + */ | ||||
| } | ||||
| .roles_block h2 { | ||||
|     color: #FFFFFF; | ||||
|     font-weight: normal; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
|     position: absolute; | ||||
|     text-shadow: 0 3px 2px #000000; | ||||
|     top: -30px; | ||||
| } | ||||
| .main hr { | ||||
| 	height:8px; | ||||
| 	border:none; | ||||
| 	margin:0; | ||||
| 	border-radius: 5px 5px 0px 0px; | ||||
| 	-moz-border-radius: 5px 5px 0px 0px; | ||||
| 	-webkit-border-radius: 5px 5px 0px 0px; | ||||
| 	border-bottom:1px solid #000; | ||||
| } | ||||
| .main2{ | ||||
| 	padding:70px 0 0; | ||||
| } | ||||
| #basic_block hr { | ||||
|     background-color: #666666; | ||||
| } | ||||
| #teacher_block hr { | ||||
|     background-color: #0071A9; | ||||
| } | ||||
| #student_block hr { | ||||
|     background-color: #AF0045; | ||||
| } | ||||
| .info_input { | ||||
| 	padding:10px 20px; | ||||
| } | ||||
| .info_input table { | ||||
| 	color:#fff; | ||||
| 	width:100%; | ||||
| 	font-size:14px; | ||||
| } | ||||
| .info_input table td { | ||||
| 	padding:5px 10px 5px 0; | ||||
| 	width: 10%; | ||||
| } | ||||
| .info_input .list_head { | ||||
| 	background:url(<%= asset_path "line.png" %>) left bottom repeat-x; | ||||
| } | ||||
| .info_input .list_head td { | ||||
| } | ||||
| .info_input .list_item { | ||||
| 	color:#AEAEAE; | ||||
| } | ||||
| .info_input .add { | ||||
| 	display:block; | ||||
| 	padding-left:22px; | ||||
| 	font-size:12px; | ||||
| 	line-height:21px; | ||||
| 	height:19px; | ||||
| 	background:url(<%= asset_path "icon.png" %>) no-repeat -59px 0; | ||||
| 	margin-top: 10px; | ||||
| 	color: #DDDDDD; | ||||
| } | ||||
| 
 | ||||
| .main table { | ||||
| 	width:100%; | ||||
| } | ||||
| .main td { | ||||
| 	padding-left:20px; | ||||
| 	color:#fff; | ||||
| 	font-size:14px; | ||||
| 	line-height:40px; | ||||
| } | ||||
| .main tr.have td{ | ||||
| 	background: url(<%= asset_path "75.png" %>) repeat left top; | ||||
| } | ||||
| .main tr.have td:first-child{ | ||||
| 	border-radius: 5px 0 0 5px; | ||||
| 	-moz-border-radius: 5px 0 0 5px; | ||||
| 	-webkit-border-radius: 5px 0 0 5px; | ||||
| } | ||||
| .main tr.have td:last-child{ | ||||
| 	border-radius: 0 5px 5px 0; | ||||
| 	-moz-border-radius: 0 5px 5px 0; | ||||
| 	-webkit-border-radius: 0 5px 5px 0; | ||||
| } | ||||
| .main thead td { | ||||
| 	line-height:40px; | ||||
| 	font-size:16px; | ||||
| 	text-shadow: 0px 1px 1px #3e2914; | ||||
| } | ||||
| .main thead td.action { | ||||
| 	width:140px; | ||||
| } | ||||
| .main tbody td.roles { | ||||
|     background-image: url(<%= asset_path "roles_type.jpg" %>); | ||||
|     background-repeat: repeat-x; | ||||
| } | ||||
| .main tbody td.teacher { | ||||
|     background-position: 0 -54px; | ||||
| } | ||||
| .main tbody td.student { | ||||
| 	background-position: 0 -5px; | ||||
| } | ||||
| .main tbody td.action a { | ||||
|     background-image: url(<%= asset_path "icon.png" %>); | ||||
|     display: inline-block; | ||||
|     height: 19px; | ||||
|     margin-right: 10px; | ||||
|     top: 8px; | ||||
|     text-indent: -9999px; | ||||
|     width: 19px; | ||||
| 	position: relative; | ||||
| } | ||||
| .main tbody td.action a.show { | ||||
|     background-position: left top; | ||||
| } | ||||
| .main tbody td.action a.show:hover { | ||||
|     background-position: left -19px; | ||||
| } | ||||
| .main tbody td.action a.edit { | ||||
|     background-position: -19px top; | ||||
| } | ||||
| .main tbody td.action a.edit:hover { | ||||
|     background-position: -19px -19px; | ||||
| } | ||||
| .main tbody td.action a.delete { | ||||
|     background-position: -38px top; | ||||
| } | ||||
| .main tbody td.action a.delete:hover { | ||||
|     background-position: -38px -19px; | ||||
| } | ||||
| .main tbody td.action a.switch { | ||||
|     background: url(<%= asset_path "switch.png" %>) no-repeat left 3px; | ||||
|     width: 40px; | ||||
| } | ||||
| .main tbody tr.disable td.action a.switch { | ||||
|     background-position:left bottom; | ||||
| } | ||||
| .main tbody td.action a.delete:hover { | ||||
|     background-position: -38px -19px; | ||||
| } | ||||
| .main tbody tr.have { | ||||
| } | ||||
| .main tbody tr.disable { | ||||
|     opacity: 0.7; | ||||
| } | ||||
| .main tbody tr { | ||||
| 	background:none; | ||||
| 	height:15px; | ||||
| } | ||||
| h1{ | ||||
| 	margin:0 0 20px; | ||||
| } | ||||
| p{ | ||||
| 	margin:0 0 10px; | ||||
| } | ||||
| 
 | ||||
| #sidebar .items_setup .list li{ | ||||
| 	background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top; | ||||
| 	border:none; | ||||
|     padding: 0 0 0 5px; | ||||
| } | ||||
| #sidebar .items_setup .list li a{ | ||||
| 	line-height:31px; | ||||
| } | ||||
| #sidebar .items_setup .list li:hover{ | ||||
| 	background:url(<%= asset_path "sidebar_li2.jpg" %>) repeat left top; | ||||
| 	border:none; | ||||
| } | ||||
| #sidebar .items_setup ul .list { | ||||
| } | ||||
|  | @ -9,7 +9,7 @@ module Admin::ItemHelper | |||
|         when 'Link' | ||||
|           dest = admin_link_path(node) | ||||
|       end | ||||
|       ret << "<ul>" | ||||
|       ret << "<ul class='list'>" | ||||
|       ret << "<li>" | ||||
|       ret << (link_to node.name, dest) | ||||
|       ret << ' | ' << (link_to t('admin.edit'), eval("edit_admin_#{node._type.downcase}_path(node)")) if node._type.eql?('Page') | ||||
|  |  | |||
|  | @ -0,0 +1,548 @@ | |||
| html, body{ | ||||
|     height: 100%; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| html{ | ||||
|     background: url(<%= asset_path "body.jpg" %>) no-repeat fixed 0 0 transparent; | ||||
| 	background-size: cover; | ||||
| } | ||||
| 
 | ||||
| body{ | ||||
|     color: #000000; | ||||
|     font-family: Helvetica, '微軟正黑體'; | ||||
| } | ||||
| 
 | ||||
| #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; | ||||
| } | ||||
| #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; | ||||
| } | ||||
| /* | ||||
| #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; | ||||
| } | ||||
| #sidebar 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; | ||||
| } | ||||
| #sidebar .list { | ||||
| 	color:#fff; | ||||
| 	font-size:12px; | ||||
| 	background:url(<%= asset_path "line.png" %>) repeat-x left bottom; | ||||
| } | ||||
| #sidebar .list li { | ||||
| 	background:url(<%= asset_path "sidebar_li.jpg" %>) repeat-x left top; | ||||
| 	border-top:1px solid #424344; | ||||
| 	border-bottom:1px solid #000000; | ||||
| } | ||||
| #sidebar .list li:hover { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| #sidebar .list li a { | ||||
| 	display: block; | ||||
|     padding: 7px 0 6px 12px; | ||||
| 	color:#c4c4c4; | ||||
| } | ||||
| #sidebar .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; | ||||
| } | ||||
| #sidebar .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, .button_bar input { | ||||
| 	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; | ||||
| } | ||||
| .button_bar input { | ||||
| 	background-color:transparent; | ||||
| 	text-decoration:none; | ||||
| 	text-shadow:0px -1px 0px #000000; | ||||
| 	font-size:12px; | ||||
| 	color:#EDEDED; | ||||
| 	border-right:1px solid #555; | ||||
| 	border-top:none; | ||||
| 	border-left:none; | ||||
| 	border-bottom:none; | ||||
| 	-moz-box-shadow:1px 0px 0px black; | ||||
| 	-webkit-box-shadow:1px 0px 0px black; | ||||
| 	box-shadow:1px 0px 0px black; | ||||
| 	padding: 3px 10px 1px; | ||||
| 	display: inline-block; | ||||
| 	float: left; | ||||
| } | ||||
| .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 th { | ||||
| 	color:#fff; | ||||
| } | ||||
| .main td { | ||||
| 	padding-left:20px; | ||||
| 	color:#fff; | ||||
| 	font-size:14px; | ||||
| 	line-height:20px; | ||||
| } | ||||
| .main tr.have td{ | ||||
| 	background: url(<%= asset_path "75.png" %>) repeat left top; | ||||
| 	padding-bottom: 10px; | ||||
| 	padding-top: 10px; | ||||
| 	vertical-align: middle; | ||||
| } | ||||
| .main tr.have td:first-child{ | ||||
| 	border-radius: 5px 0 0 5px; | ||||
| 	-moz-border-radius: 5px 0 0 5px; | ||||
| 	-webkit-border-radius: 5px 0 0 5px; | ||||
| } | ||||
| .main tr.have td:last-child{ | ||||
| 	border-radius: 0 5px 5px 0; | ||||
| 	-moz-border-radius: 0 5px 5px 0; | ||||
| 	-webkit-border-radius: 0 5px 5px 0; | ||||
| } | ||||
| .main thead td { | ||||
| 	line-height:40px; | ||||
| 	font-size:16px; | ||||
| 	text-shadow: 0px 1px 1px #3e2914; | ||||
| } | ||||
| .main thead th { | ||||
| 	line-height:40px; | ||||
| 	font-size:16px; | ||||
| 	text-shadow: 0px 1px 1px #3e2914; | ||||
| } | ||||
| .main thead td.action { | ||||
| 	width:140px; | ||||
| } | ||||
| .main tbody td.roles { | ||||
|     background-image: url(<%= asset_path "roles_type.jpg" %>); | ||||
|     background-repeat: repeat-x; | ||||
| } | ||||
| .main tbody td.teacher { | ||||
|     background-position: 0 -54px; | ||||
| } | ||||
| .main tbody td.student { | ||||
| 	background-position: 0 -5px; | ||||
| } | ||||
| .main tbody td.action a { | ||||
|     background-image: url(<%= asset_path "icon.png" %>); | ||||
|     display: inline-block; | ||||
|     height: 19px; | ||||
|     margin-right: 10px; | ||||
| 	outline:none; | ||||
|     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.download { | ||||
|     background-position: -74px top; | ||||
| } | ||||
| .main tbody td.action a.download:hover { | ||||
|     background-position: -74px -19px; | ||||
| } | ||||
| .main tbody td.action a.switch { | ||||
|     background: url(<%= asset_path "switch.png" %>) no-repeat left 3px; | ||||
|     width: 40px; | ||||
| } | ||||
| .main tbody tr.disable td.action a.switch { | ||||
|     background-position:left bottom; | ||||
| } | ||||
| .main tbody td.action a.delete:hover { | ||||
|     background-position: -38px -19px; | ||||
| } | ||||
| .main tbody tr.have { | ||||
| } | ||||
| .main tbody tr.disable { | ||||
|     opacity: 0.7; | ||||
| } | ||||
| .main tbody tr { | ||||
| 	background:none; | ||||
| 	height:15px; | ||||
| } | ||||
| .main tbody tr.have .assets_pic { | ||||
| 	height: 40px; | ||||
| 	overflow: hidden; | ||||
| 	width: 40px; | ||||
| 	position: relative; | ||||
| } | ||||
| .main tbody tr.have .assets_pic img { | ||||
| 	left: -15%; | ||||
| 	position: absolute; | ||||
| 	top: -15%; | ||||
| 	width: 130%; | ||||
| } | ||||
|  | @ -1,10 +1,12 @@ | |||
| <h1><%= t('editing_asset') %></h1> | ||||
| <div class="main2"> | ||||
| 	<h1><%= t('editing_asset') %></h1> | ||||
| 
 | ||||
| <% form_for @asset, :url => admin_asset_path(@asset), :html => { :multipart => true } do |f| %> | ||||
|   <%= f.error_messages %> | ||||
|   <%= render :partial => "form", :locals => { :f => f } %> | ||||
|    | ||||
|   <p> | ||||
|     <%= f.submit t('update') %> <%= link_back %> | ||||
|   </p> | ||||
| <% end %> | ||||
| 	<% form_for @asset, :url => admin_asset_path(@asset), :html => { :multipart => true } do |f| %> | ||||
| 	  <%= f.error_messages %> | ||||
| 	  <%= render :partial => "form", :locals => { :f => f } %> | ||||
| 	   | ||||
| 	  <p> | ||||
| 		<%= f.submit t('update') %> <%= link_back %> | ||||
| 	  </p> | ||||
| 	<% end %> | ||||
| </div> | ||||
|  | @ -1,34 +1,44 @@ | |||
| <% content_for :secondary do %> | ||||
|   <ul class="list"> | ||||
|     <li><%= link_to t(:new_asset, :scope => :admin), new_admin_asset_path, :class => 'button positive' %></li> | ||||
|   </ul> | ||||
| <% end -%> | ||||
| 
 | ||||
| <h1><%= t('admin.list_assets') %></h1> | ||||
| 
 | ||||
| <table> | ||||
|   <tr> | ||||
|       <th><%= t('admin.id') %></th> | ||||
|       <th><%= t('admin.file_name') %></th> | ||||
|       <th><%= t('admin.description') %></th> | ||||
|       <th><%= t('admin.format') %></th> | ||||
|       <th><%= t('admin.orig_upload_file') %></th> | ||||
|       <th><%= t('admin.file_size') %></th> | ||||
|       <th><%= t('admin.action') %></th> | ||||
|   </tr> | ||||
| 
 | ||||
| <% @assets.each do |asset| %> | ||||
|   <tr> | ||||
|     <td><%= asset.id %></td> | ||||
|     <td><%= link_to asset.filename, asset.data.url, :target => '_blank' %></td> | ||||
|     <td><%= asset.description %></td> | ||||
|     <td><%= asset.data.file.content_type %></td> | ||||
|     <td><%= asset.data_filename %></td> | ||||
|     <td><%= number_to_human_size(asset.data.file.file_length) %></td> | ||||
|     <td> | ||||
|       <%= link_to t(:edit), edit_admin_asset_path(asset) %> | | ||||
|       <%= link_to t(:delete), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete %> | ||||
|     </td> | ||||
|   </tr> | ||||
| <% end %> | ||||
| </table> | ||||
| <% content_for :secondary do %> | ||||
| <div class="assets_setup"> | ||||
|   <ul class="list"> | ||||
| 	<li><%= link_to t(:new_asset, :scope => :admin), new_admin_asset_path, :class => 'button positive' %></li> | ||||
|   </ul> | ||||
| </div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <div class="main2"> | ||||
| 	<h1><%= t('admin.list_assets') %></h1> | ||||
| 
 | ||||
| 	<table> | ||||
| 	<thead> | ||||
| 	  <tr> | ||||
| 		  <td><%= t('admin.id') %></th> | ||||
| 		  <td><%= t('admin.file_name') %></th> | ||||
| 		  <td><%= t('admin.description') %></th> | ||||
| 		  <td><%= t('admin.format') %></th> | ||||
| 		  <td><%= t('admin.orig_upload_file') %></th> | ||||
| 		  <td><%= t('admin.file_size') %></th> | ||||
| 		  <td><%= t('admin.action') %></th> | ||||
| 	  </tr> | ||||
| 	</thead> | ||||
| 	<% @assets.each do |asset| %> | ||||
| 	  <tr class="have"> | ||||
| 		<td><%= asset.id %></td> | ||||
| 		<td><div class="assets_pic"><%= image_tag(asset.data.url) %></div> | ||||
| 		<%#= link_to asset.filename, asset.data.url, :target => '_blank' %> | ||||
| 		</td> | ||||
| 		<td><%= asset.description %></td> | ||||
| 		<td><%= asset.data.file.content_type %></td> | ||||
| 		<td><%= asset.data_filename %></td> | ||||
| 		<td><%= number_to_human_size(asset.data.file.file_length) %></td> | ||||
| 		<td class="action"> | ||||
| 		  <%= link_to t(:edit), edit_admin_asset_path(asset), :class => 'edit' %> | ||||
| 		  <%= link_to t(:delete), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete, :class => 'delete' %> | ||||
| 		</td> | ||||
| 	  </tr> | ||||
|       <tr> | ||||
|         <td colspan="5"></td> | ||||
|       </tr> | ||||
| 	<% end %> | ||||
| 	</table> | ||||
| </div> | ||||
|  | @ -1,10 +1,12 @@ | |||
| <h1><%= t('admin.new_asset') %></h1> | ||||
| <div class="main2"> | ||||
| 	<h1><%= t('admin.new_asset') %></h1> | ||||
| 
 | ||||
| <%= form_for :asset, :url => admin_assets_path, :html => { :multipart => true } do |f| %> | ||||
|   <%= f.error_messages %> | ||||
|   <%= render :partial => "form", :locals => { :f => f } %> | ||||
|    | ||||
|   <p> | ||||
|     <%= f.submit t('create') %>  <%= link_back %> | ||||
|   </p> | ||||
| <% end %> | ||||
| 	<%= form_for :asset, :url => admin_assets_path, :html => { :multipart => true } do |f| %> | ||||
| 	  <%= f.error_messages %> | ||||
| 	  <%= render :partial => "form", :locals => { :f => f } %> | ||||
| 	  <div class="button_bar"> | ||||
|     	<%= link_back %> | ||||
| 		<%= f.submit t('create') %> | ||||
| 	  </div> | ||||
| 	<% end %> | ||||
| </div> | ||||
|  | @ -1,31 +1,37 @@ | |||
| <% content_for :secondary do %> | ||||
|   <ul class="list"> | ||||
|     <li><%= link_to t('admin.new_design'), new_admin_design_path, :class => 'seclink1' %></li> | ||||
| 	  <li><%= link_to t('admin.upload_design'), upload_package_admin_designs_path, :class => 'seclink2' %></li> | ||||
|   </ul> | ||||
| <div class="designs_setup"> | ||||
| 	<h1><%= t('admin.setup_designs') %></h1> | ||||
| 	<ul class="list"> | ||||
| 		<li><%= link_to content_tag(:span, t('admin.new_design')), new_admin_design_path, :class => 'seclink1' %></li> | ||||
| 		<li><%= link_to content_tag(:span, t('admin.upload_design')), upload_package_admin_designs_path, :class => 'seclink2' %></li> | ||||
| 	</ul> | ||||
| </div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <%= flash_messages %> | ||||
| 
 | ||||
| <div class="main2"> | ||||
| <h1><%= t('admin.list_designs') %></h1> | ||||
| 
 | ||||
| <table> | ||||
| <thead> | ||||
|   <tr> | ||||
|     <th><%= t('admin.title') %></th> | ||||
|     <th><%= t('admin.author') %></th> | ||||
|     <th><%= t('admin.intro') %></th> | ||||
|     <th><%= t('admin.action') %></th> | ||||
|     <td><%= t('admin.title') %></td> | ||||
|     <td><%= t('admin.author') %></td> | ||||
|     <td><%= t('admin.intro') %></td> | ||||
|     <td><%= t('admin.action') %></td> | ||||
|   </tr> | ||||
| 
 | ||||
| </thead> | ||||
| <% @designs.each do |design| %> | ||||
|   <tr> | ||||
|   <tr class="have"> | ||||
|     <td><%= design.title %></td> | ||||
|     <td><%= design.author %></td> | ||||
|     <td><%= design.intro %></td> | ||||
|     <td> | ||||
|       <%= link_to t(:edit), edit_admin_design_path(design) %> | | ||||
|       <%= link_to t(:delete), admin_design_path(design), :confirm => t('sure?'), :method => :delete %> | ||||
|     <td class="action"> | ||||
|       <%= link_to t(:edit), edit_admin_design_path(design), :class => 'edit'  %> | ||||
|       <%= link_to t(:delete), admin_design_path(design), :confirm => t('sure?'), :method => :delete, :class => 'delete' %> | ||||
|     </td> | ||||
|   </tr> | ||||
|   <tr></tr> | ||||
| <% end %> | ||||
| </table> | ||||
| </div> | ||||
|  | @ -1,10 +1,13 @@ | |||
| <h1><%= t('admin.new_design') %></h1> | ||||
| <div class="main2"> | ||||
| 	<h1><%= t('admin.new_design') %></h1> | ||||
| 
 | ||||
| <%= form_for :design, :url => admin_designs_path do |f| %> | ||||
|   <%= f.error_messages %> | ||||
|   <%= render :partial => "form", :locals => { :f => f } %> | ||||
|    | ||||
|   <p> | ||||
|     <%= f.submit t('create') %> <%= link_back %> | ||||
|   </p> | ||||
| <% end %> | ||||
| 	<%= form_for :design, :url => admin_designs_path do |f| %> | ||||
| 	  <%= f.error_messages %> | ||||
| 	  <%= render :partial => "form", :locals => { :f => f } %> | ||||
| 	   | ||||
| 	  <div class="button_bar"> | ||||
|     	<%= link_back %> | ||||
| 		<%= f.submit t('create') %> | ||||
| 	  </div> | ||||
| 	<% end %> | ||||
| </div> | ||||
|  | @ -1,9 +1,11 @@ | |||
| <div class="main2"> | ||||
| 	<%= form_tag '',:multipart => true,:action=>"post" do |f| %> | ||||
| 
 | ||||
| <%= form_tag '',:multipart => true,:action=>"post" do |f| %> | ||||
| 	<p> | ||||
| 	<%= file_field :design,:package_file %> | ||||
| 	</p> | ||||
| 	<%= submit_tag  %> | ||||
| 
 | ||||
| <p> | ||||
| <%= file_field :design,:package_file %> | ||||
| </p> | ||||
| <%= submit_tag  %> | ||||
| 	<% end %> | ||||
| 
 | ||||
| <% end %> | ||||
| </div> | ||||
|  | @ -1 +1,3 @@ | |||
| <%= render_node_and_children(Item.first(:conditions => {:parent_id => nil})) %> | ||||
| <div class="items_setup"> | ||||
| 	<%= render_node_and_children(Item.first(:conditions => {:parent_id => nil})) %> | ||||
| </div> | ||||
|  | @ -1,25 +1,28 @@ | |||
| <h1><%= t('admin.list_puchases') %></h1> | ||||
| 
 | ||||
| <table> | ||||
|   <tr> | ||||
|     <th><%= t('admin.title') %></th> | ||||
|     <th><%= t('admin.intro') %></th> | ||||
|     <th><%= t('admin.author') %></th> | ||||
|     <th><%= t('admin.action') %></th> | ||||
|   </tr> | ||||
| 
 | ||||
| <% @purchases.each do |purchase| %> | ||||
|   <tr> | ||||
|     <td><%= purchase.title %></td> | ||||
|     <td><%= purchase.intro %></td> | ||||
|     <td><%= purchase.author %></td> | ||||
|     <td> | ||||
|       <% if purchase.downloaded %> | ||||
| 				<%= t(:downloaded) %> | ||||
| 			<% else %>	 | ||||
| 				<%= link_to t(:download) , download_admin_purchase_path(purchase) %> | ||||
| 			<% end %> | ||||
|     </td> | ||||
|   </tr> | ||||
| <% end %> | ||||
| </table> | ||||
| <div class="main2"> | ||||
| 	<h1><%= t('admin.list_puchases') %></h1> | ||||
| 	<table> | ||||
| 		<thead> | ||||
| 			<tr> | ||||
| 				<td><%= t('admin.title') %></td> | ||||
| 				<td><%= t('admin.intro') %></td> | ||||
| 				<td><%= t('admin.author') %></td> | ||||
| 				<td><%= t('admin.action') %></td> | ||||
| 			</tr> | ||||
| 		</thead> | ||||
| 		<%# @purchases.each do |purchase| %> | ||||
| 		<% purchase = PModuleApp.create(:title => 'title', :intro => 'is module', :author => 'me') %> | ||||
| 			<tr class="have"> | ||||
| 				<td><%= purchase.title %></td> | ||||
| 				<td><%= purchase.intro %></td> | ||||
| 				<td><%= purchase.author %></td> | ||||
| 				<td class="action"> | ||||
| 					<% if purchase.downloaded %> | ||||
| 						<%= t(:downloaded) %> | ||||
| 					<% else %>	 | ||||
| 						<%= link_to t(:download) , download_admin_purchase_path(purchase), :class => 'download' %> | ||||
| 					<% end %> | ||||
| 				</td> | ||||
| 			</tr> | ||||
| 		<%# end %> | ||||
| 	</table> | ||||
| </div> | ||||
|  | @ -1,33 +1,35 @@ | |||
| <div id="site_info"> | ||||
| 	<h2 id="siteinfo_title">Site Information</h2> | ||||
| 	<table id="siteinfo_tb"> | ||||
| 		<tr> | ||||
| 			<td>School Name</td> | ||||
| 			<td><%= @site.school %></td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Department</td> | ||||
| 			<td><%= @site.department %></td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Version</td> | ||||
| 			<td>v0.1</td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Administrator</td> | ||||
| 			<td>admin</td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Visitor Counter</td> | ||||
| 			<td>2,201</td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Registration Status</td> | ||||
| 			<td><%= render 'registration' %></td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Updates</td> | ||||
| 			<td><%= render 'update' %></td> | ||||
| 		</tr> | ||||
| 	</table> | ||||
| <div class="main2"> | ||||
| 	<div id="site_info"> | ||||
| 		<h1 id="siteinfo_title">Site Information</h1> | ||||
| 		<table id="siteinfo_tb"> | ||||
| 			<tr> | ||||
| 				<td>School Name</td> | ||||
| 				<td><%= @site.school %></td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td>Department</td> | ||||
| 				<td><%= @site.department %></td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td>Version</td> | ||||
| 				<td>v0.1</td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td>Administrator</td> | ||||
| 				<td>admin</td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td>Visitor Counter</td> | ||||
| 				<td>2,201</td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td>Registration Status</td> | ||||
| 				<td><%= render 'registration' %></td> | ||||
| 			</tr> | ||||
| 			<tr> | ||||
| 				<td>Updates</td> | ||||
| 				<td><%= render 'update' %></td> | ||||
| 			</tr> | ||||
| 		</table> | ||||
| 	</div> | ||||
| </div> | ||||
|  | @ -1,5 +1,5 @@ | |||
| <div class="main2"> | ||||
| <%= form_tag admin_translation_path('all'), :method => :put do %> | ||||
|    | ||||
|   <% if @language_i18n_variables.size > 0 %> | ||||
|     <fieldset> | ||||
|       <legend> | ||||
|  | @ -30,6 +30,10 @@ | |||
|     </fieldset> | ||||
|   <% end %> | ||||
|    | ||||
|   <%= submit_tag t('update')  %> <%= link_back %> | ||||
| 	<div class="button_bar"> | ||||
| 		<%= link_back %> | ||||
| 		<%= submit_tag t('update')  %> | ||||
| 	</div> | ||||
|    | ||||
| <% end %> | ||||
| </div> | ||||
|  | @ -1,67 +1,72 @@ | |||
| <% content_for :secondary do %> | ||||
|   <ul class="list"> | ||||
|     <li><%= link_to t(:edit), edit_admin_translation_path('all'), :class => 'button positive' %></li> | ||||
|     <li> | ||||
|       <%= t('admin.add_language') %>: | ||||
|       <%= form_tag admin_translation_path('add'), :method => :put do %> | ||||
|         <%= text_field_tag 'language', '', :style => "width:100px" %> | ||||
|         <%= submit_tag t(:add) %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|     <li> | ||||
|       <%= t('admin.enable_language') %>: | ||||
|       <%= form_tag admin_translation_path('enable'), :method => :put do %> | ||||
|         <%= select_tag 'enable_language', options_for_select(@site_valid_locales - @site_in_use_locales), :style => "width:100px" %> | ||||
|         <%= submit_tag t(:enable) %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|     <li> | ||||
|       <%= t('admin.disable_language') %>: | ||||
|       <%= form_tag admin_translation_path('disable'), :method => :put do %> | ||||
|         <%= select_tag 'disable_language', options_for_select(@site_in_use_locales), :style => "width:100px" %> | ||||
|         <%= submit_tag t(:disable) %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|     <li> | ||||
|       <%= t('admin.delete_language') %>: | ||||
|       <%= form_tag admin_translation_path('delete'), :method => :put do %> | ||||
|         <%= select_tag 'delete_language', options_for_select(@site_valid_locales), :style => "width:100px" %> | ||||
|         <%= submit_tag t(:delete), :confirm => t('sure?') %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|   </ul> | ||||
| <% end -%> | ||||
| 
 | ||||
| <% if @language_i18n_variables.size > 0 %> | ||||
|   <fieldset> | ||||
|     <legend> | ||||
|       <%= t('admin.language') %> | ||||
|       <%#= render :partial => 'action_bar' %> | ||||
|     </legend>  | ||||
|     <div><%= render :partial => 'language' %></div> | ||||
|   </fieldset> | ||||
| <% end %> | ||||
| 
 | ||||
| <% if @user_info_model_i18n_variables.size > 0 %> | ||||
|   <fieldset> | ||||
|     <legend> | ||||
|       <%= t('admin.user_info') %> | ||||
|       <%#= render :partial => 'action_bar' %> | ||||
|     </legend>  | ||||
|     <div><%= render :partial => 'user_attribute_model', :collection => @user_info_model_i18n_variables %></div> | ||||
|   </fieldset> | ||||
| <% end %> | ||||
| 
 | ||||
| <% if @user_role_model_i18n_variables.size > 0 %> | ||||
|   <fieldset> | ||||
|     <legend> | ||||
|       <%= t('admin.user_role') %> | ||||
|       <%#= render :partial => 'action_bar' %> | ||||
|     </legend>  | ||||
|     <div><%= render :partial => 'user_attribute_model', :collection => @user_role_model_i18n_variables %></div> | ||||
|   </fieldset> | ||||
| <% end %> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "translation_page" %> | ||||
| <% end -%> | ||||
| <div class="main2"> | ||||
| <% content_for :secondary do %> | ||||
| <div class="translations_setup"> | ||||
|   <h1><%= t('admin.setup_translations') %></h1> | ||||
|   <ul class="list"> | ||||
|     <li><%= link_to t(:edit), edit_admin_translation_path('all'), :class => 'button positive' %></li> | ||||
|     <li> | ||||
|       <%= t('admin.add_language') %>: | ||||
|       <%= form_tag admin_translation_path('add'), :method => :put do %> | ||||
|         <%= text_field_tag 'language', '', :style => "width:100px" %> | ||||
|         <%= submit_tag t(:add) %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|     <li> | ||||
|       <%= t('admin.enable_language') %>: | ||||
|       <%= form_tag admin_translation_path('enable'), :method => :put do %> | ||||
|         <%= select_tag 'enable_language', options_for_select(@site_valid_locales - @site_in_use_locales), :style => "width:100px" %> | ||||
|         <%= submit_tag t(:enable) %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|     <li> | ||||
|       <%= t('admin.disable_language') %>: | ||||
|       <%= form_tag admin_translation_path('disable'), :method => :put do %> | ||||
|         <%= select_tag 'disable_language', options_for_select(@site_in_use_locales), :style => "width:100px" %> | ||||
|         <%= submit_tag t(:disable) %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|     <li> | ||||
|       <%= t('admin.delete_language') %>: | ||||
|       <%= form_tag admin_translation_path('delete'), :method => :put do %> | ||||
|         <%= select_tag 'delete_language', options_for_select(@site_valid_locales), :style => "width:100px" %> | ||||
|         <%= submit_tag t(:delete), :confirm => t('sure?') %> | ||||
|       <% end %> | ||||
|     </li> | ||||
|   </ul> | ||||
| </div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <% if @language_i18n_variables.size > 0 %> | ||||
|   <fieldset> | ||||
|     <legend> | ||||
|       <%= t('admin.language') %> | ||||
|       <%#= render :partial => 'action_bar' %> | ||||
|     </legend>  | ||||
|     <div><%= render :partial => 'language' %></div> | ||||
|   </fieldset> | ||||
| <% end %> | ||||
| 
 | ||||
| <% if @user_info_model_i18n_variables.size > 0 %> | ||||
|   <fieldset> | ||||
|     <legend> | ||||
|       <%= t('admin.user_info') %> | ||||
|       <%#= render :partial => 'action_bar' %> | ||||
|     </legend>  | ||||
|     <div><%= render :partial => 'user_attribute_model', :collection => @user_info_model_i18n_variables %></div> | ||||
|   </fieldset> | ||||
| <% end %> | ||||
| 
 | ||||
| <% if @user_role_model_i18n_variables.size > 0 %> | ||||
|   <fieldset> | ||||
|     <legend> | ||||
|       <%= t('admin.user_role') %> | ||||
|       <%#= render :partial => 'action_bar' %> | ||||
|     </legend>  | ||||
|     <div><%= render :partial => 'user_attribute_model', :collection => @user_role_model_i18n_variables %></div> | ||||
|   </fieldset> | ||||
| <% end %> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "translation_page" %> | ||||
| <% end -%> | ||||
| </div> | ||||
|  |  | |||
|  | @ -1,14 +1,14 @@ | |||
| <% content_for :secondary do %> | ||||
| 	<%= render 'side_bar' %> | ||||
| 	<%= render 'admin/users/side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| 	<%= form_for @user, :url => admin_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
| <div id="porfile" class="clear"> | ||||
| 	<%= form_for @user_attribute_model, :url => eval("admin_user_#{@attribute}_model_path(@user_role_model)") do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|     <%= render :partial => "admin/user_attribute_models/form", :locals => { :f => f, :is_new => false } %> | ||||
|     <div class="button_bar"> | ||||
|     	<%= link_back %> | ||||
| 		<%= link_to t('update'), "#", :onclick=>"$('#edit_user_#{@user.id}').submit()" %> | ||||
| 		<%= link_to t('update'), "#", :onclick=>"$('#edit_user_role_model_#{@user_attribute_model.id}').submit()" %> | ||||
| 		<%= link_back %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
|  | @ -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_back %> | ||||
| 		<%= link_to t('update'), "#", :onclick=>"$('#edit_user_#{@user.id}').submit()" %> | ||||
|     </div> | ||||
|   <% end -%> | ||||
| </div> | ||||
|  | @ -2,7 +2,7 @@ | |||
| 	<%= render 'admin/users/side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div class="main_list"> | ||||
| <div class="main_list clear"> | ||||
| 	<div class="button_bar up"> | ||||
| 		<%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path"), :class => 'new' %> | ||||
| 	</div> | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 	<%= render 'admin/users/side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| <div id="porfile" class="clear"> | ||||
| 	<%= 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 } %> | ||||
|  |  | |||
|  | @ -1,11 +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 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> | ||||
|  | @ -2,7 +2,7 @@ | |||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| <div id="porfile" class="clear"> | ||||
| 	<%= form_for @user, :url => admin_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div class="main_list"> | ||||
| <div class="main_list clear"> | ||||
| 	<%= flash_messages %> | ||||
| 	<div class="button_bar up"> | ||||
| 		<%= link_to t('admin.new_user'), new_admin_user_path, :class => 'new' %> | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| <div id="porfile" class="clear"> | ||||
| 	<%= form_for @user, :url => admin_users_path, :html => { :multipart => true } do |f| %> | ||||
|     <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 	<%= render 'side_bar' %> | ||||
| <% end %> | ||||
| 
 | ||||
| <div id="porfile"> | ||||
| <div id="porfile" class="clear"> | ||||
| 	 | ||||
| 	<div id="person"> | ||||
| 	<% if @user.avatar? %> | ||||
|  |  | |||
|  | @ -1,31 +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> | ||||
| <!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> | ||||
|  |  | |||
|  | @ -19,17 +19,13 @@ | |||
| 			<%= render 'devise/menu/login_items' %> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 
 | ||||
| 	<div id="panel_container"> | ||||
| 		<div id="panel_content"> | ||||
| 			<div id="panel_sidebar2"> | ||||
| 				<div id="panel_sidebar"><%= yield :sidebar %></div> | ||||
| 			</div> | ||||
| 			<div id="panel_main2"> | ||||
| 				<div id="panel_main"><%= yield %></div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		<div id="panel_footer"><%= yield :footer %></div> | ||||
| <div id="content"> | ||||
| 		<div id="sidebar"><%= yield :sidebar %></div> | ||||
| 		<div class="main"><div class="main2"> | ||||
| 			<%= yield %> | ||||
| 		</div></div> | ||||
| 		<div class="tertiary"><%= yield :tertiary %></div> | ||||
| 		<div id="panel_footer"><p><%= APP_CONFIG['ruling_digital'] %></p></div> | ||||
| 	</div> | ||||
| 	 | ||||
| </body> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| defaults: &defaults | ||||
|   main_public_key: 'lib/main_public_key.pem' | ||||
|   store_ip: 'localhost:3001' | ||||
|   store_ip: 'redmine.rulingcom.com:3001' | ||||
|   orbit: 'Orbit' | ||||
|   ruling_digital: 'RulingDigital' | ||||
|    | ||||
|  |  | |||
|  | @ -109,6 +109,8 @@ en: | |||
|     role: Role | ||||
|     roles: Roles | ||||
|     setup_member: Member setup | ||||
|     setup_translations: Translations setup | ||||
|     setup_designs: Designs setup | ||||
|     site: Site | ||||
|     title: Title | ||||
|     translation: Translation | ||||
|  |  | |||
|  | @ -103,6 +103,8 @@ zh_tw: | |||
|     role: 角色 | ||||
|     roles: 角色 | ||||
|     setup_member: 成員設置 | ||||
|     setup_translations: 語系設定 | ||||
|     setup_designs: 版型設定 | ||||
|     site: 網站 | ||||
|     title: 標題 | ||||
|     translation: 翻譯 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue