157 lines
4.5 KiB
JavaScript
157 lines
4.5 KiB
JavaScript
var tagArray = [];
|
|
const data=[
|
|
'th',
|
|
'efi',
|
|
'wichtig',
|
|
];
|
|
const CreateMsgRouter = {
|
|
template: `
|
|
<div class="content">
|
|
<div class="is-hidden-desktop">
|
|
<div class="content card om-card">
|
|
<h4>Neue Nachricht erstellen</h4>
|
|
<b-field>
|
|
<b-input placeholder="User" id="user"></b-input>
|
|
</b-field>
|
|
|
|
<b-field>
|
|
<b-input placeholder="Betreff" id="subject"></b-input>
|
|
</b-field>
|
|
|
|
<b-field label="Tags">
|
|
<b-taginput
|
|
id="tag"
|
|
v-model="selected"
|
|
:data=taglist
|
|
autocomplete
|
|
allow-new:false
|
|
icon="label"
|
|
placeholder="#"
|
|
@typing="getFilteredTags"
|
|
@input="saveTagsToArray">
|
|
</b-taginput>
|
|
</b-field>
|
|
|
|
<b-field>
|
|
<b-input placeholder="Nachricht" id="message" type="textarea"></b-input>
|
|
</b-field>
|
|
|
|
<b-button @click="$router.go(-1)">ABBRECHEN</b-button>
|
|
<b-button type="is-primary" @click="createMsg">SENDEN</b-button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class=" column is-three-quarters is-pulled-right is-hidden-touch content-desktop">
|
|
<div class="content card om-card">
|
|
<h4>Neue Nachricht erstellen</h4>
|
|
<b-field>
|
|
<b-input placeholder="User" id="user"></b-input>
|
|
</b-field>
|
|
|
|
<b-field>
|
|
<b-input placeholder="Betreff" id="subject"></b-input>
|
|
</b-field>
|
|
|
|
<b-field label="Tags">
|
|
<b-taginput
|
|
id="tag"
|
|
v-model="selected"
|
|
:data=taglist
|
|
autocomplete
|
|
allow-new:false
|
|
icon="label"
|
|
placeholder="#"
|
|
@typing="getFilteredTags"
|
|
@input="saveTagsToArray">
|
|
</b-taginput>
|
|
</b-field>
|
|
|
|
<b-field>
|
|
<b-input placeholder="Nachricht" id="message" type="textarea"></b-input>
|
|
</b-field>
|
|
|
|
<b-button @click="$router.go(-1)">ABBRECHEN</b-button>
|
|
<b-button type="is-primary" @click="createMsg">SENDEN</b-button>
|
|
</div>
|
|
</div>
|
|
</div>`,
|
|
|
|
data: function () {
|
|
return {
|
|
selected: [],
|
|
taglist: data,
|
|
};
|
|
},
|
|
methods: {
|
|
saveTagsToArray: function() {
|
|
tagArray = this.selected;
|
|
console.info(tagArray);
|
|
},
|
|
createMsg: function () {
|
|
var _subject = $("#subject").val();
|
|
var _message = $("#message").val();
|
|
var _tag = tagArray;
|
|
var _user = $("#user").val();
|
|
//console.log("Message Created: " + _tag + " " + _message + " " + _user);
|
|
$.ajax({
|
|
url: "api/msg",
|
|
data: {
|
|
subject: _subject,
|
|
message: _message,
|
|
user: _user,
|
|
tag: _tag
|
|
},
|
|
method: "POST"
|
|
}).done(have_result).fail(have_error);
|
|
|
|
function have_result(res) {
|
|
//console.log(res);
|
|
router.push('/home')
|
|
}
|
|
|
|
function have_error(err) {
|
|
console.log("error: " + err.responseText);
|
|
console.log(err);
|
|
}
|
|
},
|
|
getFilteredTags(text) {
|
|
this.taglist = data.filter((option) => {
|
|
return option
|
|
.toString()
|
|
.toLowerCase()
|
|
.indexOf(text.toLowerCase()) >= 0
|
|
})
|
|
},
|
|
list_tags: function () {
|
|
$.ajax({url: "api/tag/ids",method: "GET"})
|
|
.done(jd => {
|
|
// NICHT SO wg. Vue: _messagelist = jd;
|
|
_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);
|
|
});
|
|
}
|
|
},
|
|
mounted: function () {
|
|
this.list_tags();
|
|
if ($(this).bootstrapMaterialDesign)
|
|
$(this).bootstrapMaterialDesign();
|
|
},
|
|
};
|
|
|
|
function get_insert_tag(id){
|
|
$.ajax({ url: "api/tag/"+id, method: "GET" }).done(function (tag) {
|
|
data.push("#" + tag.name);
|
|
console.log("Array:"+this.data);
|
|
}).fail(function (e, f, g) {
|
|
console.log("cannot load " + id + ".json: " + e + f + g);
|
|
})
|
|
}
|