Skip to content

Instantly share code, notes, and snippets.

@tamoot
Created June 21, 2010 03:21
Show Gist options
  • Save tamoot/446344 to your computer and use it in GitHub Desktop.
Save tamoot/446344 to your computer and use it in GitHub Desktop.
Index: category.rb
===================================================================
--- category.rb (リビジョン 3640)
+++ category.rb (作業コピー)
@@ -616,19 +616,20 @@
if @conf['category.edit_support'] then
add_header_proc do
%Q[\t<script type="text/javascript"><!--
- function inj_c(str) {
+ function inj_c() {
var textarea = window.document.forms[0].body;
textarea.focus();
+ var category_str = '[' + window.document.getElementById('category').value + ']';
if (document.selection) { // IE, Opera
var range = document.selection.createRange();
- range.text = str;
+ range.text = category_str;
} else if (textarea.selectionStart != undefined) { // mozilla
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + str + textarea.value.substring(end);
- textarea.setSelectionRange(start + str.length, start + str.length);
+ textarea.value = textarea.value.substring(0, start) + category_str + textarea.value.substring(end);
+ textarea.setSelectionRange(start + category_str.length, start + category_str.length);
} else {
- textarea.value += str;
+ textarea.value += category_str;
}
}
//-->
@@ -640,10 +641,12 @@
unless @categories.size == 0 then
ret << '<div class="field title">'
ret << "#{@category_conf_label}:\n"
+ ret << '<form name="dropdown">'
+ ret << '<select name="category" onChange="inj_c()">'
@categories.sort_by{|e| e.downcase}.each do |c|
- ret << %Q!| <a href="javascript:inj_c(&quot;[#{h c}]&quot;)">#{h c}</a>\n!
+ ret << %Q!<option value="#{h c}">#{h c}!
end
- ret << "|\n</div>\n<br>\n"
+ ret << "\n</select></form>\n</div>\n<br>\n"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment