https://www.redmine.org/https://www.redmine.org/favicon.ico?16793021292010-07-09T13:31:31ZRedmineRedmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=181402010-07-09T13:31:31ZAron Rotteveel
<ul></ul><p>+1. Would love to see a feature like this.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=181472010-07-09T13:38:59ZFelix Schäfer
<ul><li><strong>Category</strong> changed from <i>Search engine</i> to <i>UI</i></li></ul><p>This should be a breeze to throw in once we have a unified autocomplete mechanism. What do you propose should happen on clicking on the matched issues?</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=181552010-07-09T14:59:35ZAndrius Kriučkovas
<ul></ul><p>Felix Schäfer wrote:</p>
<blockquote>
<p>This should be a breeze to throw in once we have a unified autocomplete mechanism.</p>
</blockquote>
<p>Sorry, I am not familiar with the development roadmap, therefore, I cannot comment on the architecture.</p>
<blockquote>
<p>What do you propose should happen on clicking on the matched issues?</p>
</blockquote>
<p>I think, if the mouse-cursor over of those top-5 issues, should show the header of the problem on the pop-up section (or whatever it is in the HTML terms) with the main description.</p>
<p>And clicking it - go directly to the old issue, instead of post new one. We encourage the users to search for old issues, and reopen them, but this is not trivial and requires active involvement. Such feature would kill the issue in a smart way.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=243192011-01-21T11:25:46ZAndrew Betts
<ul></ul><p>This would be very useful for us as well. Our Redmine users include our clients as well as our development team and on commercial projects you cannot demand that a client go out of their way to try and find out whether the issue they've observed has already been reported in the same way that you might expect an open source user to. The particular case I'm thinking of is a client that has small offices in five locations around the world. The staff don't regularly see each other and are incredibly busy so collaboration on issue tracking is currently virtually non-existent.</p>
<p>Having the ability to pro-actively let them know that the issue they're raising has already been reported, and giving them a link to it, would save a lot of time and improve communication and co-ordination, particularly over urgent issues.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=245302011-01-26T20:38:32ZAndrew Betts
<ul><li><strong>File</strong> <a href="/attachments/5216">Capture.PNG</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/5216/Capture.PNG">Capture.PNG</a> added</li></ul><p>I've solved this for us with a bit of jQuery. This clearly isn't the way you'd do it ideally, but I'm a JS developer, and I don't know any Ruby :-)</p>
<pre><code>// When new issues are created, search Redmine for similar issues<br /> var timSearchSimilar = null;<br /> $('.new-issue-form #issue_subject').attr('autocomplete', 'off').bind('keyup change', function() {<br /> var txtEl = $(this);<br /> clearTimeout(timSearchSimilar);<br /> timSearchSimilar = setTimeout(function() {<br /> var proj = location.href.replace(/^.*\/projects\/([^\/]+)\/issues.*$/, '$1');<br /> $.get('/search/index/'+proj+'?issues=1&q='+escape(txtEl.val()), function(resp) {<br /> var pat = new RegExp(/&lt;a href=\"\/issues\/(\d+)\"&gt;(.*?) #(\d+) \(([^\)]+)\)\: (.+?)<\/a>/gi);<br /> var result;<br /> var similarhtml = '';<br /> while ((result = pat.exec(resp)) != null) {<br /> similarhtml <ins>= "&lt;tr&gt;&lt;td&gt;"+result[2]</ins>"&lt;/td&gt;&lt;td&gt;&lt;a href='/issues/"+result[1]+"'&gt;#"+result[1]+"&lt;/a&gt;&lt;/td&gt;&lt;td&gt;"+result[5]+"&lt;/td&gt;&lt;td&gt;"+result[4]+"&lt;/td&gt;&lt;/tr&gt;";<br /> }<br /> if ($('#similarissues').length) $('#similarissues').remove();<br /> if (similarhtml) {<br /> similarhtml = "&lt;div id='similarissues' style='padding: 5px 0 8px 180px;'&gt;&lt;label&gt;Did you mean?&lt;br&gt;&lt;span style='font-size:10px; line-height: normal; font-weight: normal'&gt;These issues already exist&lt;/span&gt;&lt;/label&gt;&lt;table style='line-height: 1em'&gt;"+similarhtml+"&lt;/table&gt;&lt;/div&gt;";<br /> $('#parent_issue').before(similarhtml);<br /> }<br /> })<br /> }, 500);<br /> });</code></pre>
<p>I hope this is of some use to people who want this feature until it's available in Redmine itself.</p>
<p>Result looks like this:</p>
<p><img src="https://www.redmine.org/attachments/download/5216/Capture.PNG" alt="" /></p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=245312011-01-26T20:40:03ZAndrew Betts
<ul></ul><p>Note that in my previous comment, the JS code doesn't have any HTML entities in it, so convert those back to angle brackets for the real code.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=249252011-02-07T21:04:10ZDustin Lambert
<ul><li><strong>File</strong> <a href="/attachments/5316">dups.js</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/5316/dups.js">dups.js</a> added</li></ul><p>I like Andrew's solution, but in the spirit of Prototype, I've translated his solution to Prototype. It should work with Redmine out of the box as a plugin.</p>
Also changed a few things (I hope):
<ul>
<li>Changed regular expression to handle Redmine being installed to a sub directory</li>
<li>Open links in new windows</li>
<li>Tracker Type and Issue Number are all linked now</li>
</ul>
<p>Hope this helps!</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=273622011-03-30T09:10:34ZAnonymous
<ul></ul><p>Where do i have to put the dups.js? How do i integrate it into redmine?<br />Thanks in advance</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=282522011-04-23T08:30:04ZAndrius Kriučkovas
<ul><li><strong>% Done</strong> changed from <i>10</i> to <i>50</i></li></ul><p>Would it be possible to release this into mainline and/or as plug-in? From end-user POV, there is lack of install instructions.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=340862011-11-24T11:39:26ZDavid B
<ul></ul><p>+1 I want this too!</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=340882011-11-24T12:56:42ZEtienne Massip
<ul><li><strong>Target version</strong> set to <i>Candidate for next major release</i></li></ul> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=340902011-11-24T15:42:19ZTerence Mill
<ul></ul><p>+1</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=341172011-11-24T21:20:14ZMischa The Evil
<ul><li><strong>File</strong> <a href="/attachments/6817">ro5840-integrate_dups_js_by_dustin_lambert-trunk_r7885.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/6817/ro5840-integrate_dups_js_by_dustin_lambert-trunk_r7885.patch">ro5840-integrate_dups_js_by_dustin_lambert-trunk_r7885.patch</a> added</li></ul><p>I've created a simple patch file to integrate the <code>dups.js</code> contributed by Dustin Lambert within the core. I haven't touched the javascript but it seems to work without any problems (haven't tested it thoroughly though).</p>
The here provided implementation can also be provided through a plugin pretty easily. I think the following two topics should be covered now:
<ol>
<li>We should reach consensus about if this should be integrated within the Redmine core or through a third-party Redmine plugin (unless this is already decided by the committers, considering the target-version)</li>
<li>If the decision is made to integrate this as a core feature, I'd prefer to have an option to enable/disable this feature preferably at project level but at least at application level. Any opinions?</li>
</ol> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=341222011-11-24T22:08:01ZJean-Philippe Langjp_lang@yahoo.fr
<ul><li><strong>Target version</strong> changed from <i>Candidate for next major release</i> to <i>Unplanned backlogs</i></li></ul><p>I'm not sure that this should be in the core. The proposed dup.js seems more like a hack to me but can easily be added via a plugin.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=341232011-11-24T22:13:03ZJean-Philippe Langjp_lang@yahoo.fr
<ul></ul><p>BTW, to make this script more robust, the core could provide json/xml response for search results.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=341262011-11-25T07:46:03ZAndrius Kriučkovas
<ul></ul><p>Jean-Philippe Lang wrote:</p>
<blockquote>
<p>I'm not sure that this should be in the core. The proposed dup.js seems more like a hack to me but can easily be added via a plugin.</p>
</blockquote>
<p>Dear Jean. From the support point of view, the plug-in is worse. For example in Lithuania, many supporters of the Redmine decline to mess up with the plugins, especially if they lag-behind the upgrade cycle/version. I would like it to suggest to be a core feature, because it truly think, that this would have a very positive impact of the real implementations in the field - both for knowledge search and duplication evasion.</p>
<p>Of course the impact on the DB and server-side resources should be accounted for, but I think this is not an issue any more because of move to 64 bits/more RAM, many-cores, etc.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=341272011-11-25T07:50:39ZAndrius Kriučkovas
<ul></ul><p>One more thing - there is an issue with the languages for example (Lithuanian), which have many suffixes, endings, and which are not only root-based (as English is). Declensions and conjugations does have impact.</p>
<p>I think I should update initial report, that the system should try to look-up after N (configurable via settings) symbols are entered and after space (or short pause after last input character). This would almost solve such language issues.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=341512011-11-25T22:50:51ZJean-Philippe Langjp_lang@yahoo.fr
<ul></ul><p>Vasaris Vėjas wrote:</p>
<blockquote>
<p>From the support point of view, the plug-in is worse.</p>
</blockquote>
<p>I understand but I simply can't put all the existing plugins in the core.</p>
<blockquote>
<p>I think I should update initial report, that the system should try to look-up after N (configurable via settings) symbols are entered and after space (or short pause after last input character). This would almost solve such language issues.</p>
</blockquote>
<p>That's the point that makes this feature not so easy to make it <strong>really usefull</strong>. This could work if it relies on a smarter full text search engine (eg. tsearch for pg).</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=341582011-11-26T07:40:30ZAndrius Kriučkovas
<ul></ul><p>Jean-Philippe Lang wrote:</p>
<blockquote>
<p>Vasaris Vėjas wrote:</p>
<blockquote>
<p>From the support point of view, the plug-in is worse.</p>
</blockquote>
<p>I understand but I simply can't put all the existing plugins in the core.</p>
</blockquote>
<p>At least for now I hope ;-)</p>
<blockquote>
<p>That's the point that makes this feature not so easy to make it <strong>really usefull</strong>. This could work if it relies on a smarter full text search engine (eg. tsearch for pg).</p>
</blockquote>
<p>I do agree, that this is not obviously a killer-feature. But I do hope, that in time it will make to a supported plug-in or core. My point was, that even not a perfect solution (80%:20%) if looked from the end-user/supporting admin (not developer's!) position would be useful. At least a candidate for a consideration ;-).</p>
<p>P.S. By the way I think that most latin-based languages wouldn't have any issues with the simple implementation.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=358222012-02-05T13:24:34ZAlessandro Bahgat
<ul></ul><p>Hi guys, we started working on a plugin (here <a class="external" href="https://github.com/abahgat/redmine_didyoumean">https://github.com/abahgat/redmine_didyoumean</a>) to provide this kind of functionality, and I just discovered this issue. We are still experimenting with a few search options in order to return just relevant results and, ideally, we'd love to do it without impacting Redmine's core.</p>
<p>If you want to help with any hint or suggestion, we'd really appreciate that.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=451882013-02-01T08:22:18ZTerence Mill
<ul></ul><p>+1</p>
<p>Covered by:</p>
<p>Feature <a class="issue tracker-2 status-1 priority-4 priority-default" title="Feature: Improve search system for issues - like "context specific search" (New)" href="https://www.redmine.org/issues/9180">#9180</a>- Improve search system for issues - like "context specific search"</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=454362013-02-08T08:25:06ZDaniel Felix
<ul></ul><p>This seems to be covered by <a class="external" href="http://www.redmine.org/plugins/didyoumean">http://www.redmine.org/plugins/didyoumean</a> ?</p>
<p>Edit: Haven't seen note 20. :-)<br />But maybe you could provide this as a corepatch to add this in Redmine core in the future? :-)</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=478452013-04-04T13:00:14ZAndrius Kriučkovas
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>Resolved</i></li></ul><p>Alessandro Bahgat wrote:</p>
<blockquote>
<p>Hi guys, we started working on a plugin (here <a class="external" href="https://github.com/abahgat/redmine_didyoumean">https://github.com/abahgat/redmine_didyoumean</a>) to provide this kind of functionality, and I just discovered this issue. We are still experimenting with a few search options in order to return just relevant results and, ideally, we'd love to do it without impacting Redmine's core.</p>
<p>If you want to help with any hint or suggestion, we'd really appreciate that.</p>
</blockquote>
<p>I have just installed this one, as my scheduled Redmine upgrade sequence. From the first sight, it looks exactly what was needed. Perhaps it would be nice, if Redmine had some search tags infrastructure, so the live lookup would work even for tags/contents of the issue. Because users sometimes are laconic on the subject line ;-)</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=478462013-04-04T13:02:15ZAndrius Kriučkovas
<ul></ul><p>Daniel Felix wrote:</p>
<blockquote>
<p>This seems to be covered by <a class="external" href="http://www.redmine.org/plugins/didyoumean">http://www.redmine.org/plugins/didyoumean</a> ?</p>
</blockquote>
<p>I bet, it is.</p>
<blockquote>
<p>Edit: Haven't seen note 20. :-)<br />But maybe you could provide this as a corepatch to add this in Redmine core in the future? :-)</p>
</blockquote>
<p>As plugin install takes ~3 min., it is no longer an issue.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=478502013-04-04T13:39:31ZEtienne Massip
<ul><li><strong>Status</strong> changed from <i>Resolved</i> to <i>New</i></li></ul> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=502182013-06-26T03:39:20ZJeff Pierson
<ul></ul><p>+1 This is a feature that Bugzilla had that we appreciated greatly once it was added. We will be soon migrating to Redmine and likewise having duplicate issue detection at some point in the future would be a very welcome feature.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=644242015-06-24T10:52:52ZJaap de Haan
<ul></ul><p>+1: StackOverflow has a feature like this and it's really great. Unfortunately not open source so no details on implementation available but that's the way it should work, definitevely :-)</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=873862018-09-17T13:25:23ZAnonymous
<ul></ul><p>+1</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=875652018-09-25T07:40:36ZNadav Kavalerchik
<ul></ul><p>+1</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=875672018-09-25T09:19:12ZNadav Kavalerchik
<ul></ul><p>I have tested: <a class="external" href="https://github.com/abahgat/redmine_didyoumean">https://github.com/abahgat/redmine_didyoumean</a><br />but it does not support Redmine version 3+<br />And since I am not a Ruby developer, I preferred the JS hack kindly shared above by Andrew Betts, 7 years ago!</p>
<a name="A-working-solution-for-Redmine-346-stable"></a>
<h2 >A working solution for Redmine 3.4.6 stable<a href="#A-working-solution-for-Redmine-346-stable" class="wiki-anchor">¶</a></h2>
<p>I have installed the plugin:<br /><a class="external" href="https://github.com/martin-denizet/redmine_custom_js">https://github.com/martin-denizet/redmine_custom_js</a></p>
<p>And updated the following JS code to support latest stable Redmine 3.4</p>
<pre>
$(document).ready(function(){
// Wait for page to load - start
// When new issues are created, search Redmine for similar issues
var timSearchSimilar = null;
$('.new_issue #issue_subject').attr('autocomplete', 'off').bind('keyup change', function() {
var txtEl = $(this);
clearTimeout(timSearchSimilar);
timSearchSimilar = setTimeout(function() {
var proj = location.href.replace(/^.*\/projects\/([^\/]+)\/issues.*$/, '$1');
$.get('/projects/'+proj+'/search?utf8=✓&scope=&issues=1&q='+txtEl.val(), function(resp) {
var pat = new RegExp(/<a href=\"\/issues\/(\d+)\">(.*?) #(\d+) \(([^\)]+)\)\: (.+?)<\/a>/gi);
var result;
var similarhtml = '';
while ((result = pat.exec(resp)) != null) {
similarhtml = similarhtml + "<tr><td>"+result[2]+"</td><td><a href='/issues/"+result[1]+"'>#"+result[1]+"</a></td><td>"+
result[5]+"</td><td>"+result[4]+"</td></tr>";
}
if ($('#similarissues').length) $('#similarissues').remove();
if (similarhtml) {
similarhtml = "<div id='similarissues' style='padding: 5px 0 8px 180px;'>" +
"<label>Did you mean?<br><span style='font-size:10px; line-height: normal; font-weight: normal'>These issues already exist:</span></label>"+
"<table style='line-height: 1em'>" + similarhtml + "</table></div>";
$('#issue_subject').after(similarhtml);
}
})
}, 500);
});
// Wait for page to load - end
});
</pre> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=883232018-11-09T08:00:24ZKai Forberger
<ul></ul><p>+1: The solution from <a class="issue tracker-2 status-1 priority-4 priority-default" title="Feature: Live lookup of the existing issues based on the keywords entered in the title for new issue (New)" href="https://www.redmine.org/issues/5840#note-30">#5840-30</a> works for us. It would be great to have a duplicate issue detection feature in redmine.</p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=934242019-09-01T04:13:01ZGo MAEDA
<ul><li><strong>Related to</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/31989">Feature #31989</a>: Inline issue auto complete (#) in fields with text-formatting enabled</i> added</li></ul> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=941212019-10-03T08:29:39ZTakenori TAKAKItakenory@gmail.com
<ul><li><strong>File</strong> <a href="/attachments/24041">live_look_up_similar_issues.png</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/24041/live_look_up_similar_issues.png">live_look_up_similar_issues.png</a> added</li><li><strong>File</strong> <a href="/attachments/24042">live_look_up_similar_issues.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/24042/live_look_up_similar_issues.patch">live_look_up_similar_issues.patch</a> added</li></ul><p>+1: I tried another approach to create a feature that displays issues with similar subjects.<br />By using the existing action "/issues/auto_complete" in Ajax, the feature could be implemented with a little changes.<br />The UI is as shown below (referring to the similar feature of Github).</p>
<p><img src="https://www.redmine.org/attachments/download/24041/live_look_up_similar_issues.png" style="width:500px;" alt="" /></p> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=943262019-10-12T07:46:28ZGo MAEDA
<ul><li><strong>Target version</strong> changed from <i>Unplanned backlogs</i> to <i>Candidate for next major release</i></li></ul> Redmine - Feature #5840: Live lookup of the existing issues based on the keywords entered in the title for new issuehttps://www.redmine.org/issues/5840?journal_id=954392019-12-27T07:47:26ZMalte Blanck
<ul></ul><p>Takenori TAKAKI wrote:</p>
<blockquote>
<p>+1: I tried another approach to create a feature that displays issues with similar subjects.<br />By using the existing action "/issues/auto_complete" in Ajax, the feature could be implemented with a little changes.<br />The UI is as shown below (referring to the similar feature of Github).</p>
</blockquote>
<p>Nice! Any chance that you release this feature as an Plugin for 4.x ?</p>