Integration of Ray' modifications
| After Width: | Height: | Size: 43 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 1.5 KiB | 
| After Width: | Height: | Size: 958 B | 
| After Width: | Height: | Size: 2.4 KiB | 
| After Width: | Height: | Size: 929 B | 
| After Width: | Height: | Size: 5.6 KiB | 
| After Width: | Height: | Size: 8.2 KiB | 
| After Width: | Height: | Size: 2.0 KiB | 
| After Width: | Height: | Size: 1.5 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 841 KiB | 
|  | @ -297,7 +297,7 @@ p{ | |||
|     background: none repeat scroll 0 0 #FFFFFF; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     box-shadow: 0 0 5px #000000; | ||||
|     height: 289px; | ||||
| /*    height: 289px;*/ | ||||
|     margin: 0 0 20px; | ||||
|     overflow: hidden; | ||||
|     width: 600px; | ||||
|  |  | |||
|  | @ -0,0 +1,244 @@ | |||
| /* | ||||
|  *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 | ||||
|   | ||||
| */ | ||||
| a, a:hover { | ||||
| 	text-decoration: none; | ||||
| 	outline:none; | ||||
| } | ||||
| html,body { | ||||
| 	height:100%; | ||||
| 	margin:0; | ||||
| 	font-family: Helvetica, '微軟正黑體'; | ||||
| } | ||||
| ul { | ||||
| 	list-style:none; | ||||
| 	list-style-image:none; | ||||
| 	margin:0; | ||||
| 	padding:0; | ||||
| } | ||||
| .clear:after { | ||||
| 	content:"."; | ||||
| 	clear:both; | ||||
| 	height:0; | ||||
| 	display:block; | ||||
| 	visibility:hidden; | ||||
| } | ||||
| #content{ | ||||
| 	height:100%; | ||||
| } | ||||
| #sidebar { | ||||
| 	position:fixed; | ||||
| 	top:0; | ||||
| 	left:0; | ||||
| 	height: 100%; | ||||
| 	width:220px; | ||||
| 	/*background-color:rgba(245,245,245,1);*/ | ||||
| 	background-color:rgba(0,0,0,0.75); | ||||
| 	-moz-box-shadow: 3px 0px 4px #472a12; /* Firefox */ | ||||
| 	-webkit-box-shadow: 3px 0px 4px #472a12;/* Safari 和 Chrome */ | ||||
| 	box-shadow: 3px 0px 4px #472a12; /* Opera 10.5 + */ | ||||
| } | ||||
| #search { | ||||
| 	background:url(<%= asset_path 'search_block_bg.jpg' %>) repeat-x left top; | ||||
| 	margin-top:43px; | ||||
| 	padding:15px 12px; | ||||
| 	height:20px; | ||||
| } | ||||
| #search input { | ||||
| 	background:url(<%= asset_path 'search_bg.png' %>) no-repeat left top; | ||||
| 	border:none; | ||||
| 	width:174px; | ||||
| 	height:20px; | ||||
| 	padding-left:20px; | ||||
| } | ||||
| h1 { | ||||
| 	background:url(<%= asset_path 'h1_bg.png' %>) repeat-x left top; | ||||
| 	margin:0; | ||||
| 	line-height:21px; | ||||
| 	height:21px; | ||||
| 	font-size:12px; | ||||
| 	padding-left:10px; | ||||
| 	font-weight:normal; | ||||
| 	text-shadow:0px -1px 0px #000; | ||||
| 	color:#FFF; | ||||
| 	border-top:1px solid #424344; | ||||
| 	border-bottom:1px solid #1b1b1b; | ||||
| } | ||||
| #user_list .member_setup ul li.set_1 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| #roles_list .member_setup ul li.set_2 { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| #user_list .member_setup ul li.set_1 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| #roles_list .member_setup ul li.set_2 a span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| .member_setup ul { | ||||
| 	color:#fff; | ||||
| 	font-size:12px; | ||||
| 	background:url(<%= asset_path 'line.png' %>) repeat-x left bottom; | ||||
| } | ||||
| .member_setup ul li { | ||||
| 	background:url(<%= asset_path 'sidebar_li.jpg' %>) repeat-x left top; | ||||
| /*	line-height:31px;*/ | ||||
| 	border-top:1px solid #424344; | ||||
| 	border-bottom:1px solid #000000; | ||||
| } | ||||
| .member_setup ul li:hover { | ||||
| 	background-position:left bottom; | ||||
| 	border-top:1px solid #406cc3; | ||||
| 	border-bottom:1px solid #242628; | ||||
| } | ||||
| .member_setup ul li a { | ||||
| 	display: block; | ||||
|     padding: 7px 0 6px 12px; | ||||
| 	color:#c4c4c4; | ||||
| } | ||||
| .member_setup ul 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 ul li a:hover span { | ||||
| 	background-position:left bottom; | ||||
| 	color:#eeeeee; | ||||
| } | ||||
| #main{ | ||||
| 	position: relative; | ||||
| 	margin-left: 260px; | ||||
| 	padding-right: 40px; | ||||
| 	height:100%; | ||||
| } | ||||
| .main_list { | ||||
| 	padding-top:70px; | ||||
| } | ||||
| .main_list li { | ||||
| 	background-color:rgba(0,0,0,0.75); | ||||
| 	margin-bottom:20px; | ||||
| } | ||||
| .main_list li span { | ||||
| 	display:inline-block; | ||||
| 	float:left; | ||||
| 	padding-left:20px; | ||||
| 	color:#fff; | ||||
| 	font-size:14px; | ||||
| 	line-height:40px; | ||||
| 	width:18%; | ||||
| } | ||||
| .main_list li.list_head { | ||||
| 	background-color:inherit; | ||||
| 	margin-bottom:10px; | ||||
| } | ||||
| .main_list li.list_head span { | ||||
| 	font-size:16px; | ||||
| 	line-height:inherit; | ||||
| 	text-shadow: 0px 1px 1px #3e2914; | ||||
| } | ||||
| .main_list li.list_item { | ||||
| 	position:relative; | ||||
| 	border-radius: 5px; | ||||
| 	-moz-border-radius: 5px; | ||||
| 	-webkit-border-radius: 5px; | ||||
| 	-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_list li.list_item:hover { | ||||
| 	border:1px solid #3699dd; | ||||
| } | ||||
| .main_list li.list_item:hover span { | ||||
| 	line-height:38px; | ||||
| } | ||||
| .main_list li .roles { | ||||
| } | ||||
| .main_list li .name { | ||||
| } | ||||
| .main_list li .email { | ||||
| } | ||||
| .main_list li .admin{ | ||||
| } | ||||
| .main_list li .action{ | ||||
| 	float: right; | ||||
| 	width:10%; | ||||
| } | ||||
| .main_list li .action a{ | ||||
| 	background-image:url(<%= asset_path 'icon.png' %>); | ||||
| 	text-indent:-9999px; | ||||
| 	display:inline-block; | ||||
| 	width:19px; | ||||
| 	height:19px; | ||||
| 	margin-top:8px; | ||||
| 	margin-right:10px; | ||||
| } | ||||
| .main_list li .action a.show{ | ||||
| 	background-position:left top; | ||||
| } | ||||
| .main_list li .action a.edit{ | ||||
| 	background-position:-19px top; | ||||
| } | ||||
| .main_list li .action a.delete{ | ||||
| 	background-position:-38px top; | ||||
| } | ||||
| .main_list li .action a.show:hover{ | ||||
| 	background-position:left bottom; | ||||
| } | ||||
| .main_list li .action a.edit:hover{ | ||||
| 	background-position:-19px bottom; | ||||
| } | ||||
| .main_list li .action a.delete:hover{ | ||||
| 	background-position:-38px bottom; | ||||
| } | ||||
| .main_list li.list_item .roles { | ||||
| 	background-image:url(<%= asset_path 'roles_type.jpg' %>); | ||||
| 	background-repeat:repeat-x; | ||||
| 	border-radius: 5px 0 0 5px; | ||||
| 	-moz-border-radius: 5px 0 0 5px; | ||||
| 	-webkit-border-radius: 5px 0 0 5px; | ||||
| } | ||||
| .student { | ||||
| 	background-position:0 -5px; | ||||
| } | ||||
| .teacher { | ||||
| 	background-position:0 -54px; | ||||
| } | ||||
| #add_new { | ||||
| 	margin-bottom: 20px; | ||||
| } | ||||
| #add_new a { | ||||
| 	background-image:url(<%= asset_path 'icon.png' %>); | ||||
| 	background-position:-54px -17px; | ||||
| 	background-repeat:no-repeat; | ||||
| 	font-size:12px; | ||||
| 	color:#FFF; | ||||
| 	float:right; | ||||
| 	display:inline-block; | ||||
| 	padding:0 10px 0 25px; | ||||
| 	background-color: rgba(0, 0, 0, 0.75); | ||||
| 	line-height:24px; | ||||
| 	border-radius: 5px; | ||||
| 	-moz-border-radius: 5px; | ||||
| 	-webkit-border-radius: 5px; | ||||
| 	-moz-box-shadow: 3px 0px 4px #180902; /* Firefox */ | ||||
| 	-webkit-box-shadow: 3px 0px 4px #180902;/* Safari 和 Chrome */ | ||||
| 	box-shadow: 3px 0px 4px #180902; /* Opera 10.5 + */ | ||||
| } | ||||
| #add_new a:hover { | ||||
| 	background-position: -54px 3px; | ||||
| 	color:#000; | ||||
| 	font-weight:bold; | ||||
| 	background-color: rgba(255, 255, 255, 1); | ||||
| } | ||||
|  | @ -0,0 +1,305 @@ | |||
| body{ | ||||
| 	background:url(<%= asset_path 'wood_floor.jpg' %>) fixed center 0; | ||||
| 	/*background:url(images/jobs.jpg) fixed center bottom;*/ | ||||
| 	-moz-background-size:cover; | ||||
| 	background-size:cover; | ||||
|     color: #000000; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
| #hmenu{ | ||||
| 	background:url(<%= asset_path 'orbitbar.png' %>) repeat-x 0 0; | ||||
|     height: 50px; | ||||
|     position:fixed; | ||||
| 	top:0; | ||||
| 	left:0; | ||||
| 	width:100%; | ||||
| 	z-index: 5; | ||||
| } | ||||
| #orbit_icon { | ||||
| 	margin-left: 10px; | ||||
| } | ||||
| #orbit_icon a { | ||||
|     background:url(<%= asset_path 'bar_orbit.png' %>) no-repeat scroll left top transparent; | ||||
| 	height: 43px; | ||||
| 	width: 41px; | ||||
| 	display:block; | ||||
| 	text-indent:-9999px; | ||||
| } | ||||
| #orbit_icon a:hover { | ||||
|     background:url(<%= asset_path 'bar_orbit.png' %>) no-repeat scroll left 50% transparent; | ||||
| } | ||||
| #hmenu #left{ | ||||
|     left: 51px; | ||||
|     position: absolute; | ||||
|     top: 1px; | ||||
| } | ||||
| #hmenu #left a{ | ||||
|     border-left: 1px solid #000000; | ||||
|     border-right: 1px solid #7F8488; | ||||
|     color: #FFFFFF; | ||||
|     display: block; | ||||
|     font-size: 17px; | ||||
|     height: 40px; | ||||
|     line-height: 40px; | ||||
|     padding: 0 10px; | ||||
|     text-align: center; | ||||
|     text-decoration: none; | ||||
| } | ||||
| #hmenu #left a:hover{ | ||||
| 	background:#000; | ||||
|     color: #FFFFFF; | ||||
| } | ||||
| #hmenu #right{ | ||||
|     position: absolute; | ||||
|     right: 10px; | ||||
|     top: 1px; | ||||
|     width: 393px; | ||||
| } | ||||
| #hmenu #right a{ | ||||
|     border-left: 1px solid #7F8488; | ||||
|     border-right: 1px solid #7F8488; | ||||
|     color: #FFFFFF; | ||||
|     display: block; | ||||
|     font-size: 17px; | ||||
|     height: 40px; | ||||
|     line-height: 40px; | ||||
|     padding: 0 10px; | ||||
|     text-align: center; | ||||
|     text-decoration: none; | ||||
|     width: 65px; | ||||
| } | ||||
| #hmenu #right a:hover{ | ||||
| 	background:#000; | ||||
|     color: #FFFFFF; | ||||
| } | ||||
| #hmenu form{ | ||||
|     left: 27px; | ||||
|     position: absolute; | ||||
|     top: 8px; | ||||
| } | ||||
| #login_id{ | ||||
|     background:url(<%= asset_path 'bar_id.png' %>) no-repeat scroll 0 0 transparent; | ||||
|     border: medium none; | ||||
|     color: #818181; | ||||
|     font-family: arial,sans-serif; | ||||
|     height: 26px; | ||||
|     left: 70px; | ||||
|     position: absolute; | ||||
|     top: 0; | ||||
|     width: 119px; | ||||
| } | ||||
| #login_id input { | ||||
|     background: none repeat scroll 0 0 transparent; | ||||
|     border: medium none; | ||||
|     font-family: arial,sans-serif; | ||||
|     height: 15px; | ||||
|     left: 21px; | ||||
|     position: absolute; | ||||
|     top: 4px; | ||||
|     width: 92px; | ||||
| } | ||||
| 
 | ||||
| #login_pw { | ||||
|     background:url(<%= asset_path 'bar_pw.png' %>) no-repeat scroll 0 0 transparent; | ||||
|     border: medium none; | ||||
|     color: #818181; | ||||
|     font-family: arial,sans-serif; | ||||
|     height: 26px; | ||||
|     left: 193px; | ||||
|     position: absolute; | ||||
|     top: 0; | ||||
|     width: 119px; | ||||
| } | ||||
| 
 | ||||
| #login_pw input { | ||||
|     background: none repeat scroll 0 0 transparent; | ||||
|     border: medium none; | ||||
|     font-family: arial,sans-serif; | ||||
|     height: 15px; | ||||
|     left: 21px; | ||||
|     position: absolute; | ||||
|     top: 4px; | ||||
|     width: 92px; | ||||
| } | ||||
| #login_btn input { | ||||
|     background:url(<%= asset_path 'bar_btn.png' %>) no-repeat scroll 0 0 transparent; | ||||
|     border: medium none; | ||||
|     color: #FFFFFF; | ||||
|     cursor: pointer; | ||||
|     font-family: arial,sans-serif; | ||||
|     height: 26px; | ||||
|     left: 316px; | ||||
|     margin: 0; | ||||
|     padding: 0 0 2px; | ||||
|     position: absolute; | ||||
|     top: 0; | ||||
|     width: 50px; | ||||
| } | ||||
| 
 | ||||
| #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: -9px;*/ | ||||
|     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; | ||||
| } | ||||
| 
 | ||||
| #hmenu #right select{ | ||||
|     font-family: helvetica,arial,sans-serif; | ||||
|     left: 97px; | ||||
|     position: absolute; | ||||
|     top: 10px; | ||||
|     width: 120px; | ||||
| } | ||||
| .content{ | ||||
|     padding: 10px; | ||||
| } | ||||
| 
 | ||||
| #user_info{ | ||||
|     background: none repeat scroll 0 0 #FEFEFE; | ||||
|     border: 1px solid #818181; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     margin: 0 0 20px; | ||||
|     padding: 10px; | ||||
|     width: 250px; | ||||
| } | ||||
| 
 | ||||
| #user_info table{ | ||||
|     border-collapse: collapse; | ||||
|     width: 100%; | ||||
| } | ||||
| #user_info table td{ | ||||
|     padding: 3px; | ||||
| } | ||||
| 
 | ||||
| #sites_info{ | ||||
| 	background: -webkit-gradient(linear, left top, left bottom, from(white), to(#F8F8F8)); | ||||
| 	border: 1px solid #818181; | ||||
| 	border-radius: 5px 5px 5px 5px; | ||||
| 	float: left; | ||||
| 	margin: 0 20px 20px 0; | ||||
| 	width: 30%; | ||||
| 	min-width: 320px; | ||||
| } | ||||
| #sites_info h3{ | ||||
|     background: none repeat scroll 0 0 #EEEEEE; | ||||
|     border: 1px solid #DDDDDD; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     font: 24px/100% helvetica,arial,sans-serif; | ||||
|     margin: 2% 2% 0; | ||||
|     padding: 1%; | ||||
| } | ||||
| #sites_info table{ | ||||
|     background: none repeat scroll 0 0 #fff; | ||||
|     border: 1px solid #DDDDDD; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     margin: 2%; | ||||
|     width: 96%; | ||||
| } | ||||
| #sites_info table td{ | ||||
|     padding: 10px 5px; | ||||
| } | ||||
| #sites_info table th{ | ||||
|     border-right: 1px solid #DDDDDD; | ||||
|     color: #808080; | ||||
|     font-size: 18px; | ||||
|     font-weight: normal; | ||||
|     padding: 10px 5px; | ||||
|     text-align: right; | ||||
|     width: 20%; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #purchases{ | ||||
| 	background: -webkit-gradient(linear, left top, left bottom, from(white), to(#F8F8F8));  | ||||
| 	border: 1px solid #818181; | ||||
| 	border-radius: 5px 5px 5px 5px; | ||||
| 	float: left; | ||||
| 	width: 30%; | ||||
| 	min-width: 320px; | ||||
| } | ||||
| #purchases h3{ | ||||
|     background: none repeat scroll 0 0 #EEEEEE; | ||||
|     border: 1px solid #DDDDDD; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     font: 24px/100% helvetica,arial,sans-serif; | ||||
|     margin: 2% 2% 0; | ||||
|     padding: 1%; | ||||
| } | ||||
| #purchases table{ | ||||
|     background: none repeat scroll 0 0 #fff; | ||||
|     border: 1px solid #DDDDDD; | ||||
|     border-radius: 5px 5px 5px 5px; | ||||
|     margin: 2%; | ||||
|     width: 96%; | ||||
| } | ||||
| #purchases table th{ | ||||
|     border-right: 1px solid #DDDDDD; | ||||
|     color: #808080; | ||||
|     font-size: 18px; | ||||
|     font-weight: normal; | ||||
|     padding: 10px 5px; | ||||
|     text-align: right; | ||||
|     width: 20%; | ||||
| } | ||||
| #purchases table td{ | ||||
|     padding: 10px 5px; | ||||
| } | ||||
| .design_page{ | ||||
| } | ||||
| .style_list{ | ||||
| 	background:url(<%= asset_path 'preview.png' %>) no-repeat 0 0; | ||||
| 	height:246px; | ||||
|     margin: 20px 0; | ||||
|     padding: 0 0 0 236px; | ||||
| } | ||||
| .style_list ul{ | ||||
| 	margin:0; | ||||
| 	padding:0; | ||||
| } | ||||
| .style_list li{ | ||||
|     color: #EDA330; | ||||
|     font-size: 20px; | ||||
|     list-style: none outside none; | ||||
|     margin: 0 0 20px; | ||||
| } | ||||
| .list_title{ | ||||
|     color: #818181; | ||||
|     display: block; | ||||
|     font: 24px/100% ·L³n¥¿¶ÂÅé,sans-serif; | ||||
| } | ||||
| .buy_btn a{ | ||||
|     background:url(<%= asset_path "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; | ||||
| } | ||||
| .buy_btn a:hover{ | ||||
| 	background-position:0 bottom; | ||||
| } | ||||
| .bought_btn{ | ||||
|     background:url(<%= asset_path "bought_btn.png" %>) no-repeat scroll 0 0 transparent; | ||||
|     color: #FFFFFF; | ||||
|     font-size: 22px; | ||||
|     height: 37px; | ||||
|     line-height: 37px; | ||||
|     text-align: center; | ||||
|     text-shadow: 0 1px 0 #C06408; | ||||
|     width: 170px; | ||||
| } | ||||
|  | @ -1,6 +1,6 @@ | |||
| class Admin::UserAttributesController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   layout "member" | ||||
|   before_filter :authenticate_user! | ||||
| 
 | ||||
|   def index | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| class Admin::UserInfoModelsController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   layout "member" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| class Admin::UserRoleModelsController < ApplicationController | ||||
|    | ||||
|   layout "admin" | ||||
|   layout "member" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| class Panel::UsersController < ApplicationController | ||||
| class Admin::UsersController < ApplicationController | ||||
|    | ||||
|   layout "panel" | ||||
|   layout "member" | ||||
|   before_filter :authenticate_user! | ||||
|    | ||||
|   def index | ||||
|  | @ -28,7 +28,7 @@ class Panel::UsersController < ApplicationController | |||
|         user_role.save | ||||
|         user_role.attribute_values.each(&:save) | ||||
|       end | ||||
|       flash[:notice] = t('panel.create_success_user') | ||||
|       flash[:notice] = t('admin.create_success_user') | ||||
|       redirect_to :action => :index | ||||
|     else | ||||
|       render :action => :new       | ||||
|  | @ -48,10 +48,10 @@ class Panel::UsersController < ApplicationController | |||
|     @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('panel.cant_revoke_self_admin') | ||||
|       flash.now[:error] = t('admin.cant_revoke_self_admin') | ||||
|     end | ||||
|     if !flash[:error] && @user.update_attributes(params[:user]) | ||||
|       flash[:notice] = t('panel.update_success_user') | ||||
|       flash[:notice] = t('admin.update_success_user') | ||||
|       redirect_to :action => :index | ||||
|     else | ||||
|       get_info_role_models | ||||
|  | @ -61,7 +61,7 @@ class Panel::UsersController < ApplicationController | |||
|    | ||||
|   def destroy | ||||
|     if params[:id].eql?(session['warden.user.user.key'][1].to_s) | ||||
|       flash[:error] = t('panel.cant_delete_self') | ||||
|       flash[:error] = t('admin.cant_delete_self') | ||||
|     else | ||||
|       @user = User.find(params[:id])  | ||||
|       @user.destroy | ||||
|  | @ -1,4 +1,4 @@ | |||
| module Panel::UserHelper | ||||
| module Admin::UserHelper | ||||
| 
 | ||||
|   def show_user_attribute(object, key, locale = '') | ||||
|     attribute = object.attribute_values.detect {|av| av.key.to_s.eql?(key.to_s) || av[locale.to_s].eql?(locale.to_s) } rescue nil | ||||
|  | @ -64,6 +64,17 @@ class User | |||
|     (self.active_roles.nil? || self.active_roles.empty?) ? '-' : self.active_roles.map{|role| I18nVariable.first(:conditions => {:key => role})[I18n.locale] rescue role}.join(' / ') | ||||
|   end | ||||
|    | ||||
|   def name | ||||
|     infos = self.user_infos.detect {|info| info.key.to_s.eql?('profile') } | ||||
|     if infos | ||||
|       first_name = infos.attribute_values.detect {|value| value.key.to_s.eql?('first_name') }[I18n.locale.to_s] rescue nil | ||||
|       last_name = infos.attribute_values.detect {|value| value.key.to_s.eql?('last_name') }[I18n.locale.to_s] rescue nil | ||||
|       return "#{first_name} #{last_name}" | ||||
|     else | ||||
|       return nil | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   # Remove empty values | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Department</td> | ||||
| 			<td>Design Deptartment</td> | ||||
| 			<td>Computer Science</td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Version</td> | ||||
|  | @ -19,14 +19,15 @@ | |||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Visitor Counter</td> | ||||
| 			<td>1112201</td> | ||||
| 			<td>2,201</td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Site Status</td> | ||||
| 			<td>Available</td> | ||||
| 			<td>Registration Status</td> | ||||
| 			<td><%= render 'registration' %></td> | ||||
| 		</tr> | ||||
| 		<tr> | ||||
| 			<td>Updates</td> | ||||
| 			<td><%= render 'update' %></td> | ||||
| 		</tr> | ||||
| 	</table> | ||||
| </div> | ||||
| <%= render 'registration' %> | ||||
| 
 | ||||
| <%= render 'update' %> | ||||
| </div> | ||||
|  | @ -1,12 +1,16 @@ | |||
| <% content_for :secondary do %> | ||||
|   <ul class="list"> | ||||
|     <li><%= link_to t("admin.new_user_#{@attribute}"), eval("new_admin_user_#{@attribute}_model_path"), :class => 'button positive' %></li> | ||||
|   </ul> | ||||
| 	<div id='roles_list'> | ||||
| 		<div class="member_setup"> | ||||
| 			<h1>Member Setup</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> | ||||
| 			</ul> | ||||
| 		</div> | ||||
| 	</div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <h1><%= t("admin.list_user_#{@attribute}s") %></h1> | ||||
| 
 | ||||
| <table> | ||||
| <!-- <table> | ||||
|   <tr> | ||||
|       <th><%= t("admin.#{@attribute}") %></th> | ||||
|       <th><%= t('admin.key') %></th> | ||||
|  | @ -29,4 +33,26 @@ | |||
|     </td>	 | ||||
|   </tr> | ||||
| <% end %> | ||||
| </table> | ||||
| </table> --> | ||||
| 
 | ||||
| <div id="add_new" class="clear"> | ||||
| <%= link_to t('admin.new_user_role'), new_admin_user_role_model_path %> | ||||
| </div> | ||||
| <ul> | ||||
| 	<li class="list_head clear"> | ||||
| 		<span class="roles">Roles</span> | ||||
| 		<span class="action">Action</span> | ||||
| 	</li> | ||||
| 	<% @user_attribute_models.each do |user_attribute_model| %> | ||||
| 		<li class="list_item clear"> | ||||
| 			<span class="roles <%= user_attribute_model.i18n_variable[I18n.locale].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' %> | ||||
| 				<%= link_to t(:delete), eval("admin_user_#{@attribute}_model_path(user_attribute_model)"), :class => 'delete', :confirm => t('sure?'), :method => :delete unless user_attribute_model.is_built_in? %> | ||||
| 			</span> | ||||
| 		</li> | ||||
| 	<% end %>			 | ||||
| </ul> | ||||
| <div id="add_new" class="clear"> | ||||
| 	<%= link_to t('admin.new_user_role'), new_admin_user_role_model_path %> | ||||
| </div> | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| </div> | ||||
| 
 | ||||
| <div> | ||||
|   <label><%= t('panel.my_avatar') %></label> | ||||
|   <label><%= t('admin.my_avatar') %></label> | ||||
|   <%= image_tag(@user.avatar.thumb.url) if @user.avatar? %> | ||||
|   <%= file_field_tag 'file' %> | ||||
|   <%= hidden_field_tag :avatar_cache %> | ||||
|  | @ -18,14 +18,14 @@ | |||
|     <%= f.text_field :email %> | ||||
|   </p> | ||||
|   <p> | ||||
|     <%= t('panel.admin') %> | ||||
|     <%= t('admin.admin') %> | ||||
|     <%= f.check_box :admin %> | ||||
|   </p> | ||||
| </div> | ||||
| 
 | ||||
| <% if @user_info_models %> | ||||
|   <fieldset> | ||||
|   <legend><%= t('panel.infos') %></legend> | ||||
|   <legend><%= t('admin.info') %></legend> | ||||
|     <% @user_info_models.each do |ua| %> | ||||
|       <fieldset> | ||||
|         <%= render :partial => 'user_attribute', | ||||
|  | @ -38,7 +38,7 @@ | |||
| 
 | ||||
| <% if @user_role_models %> | ||||
|   <fieldset id="roles" <%= raw(' style="display: none;"') unless (@user.active_roles.size > 0 rescue nil) %>> | ||||
|   <legend><%= t('panel.roles') %></legend> | ||||
|   <legend><%= t('admin.roles') %></legend> | ||||
|     <% @user_role_models.each do |ua| %> | ||||
|       <fieldset id="role_<%= ua.key %>" <%= raw(' style="display: none;"') unless (@user.active_roles.include?(ua.key) rescue nil) %>> | ||||
|         <%= render :partial => 'user_attribute', | ||||
|  | @ -1,14 +1,14 @@ | |||
| <% content_for :secondary do %> | ||||
|     <ul class="list"> | ||||
|         <li><%= link_to t(:new_user, :scope => :panel), new_panel_user_path, :class => 'button positive' %></li> | ||||
|         <li><%= link_to t('admin.new_user'), new_admin_user_path, :class => 'button positive' %></li> | ||||
|     </ul> | ||||
| <% end -%> | ||||
| 
 | ||||
| <%= flash_messages %> | ||||
| 
 | ||||
| <h1><%= t('panel.user_panel') %></h1> | ||||
| <h1><%= t('admin.user_panel') %></h1> | ||||
| 
 | ||||
| <%= form_for @user, :url => panel_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
| <%= form_for @user, :url => admin_user_path(@user), :html => { :multipart => true } do |f| %> | ||||
|   <%= f.error_messages %> | ||||
|     <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|      | ||||
|  | @ -0,0 +1,42 @@ | |||
| <% content_for :secondary do %> | ||||
| 	<div id='user_list'> | ||||
| 		<div class="member_setup"> | ||||
| 	  <h1>Member Setup</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> | ||||
| 		</ul>	 | ||||
| 		</div> | ||||
| 	</div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <%= flash_messages %> | ||||
| 
 | ||||
| <div id="add_new" class="clear"> | ||||
| 	<%= link_to t('admin.new_user'), new_admin_user_path %> | ||||
| </div> | ||||
| <ul> | ||||
| 	<li class="list_head clear"> | ||||
| 		<span class="roles">Roles</span> | ||||
| 		<span class="name">Name</span> | ||||
| 		<span class="email">Email</span> | ||||
| 		<span class="admin">Admin</span> | ||||
| 		<span class="action">Action</span> | ||||
| 	</li> | ||||
| 	<% @users.each do |user| %> | ||||
| 		<li class="list_item clear"> | ||||
| 			<span class="roles <%= user.get_roles.downcase %>"><%= user.get_roles %></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="clear"> | ||||
| 	<%= link_to t('admin.new_user'), new_admin_user_path %> | ||||
| </div> | ||||
|  | @ -1,12 +1,12 @@ | |||
| <% content_for :secondary do %> | ||||
|   <ul class="list"> | ||||
|     <li><%= link_to t(:new_user, :scope => :panel), new_panel_user_path, :class => 'button positive' %></li> | ||||
|     <li><%= link_to t('admin.new_user'), new_admin_user_path, :class => 'button positive' %></li> | ||||
|   </ul> | ||||
| <% end -%> | ||||
| 
 | ||||
| <h1><%= t('panel.user_panel') %></h1> | ||||
| <h1><%= t('admin.user_panel') %></h1> | ||||
| 
 | ||||
| <%= form_for @user, :url => panel_users_path, :html => { :multipart => true } do |f| %> | ||||
| <%= form_for @user, :url => admin_users_path, :html => { :multipart => true } do |f| %> | ||||
|   <%= f.error_messages %> | ||||
|   <%= render :partial => 'form', :locals => { :f => f } %> | ||||
|    | ||||
|  | @ -1,10 +1,10 @@ | |||
| <% content_for :secondary do %> | ||||
|     <ul class="list"> | ||||
|         <li><%= link_to t(:new_user, :scope => :panel), new_panel_user_path, :class => 'button positive' %></li> | ||||
|         <li><%= link_to t('admin.new_user'), new_admin_user_path, :class => 'button positive' %></li> | ||||
|     </ul> | ||||
| <% end -%> | ||||
| 
 | ||||
| <h1><%= t('panel.user_panel') %></h1> | ||||
| <h1><%= t('admin.user_panel') %></h1> | ||||
| 
 | ||||
| <%= image_tag(@user.avatar.thumb.url) rescue nil %> | ||||
| 
 | ||||
|  | @ -12,7 +12,7 @@ | |||
| 
 | ||||
| <% if @user_info_models %> | ||||
|   <fieldset> | ||||
|     <legend><%= t('panel.infos') %></legend> | ||||
|     <legend><%= t('admin.info') %></legend> | ||||
|     <% @user_info_models.each do |am| %> | ||||
|       <%= render :partial => 'show_user_attribute', :locals => {:am => am, :object => @user.get_info_from_model_key(am.key)} %> | ||||
|     <% end -%> | ||||
|  | @ -21,7 +21,7 @@ | |||
| 
 | ||||
| <% if @user.active_roles.size > 0 %> | ||||
|   <fieldset> | ||||
|     <legend><%= t('panel.roles') %></legend> | ||||
|     <legend><%= t('admin.roles') %></legend> | ||||
|     <% @user.get_active_role_models.each do |am| %> | ||||
|       <%= render :partial => 'show_user_attribute', :locals => {:am => am, :object => @user.get_role_from_model_key(am.key)} %> | ||||
|     <% end -%> | ||||
|  | @ -0,0 +1,10 @@ | |||
| <ul id="orblist"> | ||||
| 	<li><%= link_to t('homepage'), root_path, :class => 'orblink' %></li> | ||||
| 	<li><%= link_to t('admin.item'), admin_items_path, :class => 'orblink' %></li> | ||||
| 	<li><%= link_to t('admin.design'), admin_designs_path, :class => 'orblink' %></li> | ||||
| 	<li><%= link_to t('admin.purchase'), admin_purchases_path, :class => 'orblink' %></li> | ||||
| 	<li><%= link_to t('admin.asset'), admin_assets_path, :class => 'orblink' %></li> | ||||
| 	<li><%= link_to t('admin.member'), admin_users_path, :class => 'orblink' %></li> | ||||
| 	<li><%= link_to t('admin.translation'), admin_translations_path, :class => 'orblink' %></li> | ||||
| 	<li><%= link_to t('admin.site'), admin_sites_path, :class => 'orblink' %></li> | ||||
| </ul> | ||||
|  | @ -1,67 +1,57 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | ||||
| <html> | ||||
| <head> | ||||
|   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
|   <title>R4</title> | ||||
|   <link rel="shortcut icon" href="/favicon.ico"> | ||||
|   <%= yield :page_specific_link %> | ||||
|   <%= stylesheet_link_tag "admin", :media => "screen, projection" %> | ||||
|   <%= stylesheet_link_tag    "application" %> | ||||
|   <%= javascript_include_tag "application" %> | ||||
|   <%= yield :page_specific_css %> | ||||
|   <%= csrf_meta_tag %> | ||||
| 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
| 	<title>R4</title> | ||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | ||||
| 	<%= yield :page_specific_link %> | ||||
| 	<%= stylesheet_link_tag "admin", :media => "screen, projection" %> | ||||
| 	<%= stylesheet_link_tag    "application" %> | ||||
| 	<%= javascript_include_tag "application" %> | ||||
| 	<%= yield :page_specific_css %> | ||||
| 	<%= csrf_meta_tag %> | ||||
| </head> | ||||
| <body> | ||||
| 
 | ||||
|     <div id="panel_banner_link" > | ||||
| 	 | ||||
| 	<div id="orbit"> | ||||
| 		<ul id="orblist"> | ||||
| 			<li><%= link_to t('homepage'), root_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.item'), admin_items_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.design'), admin_designs_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.purchase'), admin_purchases_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.asset'), admin_assets_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.user_info'), admin_user_info_models_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.user_role'), admin_user_role_models_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.translation'), admin_translations_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.site'), admin_sites_path, :class => 'orblink' %></li> | ||||
| 		</ul> | ||||
| 	</div> | ||||
| 	 | ||||
|     <div class="hmenu"> | ||||
| 		<div class="lang"> | ||||
| 			<%= render 'layouts/lang_menu' %> | ||||
| 	<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> | ||||
| 	 | ||||
| 		<%= render 'devise/menu/login_items' %> | ||||
|     </div> | ||||
| 	 | ||||
|   </div> | ||||
| <div id="panel_container"> | ||||
| 
 | ||||
| 	</div> | ||||
| 	<div id="panel_container"> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   <div id="panel_content"> | ||||
|   	<div class="secondary"> | ||||
| 		<div class="secondary2"> | ||||
| 			<%= yield :secondary %> | ||||
| 		<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>Rulingcom</p> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	 | ||||
|     <div class="main"> | ||||
| 		<div class="main2"> | ||||
| 			<%= yield %> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	 | ||||
|   	<div class="tertiary"><%= yield :tertiary %></div> | ||||
|   </div> | ||||
|    | ||||
|   <div id="panel_footer"> | ||||
|       <p>Rulingcom</p> | ||||
|   </div> | ||||
| </div> | ||||
| <%= yield :page_specific_javascript %> | ||||
| 	<%= yield :page_specific_javascript %> | ||||
| </body> | ||||
| </html> | ||||
|  |  | |||
|  | @ -23,18 +23,8 @@ | |||
| 
 | ||||
|     <div id="panel_banner_link" > | ||||
| 
 | ||||
| 	<div id="orbit"> | ||||
| 		<ul id="orblist"> | ||||
| 			<li><%= link_to t('homepage'), root_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.item'), admin_items_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.design'), admin_designs_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.purchase'), admin_purchases_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.asset'), admin_assets_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.user_info'), admin_user_info_models_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.user_role'), admin_user_role_models_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.translation'), admin_translations_path, :class => 'orblink' %></li> | ||||
| 			<li><%= link_to t('admin.site'), admin_sites_path, :class => 'orblink' %></li> | ||||
| 		</ul> | ||||
| 	<div id="orbit">		 | ||||
| 			<%= render 'layouts/drop_down_menu' %> | ||||
| 	</div> | ||||
| 	 | ||||
|     <div class="hmenu"> | ||||
|  |  | |||
|  | @ -0,0 +1,46 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | ||||
| <html> | ||||
| <head> | ||||
| 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
| 	<title>R4</title> | ||||
| 	<link rel="shortcut icon" href="/favicon.ico"> | ||||
| 	<%= yield :page_specific_link %> | ||||
| 	<%= stylesheet_link_tag 'admin', "member", 'messy', :media => "screen, projection" %> | ||||
| 	<%#= stylesheet_link_tag    "application" %> | ||||
| 	<%= javascript_include_tag "application" %> | ||||
| 	<%= yield :page_specific_css %> | ||||
| 	<%= csrf_meta_tag %> | ||||
| </head> | ||||
| 
 | ||||
| <body> | ||||
| 	<div id="content"> | ||||
| 		<div id="hmenu"> | ||||
| 			<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="sidebar"> | ||||
| 			<div id="search"> | ||||
| 				<input id="user_search" name="user[username]" size="30" type="text" /> | ||||
| 			</div> | ||||
| 			<%= yield :secondary %> | ||||
| 		</div> | ||||
| 		 | ||||
| 		<div id="main"> | ||||
| 			<div class="main_list"> | ||||
| 				<%= yield %> | ||||
| 		</div> | ||||
| 		 | ||||
| 	</div> | ||||
| 	 | ||||
| 	<%= yield :page_specific_javascript %> | ||||
| </body> | ||||
| </html> | ||||
|  | @ -1,33 +0,0 @@ | |||
| <% content_for :secondary do %> | ||||
|   <ul class="list"> | ||||
|     <li><%= link_to t('panel.new_user'), new_panel_user_path, :class => 'button positive' %></li> | ||||
|   </ul> | ||||
| <% end -%> | ||||
| 
 | ||||
| <%= flash_messages %> | ||||
| 
 | ||||
| <h1><%= t('panel.list_users') %></h1> | ||||
| 
 | ||||
| <table> | ||||
|   <tr> | ||||
|     <th><%= t('panel.roles') %></th> | ||||
|     <th><%= t('panel.name') %></th> | ||||
|     <th><%= t('panel.email') %></th> | ||||
|     <th><%= t('panel.admin') %></th> | ||||
|     <th><%= t('panel.action') %></th> | ||||
|   </tr> | ||||
| 
 | ||||
|   <% @users.each do |user| %> | ||||
|     <tr> | ||||
|       <td><%= user.get_roles %></td> | ||||
|       <td><%= user[:name] %></td> | ||||
|       <td><%= user.email %></td> | ||||
|       <td><%= user.admin ? t(:yes_) : t(:no_) %></td> | ||||
|       <td> | ||||
|         <%= link_to t(:show), panel_user_path(user) %> | | ||||
|         <%= link_to t(:edit), edit_panel_user_path(user) %> |  | ||||
|         <%= link_to t(:delete), panel_user_path(user), :confirm => t('sure?'), :method => :delete %> | ||||
|       </td> | ||||
|     </tr>     | ||||
|   <% end %> | ||||
| </table> | ||||
|  | @ -24,13 +24,17 @@ en: | |||
|   yes_: "Yes" | ||||
|    | ||||
|   admin: | ||||
|     action: Action | ||||
|     add_language: Add language | ||||
|     admin: Admin | ||||
|     action: Action | ||||
|     announcement: Announcement | ||||
|     asset: Asset | ||||
|     attributes: Attributes | ||||
|     cant_delete_self: You can not delete yourself. | ||||
|     cant_revoke_self_admin: You can not revoke your admin role yourself. | ||||
|     class: Class | ||||
|     content: Content | ||||
|     create_error_link: Error when creating link. | ||||
|     create_error_page: Error when creating page. | ||||
|     create_success_home: Homepage was successfully created. | ||||
|  | @ -38,7 +42,7 @@ en: | |||
|     create_success_link: Link was successfully created. | ||||
|     create_success_page: Page was successfully created. | ||||
|     create_success_snippet: Snippet was successfully created. | ||||
|     content: Content | ||||
|     create_success_user: User was successfully created. | ||||
|     data: Data | ||||
|     delete_language: Delete language | ||||
|     description: Description | ||||
|  | @ -51,11 +55,14 @@ en: | |||
|     editing_snippet: Editing snippet | ||||
|     editing_user_info: Editing user information | ||||
|     editing_user_role: Editing user role | ||||
|     email: Email | ||||
|     enable_language: Enable language | ||||
|     file_name: Filename | ||||
|     file_size: File size | ||||
|     format: Format | ||||
|     home: Home | ||||
|     id: ID | ||||
|     info: Information | ||||
|     is_published: Is published | ||||
|     item: Item | ||||
|     key: Key | ||||
|  | @ -67,11 +74,14 @@ en: | |||
|     list_items: Items list | ||||
|     list_puchases: Purchases list | ||||
|     list_snippets: Snippets list | ||||
|     list_users: Users list | ||||
|     list_user_infos: User information list | ||||
|     list_user_roles: User roles list | ||||
|     member: Member | ||||
|     move_down: Move down | ||||
|     move_up: Move up | ||||
|     multilingual: Multilingual | ||||
|     my_avatar: My Avatar | ||||
|     no_home_page: You don't have a homepage | ||||
|     no_layout: You don't have a layout | ||||
|     name: Name | ||||
|  | @ -82,6 +92,7 @@ en: | |||
|     new_link: New link | ||||
|     new_page: New page | ||||
|     new_snippet: New snippet | ||||
|     new_user: New user | ||||
|     new_user_info: New user information | ||||
|     new_user_role: New user role | ||||
|     non_multilingual: Non multilingual | ||||
|  | @ -90,13 +101,13 @@ en: | |||
|     position: Position | ||||
|     published?: Published? | ||||
|     purchase: Purchase | ||||
|     info: Information | ||||
|     registered: Registered | ||||
|     role: Role | ||||
|     roles: Roles | ||||
|     title: Title | ||||
|     translation: Translation | ||||
|     type: Type | ||||
|     up_to_date: Up-do-date | ||||
|     up_to_date: Up-to-date | ||||
|     update_error_link: Error when updating link. | ||||
|     update_error_page: Error when updating page. | ||||
|     update_success_content: Content was successfully updated. | ||||
|  | @ -105,24 +116,11 @@ en: | |||
|     update_success_link: Link was successfully updated. | ||||
|     update_success_page: Page was successfully updated. | ||||
|     update_success_snippet: Snippet was successfully updated. | ||||
|     update_success_user: User was successfully updated. | ||||
|     url: URL | ||||
|     user: User | ||||
|     user_info: User information | ||||
|     user_panel: User panel | ||||
|     user_role: User role | ||||
|      | ||||
|   panel: | ||||
|     action: Action | ||||
|     admin: Admin | ||||
|     cant_delete_self: You can not delete yourself. | ||||
|     cant_revoke_self_admin: You can not revoke your admin role yourself. | ||||
|     create_success_user: User was successfully created. | ||||
|     email: Email | ||||
|     home: Home | ||||
|     list_users: Users list | ||||
|     my_avatar: My Avatar | ||||
|     name: Name | ||||
|     new_user: New user | ||||
|     infos: Information | ||||
|     roles: Roles | ||||
|     update_success_user: User was successfully updated. | ||||
|     user: User | ||||
|     user_panel: User panel | ||||
|  |  | |||
|  | @ -19,12 +19,15 @@ zh_tw: | |||
|   yes_: "Yes" | ||||
|    | ||||
|   admin: | ||||
|     action: 行動 | ||||
|     add_language: 新增語言 | ||||
|     admin: 管理 | ||||
|     action: 行動 | ||||
|     announcement: 公告 | ||||
|     asset: 資產 | ||||
|     attributes: 屬性 | ||||
|     cant_delete_self: 您不可以刪除自己。 | ||||
|     cant_revoke_self_admin: 您不可以撤銷自己的管理作用。 | ||||
|     class: 階級 | ||||
|     content: 內容 | ||||
|     create_error_link: 創建連接時出錯。 | ||||
|  | @ -33,7 +36,8 @@ zh_tw: | |||
|     create_success_layout: 樣板已成功創建。 | ||||
|     create_success_link: 連結已成功創建。 | ||||
|     create_success_page: 頁面已成功創建。 | ||||
|     create_success_snippet: 片段已成功創建。 | ||||
|     create_success_snippet: 片段已成功創建 | ||||
|     create_success_user: 用戶已成功創建。。 | ||||
|     data: 數據 | ||||
|     delete_language: 刪除語言 | ||||
|     description: 描述 | ||||
|  | @ -45,11 +49,14 @@ zh_tw: | |||
|     editing_snippet: 編輯片段 | ||||
|     editing_user_info: 編輯用戶資料 | ||||
|     editing_user_role: 編輯用戶角色 | ||||
|     email: Email | ||||
|     enable_language: 啟用語言 | ||||
|     file_name: 檔名 | ||||
|     file_size: 檔案大小 | ||||
|     format: 格式 | ||||
|     home: 首頁 | ||||
|     id: ID | ||||
|     info: 資料 | ||||
|     is_published: 被出版 | ||||
|     item: 項目 | ||||
|     key: 關鍵 | ||||
|  | @ -60,11 +67,14 @@ zh_tw: | |||
|     list_items: 項目清單 | ||||
|     list_layouts: 佈局清單 | ||||
|     list_snippets: 斷片清單 | ||||
|     list_users: 使用清單 | ||||
|     list_user_infos: 用戶資料清單 | ||||
|     list_user_roles: 用戶角色清單 | ||||
|     member: 會員 | ||||
|     move_down: 往下移 | ||||
|     move_up: 往上移 | ||||
|     multilingual: 多種語言 | ||||
|     my_avatar: 我的頭像 | ||||
|     no_home_page: 您沒有首頁 | ||||
|     no_layout: 您沒有佈局 | ||||
|     name: 名稱 | ||||
|  | @ -75,6 +85,7 @@ zh_tw: | |||
|     new_link: 新增連結 | ||||
|     new_page: 新增頁面 | ||||
|     new_snippet: 新增片段 | ||||
|     new_user: 新增使用 | ||||
|     new_user_info: 新增用戶資料 | ||||
|     new_user_role: 新增用戶角色 | ||||
|     non_multilingual: 非多種語言 | ||||
|  | @ -82,8 +93,8 @@ zh_tw: | |||
|     orig_upload_file: 原上傳檔名 | ||||
|     position: 位置 | ||||
|     published?: 發布? | ||||
|     info: 資料 | ||||
|     role: 角色 | ||||
|     roles: 角色。 | ||||
|     title: 標題 | ||||
|     translation: 翻譯 | ||||
|     type: 類型 | ||||
|  | @ -95,27 +106,14 @@ zh_tw: | |||
|     update_success_link: 連結已成功更新。 | ||||
|     update_success_page: 頁面已成功更新。 | ||||
|     update_success_snippet: 片段已成功更新。 | ||||
|     update_success_user: 用戶已成功更新 | ||||
|     url: URL | ||||
|     user: 用戶 | ||||
|     user_info: 用戶資料 | ||||
|     user_panel: 用戶面板 | ||||
|     user_role: 用戶角色 | ||||
|      | ||||
|   panel: | ||||
|     action: 行動 | ||||
|     admin: 管理 | ||||
|     cant_delete_self: 您不可以刪除自己。 | ||||
|     cant_revoke_self_admin: 您不可以撤銷自己的管理作用。 | ||||
|     create_success_user: 用戶已成功創建。 | ||||
|     email: Email | ||||
|     home: 首頁 | ||||
|     list_users: 使用清單 | ||||
|     my_avatar: 我的頭像 | ||||
|     name: 名稱 | ||||
|     new_user: 新增使用 | ||||
|     infos: 資料 | ||||
|     roles: 角色 | ||||
|     update_success_user: 用戶已成功更新。 | ||||
|     user: 用戶 | ||||
|     user_panel: 用戶面板 | ||||
|      | ||||
|      | ||||
|      | ||||
|  |  | |||
|  | @ -46,6 +46,7 @@ PrototypeR4::Application.routes.draw do | |||
|     resources :sites | ||||
|     resources :snippets | ||||
|     resources :translations | ||||
|     resources :users | ||||
|     resources :user_info_models | ||||
|     resources :user_role_models | ||||
|   end | ||||
|  |  | |||