Ohm-Management - Projektarbeit B-ME
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

createMessage.js 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. var tagArray = [];
  2. const data=[];
  3. const CreateMsgRouter = {
  4. template: `
  5. <div class="content card om-card">
  6. <h4>Neue Nachricht erstellen</h4>
  7. <b-field>
  8. <b-input placeholder="User" id="user"></b-input>
  9. </b-field>
  10. <b-field>
  11. <b-input placeholder="Betreff" id="subject"></b-input>
  12. </b-field>
  13. <b-field label="Tags">
  14. <b-taginput
  15. id="tag"
  16. v-model="selected"
  17. :data=taglist
  18. autocomplete
  19. allow-new:false
  20. icon="label"
  21. placeholder="#"
  22. @typing="getFilteredTags"
  23. @input="saveTagsToArray">
  24. </b-taginput>
  25. </b-field>
  26. <b-field>
  27. <b-input placeholder="Nachricht" id="message" type="textarea"></b-input>
  28. </b-field>
  29. <b-button @click="$router.go(-1)">ABBRECHEN</b-button>
  30. <b-button type="is-primary" @click="createMsg">SENDEN</b-button>
  31. </div>
  32. `,
  33. data: function () {
  34. return {
  35. selected: [],
  36. taglist: data,
  37. };
  38. },
  39. methods: {
  40. saveTagsToArray: function() {
  41. tagArray = this.selected;
  42. console.info(tagArray);
  43. },
  44. createMsg: function () {
  45. var _subject = $("#subject").val();
  46. var _message = $("#message").val();
  47. var _tag = tagArray;
  48. var _user = $("#user").val();
  49. //console.log("Message Created: " + _tag + " " + _message + " " + _user);
  50. $.ajax({
  51. url: "api/msg",
  52. data: {
  53. subject: _subject,
  54. message: _message,
  55. user: _user,
  56. tag: _tag
  57. },
  58. method: "POST"
  59. }).done(have_result).fail(have_error);
  60. function have_result(res) {
  61. //console.log(res);
  62. router.push('/home')
  63. }
  64. function have_error(err) {
  65. console.log("error: " + err.responseText);
  66. console.log(err);
  67. }
  68. },
  69. getFilteredTags(text) {
  70. this.taglist = data.filter((option) => {
  71. return option
  72. .toString()
  73. .toLowerCase()
  74. .indexOf(text.toLowerCase()) >= 0
  75. })
  76. },
  77. list_tags: function () {
  78. $.ajax({url: "api/tag/ids",method: "GET"})
  79. .done(jd => {
  80. // NICHT SO wg. Vue: _messagelist = jd;
  81. console.log("DATA: "+data);
  82. if(data == ""){
  83. _taglist.splice(0, _taglist.length);
  84. _taglist.push.apply(_taglist, jd);
  85. console.log("tag: jd: " + jd);
  86. for (var e in jd) {
  87. if (!_tags[jd[e]]) {
  88. get_insert_tag(jd[e]);
  89. }
  90. }
  91. }
  92. }).fail(function (e, f, g) {
  93. console.log("err: " + e + f + g);
  94. });
  95. }
  96. },
  97. mounted: function () {
  98. //this.list_tags();
  99. if ($(this).bootstrapMaterialDesign)
  100. $(this).bootstrapMaterialDesign();
  101. },
  102. };
  103. function get_insert_tag(id){
  104. $.ajax({ url: "api/tag/"+id, method: "GET" }).done(function (tag) {
  105. data.push("#" + tag.name);
  106. console.log("Array:"+this.data);
  107. }).fail(function (e, f, g) {
  108. console.log("cannot load " + id + ".json: " + e + f + g);
  109. })
  110. }