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.

files.js 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. var tagArray = [];
  2. const FileRouter = {
  3. template: `
  4. <div class="content">
  5. <div class="is-hidden-desktop">
  6. <h4>Erweiterte Suche</h4>
  7. <b-field label="Suche nach">
  8. <b-select
  9. placeholder="Wähle eine Suchform"
  10. v-model="selectedOptions">
  11. <option value="freeSearch">Freie Suche</option>
  12. <option value="subject">Betreff</option>
  13. <option value="tags">Tags</option>
  14. <option value="text">Nachrichtentext</option>
  15. <option value="user">User</option>
  16. </b-select>
  17. </b-field>
  18. <b-field v-if="selectedOptions=='freeSearch'||selectedOptions=='subject'|| selectedOptions=='text' || selectedOptions=='user'">
  19. <b-input id="freeSe"></b-input>
  20. </b-field>
  21. <b-field v-if="selectedOptions=='tags'">
  22. <b-autocomplete rounded v-model="searchtext"
  23. :data="filteredDataArray"
  24. placeholder="suche..." icon="magnify"
  25. @select="option => selected = option">
  26. </b-autocomplete>
  27. </b-field>
  28. <b-button type="is-primary" @click="search">SUCHE</b-button>
  29. <div id="om-msg-cards">
  30. <MsgCard
  31. v-for="id in messagelist.slice().reverse()"
  32. :key="id"
  33. :msg="messages[id] || {}"
  34. ></MsgCard>
  35. </div>
  36. </div>
  37. <div class="column is-three-quarters is-pulled-right is-hidden-touch content-desktop">
  38. <h4>Erweiterte Suche</h4>
  39. <b-field label="Suche nach">
  40. <b-select
  41. placeholder="Wähle eine Suchform"
  42. v-model="selectedOptions">
  43. <option value="freeSearch">Freie Suche</option>
  44. <option value="subject">Betreff</option>
  45. <option value="tags">Tags</option>
  46. <option value="text">Nachrichtentext</option>
  47. <option value="user">User</option>
  48. </b-select>
  49. </b-field>
  50. <b-field v-if="selectedOptions=='freeSearch'||selectedOptions=='subject'|| selectedOptions=='text' || selectedOptions=='user'">
  51. <b-input id="freeSe"></b-input>
  52. </b-field>
  53. <b-field v-if="selectedOptions=='tags'">
  54. <b-autocomplete rounded v-model="searchtext"
  55. :data="filteredDataArray"
  56. placeholder="suche..." icon="magnify"
  57. @select="option => selected = option">
  58. </b-autocomplete>
  59. </b-field>
  60. <b-button type="is-primary" @click="search">SUCHE</b-button>
  61. <div id="om-msg-cards">
  62. <MsgCard
  63. v-for="id in messagelist.slice().reverse()"
  64. :key="id"
  65. :msg="messages[id] || {}"
  66. ></MsgCard>
  67. </div>
  68. </div>
  69. </div>
  70. `,
  71. data: function () {
  72. return {
  73. searchtext: "",
  74. selectedOptions: [],
  75. selected: [],
  76. taglist: data,
  77. messagelist: _messagelist,
  78. messages: _messages,
  79. }
  80. },
  81. computed: {
  82. filteredDataArray() {
  83. return this.taglist.filter((option) => {
  84. return option
  85. .toString()
  86. .toLowerCase()
  87. .indexOf(this.searchtext.toLowerCase()) >= 0
  88. })
  89. }
  90. },
  91. methods: {
  92. list_messages: function () {
  93. messages();
  94. },
  95. saveTagsToArray: function () {
  96. tagArray = this.selected;
  97. console.info(tagArray);
  98. },
  99. getFilteredTags(text) {
  100. this.taglist = data.filter((option) => {
  101. return option
  102. .toString()
  103. .toLowerCase()
  104. .indexOf(text.toLowerCase()) >= 0
  105. })
  106. this.search();
  107. },
  108. list_tags: function () {
  109. $.ajax({
  110. url: "api/tag/ids",
  111. method: "GET"
  112. })
  113. .done(jd => {
  114. // NICHT SO wg. Vue: _messagelist = jd;
  115. _taglist.splice(0, _taglist.length);
  116. _taglist.push.apply(_taglist, jd);
  117. console.log("tag: jd: " + jd);
  118. for (var e in jd) {
  119. if (!_tags[jd[e]]) {
  120. get_insert_tag(jd[e]);
  121. }
  122. }
  123. }).fail(function (e, f, g) {
  124. console.log("err: " + e + f + g);
  125. });
  126. },
  127. saveTagsToArray: function () {
  128. tagArray = this.selected;
  129. console.info(tagArray);
  130. },
  131. search: function () {
  132. searching(this.searchtext);
  133. },
  134. list_messages: function () {
  135. messages();
  136. },
  137. },
  138. mounted: function () {
  139. //this.search();
  140. this.list_tags();
  141. //this.list_messages();
  142. },
  143. };