diff --git a/public/software-catalog.js b/public/software-catalog.js
index 77ef251..5454fd7 100644
--- a/public/software-catalog.js
+++ b/public/software-catalog.js
@@ -1,44 +1,64 @@
(function(){
- "use strict";
- var AJAX_URL = {
+ "use strict";
+
+ var AJAX_URL = {
get_categories:
url_with_subdirectory("/plugin/mpog_software/get_categories")
};
- function create_catalog_element(html_list, value, id) {
- var li_tag = document.createElement("li");
- var first = html_list.length == 0;
+ function create_catalog_element(first, value, id) {
+ var li_tag = document.createElement("li");
- if( first )
- li_tag.innerHTML = value + " x";
- else
- li_tag.innerHTML = ", " + value + " x";
+ if( first )
+ li_tag.innerHTML = value + " x";
+ else
+ li_tag.innerHTML = ", " + value + " x";
- return li_tag;
- }
+ return li_tag;
+ }
function add_item_to_catalog(value, id) {
- var already_has = false;
+ var already_has = false;
+
+ jQuery("#catalog-list ul li").each(function(i, li){
+ var regex = new RegExp(value, "g");
+
+ if( regex.test(li.innerHTML) ) {
+ already_has = true;
+ }
+ });
+
+ if( !already_has ) {
+ var catalog_list = jQuery("#catalog-list ul li");
+ var current_ids = jQuery("#filter").val();
+ var first = catalog_list.length == 0;
- jQuery("#catalog-list ul li").each(function(i, li){
- var regex = new RegExp(value, "g");
+ current_ids += first ? id : ","+id;
- if( regex.test(li.innerHTML) ) {
- already_has = true;
- }
- });
+ jQuery("#filter").val(current_ids);
- if( !already_has ) {
- jQuery("#catalog-list ul").append(create_catalog_element(jQuery("#catalog-list ul li"), value, id));
- }
+ jQuery("#catalog-list ul").append(create_catalog_element(first, value, id));
+ }
}
function remote_catalog_item() {
- jQuery(this).parent().remove();
+ var current_id = this.getAttribute("data-id");
+ var filter_ids = jQuery("#filter").val();
+ var id_list = [];
+
+ filter_ids.split(",").forEach(function(id){
+ if( current_id != id ) {
+ id_list.push(id);
+ }
+ });
+
+ jQuery("#filter").val(id_list.join(","));
+
+ jQuery(this).parent().remove();
}
function set_autocomplate() {
- jQuery("#software-catalog").autocomplete({
+ jQuery("#software-catalog").autocomplete({
source : function(request, response){
jQuery.ajax({
type: "GET",
@@ -51,25 +71,25 @@
},
select : function (event, selected) {
- var value = selected.item.value;
- var id = selected.item.id;
+ var value = selected.item.value;
+ var id = selected.item.id;
- this.value = "";
+ this.value = "";
- add_item_to_catalog(value, id);
- set_events();
+ add_item_to_catalog(value, id);
+ set_events();
- return false;
+ return false;
}
});
}
- function set_events() {
+ function set_events() {
jQuery(".catalog-remove-item").click(remote_catalog_item);
- }
+ }
- jQuery(document).ready(function(){
- set_autocomplate();
- set_events();
- });
+ jQuery(document).ready(function(){
+ set_autocomplate();
+ set_events();
+ });
})();
diff --git a/views/search/_catalog_filter.html.erb b/views/search/_catalog_filter.html.erb
index 879cb39..d8b6d88 100644
--- a/views/search/_catalog_filter.html.erb
+++ b/views/search/_catalog_filter.html.erb
@@ -3,6 +3,7 @@
display: inline;
margin-right: 5px;
font-size: 14px;
+ padding: 5px;
}
#catalog-list ul li span {
--
libgit2 0.21.2