Vue.component('search',{ template: ` `, data: function() { return { searchtext: "", selected: [], taglist: data, }; }, computed:{ filteredDataArray: function() { return this.taglist.filter((option) => { return option .toString() .toLowerCase() .indexOf(this.searchtext.toLowerCase()) >= 0 }); }, }, methods: { resetSearchtext: function(param) { this.searchtext = param; }, getFilteredTags: function(text) { this.taglist = data.filter((option) => { return option .toString() .toLowerCase() .indexOf(text.toLowerCase()) >= 0 }) this.search(); }, search: function() { var btnString = ''; btnString = searching(this.searchtext, btnString); console.info(btnString); this.$emit('update-home-abo-button', btnString); vueForceRender('key'); }, saveTagsToArray: function() { tagArray = this.selected; // console.info(tagArray); }, list_messages: function() { messages(); }, list_tags: function () { $.ajax({url: "api/tag/ids", method: "GET"}) .done(jd => { // NICHT SO wg. Vue: _messagelist = jd; if(data == ""){ _taglist.splice(0, _taglist.length); _taglist.push.apply(_taglist, jd); // console.log("tag: jd: " + jd); for (var e in jd) { if (!_tags[jd[e]]) { get_insert_tag(jd[e]); } } } }).fail(function (e, f, g) { console.log("err: " + e + f + g); }); }, clear: function() { this.searchtext = ""; this.list_messages(); //router.push('/files') //router.push('/home') _isSearchActiv = false; _isSubscripeButtonActiv = false; this.$emit('toggle-escape-search-link'); vueForceRender('key'); console.info('done'); // $("#escape-search-link").css("visibility", "hidden"); // $("#subscribe-btn").css("visibility", "hidden"); }, }, mounted: function() { //this.search(); this.list_tags(); }, }); // Global Functions !!! function get_insert_tag(id) { $.ajax({ url: "api/tag/id/" + id, method: "GET" }).done(function(tag) { data.push('#'+tag.name); }).fail(function(e, f, g) { console.log("cannot load " + id + ".json: " + e + f + g); }) } function searching(searchtext,btnString) { _isSearchActiv = true; // $("#escape-search-link").css("visibility", "visible"); //console.log(_tags); // console.log(data); if(data.indexOf(searchtext) > -1){ btnString = searchtext + " abonnieren"; // $("#btn-text").text(btnString); // $("#subscribe-btn").css("visibility", "visible"); _isSubscripeButtonActiv = true; }else{ // $("#subscribe-btn").css("visibility", "hidden"); _isSubscripeButtonActiv = false; } if (searchtext !== '') { $.ajax({ url: "api/msg/search/" + searchtext.replace(/#/g, ''), method: "GET" }).done(jd => { // NICHT SO wg. Vue: _messagelist = jd; _messagelist.splice(0, _messagelist.length); _messagelist.push.apply(_messagelist, jd); //console.log("jd: "+jd); for (var e in jd) { if (!_messages[jd[e]]) { get_insert_message(jd[e]); } } }).fail(function(e, f, g) { console.log("searching: err: " + e + f + g); }) } return btnString; } function messages() { $.ajax({ url: "api/msg/ids", method: "GET" }) .done(jd => { // NICHT SO wg. Vue: _messagelist = jd; _messagelist.splice(0, _messagelist.length); _messagelist.push.apply(_messagelist, jd); //console.log("jd: "+jd); for (var e in jd) { if (!_messages[jd[e]]) { get_insert_message(jd[e]); } } }).fail(function(e, f, g) { console.log("list_msg: err: " + e + f + g); }); }