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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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 v-model="searchtext"
  23. :data="filteredDataArray"
  24. placeholder="#" icon="label"
  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" v-if="isExtendedSearch==true">
  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. isExtendedSearch: false,
  80. }
  81. },
  82. computed: {
  83. filteredDataArray() {
  84. return this.taglist.filter((option) => {
  85. return option
  86. .toString()
  87. .toLowerCase()
  88. .indexOf(this.searchtext.toLowerCase()) >= 0
  89. })
  90. }
  91. },
  92. methods: {
  93. list_messages: function () {
  94. messages();
  95. },
  96. getFilteredTags(text) {
  97. this.taglist = data.filter((option) => {
  98. return option
  99. .toString()
  100. .toLowerCase()
  101. .indexOf(text.toLowerCase()) >= 0
  102. })
  103. },
  104. list_tags: function () {
  105. $.ajax({
  106. url: "api/tag/ids",
  107. method: "GET"
  108. })
  109. .done(jd => {
  110. // NICHT SO wg. Vue: _messagelist = jd;
  111. if(data == ""){
  112. _taglist.splice(0, _taglist.length);
  113. _taglist.push.apply(_taglist, jd);
  114. console.log("tag: jd: " + jd);
  115. for (var e in jd) {
  116. if (!_tags[jd[e]]) {
  117. get_insert_tag(jd[e]);
  118. }
  119. }
  120. }
  121. }).fail(function (e, f, g) {
  122. console.log("err: " + e + f + g);
  123. });
  124. },
  125. saveTagsToArray: function () {
  126. tagArray = this.selected;
  127. console.info(tagArray);
  128. },
  129. search: function () {
  130. searching(this.searchtext);
  131. this.isExtendedSearch=true;
  132. },
  133. list_messages: function () {
  134. messages();
  135. },
  136. },
  137. mounted: function () {
  138. //this.search();
  139. //this.list_tags();
  140. //this.list_messages();
  141. },
  142. };