om/public/routes/files.js

114 lines
3.3 KiB
JavaScript
Raw Normal View History

const FileRouter = {
template: `
2019-07-19 12:10:22 +02:00
<div class="content">
<div class="column is-four-fifths-desktop pull-right-sm">
2019-07-19 12:10:22 +02:00
<h4>Erweiterte Suche</h4>
<b-field label="Suche nach">
<b-select
placeholder="Wähle eine Suchform"
v-model="selectedOptions">
<option value="freeSearch">Freie Suche</option>
<option value="subject">Betreff</option>
<option value="tags">Tags</option>
<option value="text">Nachrichtentext</option>
<option value="user">User</option>
</b-select>
</b-field>
<b-field v-if="selectedOptions=='freeSearch'||selectedOptions=='subject'|| selectedOptions=='text' || selectedOptions=='user'">
<b-input id="freeSe"></b-input>
</b-field>
2019-07-19 12:52:43 +02:00
<b-field v-if="selectedOptions=='tags'">
2019-07-21 14:12:16 +02:00
<b-autocomplete v-model="searchtext"
2019-07-19 12:52:43 +02:00
:data="filteredDataArray"
2019-07-21 14:12:16 +02:00
placeholder="#" icon="label"
2019-07-19 12:52:43 +02:00
@select="option => selected = option">
</b-autocomplete>
2019-07-19 12:10:22 +02:00
</b-field>
2019-07-19 12:52:43 +02:00
<b-button type="is-primary" @click="search">SUCHE</b-button>
2019-07-19 12:10:22 +02:00
2019-07-21 14:12:16 +02:00
<div id="om-msg-cards" v-if="isExtendedSearch==true">
2019-07-19 12:52:43 +02:00
<MsgCard
v-for="id in messagelist.slice().reverse()"
:key="id"
:msg="messages[id] || {}"
></MsgCard>
</div>
</div>
</div>
`,
data: function () {
2019-07-19 12:52:43 +02:00
return {
searchtext: "",
2019-07-19 12:10:22 +02:00
selectedOptions: [],
2019-07-19 12:52:43 +02:00
selected: [],
taglist: data,
messagelist: _messagelist,
messages: _messages,
2019-07-21 14:12:16 +02:00
isExtendedSearch: false,
2019-07-19 12:52:43 +02:00
}
},
computed: {
filteredDataArray() {
return this.taglist.filter((option) => {
return option
.toString()
.toLowerCase()
.indexOf(this.searchtext.toLowerCase()) >= 0
})
2019-07-19 12:10:22 +02:00
}
},
methods: {
2019-07-19 12:52:43 +02:00
list_messages: function () {
messages();
},
getFilteredTags(text) {
this.taglist = data.filter((option) => {
return option
.toString()
.toLowerCase()
.indexOf(text.toLowerCase()) >= 0
})
2019-07-19 12:10:22 +02:00
},
list_tags: function () {
2019-07-19 12:52:43 +02:00
$.ajax({
url: "api/tag/ids",
method: "GET"
})
.done(jd => {
// NICHT SO wg. Vue: _messagelist = jd;
2019-07-21 14:12:16 +02:00
if(data == ""){
2019-07-19 12:52:43 +02:00
_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]);
2019-07-19 12:10:22 +02:00
}
2019-07-19 12:52:43 +02:00
}
2019-07-21 14:12:16 +02:00
}
2019-07-19 12:52:43 +02:00
}).fail(function (e, f, g) {
console.log("err: " + e + f + g);
});
},
saveTagsToArray: function () {
tagArray = this.selected;
console.info(tagArray);
},
search: function () {
searching(this.searchtext);
2019-07-21 14:12:16 +02:00
this.isExtendedSearch=true;
2019-07-19 12:52:43 +02:00
},
list_messages: function () {
messages();
},
},
mounted: function () {
//this.search();
2019-07-21 14:12:16 +02:00
//this.list_tags();
2019-07-19 12:52:43 +02:00
//this.list_messages();
},
};