categories.html 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!DOCTYPE html>
  2. <html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.thymeleaf.org" layout:decorate="~{layout/layout}">
  3. <head>
  4. <title>Administrator :: Dashboard</title>
  5. <script src="/js/admin/page-categories.js" defer></script>
  6. </head>
  7. <body>
  8. <div layout:fragment="content" class="ui container" id="app">
  9. <br />
  10. <h1 class="ui dividing header">Administrator :: Dashboard</h1>
  11. <div th:replace="fragments/admin/admin-menu :: adminMenu"></div>
  12. <br />
  13. <button class="ui small black button" @click="createNewCategory($event)">Add Category</button>
  14. <div class="ui message" v-if="categories.length == 0">
  15. No categories.
  16. </div>
  17. <div v-else class="ui list">
  18. <div class="item" v-for="(category, index) in categories" v-if="category.parent == null">
  19. <i class="angle right icon"></i>
  20. <div class="content">
  21. <!-- text and "edit" button -->
  22. <div @mouseenter="mouseEnterCategory($event)" @mouseleave="mouseLeaveCategory($event)">
  23. <span @click="editCategory($event)">{{ category.name }}</span>
  24. <div class="ui mini icon label transition hidden" style="cursor: pointer;" @click="createNewCategory($event, index, category)">
  25. <i class="angle down icon"></i>
  26. </div>
  27. <div class="ui mini icon red label transition hidden" style="cursor: pointer;" data-content="delete" @click="deleteCategory(category, index)">
  28. <i class="trash alternate icon"></i>
  29. </div>
  30. </div>
  31. <!-- input field to edit name -->
  32. <div class="ui mini action input transition hidden" @mouseleave="mouseLeaveCategoryTextField($event)">
  33. <input type="text" v-model="category.name" />
  34. <button class="ui black icon button" @click="updateSelectedCategory(category, index)"><i class="save outline icon"></i></button>
  35. </div>
  36. <!-- children -->
  37. <div class="list" v-if="getChildCount(category) > 0">
  38. <div class="item" v-for="(child, chindex) in categories" v-if="child.parent != null && child.parent.id === category.id">
  39. <i class="angle right icon"></i>
  40. <div class="content">
  41. <div @mouseenter="mouseEnterCategory($event)" @mouseleave="mouseLeaveCategory($event)">
  42. <span @click="editCategory($event)">{{ child.name }}</span>
  43. <div class="ui mini icon red label transition hidden" style="cursor: pointer;" data-content="delete" @click="deleteCategory(child, chindex)">
  44. <i class="trash alternate icon"></i>
  45. </div>
  46. </div>
  47. <!-- input field to edit name -->
  48. <div class="ui mini action input transition hidden" @mouseleave="mouseLeaveCategoryTextField($event)">
  49. <input type="text" v-model="child.name" />
  50. <button class="ui black icon button" @click="updateSelectedCategory(child, chindex)">
  51. <i class="save outline icon"></i>
  52. </button>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <br />
  61. </div>
  62. </body>
  63. </html>