View Issue Details

IDProjectCategoryView StatusLast Update
0026117mantisbtbugtrackerpublic2019-10-03 14:12
ReporterMarty0 Assigned Todregad  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionwon't fix 
Product Version2.17.0 
Summary0026117: Improvement ideas
Description

Hello,

In our company, we have made tens of useful improvements. There are the most important ones here that I think it would be more that contributive to have them in Mantis core for all. Most of our improvements are done or fixed additionally by plugins and JS files so I will write only a few code blocks. If you are interested in that, I can provide source code.

1) This feature would Mantis kick a few classes upper! - https://www.allphptricks.com/select-box-with-search-option-using-jquery/ I can't imagine how we could survive without that... :)
I also had to make searching in filters better so I've solved that this way and it works perfectly. However I believe you would make it even better then me. :) [screen1]

/****/
/* Filter search helper
/****/

var $selectors = ["#reporter_id_filter, #handler_id_filter, #user_monitor_filter, #note_user_id_filter, #show_category_filter"];

for (var i = 1; i < 1000; i++) { // 1000 - count of Mantis custom fields
$selectors.push("#customfield" + i + "_filter");
}
var $filterSelectors = $selectors.join(", ");

$($filterSelectors).click(function () {
var active = this.id;
var filterLabel = "search_" + active;

var checkExist = setInterval(function() {
    var newBox = $('#' + active + '_target select');

    if (newBox.length) {
        clearInterval(checkExist);
        newBox
            .prop(&quot;multiple&quot;, true)
            .css(&quot;height&quot;, &quot;200px&quot;)
            .after('&lt;input id=&quot;' + filterLabel + '&quot; type=&quot;text&quot; placeholder=&quot;Search..&quot; autocomplete=&quot;off&quot;>');
        var filterLabel_searchbox = $(&quot;#&quot; + filterLabel).focus();

        var checkExist_search = setInterval(function() {
            if (filterLabel_searchbox.length) {
                clearInterval(checkExist_search);

                filterLabel_searchbox
                    .keyup(function () {
                        var value = $(this).val().toLowerCase();
                        $(&quot;#&quot; + active + &quot;_target option&quot;).each( function (index) {
                            $(this).parent().hasClass(&quot;my_filter&quot;) ? $(this).unwrap() : &quot;&quot;; // It doesn't work in Internet Explorer without this.
                            $(this).wrap(&quot;&lt;div class='my_filter'>&lt;/div>&quot;);
                            $(this).text().toLowerCase().indexOf(value) > -1 ? $(this).unwrap() : &quot;&quot;;
                        });
                    });
            }
        }, 100); // check every 100ms
    }
}, 100); // check every 100ms

});

2) There is no asterisk at required field's labels on bug_update_page, the labels are not bold on bug_report_page and bug_update_page. On bug_change_status_page, it seems OK (bold text and asterisk at required fields).
On each of these 3 pages the class "category" is in other element - somewhere is <th> and somewhere is <td>. Everywhere should be <th>, shouldn't it?

3) I think the autocomplete at due date field should be off.

4) If there are a lot of items on sidebar or the window with page is resized to small too much, other items are not displayed. I've tried to fix it with this CSS style but this "fix" breaks links displaying by hovering above them. [screen4] (before and after)
#sidebar {
overflow-y: auto;
top: 45px;
bottom: 0;
}
#sidebar::before {
height: auto;
}

5) There was shorted text in each line on view_all_bug_page in Mantis 1, and after clicking that text was displayed all. Could you add this function in Mantis 2, please?

6) Colored lines according to current status was much better in Mantis 1 - it was more well arranged at the first sight. Another indispensable stuff for us. We made color more contrast - have a look. I think it is a good inspiration for you. [screen2]

7) Current way of notification is good for now but it would be more useful if there were even groups.
We have made one custom field named "Responsible Group" (enumeration) and each value has linked email (sometimes more email addresses) in our own DB table. This custom field is required and linked to all projects. After submit (on all pages - report, edit, change status) our plugin looks on selected value and sends mail to all addresses linked to this value. Sometimes someone receives 2 emails - the first one is default from mantis core and the second is from our plugin.
Would it be possible to implement group system directly to mantis core? I think it is a good extension of current notification system. [screen3]

8) Could you make the link to each project where a user have a role on manage_user_edit_page? The link is also missing on manage_custom_field_edit_page.

Let me know if you need more information. :)

Regards,
Marty

TagsNo tags attached.
Attached Files
screen1.png (28,846 bytes)   
screen1.png (28,846 bytes)   
screen2.png (256,832 bytes)   
screen2.png (256,832 bytes)   
screen3.png (117,666 bytes)   
screen3.png (117,666 bytes)   
screen4.png (93,196 bytes)   
screen4.png (93,196 bytes)   

Activities

Marty0

Marty0

2019-09-10 17:44

reporter   ~0062762

Last edited: 2019-09-10 17:49

Another quite helpful function that we are using a really lot is helper_current_page(). Could you add it into helper_api.php, please?

function helper_current_page()
{
$serverScriptName = (isset($_SERVER["SCRIPT_NAME"])) ? preg_replace("#[^\/\w.-]#", "", $_SERVER["SCRIPT_NAME"]) : null;
$page = basename($serverScriptName, ".php");

if ($page === &quot;plugin&quot;) {
    $param = getPluginPageParam(&quot;page&quot;);

    if ($param !== null) {
        $param = explode(&quot;/&quot;, getPluginPageParam(&quot;page&quot;));
        $page = end($param);
        $page = str_ireplace(&quot;.php&quot;, &quot;&quot;, $page);
    }
    else {
        $page = &quot;&quot;;
    }
}

return $page;

}

function getPluginPageParam($param) {
return isset($_GET[$param]) ? preg_replace("#[^\/\w.-]#", "", $_GET["page"]) : null;
}

wutsdis

wutsdis

2019-09-12 06:07

reporter   ~0062773

Last edited: 2019-09-17 10:37

I have found this https://mantisbt.org/forums/viewtopic.php?t=25354 color-coding plugin because of problem 6. as described. But your mod looks better on [screen2], any chance of sharing how it's done?
Also, is it working for the My View page or just the View Issues? The BetterStatusColors is only working for the View Issues page and the View Bug page. It would be useful to have color-coding in the whole <td> where the bug id link and priority are in My View.

Marty0

Marty0

2019-09-15 13:22

reporter   ~0062806

Maybe wrong link.

Our plugin even works on My View. [screen5] I can't share it, but I can say how it works.
View Issues: During displaying of each row, the hidden input with status info is returned and then JS and CSS take care of it. :) [style.css]

I think it would be really nice to have whole-colored rows in Mantis core like in Mantis 1. :)

screen5.png (125,619 bytes)   
screen5.png (125,619 bytes)   
style.css (1,359 bytes)   
/* status coloring - darker links */
#buglist tr a {
    color: #0063b7;
}

/* status coloring - darker text */
#buglist td {
    color: #222222;
}

/* new */
tr.status-10 {
    background-color: #ffcccc !important;  /* Mantis 1 #fcbdbd */
}
i.status-10-color {
    color: #fa9090;
    background-color: #fa9090;
}

/* feedback */
tr.status-20 {
    background-color: #ebc3f0 !important; /* Mantis 1 #e3b7eb */
}
i.status-20-color {
    color: #d777eb;
    background-color: #d777eb;
}

/* acknowledged */
tr.status-30 {
    background-color: #ffe7c1 !important; /* Mantis 1 (doesn't exist) */
}
i.status-30-color {
    color: #ffcd85;
    background-color: #ffcd85;
}

/* confirmed */
tr.status-40 {
    background-color: #ffffd2 !important; /* Mantis 1 (doesn't exist) */
}
i.status-40-color {
    color: #fff494;
    background-color: #fff494;
}

/* assigned */
tr.status-50 {
    background-color: #c3e3ff !important; /* Mantis 1 #c2dfff */
}
i.status-50-color {
    color: #7fbbff;
    background-color: #7fbbff;
}

/* resolved */
tr.status-80 {
    background-color: #d7f5b5 !important; /* Mantis 1 #d2f5b0 */
}
i.status-80-color {
    color: #add200;
    background-color: #add200;
}

/* closed */
tr.status-90 {
    background-color: #d9d9d9 !important; /* Mantis 1 #c9ccc4 */
}
i.status-90-color {
    color: #b0b0b0;
    background-color: #b0b0b0;
}
style.css (1,359 bytes)   
Marty0

Marty0

2019-09-15 13:58

reporter   ~0062807

Last edited: 2019-09-15 14:37

Almost all our improvements are done by plugins and it allows us quick updates of Mantis core. However we are staying in version 2.17 because I think no bigger bug fixed up to now isn't worth it to update. :)

wutsdis

wutsdis

2019-09-17 10:35

reporter   ~0062853

Last edited: 2019-09-20 09:58

Thanks for the hint and css, I think that most boxes won't even need any js to be colorized and might do them from css. I've noticed now that the new look with little color boxes suits better for the Assigned to me, but will change the other ones probably. I updated the link I gave, it was working but the parsing replaced the ampersand symbol. Here it is again without it - https://mantisbt.org/forums/viewtopic.php?t=25354
Similar js colorization in here - https://www.ryadel.com/en/mantis-bt-2-enable-row-level-coloring-like-v1-jquery-javascript/

Also, something related to one of your suggestions is already here 0025666 and even this one - https://github.com/bueltge/Chosen-for-MantisBT

dregad

dregad

2019-09-17 11:29

developer   ~0062854

@Marty0 thanks for your suggestions.

Unfortunately, while it may trigger some interesting discussions, having a single issue regrouping many different topics is not very useful in terms of tracking their possible future inclusion within MantisBT. Consequently, I'm going to close this issue as it is not actionable in its current form.

If you're interested in pursuing this, I would kindly ask you to submit each topic as a separate Issue, so they can be discussed and processed individually. However, before doing that, I would suggest that you first search for existing issues to avoid creating duplicates, as it is likely that at least some of of your ideas for improvement have already been identified (as @wutsdis already pointed out in 0026117:0062853).

I think it would be really nice to have whole-colored rows in Mantis core like in Mantis 1. :)

With regards to 1.x-style painted screens, I can already tell you that this is a won't fix for MantisBT core. You're welcome to submit this as a 3rd-party plugin in mantisbt-plugins organization though.

Marty0

Marty0

2019-09-17 12:07

reporter   ~0062855

@wutsdis Thanks for the links. Chosen is probably the best solution for that, thanks.
Colorizing JS is needed because it's overriding the original status color squares.

@dregad Thanks for your answer. I got it, I will report as individually after some searching.