1
|
<%
|
2
|
currItem = @issue
|
3
|
if Redmine::VERSION::MAJOR >= 2 or
|
4
|
(Redmine::VERSION::MAJOR == 1 and Redmine::VERSION::MINOR < 3) then
|
5
|
currItem ||= @wiki
|
6
|
end
|
7
|
%>
|
8
|
<% content_for :header_tags do %>
|
9
|
<%= stylesheet_link_tag 'attach_screenshot', :plugin => 'redmine_inline_attach_screenshot' %>
|
10
|
<%= javascript_include_tag 'attach_screenshot', :plugin => 'redmine_inline_attach_screenshot' %>
|
11
|
<% end %>
|
12
|
<span id="attachments_fields">
|
13
|
<% if defined?(container) && container && container.saved_attachments %>
|
14
|
<% container.saved_attachments.each_with_index do |attachment, i| %>
|
15
|
<span id="attachments_p<%= i %>">
|
16
|
<%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename') +
|
17
|
text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 255, :placeholder => l(:label_optional_description), :class => 'description') +
|
18
|
link_to(' '.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') %>
|
19
|
<%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
|
20
|
</span>
|
21
|
<% end %>
|
22
|
<% end %>
|
23
|
</span>
|
24
|
<span class="add_attachment">
|
25
|
<%= file_field_tag 'attachments[dummy][file]',
|
26
|
:id => nil,
|
27
|
:class => 'file_selector',
|
28
|
:multiple => true,
|
29
|
:onchange => 'addInputFiles(this);',
|
30
|
:data => {
|
31
|
:max_file_size => Setting.attachment_max_size.to_i.kilobytes,
|
32
|
:max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
|
33
|
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
|
34
|
:upload_path => uploads_path(:format => 'js'),
|
35
|
:description_placeholder => l(:label_optional_description)
|
36
|
} %>
|
37
|
(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)
|
38
|
</span>
|
39
|
|
40
|
<% content_for :header_tags do %>
|
41
|
<%= javascript_include_tag 'attachments' %>
|
42
|
<% end %>
|
43
|
|
44
|
<small><%= link_to l(:label_add_another_file), '#', :onclick => 'addFileField(); return false;' %>
|
45
|
(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)
|
46
|
</small>
|
47
|
<br />
|
48
|
<br />
|
49
|
<% if currItem %>
|
50
|
<% if currItem.new_record? %>
|
51
|
<label>
|
52
|
<% end %>
|
53
|
<%= l(:label_screenshots) %>
|
54
|
<% if currItem.new_record? %>
|
55
|
</label>
|
56
|
<% else %>
|
57
|
<br />
|
58
|
<% end %>
|
59
|
<span id="screenshots_fields">
|
60
|
<%= submit_tag(l(:button_add), {:onclick => 'showAttachScreen(); return false;', :type => 'button'})%>
|
61
|
</span>
|
62
|
<small><%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %></small>
|
63
|
<span id="attach_applet" style="display: none; position: absolute; border: solid 1px #bbb;"></span>
|
64
|
<br />
|
65
|
<span id="screenshots"></span>
|
66
|
<script type="text/javascript">
|
67
|
function showAttachScreen() {
|
68
|
document.getElementById('attach_applet').style.display = 'block';
|
69
|
document.getElementById('attach_applet').innerHTML =
|
70
|
'<applet codebase="<%= url_for(:only_path => false, :controller => 'welcome')%>plugin_assets/redmine_inline_attach_screenshot/javascripts/" code="com.axmor.redmine.uploader.Uploader.class" archive="uploader_applet.jar" height="250" width="400" MAYSCRIPT>'+
|
71
|
'<param name="label.image" value="<%= l(:label_image) %>">' +
|
72
|
'<param name="label.button.paste" value="<%= l(:label_button_paste) %>">' +
|
73
|
'<param name="label.button.attach" value="<%= l(:button_attach) %>">' +
|
74
|
'<param name="label.button.cancel" value="<%= l(:button_cancel) %>">' +
|
75
|
'<param name="error.close.msg" value="<%= l(:error_close_msg) %>">' +
|
76
|
'<param name="error.close.title" value="<%= l(:error_close_title) %>">' +
|
77
|
'<param name="attach.url" value="<%= url_for(:only_path => false, :controller => 'welcome')%>attach_screenshot">' +
|
78
|
'<param name="error.attach.msg" value="<%= l(:error_attach_msg) %>">' +
|
79
|
'<param name="error.attach.title" value="<%= l(:error_attach_title) %>">' +
|
80
|
'<param name="rss.key" value="<%= User.current.rss_key %>">' +
|
81
|
'Applet</applet>';
|
82
|
}
|
83
|
function addAttachScreen(fileId) {
|
84
|
var s = document.createElement("div");
|
85
|
s.id = fileId;
|
86
|
s.className = "screen_thumb";
|
87
|
|
88
|
var s1 = document.createElement("div");
|
89
|
s1.className = "st1";
|
90
|
var s2 = document.createElement("div");
|
91
|
s2.className = "st2";
|
92
|
|
93
|
var im = document.createElement("img");
|
94
|
im.width = "240";
|
95
|
im.src = "<%= url_for(:only_path => false, :controller => 'welcome')%>attach_screenshot?id=" + fileId;
|
96
|
|
97
|
var b = document.createElement("input");
|
98
|
b.type = "image";
|
99
|
b.src = "<%= url_for(:only_path => false, :controller => 'welcome')%>images/delete.png"
|
100
|
b.setAttribute("onClick", "deleteAttachScreen('" + fileId + "'); return false;");
|
101
|
|
102
|
var i = document.createElement("input");
|
103
|
i.type = "image";
|
104
|
i.src = "<%= url_for(:only_path => false, :controller => 'welcome')%>images/lightning.png";
|
105
|
i.setAttribute("onClick", "addLinkToAttachScreen('" + fileId + "'); return false;");
|
106
|
|
107
|
var d = document.createElement("input");
|
108
|
d.name = "screenshots[" + fileId + "][description]";
|
109
|
d.type = "text";
|
110
|
d.size = 15;
|
111
|
|
112
|
s1.appendChild(im);
|
113
|
s.appendChild(s1);
|
114
|
s2.appendChild(d);
|
115
|
s2.appendChild(b);
|
116
|
s2.appendChild(i);
|
117
|
s.appendChild(s2);
|
118
|
|
119
|
p = document.getElementById("screenshots");
|
120
|
p.appendChild(s);
|
121
|
}
|
122
|
</script>
|
123
|
<% end %>
|