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