채수원 2014-07-29
Merge branch 'next-issue-1313' of dlab/hive
from pull request 1174
@1c9db5ea7cb0bbda731f2c03a545ce099beaf643
app/views/issue/partial_assignee.scala.html
--- app/views/issue/partial_assignee.scala.html
+++ app/views/issue/partial_assignee.scala.html
@@ -26,13 +26,13 @@
         data-toggle="select2" data-format="user">
     <option value="@User.anonymous.id" @if(issue == null || issue.assignee == null){selected}>@Messages("issue.noAssignee")</option>
     @if(isAllowed(UserApp.currentUser(), project.asResource(), Operation.ASSIGN_ISSUE)) {
-    <option value="@UserApp.currentUser().id">@Messages("issue.assignToMe")</option>
+    <option value="@UserApp.currentUser().id" data-force-change="true">@Messages("issue.assignToMe")</option>
     }
     @if(issue != null){
         @defining(issue.getAuthor) { issueAuthor =>
             @if(!UserApp.currentUser.equals(issueAuthor) &&
                 isAllowed(issueAuthor, project.asResource(), Operation.ASSIGN_ISSUE)) {
-                <option value="@issueAuthor.id">@Messages("issue.assignToAuthor")</option>
+                <option value="@issueAuthor.id" data-force-change="true">@Messages("issue.assignToAuthor")</option>
             }
         }
     }
public/javascripts/service/yobi.issue.View.js
--- public/javascripts/service/yobi.issue.View.js
+++ public/javascripts/service/yobi.issue.View.js
@@ -101,6 +101,11 @@
 
             // 이슈 정보 업데이트
             htElement.welAssignee.on("change", _onChangeAssignee);
+            htElement.welAssignee.on("select2-selecting", function(weEvt){
+                if($(weEvt.object.element).data("forceChange")){
+                    htElement.welAssignee.trigger("change");
+                }
+            });
             htElement.welMilestone.on("change", _onChangeMilestone);
             htElement.welIssueLabels.on("change", _onChangeIssueLabels);
             htElement.welDueDate.on("change", _onChangeDueDate);
@@ -247,11 +252,12 @@
          * @param {Wrapped Event} weEvt
          */
         function _onChangeAssignee(weEvt){
+            var value = weEvt.val || weEvt.currentTarget.value;
             _requestUpdateIssue({
-               "htData"  : {"assignee.id": weEvt.val},
+               "htData"  : {"assignee.id": value},
                "fOnLoad" : function(){
                    $yobi.notify(Messages("issue.update.assignee"), 3000);
-                   htElement.welAssignee.select2("val", weEvt.val);
+                   htElement.welAssignee.select2("val", value);
                    _updateTimeline();
                },
                "fOnError": function(oRes){
public/javascripts/service/yobi.issue.Write.js
--- public/javascripts/service/yobi.issue.Write.js
+++ public/javascripts/service/yobi.issue.Write.js
@@ -83,6 +83,12 @@
             htElement.welAssignee.on("change", function(weEvt){
                 htElement.welAssignee.select2("val", weEvt.val);
             });
+
+            htElement.welAssignee.on("select2-selecting", function(weEvt){
+                if($(weEvt.object.element).data("forceChange")){
+                    htElement.welAssignee.trigger("change");
+                }
+            });
         }
 
         function _onBeforeUnload(){
Add a comment
List