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
-<%
+<%-
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 %>
-
<% 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();
}
<%
#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)
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) %>
<% 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? %>
<% end %>
</div>
- <!--<script>$('#<%= dialog_html_id %>').dialog();</script>-->
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