Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
Conflicts: config/locales/zh.yml
This commit is contained in:
commit
2542dd5592
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
||||||
<h3><%=l(:label_news)%></h3>
|
<h3><%=l(:label_edit_contest_notice)%></h3>
|
||||||
|
|
||||||
<%= labelled_form_for @contestnotification,
|
<%= labelled_form_for @contestnotification,
|
||||||
:url => contest_contestnotification_path,
|
:url => contest_contestnotification_path,
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
|
<script>
|
||||||
|
function cancel() {
|
||||||
|
$("#add_contestnotification").hide();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
<div class="contextual">
|
<div class="contextual">
|
||||||
<%= link_to(l(:button_edit),
|
<%= link_to(l(:button_edit),
|
||||||
edit_contest_contestnotification_path(@contest, @contestnotification),
|
edit_contest_contestnotification_path(@contest, @contestnotification),
|
||||||
|
@ -27,7 +31,7 @@
|
||||||
|
|
||||||
<div id="notificationcomments" style="margin-bottom:16px;">
|
<div id="notificationcomments" style="margin-bottom:16px;">
|
||||||
|
|
||||||
<div style="margin:15px">
|
<div style="margin:15px" id ="add_contestnotification">
|
||||||
<span class="font_description">
|
<span class="font_description">
|
||||||
<%= textilizable(@contestnotification, :description) %>
|
<%= textilizable(@contestnotification, :description) %>
|
||||||
</span>
|
</span>
|
||||||
|
@ -62,7 +66,17 @@
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
<%= submit_tag l(:button_add) %>
|
<%= submit_tag l(:button_add) %>
|
||||||
<%= submit_tag l(:button_cancel), :onclick => "cancel();" %>
|
|
||||||
|
<!--modified by longjun 点击取消时收回添加回复的部分-->
|
||||||
|
|
||||||
|
<%= submit_tag l(:button_cancel),
|
||||||
|
:name => nil,
|
||||||
|
:onclick => "cancel();",
|
||||||
|
:type => 'button',
|
||||||
|
:class => "enterprise",
|
||||||
|
:onmouseout => "this.style.backgroundPosition = 'left top'",
|
||||||
|
:onmouseover => "this.style.backgroundPosition = 'left -30px'"
|
||||||
|
%>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
@ -97,7 +111,8 @@
|
||||||
</span>
|
</span>
|
||||||
<%= l(:label_comment_plural) %>
|
<%= l(:label_comment_plural) %>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<!--modified by longjun 删除变成竖的,IE浏览器兼容,将宽度设置为40px-->
|
||||||
|
<td width="40px">
|
||||||
<% if notificationcomment.author==User.current|| User.current.admin? %>
|
<% if notificationcomment.author==User.current|| User.current.admin? %>
|
||||||
<%= link_to(l(:label_bid_respond_delete),
|
<%= link_to(l(:label_bid_respond_delete),
|
||||||
contest_contestnotification_notificationcomment_path(@contest, @contestnotification,notificationcomment),
|
contest_contestnotification_notificationcomment_path(@contest, @contestnotification,notificationcomment),
|
||||||
|
|
|
@ -1,51 +1,77 @@
|
||||||
<%#= error_messages_for 'softapplication' %>
|
<%#= error_messages_for 'softapplication' %>
|
||||||
|
|
||||||
<script type="text/javascript" xmlns="http://www.w3.org/1999/html">
|
<script type="text/javascript" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html">
|
||||||
//验证作品名称
|
//验证作品名称
|
||||||
function regexName()
|
function regexName()
|
||||||
{
|
{
|
||||||
var name = $("#softapplication_name").val();
|
var name = $("#softapplication_name").val();
|
||||||
if(name.length ==0)
|
if(name.length == 0)
|
||||||
{
|
{
|
||||||
$("#spane_name_notice").text("作品名称不能为空");
|
$("#spane_name_notice").text("<%= l(:label_no_softapplication_name) %>");
|
||||||
$("#spane_name_notice").css('color','#ff0000');
|
$("#spane_name_notice").css('color','#ff0000');
|
||||||
$("#spane_name_notice").focus();
|
$("#spane_name_notice").focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if(name.length <= 25)
|
else if(name.length <= 25)
|
||||||
{
|
{
|
||||||
$("#spane_name_notice").text("填写正确");
|
$("#spane_name_notice").text("<%= l(:label_field_correct) %>");
|
||||||
$("#spane_name_notice").css('color','#008000');
|
$("#spane_name_notice").css('color','#008000');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$("#spane_name_notice").text("作品名称超过25个汉字");
|
$("#spane_name_notice").text("<%= l(:label_work_name_condition) %>");
|
||||||
$("#spane_name_notice").css('color','#ff0000');
|
$("#spane_name_notice").css('color','#ff0000');
|
||||||
$("#spane_name_notice").focus();
|
$("#spane_name_notice").focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// added by longjun
|
||||||
|
//验证作品简介
|
||||||
|
function regexDescription()
|
||||||
|
{
|
||||||
|
var name = $("#softapplication_description").val();
|
||||||
|
if(name.length ==0)
|
||||||
|
{
|
||||||
|
$("#span_sofapplication_description").text("<%= l(:label_no_softapplication_description) %>");
|
||||||
|
$("#span_sofapplication_description").css('color','#ff0000');
|
||||||
|
$("#span_sofapplication_description").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if(name.length <= 500)
|
||||||
|
{
|
||||||
|
$("#span_sofapplication_description").text("<%= l(:label_field_correct) %>");
|
||||||
|
$("#span_sofapplication_description").css('color','#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#span_sofapplication_description").text("<%= l(:label_work_description_condition) %>");
|
||||||
|
$("#span_sofapplication_description").css('color','#ff0000');
|
||||||
|
$("#span_sofapplication_description").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
//验证运行平台
|
//验证运行平台
|
||||||
function regexWorkdescription()
|
function regexWorkdescription()
|
||||||
{
|
{
|
||||||
var workDescription = $("#softapplication_android_min_version_available").val();
|
var workDescription = $("#softapplication_android_min_version_available").val();
|
||||||
if(workDescription.length ==0)
|
if(workDescription.length ==0)
|
||||||
{
|
{
|
||||||
$("#spane_workdescription_notice").text("运行平台不能为空");
|
$("#spane_workdescription_notice").text("<%= l(:label_no_softapplication_platform) %>");
|
||||||
$("#spane_workdescription_notice").css('color','#ff0000');
|
$("#spane_workdescription_notice").css('color','#ff0000');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(workDescription.length <= 125)
|
if(workDescription.length <= 125)
|
||||||
{
|
{
|
||||||
$("#spane_workdescription_notice").text("填写正确");
|
$("#spane_workdescription_notice").text("<%= l(:label_field_correct) %>");
|
||||||
$("#spane_workdescription_notice").css('color','#008000');
|
$("#spane_workdescription_notice").css('color','#008000');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$("#spane_workdescription_notice").text("运行平台超过125个汉字");
|
$("#spane_workdescription_notice").text("<%= l(:label_work_platform_condition) %>");
|
||||||
$("#spane_workdescription_notice").css('color','#ff0000');
|
$("#spane_workdescription_notice").css('color','#ff0000');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -77,7 +103,7 @@
|
||||||
//提交验证
|
//提交验证
|
||||||
function submit_new_softapplication()
|
function submit_new_softapplication()
|
||||||
{
|
{
|
||||||
if(regexName() && regexWorkdescription() && regexDevelopers())
|
if(regexName() && regexDescription() && regexDevelopers())
|
||||||
{
|
{
|
||||||
$("#new_softapplication").submit();
|
$("#new_softapplication").submit();
|
||||||
}
|
}
|
||||||
|
@ -90,71 +116,39 @@
|
||||||
<tr style="width:700px; margin-left: -10px;">
|
<tr style="width:700px; margin-left: -10px;">
|
||||||
<span><%= l(:label_work_name) %></span>
|
<span><%= l(:label_work_name) %></span>
|
||||||
<span class="contest-star"> * </span>:
|
<span class="contest-star"> * </span>:
|
||||||
<td>
|
|
||||||
<%= f.text_field :name,
|
<%= f.text_field :name,
|
||||||
:required => true,
|
:required => true,
|
||||||
:size => 60,
|
:size => 60,
|
||||||
:style => "width:320px;",
|
:style => "width:320px;",
|
||||||
:onblur => "regexName();"
|
:onblur => "regexName();"
|
||||||
%>
|
%>
|
||||||
</td>
|
|
||||||
<span style="font-size: 10px;" id="spane_name_notice">(<%= l(:label_workname_lengthlimit) %>)</span>
|
<span style="font-size: 10px;" id="spane_name_notice">(<%= l(:label_workname_lengthlimit) %>)</span>
|
||||||
</tr>
|
</tr>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<tr style="width:800px;">
|
|
||||||
<span><%= l(:label_running_platform) %></span>
|
|
||||||
<span class="contest-star"> * </span>:
|
<tr style="width:800px; padding-bottom: 30px;">
|
||||||
<td style="width: 100px">
|
|
||||||
<%= f.text_field :android_min_version_available,
|
<span style="margin-top: 5px; float: left; display: block;"><%= l(:label_work_description) %> </span>
|
||||||
|
<span style="margin-top: 5px;float: left; display: block;" class="contest-star"> * </span>
|
||||||
|
<span style="margin-top: 5px; float: left; display: block;"> : </span>
|
||||||
|
|
||||||
|
<!-- modified by longjun 将单行输入框改成多行-->
|
||||||
|
<%= f.text_area :description,
|
||||||
:required => true,
|
:required => true,
|
||||||
:size => 60,
|
:size => 60,
|
||||||
:style => "width:320px;",
|
:rows => 3,
|
||||||
:onblur=>"regexWorkdescription();"
|
:onblur => 'regexDescription();',
|
||||||
|
:style => "width:320px; "
|
||||||
%>
|
%>
|
||||||
</td>
|
<span style="font-size: 10px;" id="span_sofapplication_description">(<%= l(:label_work_description_lengthlimit) %>)</span>
|
||||||
<span style="font-size: 10px" id="spane_workdescription_notice">(<%= l(:label_workdescription_lengthlimit) %>)</span>
|
|
||||||
</tr>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<tr style="width:800px;">
|
|
||||||
<span><%= l(:label_work_type) %></span>
|
|
||||||
<span class="contest-star"> * </span>:
|
|
||||||
<td style="width: 100px">
|
|
||||||
<span>
|
|
||||||
<%#= select_tag 'app_type_name', work_type_opttion, {:name => 'app_type_name',:style => "width:358px;"} %>
|
|
||||||
</span>
|
|
||||||
<%= f.select :app_type_name,work_type_opttion,
|
|
||||||
{},
|
|
||||||
{:style => "width:328px;",:onchange => "selectChange(this)"} %>
|
|
||||||
<%#= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %>
|
|
||||||
</td>
|
|
||||||
<span style="font-size: 10px;display: none" id="other_span">
|
|
||||||
<%#= f.text_field :other_input, :required => true, :size => 60, :style => "width:100px;" %>
|
|
||||||
<input type="text" style="width: 120px;" id="other_input" name = "other_input"/>
|
|
||||||
</span>
|
|
||||||
</tr>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
<tr style="width:800px;">
|
|
||||||
<td style="padding-bottom: 290px;">
|
|
||||||
<span><%= l(:label_work_description) %></span>
|
|
||||||
<span class="contest-star"> * </span>:
|
|
||||||
</td>
|
|
||||||
<td style="width: 100px">
|
|
||||||
<%= f.text_field :description,
|
|
||||||
:required => true,
|
|
||||||
:size => 60,
|
|
||||||
:style => "width:320px;"
|
|
||||||
%>
|
|
||||||
</td>
|
|
||||||
<!--span style="font-size: 10px">(<%#= l(:label_workdescription_lengthlimit) %>)</span-->
|
<!--span style="font-size: 10px">(<%#= l(:label_workdescription_lengthlimit) %>)</span-->
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
|
@ -163,14 +157,14 @@
|
||||||
<tr style="width:800px;">
|
<tr style="width:800px;">
|
||||||
<span><%= l(:label_softapplication_developers) %></span>
|
<span><%= l(:label_softapplication_developers) %></span>
|
||||||
<span class="contest-star"> * </span>:
|
<span class="contest-star"> * </span>:
|
||||||
<td style="width: 100px">
|
|
||||||
<%= f.text_field :application_developers,
|
<%= f.text_field :application_developers,
|
||||||
:required => true,
|
:required => true,
|
||||||
:size => 60,
|
:size => 60,
|
||||||
:style => "width:320px;",
|
:style => "width:320px;",
|
||||||
:onblur => 'regexDevelopers();'
|
:onblur => 'regexDevelopers();'
|
||||||
%>
|
%>
|
||||||
</td>
|
|
||||||
<span style="font-size: 10px" id="span_softapplication_application_developers">
|
<span style="font-size: 10px" id="span_softapplication_application_developers">
|
||||||
(<%= l(:label_workdescription_lengthlimit) %>)
|
(<%= l(:label_workdescription_lengthlimit) %>)
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- added by fq -->
|
<!-- added by fq -->
|
||||||
<div id="add-memo" class='lz' style="display: none; padding: 20px;">
|
<div id="add-memo" class='lz' style="<% unless @memo.errors.any?%>display: none;<% end %> padding: 20px;">
|
||||||
<h3><%=l(:label_memo_new)%></h3>
|
<h3><%=l(:label_memo_new)%></h3>
|
||||||
<% if User.current.logged? %>
|
<% if User.current.logged? %>
|
||||||
<%= labelled_form_for(@memo, :url => create_memo_forum_path(@forum), :html => {:multipart => true} ) do |f| %>
|
<%= labelled_form_for(@memo, :url => create_memo_forum_path(@forum), :html => {:multipart => true} ) do |f| %>
|
||||||
|
@ -40,5 +40,4 @@
|
||||||
:onclick => 'showAndScrollTo("add-memo", "memo_subject"); return false;' if User.current.logged? %>
|
:onclick => 'showAndScrollTo("add-memo", "memo_subject"); return false;' if User.current.logged? %>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
||||||
<%= render :partial => 'forums/show_topics', :locals => {:memos => @memos} %>
|
<%= render :partial => 'forums/show_topics', :locals => {:memos => @memos} %>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<%= form_for(@memo_new, url: forum_memos_path, :html => {:multipart => true}) do |f| %>
|
<%= form_for(@memo_new, url: forum_memos_path, :html => {:multipart => true}) do |f| %>
|
||||||
<%= f.hidden_field :subject, :required => true, value: @memo.subject %>
|
<%= f.hidden_field :subject, :required => true, value: "RE: "+@memo.subject %>
|
||||||
<%= f.hidden_field :forum_id, :required => true, value: @memo.forum_id %>
|
<%= f.hidden_field :forum_id, :required => true, value: @memo.forum_id %>
|
||||||
<%= f.hidden_field :parent_id, :required => true, value: @memo.id %>
|
<%= f.hidden_field :parent_id, :required => true, value: @memo.id %>
|
||||||
<div id="message_quote" class="wiki"></div>
|
<div id="message_quote" class="wiki"></div>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- <h1>New memo</h1> -->
|
<!-- <h1>New memo</h1> -->
|
||||||
<% @replying ||= false %>
|
<% @replying = !@memo.parent.nil? %>
|
||||||
<h3><%=l(:label_memo_edit)%></h3>
|
<h3><%=l(:label_memo_edit)%></h3>
|
||||||
<%= labelled_form_for(@memo, :url => forum_memo_path(@memo.forum_id, @memo)) do |f| %>
|
<%= labelled_form_for(@memo, :url => forum_memo_path(@memo.forum_id, @memo)) do |f| %>
|
||||||
<% if @memo.errors.any? %>
|
<% if @memo.errors.any? %>
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<p><%= f.text_field :subject, :required => true, :size => 96 %></p>
|
<p><%= f.text_field :subject, :required => true, :size => 96 ,:readonly => @replying%></p>
|
||||||
<p>
|
<p>
|
||||||
<% unless @replying %>
|
<% unless @replying %>
|
||||||
<% if @memo.safe_attribute? 'sticky' %>
|
<% if @memo.safe_attribute? 'sticky' %>
|
||||||
|
|
|
@ -90,7 +90,8 @@
|
||||||
)if !@memo.locked? && User.current.logged? %>
|
)if !@memo.locked? && User.current.logged? %>
|
||||||
|
|
||||||
<%= link_to(
|
<%= link_to(
|
||||||
image_tag('edit.png'),
|
#image_tag('edit.png'),
|
||||||
|
l(:button_edit),
|
||||||
{:action => 'edit', :id => reply},
|
{:action => 'edit', :id => reply},
|
||||||
:title => l(:button_edit)
|
:title => l(:button_edit)
|
||||||
) if reply.editable_by?(User.current) %>
|
) if reply.editable_by?(User.current) %>
|
||||||
|
|
|
@ -18,15 +18,52 @@
|
||||||
<div class="box tabular" id="permissions">
|
<div class="box tabular" id="permissions">
|
||||||
<% perms_by_module = @role.setable_permissions.group_by {|p| p.project_module.to_s} %>
|
<% perms_by_module = @role.setable_permissions.group_by {|p| p.project_module.to_s} %>
|
||||||
<% perms_by_module.keys.sort.each do |mod| %>
|
<% perms_by_module.keys.sort.each do |mod| %>
|
||||||
<fieldset><legend><%= mod.blank? ? l(:label_project) : l_or_humanize(mod, :prefix => 'project_module_') %></legend>
|
<% if mod.blank? %>
|
||||||
<% perms_by_module[mod].each do |permission| %>
|
<fieldset>
|
||||||
<label class="floating">
|
<legend><%= l(:label_project) %></legend>
|
||||||
<%= check_box_tag 'role[permissions][]', permission.name, (@role.permissions.include? permission.name) %>
|
<% perms_by_module[mod].each do |permission| %>
|
||||||
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
<% if permission.belong_to_project? %>
|
||||||
</label>
|
<label class="floating">
|
||||||
<% end %>
|
<%= check_box_tag 'role[permissions][]', permission.name, (@role.permissions.include? permission.name) %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</label>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<% end %>
|
<fieldset>
|
||||||
|
<legend><%= l(:label_course) %></legend>
|
||||||
|
<% perms_by_module[mod].each do |permission| %>
|
||||||
|
<% if permission.belong_to_course? %>
|
||||||
|
<label class="floating">
|
||||||
|
<%= check_box_tag 'role[permissions][]', permission.name, (@role.permissions.include? permission.name) %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</label>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend><%= l(:label_contest) %></legend>
|
||||||
|
<% perms_by_module[mod].each do |permission| %>
|
||||||
|
<% if permission.belong_to_contest? %>
|
||||||
|
<label class="floating">
|
||||||
|
<%= check_box_tag 'role[permissions][]', permission.name, (@role.permissions.include? permission.name) %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</label>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</fieldset>
|
||||||
|
<% else %>
|
||||||
|
<fieldset>
|
||||||
|
<legend><%= l_or_humanize(mod, :prefix => 'project_module_') %></legend>
|
||||||
|
<% perms_by_module[mod].each do |permission| %>
|
||||||
|
<label class="floating">
|
||||||
|
<%= check_box_tag 'role[permissions][]', permission.name, (@role.permissions.include? permission.name) %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</label>
|
||||||
|
<% end %>
|
||||||
|
</fieldset>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
<br /><%= check_all_links 'permissions' %>
|
<br /><%= check_all_links 'permissions' %>
|
||||||
<%= hidden_field_tag 'role[permissions][]', '' %>
|
<%= hidden_field_tag 'role[permissions][]', '' %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -19,33 +19,127 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
<% perms_by_module = @permissions.group_by {|p| p.project_module.to_s} %>
|
<% perms_by_module = @permissions.group_by {|p| p.project_module.to_s} %>
|
||||||
<% perms_by_module.keys.sort.each do |mod| %>
|
<% perms_by_module.keys.sort.each do |mod| %>
|
||||||
<% unless mod.blank? %>
|
<% if mod.blank? %>
|
||||||
|
<% perms_by_module[mod].select{ |p| !(p.belong_to_project?) && !(p.belong_to_course?) && !(p.belong_to_contest?) }.each do |permission| %>
|
||||||
|
<tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>">
|
||||||
|
<td>
|
||||||
|
<%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')",
|
||||||
|
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</td>
|
||||||
|
<% @roles.each do |role| %>
|
||||||
|
<td align="center">
|
||||||
|
<% if role.setable_permissions.include? permission %>
|
||||||
|
<%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<tr class="group open">
|
||||||
|
<td>
|
||||||
|
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
||||||
|
<%= l(:label_project) %>
|
||||||
|
</td>
|
||||||
|
<% @roles.each do |role| %>
|
||||||
|
<td class="role"><%= h(role.name) %></td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% perms_by_module[mod].select{ |p| p.belong_to_project? }.each do |permission| %>
|
||||||
|
<tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>">
|
||||||
|
<td>
|
||||||
|
<%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')",
|
||||||
|
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</td>
|
||||||
|
<% @roles.each do |role| %>
|
||||||
|
<td align="center">
|
||||||
|
<% if role.setable_permissions.include? permission %>
|
||||||
|
<%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
<tr class="group open">
|
||||||
|
<td>
|
||||||
|
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
||||||
|
<%= l(:label_course) %>
|
||||||
|
</td>
|
||||||
|
<% @roles.each do |role| %>
|
||||||
|
<td class="role"><%= h(role.name) %></td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% perms_by_module[mod].select{ |p| p.belong_to_course? }.each do |permission| %>
|
||||||
|
<tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>">
|
||||||
|
<td>
|
||||||
|
<%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')",
|
||||||
|
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</td>
|
||||||
|
<% @roles.each do |role| %>
|
||||||
|
<td align="center">
|
||||||
|
<% if role.setable_permissions.include? permission %>
|
||||||
|
<%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
<tr class="group open">
|
||||||
|
<td>
|
||||||
|
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
||||||
|
<%= l(:label_contest) %>
|
||||||
|
</td>
|
||||||
|
<% @roles.each do |role| %>
|
||||||
|
<td class="role"><%= h(role.name) %></td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% perms_by_module[mod].select{ |p| p.belong_to_contest? }.each do |permission| %>
|
||||||
|
<tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>">
|
||||||
|
<td>
|
||||||
|
<%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')",
|
||||||
|
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
|
||||||
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
|
</td>
|
||||||
|
<% @roles.each do |role| %>
|
||||||
|
<td align="center">
|
||||||
|
<% if role.setable_permissions.include? permission %>
|
||||||
|
<%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
<tr class="group open">
|
<tr class="group open">
|
||||||
<td>
|
<td>
|
||||||
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
||||||
<%= l_or_humanize(mod, :prefix => 'project_module_') %>
|
<%= l_or_humanize(mod, :prefix => 'project_module_') %>
|
||||||
</td>
|
</td>
|
||||||
<% @roles.each do |role| %>
|
<% @roles.each do |role| %>
|
||||||
<td class="role"><%= h(role.name) %></td>
|
<td class="role"><%= h(role.name) %></td>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% perms_by_module[mod].each do |permission| %>
|
||||||
<% perms_by_module[mod].each do |permission| %>
|
<tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>">
|
||||||
<tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>">
|
<td>
|
||||||
<td>
|
<%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')",
|
||||||
<%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')",
|
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
|
||||||
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
|
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
||||||
<%= l_or_humanize(permission.name, :prefix => 'permission_') %>
|
</td>
|
||||||
</td>
|
<% @roles.each do |role| %>
|
||||||
<% @roles.each do |role| %>
|
<td align="center">
|
||||||
<td align="center">
|
<% if role.setable_permissions.include? permission %>
|
||||||
<% if role.setable_permissions.include? permission %>
|
<%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %>
|
||||||
<%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %>
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</td>
|
|
||||||
<% end %>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -9,30 +9,13 @@
|
||||||
<div style="float: left; width: 600px; padding-top: 6px; margin-left: 8px"><%= softapplication.description.truncate(95, omission: '...') %></div>
|
<div style="float: left; width: 600px; padding-top: 6px; margin-left: 8px"><%= softapplication.description.truncate(95, omission: '...') %></div>
|
||||||
<div style="float: left; width: 200px; margin-left: 70px; margin-top: -3px; line-height: 0.5em ">
|
<div style="float: left; width: 200px; margin-left: 70px; margin-top: -3px; line-height: 0.5em ">
|
||||||
<%contest = softapplication.contests.first%>
|
<%contest = softapplication.contests.first%>
|
||||||
<!--<table width="100%" border="0">-->
|
|
||||||
<!--<tr>-->
|
|
||||||
<!--<td style="width: 70px; word-wrap: break-word; word-break: break-all"><%=l(:label_attendingcontestwork_belongs_contest)%>:</td>-->
|
|
||||||
<!--<td style="width: 100px; word-wrap: break-word; word-break: break-all">-->
|
|
||||||
<!--<%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%>-->
|
|
||||||
<!--</td>-->
|
|
||||||
<!--</tr>-->
|
|
||||||
<!--<tr>-->
|
|
||||||
<!--<td style="width: 70px; word-wrap: break-word; word-break: break-all"><%=l(:label_attendingcontestwork_belongs_type)%>:</td>-->
|
|
||||||
<!--<td style="width: 100px; word-wrap: break-word; word-break: break-all">-->
|
|
||||||
<!--<%= softapplication.app_type_name %>-->
|
|
||||||
<!--</td>-->
|
|
||||||
<!--</tr>-->
|
|
||||||
<!--<tr>-->
|
|
||||||
<!--<td style="width: 70px; word-wrap: break-word; word-break: break-all"><%=l(:label_attendingcontestwork_adaptive_system)%>:</td>-->
|
|
||||||
<!--<td style="width: 100px; word-wrap: break-word; word-break: break-all">-->
|
|
||||||
<!--<%= softapplication.android_min_version_available %>-->
|
|
||||||
<!--</td>-->
|
|
||||||
<!--</tr>-->
|
|
||||||
<!--</table>-->
|
|
||||||
<p><%=l(:label_attendingcontestwork_belongs_contest)%>:<%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%></p>
|
<p><%=l(:label_attendingcontestwork_belongs_contest)%>:<%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%></p>
|
||||||
<p><%=l(:label_attendingcontestwork_belongs_type)%>:<%= softapplication.app_type_name.truncate(14, omission: '...') %></p>
|
|
||||||
<%strTitle = softapplication.android_min_version_available%>
|
<!--modified by longjun 因为新建竞赛作品时没有填写运行平台和类别,所有如果为空不能使用truncate函数-->
|
||||||
<p><%=l(:label_attendingcontestwork_adaptive_system)%>:<lable title="<%= strTitle %>"><%= strTitle.truncate(10,omisiion:'...') %></lable></p>
|
<p><%=l(:label_attendingcontestwork_belongs_type)%>:<%= softapplication.app_type_name ? softapplication.app_type_name.truncate(14, omission: '...') : "" %></p>
|
||||||
|
<% strTitle = softapplication.android_min_version_available %>
|
||||||
|
<p><%=l(:label_attendingcontestwork_adaptive_system)%>:<lable title="<%= strTitle %>"><%= strTitle ? strTitle.truncate(10,omisiion:'...') : "" %></lable></p>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding-left: 53px">
|
<div style="padding-left: 53px">
|
||||||
<span><%=l(:label_attendingcontestwork_developers)%>:<%= softapplication.application_developers %></span>
|
<span><%=l(:label_attendingcontestwork_developers)%>:<%= softapplication.application_developers %></span>
|
||||||
|
|
|
@ -497,6 +497,8 @@ en:
|
||||||
permission_view_real_name: View real name
|
permission_view_real_name: View real name
|
||||||
permission_view_students: View students
|
permission_view_students: View students
|
||||||
permission_export_homeworks: Export homeworks
|
permission_export_homeworks: Export homeworks
|
||||||
|
permission_notificationcomment_contestnotifications: Add the notice of contest comments
|
||||||
|
|
||||||
|
|
||||||
project_module_issue_tracking: Issue tracking
|
project_module_issue_tracking: Issue tracking
|
||||||
project_module_time_tracking: Time tracking
|
project_module_time_tracking: Time tracking
|
||||||
|
|
|
@ -491,7 +491,7 @@ zh:
|
||||||
permission_edit_course: 编辑课程
|
permission_edit_course: 编辑课程
|
||||||
permission_select_contest_modules: 选择竞赛模块
|
permission_select_contest_modules: 选择竞赛模块
|
||||||
permission_manage_contestnotifications: 管理竞赛通知
|
permission_manage_contestnotifications: 管理竞赛通知
|
||||||
|
permission_notificationcomment_contestnotifications: 添加竞赛通知评论
|
||||||
|
|
||||||
|
|
||||||
project_module_issue_tracking: 问题跟踪
|
project_module_issue_tracking: 问题跟踪
|
||||||
|
@ -705,6 +705,7 @@ zh:
|
||||||
label_report_plural: 报表
|
label_report_plural: 报表
|
||||||
label_news: 新闻
|
label_news: 新闻
|
||||||
label_news_new: 添加新闻
|
label_news_new: 添加新闻
|
||||||
|
label_edit_contest_notice: 编辑竞赛通知
|
||||||
bale_news_notice: 添加通知 #huang
|
bale_news_notice: 添加通知 #huang
|
||||||
bale_edit_notice: 修改通知
|
bale_edit_notice: 修改通知
|
||||||
label_news_notice: 发布课程通知
|
label_news_notice: 发布课程通知
|
||||||
|
@ -1936,8 +1937,8 @@ zh:
|
||||||
label_first_page_create_fail: 首页定制失败
|
label_first_page_create_fail: 首页定制失败
|
||||||
label_forum_edit: 编辑讨论区
|
label_forum_edit: 编辑讨论区
|
||||||
label_memo_create: 发布
|
label_memo_create: 发布
|
||||||
label_memo_new: 新建主题
|
label_memo_new: 新建帖子
|
||||||
label_memo_edit: 修改主题
|
label_memo_edit: 编辑帖子
|
||||||
label_memo_new_from_forum: 发布帖子
|
label_memo_new_from_forum: 发布帖子
|
||||||
label_forum: 公共贴吧
|
label_forum: 公共贴吧
|
||||||
label_forum_new: 新建贴吧
|
label_forum_new: 新建贴吧
|
||||||
|
@ -2000,8 +2001,15 @@ zh:
|
||||||
label_work_deposit_project_url: 托管项目网址
|
label_work_deposit_project_url: 托管项目网址
|
||||||
label_work_deposit_project: 托管项目
|
label_work_deposit_project: 托管项目
|
||||||
label_softapplication_name_condition: 25个汉字以内(50个字符)
|
label_softapplication_name_condition: 25个汉字以内(50个字符)
|
||||||
label_softapplication_description_condition: 125个汉字以内
|
label_softapplication_description_condition: 125个汉字以内,开发人员用,隔开
|
||||||
|
label_work_description_lengthlimit: 500个汉字以内
|
||||||
label_softapplication_developers_condition: 开发人员超过125个汉字
|
label_softapplication_developers_condition: 开发人员超过125个汉字
|
||||||
|
label_no_softapplication_name: 作品名称不能为空
|
||||||
|
label_work_name_condition: 作品名称超过25个汉字
|
||||||
|
label_no_softapplication_description: 作品简介不能为空
|
||||||
|
label_work_description_condition: 作品简介名称超过500个汉字
|
||||||
|
label_no_softapplication_platform: 运行平台不能为空
|
||||||
|
label_work_platform_condition: 运行平台超过125个汉字
|
||||||
label_no_softapplication_developers: 开发人员不能为空
|
label_no_softapplication_developers: 开发人员不能为空
|
||||||
label_user_login_softapplication_board: 您还没有登录,请登录后参与应用评价。
|
label_user_login_softapplication_board: 您还没有登录,请登录后参与应用评价。
|
||||||
label_contest_description_no: 暂无描述。
|
label_contest_description_no: 暂无描述。
|
||||||
|
@ -2038,12 +2046,13 @@ zh:
|
||||||
label_contest_settings: 配置竞赛
|
label_contest_settings: 配置竞赛
|
||||||
label_contest_delete: 删除竞赛
|
label_contest_delete: 删除竞赛
|
||||||
label_noawards_current: 暂未评奖
|
label_noawards_current: 暂未评奖
|
||||||
|
|
||||||
|
|
||||||
label_softapplication: 应用软件
|
label_softapplication: 应用软件
|
||||||
label_attending_contest: 参加竞赛
|
label_attending_contest: 参加竞赛
|
||||||
label_new_attendingcontest_work: 新建参赛作品
|
label_new_attendingcontest_work: 新建参赛作品
|
||||||
label_workname_lengthlimit: 25个汉字以内
|
label_workname_lengthlimit: 25个汉字以内
|
||||||
label_workdescription_lengthlimit: 125个汉字以内
|
label_workdescription_lengthlimit: 125个汉字以内,用英文逗号隔开
|
||||||
label_please_input_password: 请输入竞赛密码
|
label_please_input_password: 请输入竞赛密码
|
||||||
label_please_select_project: 请选择项目
|
label_please_select_project: 请选择项目
|
||||||
label_upload_softworkpacket_photo: 上传作品软件包和作品截图
|
label_upload_softworkpacket_photo: 上传作品软件包和作品截图
|
||||||
|
|
|
@ -89,54 +89,58 @@ end
|
||||||
Redmine::AccessControl.map do |map|
|
Redmine::AccessControl.map do |map|
|
||||||
map.permission :view_project, {:projects => [:show], :activities => [:index]}, :public => true, :read => true
|
map.permission :view_project, {:projects => [:show], :activities => [:index]}, :public => true, :read => true
|
||||||
map.permission :search_project, {:search => :index}, :public => true, :read => true
|
map.permission :search_project, {:search => :index}, :public => true, :read => true
|
||||||
map.permission :add_project, {:projects => [:new, :create]}, :require => :loggedin
|
map.permission :add_project, {:projects => [:new, :create]}, :require => :loggedin ,:belong_to_project => true
|
||||||
map.permission :edit_project, {:projects => [:settings, :edit, :update]}, :require => :member
|
map.permission :edit_project, {:projects => [:settings, :edit, :update]}, :require => :member ,:belong_to_project => true
|
||||||
map.permission :close_project, {:projects => [:close, :reopen]}, :require => :member, :read => true
|
map.permission :close_project, {:projects => [:close, :reopen]}, :require => :member, :read => true ,:belong_to_project => true
|
||||||
map.permission :select_project_modules, {:projects => :modules}, :require => :member
|
map.permission :select_project_modules, {:projects => :modules}, :require => :member ,:belong_to_project => true
|
||||||
map.permission :select_contest_modules, {:contests => :modules}, :require => :member
|
map.permission :select_contest_modules, {:contests => :modules}, :require => :member ,:belong_to_contest => true
|
||||||
map.permission :manage_members, {:projects => :settings, :members => [:index, :show, :create, :update, :destroy, :autocomplete]}, :require => :member
|
map.permission :manage_members, {:projects => :settings, :members => [:index, :show, :create, :update, :destroy, :autocomplete]}, :require => :member ,:belong_to_project => true
|
||||||
map.permission :manage_versions, {:projects => :settings, :versions => [:new, :create, :edit, :update, :close_completed, :destroy]}, :require => :member
|
map.permission :manage_versions, {:projects => :settings, :versions => [:new, :create, :edit, :update, :close_completed, :destroy]}, :require => :member ,:belong_to_project => true
|
||||||
map.permission :add_subprojects, {:projects => [:new, :create]}, :require => :member
|
map.permission :add_subprojects, {:projects => [:new, :create]}, :require => :member ,:belong_to_project => true
|
||||||
map.permission :view_journals_for_messages, {:gantts => [:show, :update]}, :read => true
|
#错的权限,先注释掉
|
||||||
map.permission :quote_project, {},:require => :member
|
#map.permission :view_journals_for_messages, {:gantts => [:show, :update]}, :read => true
|
||||||
map.permission :is_manager,{},:require => :member
|
|
||||||
map.permission :as_teacher,{},:require => :member
|
map.permission :quote_project, {},:require => :member,:belong_to_contest => true
|
||||||
map.permission :as_student,{},:require => :member
|
map.permission :is_manager,{},:require => :member ,:belong_to_project => true
|
||||||
|
map.permission :as_teacher,{},:require => :member ,:belong_to_course => true
|
||||||
|
map.permission :as_student,{},:require => :member ,:belong_to_course => true
|
||||||
|
|
||||||
#课程权限模块
|
#课程权限模块
|
||||||
#added by nwb
|
|
||||||
map.permission :view_course, {:courses => [:show], :activities => [:index]}, :public => true, :read => true
|
map.permission :view_course, {:courses => [:show], :activities => [:index]}, :public => true, :read => true
|
||||||
map.permission :search_course, {:search => :index}, :public => true, :read => true
|
map.permission :search_course, {:search => :index}, :public => true, :read => true
|
||||||
map.permission :add_course, {:courses => [:new, :create]}, :require => :loggedin
|
map.permission :add_course, {:courses => [:new, :create]}, :require => :loggedin ,:belong_to_course => true
|
||||||
map.permission :edit_course, {:courses => [:settings, :edit, :update]}, :require => :member
|
map.permission :edit_course, {:courses => [:settings, :edit, :update]}, :require => :member ,:belong_to_course => true
|
||||||
map.permission :close_course, {:courses => [:close, :reopen]}, :require => :member, :read => true
|
map.permission :close_course, {:courses => [:close, :reopen]}, :require => :member, :read => true ,:belong_to_course => true
|
||||||
map.permission :select_course_modules, {:courses => :modules}, :require => :member
|
map.permission :select_course_modules, {:courses => :modules}, :require => :member ,:belong_to_course => true
|
||||||
map.permission :view_course_journals_for_messages, {:courses => :feedback}, :require => :member,:read => true
|
map.permission :view_course_journals_for_messages, {:courses => :feedback}, :require => :member,:read => true ,:belong_to_course => true
|
||||||
|
|
||||||
map.course_module :files do |map|
|
#与项目一致,注释掉
|
||||||
map.permission :manage_files, {:files => [:new, :create]}, :require => :loggedin
|
#map.course_module :files do |map|
|
||||||
map.permission :view_course_files, {:files => :index, :versions => :download}, :read => true
|
# map.permission :manage_files, {:files => [:new, :create]}, :require => :loggedin
|
||||||
end
|
# map.permission :view_course_files, {:files => :index, :versions => :download}, :read => true
|
||||||
map.course_module :news do |map|
|
#end
|
||||||
map.permission :manage_news, {:news => [:new, :create, :edit, :update, :destroy], :comments => [:destroy]}, :require => :member
|
#新闻权限与项目一致注释掉此处
|
||||||
map.permission :view_course_news, {:news => [:index, :show]}, :public => true, :read => true
|
# map.course_module :news do |map|
|
||||||
map.permission :comment_news, {:comments => :create}
|
# map.permission :manage_news, {:news => [:new, :create, :edit, :update, :destroy], :comments => [:destroy]}, :require => :member
|
||||||
end
|
# map.permission :view_course_news, {:news => [:index, :show]}, :public => true, :read => true
|
||||||
|
# map.permission :comment_news, {:comments => :create}
|
||||||
|
# end
|
||||||
#作业模块权限
|
#作业模块权限
|
||||||
map.course_module :bids do |map|
|
map.course_module :bids do |map|
|
||||||
map.permission :view_homework_attaches, {:bids => [:show, :show_project, :revision]}, :read => true
|
map.permission :view_homework_attaches, {:bids => [:show, :show_project, :revision]}, :read => true,:belong_to_course => true
|
||||||
map.permission :paret_in_homework,{},:require => :member
|
map.permission :paret_in_homework,{},:require => :member ,:belong_to_course => true
|
||||||
end
|
end
|
||||||
|
|
||||||
map.course_module :boards do |map|
|
#讨论区权限与项目统一,注释掉此课程讨论区权限
|
||||||
map.permission :manage_boards, {:boards => [:new, :create, :edit, :update, :destroy]}, :require => :member
|
#map.course_module :boards do |map|
|
||||||
map.permission :view_course_messages, {:boards => [:index, :show], :messages => [:show]}, :public => true, :read => true
|
# map.permission :manage_boards, {:boards => [:new, :create, :edit, :update, :destroy]}, :require => :member
|
||||||
map.permission :add_messages, {:messages => [:new, :reply, :quote]}
|
# map.permission :view_course_messages, {:boards => [:index, :show], :messages => [:show]}, :public => true, :read => true
|
||||||
map.permission :edit_messages, {:messages => :edit}, :require => :member
|
# map.permission :add_messages, {:messages => [:new, :reply, :quote]}
|
||||||
map.permission :edit_own_messages, {:messages => :edit}, :require => :loggedin
|
# map.permission :edit_messages, {:messages => :edit}, :require => :member
|
||||||
map.permission :delete_messages, {:messages => :destroy}, :require => :member
|
# map.permission :edit_own_messages, {:messages => :edit}, :require => :loggedin
|
||||||
map.permission :delete_own_messages, {:messages => :destroy}, :require => :loggedin
|
# map.permission :delete_messages, {:messages => :destroy}, :require => :member
|
||||||
end
|
# map.permission :delete_own_messages, {:messages => :destroy}, :require => :loggedin
|
||||||
|
#end
|
||||||
|
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
@ -189,9 +193,9 @@ Redmine::AccessControl.map do |map|
|
||||||
end
|
end
|
||||||
|
|
||||||
map.contest_module :contestnotifications do |map|
|
map.contest_module :contestnotifications do |map|
|
||||||
map.permission :manage_contestnotifications, {:contestnotifications => [:new, :create, :edit, :update, :destroy], :notificationcomments => [:destroy]}, :require => :member
|
map.permission :manage_contestnotifications, {:contestnotifications => [:new, :create, :edit, :update, :destroy], :notificationcomments => [:destroy]}, :require => :member,:belong_to_contest => true
|
||||||
map.permission :view_contestnotifications, {:contestnotifications => [:index, :show]}, :public => true, :read => true
|
map.permission :view_contestnotifications, {:contestnotifications => [:index, :show]}, :public => true, :read => true
|
||||||
map.permission :notificationcomment_contestnotifications, {:notificationcomments => :create}
|
map.permission :notificationcomment_contestnotifications, {:notificationcomments => :create},:belong_to_contest => true
|
||||||
end
|
end
|
||||||
|
|
||||||
map.project_module :documents do |map|
|
map.project_module :documents do |map|
|
||||||
|
|
|
@ -126,7 +126,9 @@ module Redmine
|
||||||
@course_module = options[:course_module]
|
@course_module = options[:course_module]
|
||||||
@project_module = options[:project_module]
|
@project_module = options[:project_module]
|
||||||
@contest_module = options[:contest_module]
|
@contest_module = options[:contest_module]
|
||||||
|
@belong_to_project = options[:belong_to_project] || false
|
||||||
|
@belong_to_course = options[:belong_to_course] || false
|
||||||
|
@belong_to_contest =options[:belong_to_contest] || false
|
||||||
hash.each do |controller, actions|
|
hash.each do |controller, actions|
|
||||||
if actions.is_a? Array
|
if actions.is_a? Array
|
||||||
@actions << actions.collect {|action| "#{controller}/#{action}"}
|
@actions << actions.collect {|action| "#{controller}/#{action}"}
|
||||||
|
@ -152,6 +154,19 @@ module Redmine
|
||||||
def read?
|
def read?
|
||||||
@read
|
@read
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def belong_to_project?
|
||||||
|
@belong_to_project
|
||||||
|
end
|
||||||
|
|
||||||
|
def belong_to_course?
|
||||||
|
@belong_to_course
|
||||||
|
end
|
||||||
|
|
||||||
|
def belong_to_contest?
|
||||||
|
@belong_to_contest
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1273,7 +1273,7 @@ a.collapsible.collapsed {background: url(../images/arrow_collapsed.png) no-repea
|
||||||
a#toggle-completed-versions {color:#999;}
|
a#toggle-completed-versions {color:#999;}
|
||||||
/***** Tables *****/
|
/***** Tables *****/
|
||||||
table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
|
table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
|
||||||
table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
|
table.list th { background-color:#EEEEEE; padding: 4px; white-space:pre-line; }
|
||||||
table.list td { vertical-align: top; padding-right:10px; }
|
table.list td { vertical-align: top; padding-right:10px; }
|
||||||
table.list td.id { width: 2%; text-align: center;}
|
table.list td.id { width: 2%; text-align: center;}
|
||||||
table.list td.checkbox { width: 15px; padding: 2px 0 0 0; }
|
table.list td.checkbox { width: 15px; padding: 2px 0 0 0; }
|
||||||
|
|
Loading…
Reference in New Issue