OSDN Git Service

cleanup
authorAkira Saito <akrstjp@users.sourceforge.jp>
Wed, 12 Nov 2014 23:50:36 +0000 (08:50 +0900)
committerAkira Saito <akrstjp@users.sourceforge.jp>
Wed, 12 Nov 2014 23:50:36 +0000 (08:50 +0900)
app/controllers/quick_view_issues_controller.rb
app/views/hooks/_quick_view_context.erb
app/views/hooks/_quick_view_issues_footer.html.erb
app/views/quick_view_issues/quick_view_issue_dialog.html.erb
init.rb

index 6ffc48e..c44b6ee 100644 (file)
@@ -4,13 +4,16 @@ class QuickViewIssuesController < ApplicationController
 
   def show
     respond_to do |format|
-      #render 'hooks/quick_view_issue_dialog', :project => @project, :issue => other_issue 
-      logger.debug ' *** format='+format.inspect
-      lookup_context.view_paths do |path|
-         logger.debug ' *** lookup='+path.to_s
-      end
-      logger.debug ' *** issue='+@issue.inspect
-      format.html { render :template => 'quick_view_issues/quick_view_issue_dialog', :layout => false, :project => @project, :issue => @issue  }
+      #logger.debug ' *** format='+format.inspect
+      #lookup_context.view_paths do |path|
+      #   logger.debug ' *** lookup='+path.to_s
+      #end
+      #logger.debug ' *** issue='+@issue.inspect
+      format.html {
+        render :template => 'quick_view_issues/quick_view_issue_dialog',
+               :layout => false,
+               :issue => @issue
+      }
     end
   end
 
index 2d3cb25..a54cf2e 100644 (file)
@@ -1,4 +1,4 @@
-<%
+<%-
    extend AttachmentsHelper
    extend CustomFieldsHelper
    extend JournalsHelper
    journals.reverse! if User.current.wants_comments_in_reverse_order?
 
    dialog_id = Time.now.to_i
-%>
-<% if @issues.size == 1  %>
+-%>
+<%# -------------------------------------- %>
+<%# 一つだけ選択、かつ、親も子も関連もなし %>
+<%# -------------------------------------- %>
+<% if @issues.size == 1 && issue.root? && !issue.children? && issue.relations.none? %>
+  <li><%= context_menu_link( l(:button_quick_view),
+                             "javascript:quick_view_show_dialog(#{issue.id})",
+                             :class => 'icon-show') %></li>
+<%# ----------------------------00-------- %>
+<%# 一つだけ選択、かつ、親か子か関連あり   %>
+<%# -------------------------------------- %>
+<% elsif @issues.size == 1 %>
   <li class="folder">
     <a href="#" class="submenu"><%= l(:button_quick_view) %></a>
     <ul>
-      <li><%= context_menu_link( "\##{issue.id}",
-                                 "javascript:quick_view_show_dialog(#{issue.id})",
-                                 :class => 'icon-show') %></li>
   <% unless issue.root? %>
-    <% issue.ancestors.visible.all.each do |ancestor| %>
-      <li><%= context_menu_link( "\##{ancestor.id}",
-                                 "javascript:quick_view_show_dialog(#{ancestor.id})",
+    <li><%= context_menu_link( "\##{issue.parent.id} (Parent)",
+                               "javascript:quick_view_show_dialog(#{issue.parent.id})",
+                               :class => 'icon-show') %></li>
+  <% end %>
+      <li><%= context_menu_link( "\##{issue.id} (This)",
+                                 "javascript:quick_view_show_dialog(#{issue.id})",
                                  :class => 'icon-show') %></li>
-    <% end %>
+  <% issue.children.each do |child| %>
+    <li><%= context_menu_link( "\##{child.id} (Child)",
+                               "javascript:quick_view_show_dialog(#{child.id})",
+                               :class => 'icon-show') %></li>
   <% end %>
   <% if issue.relations.any? %>
       <hr>
     <% issue.relations.each do |relation| %>
       <% other_issue = relation.other_issue(issue) %>
-      <li><%= context_menu_link( l(relation.label_for(issue)) + " \##{other_issue.id}",
+      <% relation_label = l(relation.label_for(issue)) %>
+      <% relation_icon_url = image_path('link.png') %>
+      <li><%= context_menu_link( "\##{other_issue.id} (#{relation_label})",
                                      "javascript:quick_view_show_dialog(#{other_issue.id})",
                                      :class => 'icon-show',
-                                     :style => 'background-image: url("'+image_path('link.png')+'")' ) %></li>
-      <%# render 'hooks/quick_view_issue_dialog', :project => @project, :issue => other_issue %> 
+                                     :style => "background-image: url('#{relation_icon_url}')" ) %></li>
     <% end %>
   <% end %>
     </ul>
+<%# -------------------------------------- %>
+<%# その他                                 %>
+<%# -------------------------------------- %>
 <% else %>
-
   <% ids_as_str = @issue_ids.join(',') %>
   <li><%= context_menu_link( l(:button_quick_view),
                              "javascript:quick_view_show_dialog(#{ids_as_str})",
                              :class => 'icon-show') %></li>
-  <% @issues.each do |issue| %>
-    <%# render 'hooks/quick_view_issue_dialog', :project => @project, :issue => issue %> 
-  <% end %>
 <% end %>
-
index 6ab182d..0ae338f 100644 (file)
@@ -3,91 +3,60 @@
 <% end %>
 <script>
 //<![CDATA[
-var lastmoved = Date.now();
-var me = null;
-/*
-$(".issue").mouseover( function () {
-   me = this;
-   setTimeout(delayToolTip, 3000);
-   lastmoved = Date.now();
-});
-$(".issue").tooltip({track:true});
-*/
-function delayToolTip(){
-   var elapsed = Date.now() - lastmoved;
-   if (elapsed > 2900) {
-      //$(me).attr("title", getContent(me));
-      getContent(me);
-      //$(me).tooltip("open");
-   }
-}
-function getContent(me){
-   var content;
-   var issue_id = $(me).attr("id").slice("issue-".length);
-   var url='<%= issues_path() %>/'+issue_id+".json";
-   console.log(url);
-
-   $.ajax({url: url, dataType: 'json'}).done( function(data){
-      //console.log(data.issue.id + ":" + data.issue.description);
-      console.log(data.issue.id + ": get");
-      //content = '<div class="tooltip-content" style="overflow: hidden;">' + data.issue.description+'</div>';
-      $(me).attr("title", data.issue.description);
-   });
-   return content;
-}
-
-function rewriteToolTip(){
+var quick_view_dialogs = 0;
 
-}
-
-function quick_view_show_dialog(issue_id) {
-  if (!issue_id) {
+function quick_view_show_dialog() {
+  if (arguments.length == 0) {
      return;
   }
 
-  //$(".quick_view_dialog").each(function() {
-  //   alert($(this).attr("id"));
-  //});
-
+  quick_view_dialogs = 0;
   for (var i = 0; i < arguments.length; ++i) {
      var issue_id = arguments[i];
      var url = '/quick_view_issues/' + issue_id;
-     $("quick_view_form").attr("action", url);
-     $.ajax({url: url, data: $("quick_view_format").serialize(), dataType: 'html', success: function(data){
-//       console.log(data.issue.id + ": get");
-        var res = data;
-        console.log(res);
-        $("#quick_view_dialogs").append(res);
+     $.ajax( { url: url, dataType: 'html', success: quick_view_dialog_open });
+  }
+}
+
+function quick_view_dialog_open(dialog_html) {
+  $("#quick_view_dialogs").append(dialog_html);
 
-        var search_id_str = "[data-issue=\"%s\"]".replace('%s',issue_id);
-        var matched = /id="(quick_view_dialog_[0-9]+)"/.exec(res);
-        console.log("search_id=" + matched[1]);
-        var dialog_id = matched[1];
-        console.log("dialog_id=" + dialog_id);
+  var m = /id="(quick_view_dialog_[0-9]+)"/.exec(dialog_html);
+  if (m == null) return;
 
-        var last = $(".quick_view_dialog:visible:last");
-        var position = null;
-        if (last.length == 1 && last.attr("id") != dialog_id) {
-           position={ my: "left top", at: "left+10px top+10px", of : last };
-        }
+  var dialog_id = m[1];
 
-        $('#'+dialog_id).dialog({
-           modal: false,
-           closeOnEscape: false,
-           width: 800,
-           height: 480,
-           position: position,
-           show: "clip",
-           close: "clip",
-           buttons: {
-              "close" : quick_view_dialog_cancel
-           },
-           close: quick_view_dialog_close
-        });
-     }});
-  };
+  var last = $(".quick_view_dialog:visible:last");
+  var position = null;
+  if (last.length == 1 && last.attr("id") != dialog_id) {
+     position={ my: "left top", at: "left+10px top+10px", of : last };
+  } else {
+     if (quick_view_dialogs == 0) {
+       position=null;
+       position={ my: "center", at: "center" };
+     } else {
+       adjust = quick_view_dialogs * 10;
+       position={ my: "center", at: "left"+adjust+"px top+"+adjust+"px" };
+     }
+  }
+  quick_view_dialogs++;
+
+  $('#'+dialog_id).dialog({
+     modal: false,
+     closeOnEscape: false,
+     width: 800,
+     height: 480,
+     position: position,
+     show: "clip",
+     close: "clip",
+     buttons: {
+        "close" : quick_view_dialog_cancel
+     },
+     close: quick_view_dialog_close
+  });
 }
 
+
 function quick_view_dialog_close(){
   $(this).remove();
 }
index f4449fe..086bdbd 100644 (file)
@@ -1,16 +1,14 @@
 <%
   #template args
-  #  project - drawing target
   #  issue - drawing target
-  logger.debug "template"
 
   extend IssuesHelper
   extend AttachmentsHelper
   extend CustomFieldsHelper
   extend JournalsHelper
 
-  project = @project
   issue = @issue
+  project = @issue.project
   journals = issue.journals.includes(:user, :details).reorder("#{Journal.table_name}.id ASC").all
   journals.each_with_index {|j,i| j.indice = i+1}
   journals.reject!(&:private_notes?) unless User.current.allowed_to?(:view_private_notes, project)
@@ -18,8 +16,9 @@
 
   dialog_id = Time.now.to_i
   dialog_html_id = "quick_view_dialog_#{dialog_id}"
+  dialog_title = "Quick View - \##{issue.id} #{issue.subject}"
 %>
-  <div id="<%= dialog_html_id %>" class="quick_view_dialog" style="background-color: white;" title="Quick View - <%= issue.subject %>" data-issue="<%= issue.id.to_s %>">
+  <div id="<%= dialog_html_id %>" class="quick_view_dialog" style="background-color: white;" title="<%= dialog_title %>" data-issue="<%= issue.id.to_s %>">
      <div class="issue">
         <div class="subject">
         <%= render_issue_subject_with_tree(issue) %>
@@ -77,7 +76,7 @@
           <% if issue.description? %>
           <%= textilizable issue, :description, :attachments => issue.attachments %>
           <% else %>
-          <i>description is none.</i>
+          <i>description is empty</i>
           <% end %>
           </div>
           <% if issue.attachments.any? %>
@@ -94,4 +93,3 @@
      <% end %>
 
   </div>
-  <!--<script>$('#<%= dialog_html_id %>').dialog();</script>-->
diff --git a/init.rb b/init.rb
index 55b0aef..e76be8d 100644 (file)
--- a/init.rb
+++ b/init.rb
@@ -8,6 +8,4 @@ Redmine::Plugin.register :quick_view do
   author 'Akira Saito'
   description 'This plugin provides ability to view a details of the issue at the issues page.'
   version '0.0.3'
-
-  permission :manage_quick_view_issues, {:quick_view_issues => [:index, :show]}, :public => true
 end