[Notice] Announcing the End of Demo Server [Read me]
채수원 2015-01-13
Merge branch 'issue-1901' of dlab/hive
from pull-request 1370

* refs/heads/issue-1901:
  add function that is visibility of code related options

Reviewed-by: 채수원 
@c94733463db73bfc4e4e3343f24b34cacd91bb55
app/views/project/partial_settingmenu.scala.html
--- app/views/project/partial_settingmenu.scala.html
+++ app/views/project/partial_settingmenu.scala.html
@@ -20,10 +20,6 @@
 **@
 @(project:Project)
 
-@makeSubMenu(call:Call, name:String, count:Integer) = {
-    <li class="@isActiveSubMenu(call)"><a href="@call">@name@if(count>0){<span class="num-badge">@count</span>}</a></li>
-}
-
 @isActiveSubMenu(calls: Call*) = @{
     var menuState = ""
     for(call <- calls) {
@@ -35,10 +31,16 @@
 }
 
 <ul class="nav nav-tabs">
-    @makeSubMenu(routes.ProjectApp.settingForm(project.owner, project.name),  Messages("project.setting"), 0)
-    @makeSubMenu(routes.ProjectApp.members(project.owner, project.name),      Messages("project.member"), project.enrolledUsers.size)
-    @makeSubMenu(routes.IssueLabelApp.labelsForm(project.owner, project.name),    Messages("issue.label"), 0)
-    @makeSubMenu(routes.ProjectApp.transferForm(project.owner, project.name), Messages("project.transfer"), 0)
-    @makeSubMenu(routes.ProjectApp.deleteForm(project.owner, project.name),   Messages("project.delete"), 0)
-    @makeSubMenu(routes.ProjectApp.changeVCS(project.owner, project.name),   Messages("project.changeVCS"), 0)
+    <li id="subMenuProjectSetting" class="@isActiveSubMenu(routes.ProjectApp.settingForm(project.owner, project.name))">
+        <a href="@routes.ProjectApp.settingForm(project.owner, project.name)">@Messages("project.setting")</a></li>
+    <li id="subMenuProjectMember" class="@isActiveSubMenu(routes.ProjectApp.members(project.owner, project.name))">
+        <a href="@routes.ProjectApp.members(project.owner, project.name)">@Messages("project.member")@if(project.enrolledUsers.size>0){<span class="num-badge">@project.enrolledUsers.size</span>}</a></li>
+    <li id="subMenuIssueLabel" class="@isActiveSubMenu(routes.IssueLabelApp.labelsForm(project.owner, project.name))">
+        <a href="@routes.IssueLabelApp.labelsForm(project.owner, project.name)">@Messages("issue.label")</a></li>
+    <li id="subMenuProjectTransfer" class="@isActiveSubMenu(routes.ProjectApp.transferForm(project.owner, project.name))">
+        <a href="@routes.ProjectApp.transferForm(project.owner, project.name)">@Messages("project.transfer")</a></li>
+    <li id="subMenuProjectDelete" class="@isActiveSubMenu(routes.ProjectApp.deleteForm(project.owner, project.name))">
+        <a href="@routes.ProjectApp.deleteForm(project.owner, project.name)">@Messages("project.delete")</a></li>
+    <li id="subMenuProjectChangeVCS" class="@isActiveSubMenu(routes.ProjectApp.changeVCS(project.owner, project.name))" style="@if(!project.menuSetting.code){display:none;}">
+        <a href="@routes.ProjectApp.changeVCS(project.owner, project.name)">@Messages("project.changeVCS")</a></li>
 </ul>
app/views/project/setting.scala.html
--- app/views/project/setting.scala.html
+++ app/views/project/setting.scala.html
@@ -72,22 +72,22 @@
                 <div class="box-wrap middle">
                     <div class="cu-label">@Messages("project.shareOption")</div>
                     <div class="cu-desc">
-                        <input name="projectScope" type="radio" @if(project.isPublic){checked="checked"} id="public" value="PUBLIC" class="radio-btn"><label for="public" class="bg-radiobtn label-public">@Messages("project.public")</label>
+                        <input name="projectScope" type="radio" class="radio-btn" id="public" value="PUBLIC" @if(project.isPublic){checked="checked"}><label for="public" class="bg-radiobtn label-public">@Messages("project.public")</label>
                         @if(project.hasGroup){
-                        <input name="projectScope" type="radio" @if(project.isProtected){checked="checked"} id="protected" value="PROTECTED" class="radio-btn"><label for="protected" class="bg-radiobtn label-protected">@Messages("project.protected")</label>
+                        <input name="projectScope" type="radio" class="radio-btn" id="protected" value="PROTECTED" @if(project.isProtected){checked="checked"}><label for="protected" class="bg-radiobtn label-protected">@Messages("project.protected")</label>
                         }
-                        <input name="projectScope" type="radio" @if(project.isPrivate){checked="checked"} id="private" value="PRIVATE" class="radio-btn"><label for="private" class="bg-radiobtn label-private">@Messages("project.private")</label>
+                        <input name="projectScope" type="radio" class="radio-btn" id="private" value="PRIVATE" @if(project.isPrivate){checked="checked"}><label for="private" class="bg-radiobtn label-private">@Messages("project.private")</label>
                         <span class="note">@Messages("project.private.notice")</span>
                     </div>
                 </div>
 
                 @if(project.vcs.equals("GIT")){
-                <div class="box-wrap middle reviewer-count-wrap">
+                <div class="box-wrap middle reviewer-count-wrap" id="reviewerCountSettingPanel" style="@if(!project.menuSetting.code){display:none;}">
                     <div class="cu-label vmiddle">@Messages("project.reviewer.count")</div>
                     <div class="cu-desc">
-                        <input name="isUsingReviewerCount" data-toggle="reviewer-count" data-action="show" type="radio" @if(project.isUsingReviewerCount){checked="checked"} id="reviewerCountEnable" value="true" class="radio-btn">
+                        <input name="isUsingReviewerCount" data-toggle="reviewer-count" data-action="show" type="radio" class="radio-btn" id="reviewerCountEnable" value="true" @if(project.isUsingReviewerCount){checked="checked"}>
                         <label for="reviewerCountEnable" class="bg-radiobtn label-public">@Messages("project.reviewer.count.enable")</label>
-                        <input name="isUsingReviewerCount" data-toggle="reviewer-count" data-action="hide" type="radio" @if(!project.isUsingReviewerCount){checked="checked"} id="reviewerCountDisable" value="false" class="radio-btn">
+                        <input name="isUsingReviewerCount" data-toggle="reviewer-count" data-action="hide" type="radio" class="radio-btn" id="reviewerCountDisable" value="false" @if(!project.isUsingReviewerCount){checked="checked"}>
                         <label for="reviewerCountDisable" class="bg-radiobtn label-private">@Messages("project.reviewer.count.disable")</label>
 
                         <div id="welReviewerCount" data-value="@project.isUsingReviewerCount" class="hide">
@@ -107,7 +107,7 @@
                     </div>
                 </div>
 
-                <div class="box-wrap middle">
+                <div class="box-wrap middle" id="defaultBranceSettingPanel" style="@if(!project.menuSetting.code){display:none;}">
                     <div class="cu-label vmiddle">@Messages("code.branches.defaultBranch")</div>
                     <div class="cu-desc">
                         <select id="project-default-branch" name="defaultBranch"
public/javascripts/service/yobi.project.Setting.js
--- public/javascripts/service/yobi.project.Setting.js
+++ public/javascripts/service/yobi.project.Setting.js
@@ -54,6 +54,12 @@
             htElement.welInputName = $("input#project-name");
             htElement.welBtnSave   = $("#save");
             htElement.welReviewerCount = $("#welReviewerCount");
+            htElement.welMenuSettingCode = $("#menuSettingCode");
+            htElement.welMenuSettingPullRequest = $("#menuSettingPullRequest");
+            htElement.welMenuSettingReview = $("#menuSettingReview");
+            htElement.welReviewerCountSettingPanel = $("#reviewerCountSettingPanel");
+            htElement.welDefaultBranceSettingPanel = $("#defaultBranceSettingPanel");
+            htElement.welSubMenuProjectChangeVCS = $("#subMenuProjectChangeVCS");
         }
 
         /**
@@ -62,6 +68,9 @@
         function _attachEvent(){
             htElement.welInputLogo.change(_onChangeLogoPath);
             htElement.welBtnSave.click(_onClickBtnSave);
+            htElement.welMenuSettingCode.click(_onClickMenuSettingCode);
+            htElement.welMenuSettingPullRequest.click(_onClickMenuSettingCode);
+            htElement.welMenuSettingReview.click(_onClickMenuSettingCode);
 
             if(htElement.welReviewerCount.data("value") === true) {
                 htElement.welReviewerCount.show();
@@ -101,6 +110,22 @@
             return true;
         }
 
+        function _onClickMenuSettingCode() {
+            var isChecked = $(this).prop("checked");
+            htElement.welMenuSettingCode.prop("checked", isChecked);
+            htElement.welMenuSettingPullRequest.prop("checked", isChecked);
+            htElement.welMenuSettingReview.prop("checked", isChecked);
+            if (isChecked) {
+                htElement.welReviewerCountSettingPanel.show();
+                htElement.welDefaultBranceSettingPanel.show();
+                htElement.welSubMenuProjectChangeVCS.show();
+            } else {
+                htElement.welReviewerCountSettingPanel.hide();
+                htElement.welDefaultBranceSettingPanel.hide();
+                htElement.welSubMenuProjectChangeVCS.hide();
+            }
+        }
+
         _init(htOptions);
     };
 
Add a comment
List