mail: replace formdef filter by a category filter (#10099)
This commit is contained in:
parent
c009f03989
commit
6cc4ba3c17
|
@ -3,7 +3,7 @@
|
||||||
<div data-source-type="{{ source_type.id }}">
|
<div data-source-type="{{ source_type.id }}">
|
||||||
<div id="source-sidebar" class="mails">
|
<div id="source-sidebar" class="mails">
|
||||||
{% if display_filter %}
|
{% if display_filter %}
|
||||||
<select id="formdef-filter"></select>
|
<select id="category-filter"></select>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<ul>
|
<ul>
|
||||||
{% for mail in mails %}
|
{% for mail in mails %}
|
||||||
|
@ -16,6 +16,9 @@
|
||||||
{% for association in mail.associations.all %}
|
{% for association in mail.associations.all %}
|
||||||
/ <span data-formdef-reference="{{association.formdef_reference}}">{{association.formdef_name}}</span>
|
/ <span data-formdef-reference="{{association.formdef_reference}}">{{association.formdef_name}}</span>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% for category in mail.categories %}
|
||||||
|
<span style="display: none" data-category-name="{{category}}"></span>
|
||||||
|
{% endfor %}
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -95,7 +95,7 @@ div#content .cell.document iframe {
|
||||||
}
|
}
|
||||||
|
|
||||||
div#content #source-sidebar {
|
div#content #source-sidebar {
|
||||||
min-width: 20em;
|
width: 25em;
|
||||||
display: none; /* only displayed when on top */
|
display: none; /* only displayed when on top */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -440,7 +440,7 @@ form#note textarea {
|
||||||
height: 8em;
|
height: 8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#formdef-filter {
|
#category-filter {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -364,37 +364,37 @@ $(function() {
|
||||||
$('#postit').on('click', window.displayPopup);
|
$('#postit').on('click', window.displayPopup);
|
||||||
$('#id_post_date').datepicker($.datepicker.regional["fr"]);
|
$('#id_post_date').datepicker($.datepicker.regional["fr"]);
|
||||||
|
|
||||||
if ($('#formdef-filter').length) {
|
if ($('#category-filter').length) {
|
||||||
var known_formdefs = Object();
|
var known_categories = Object();
|
||||||
$('[data-formdef-reference]').each(function(index, elem) {
|
$('[data-category-name]').each(function(index, elem) {
|
||||||
known_formdefs[$(elem).data('formdef-reference')] = $(elem).text();
|
known_categories[$(elem).data('category-name')] = $(elem).data('category-name');
|
||||||
});
|
});
|
||||||
var options = Array();
|
var options = Array();
|
||||||
$(Object.keys(known_formdefs)).each(function(index, elem) {
|
$(Object.keys(known_categories)).each(function(index, elem) {
|
||||||
options.push({'key': elem, 'value': known_formdefs[elem]});
|
options.push({'key': elem, 'value': known_categories[elem]});
|
||||||
});
|
});
|
||||||
options.sort(function(x, y) {
|
options.sort(function(x, y) {
|
||||||
if (x.value > y.value) return 1;
|
if (x.value > y.value) return 1;
|
||||||
if (x.value < y.value) return -1;
|
if (x.value < y.value) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
$('#formdef-filter').empty();
|
$('#category-filter').empty();
|
||||||
/* TODO: should use javascript i18n */
|
/* TODO: should use javascript i18n */
|
||||||
$('<option value="">Tout</option>').appendTo($('#formdef-filter'));
|
$('<option value="">Toutes</option>').appendTo($('#category-filter'));
|
||||||
$(options).each(function(index, elem) {
|
$(options).each(function(index, elem) {
|
||||||
$('<option value="' + elem.key + '">' + elem.value + '</option>').appendTo($('#formdef-filter'));
|
$('<option value="' + elem.key + '">' + elem.value + '</option>').appendTo($('#category-filter'));
|
||||||
});
|
});
|
||||||
$('#formdef-filter').on('change', function() {
|
$('#category-filter').on('change', function() {
|
||||||
var selected_formdef = $(this).val();
|
var selected_category = $(this).val();
|
||||||
if (selected_formdef == '') {
|
if (selected_category == '') {
|
||||||
$('#source-sidebar li').removeClass('li-visible');
|
$('#source-sidebar li').removeClass('li-visible');
|
||||||
$('#source-sidebar li').show();
|
$('#source-sidebar li').show();
|
||||||
} else {
|
} else {
|
||||||
$('#source-sidebar li').each(function(index, elem) {
|
$('#source-sidebar li').each(function(index, elem) {
|
||||||
var formdef_references = $(elem).find('[data-formdef-reference]').map(function(idx, elem) {
|
var category_references = $(elem).find('[data-category-name]').map(function(idx, elem) {
|
||||||
return $(elem).data('formdef-reference');
|
return $(elem).data('category-name');
|
||||||
}).toArray();
|
}).toArray();
|
||||||
if (formdef_references.indexOf(selected_formdef) == -1) {
|
if (category_references.indexOf(selected_category) == -1) {
|
||||||
$(elem).removeClass('li-visible');
|
$(elem).removeClass('li-visible');
|
||||||
$(elem).hide();
|
$(elem).hide();
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue