settings-tab-editor-categories.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. $GLOBALS['organizrPages'][] = 'settings_tab_editor_categories';
  3. function get_page_settings_tab_editor_categories($Organizr)
  4. {
  5. if (!$Organizr) {
  6. $Organizr = new Organizr();
  7. }
  8. if ((!$Organizr->hasDB())) {
  9. return false;
  10. }
  11. if (!$Organizr->qualifyRequest(1, true)) {
  12. return false;
  13. }
  14. $iconSelectors = '
  15. $(".categoryIconIconList").select2({
  16. ajax: {
  17. url: \'api/v2/icon\',
  18. data: function (params) {
  19. var query = {
  20. search: params.term,
  21. page: params.page || 1
  22. }
  23. return query;
  24. },
  25. processResults: function (data, params) {
  26. params.page = params.page || 1;
  27. return {
  28. results: data.response.data.results,
  29. pagination: {
  30. more: (params.page * 20) < data.response.data.total
  31. }
  32. };
  33. },
  34. //cache: true
  35. },
  36. placeholder: \'Search for an icon\',
  37. templateResult: formatIcon,
  38. templateSelection: formatIcon
  39. });
  40. $(".categoryIconImageList").select2({
  41. ajax: {
  42. url: \'api/v2/image/select\',
  43. data: function (params) {
  44. var query = {
  45. search: params.term,
  46. page: params.page || 1
  47. }
  48. return query;
  49. },
  50. processResults: function (data, params) {
  51. params.page = params.page || 1;
  52. return {
  53. results: data.response.data.results,
  54. pagination: {
  55. more: (params.page * 20) < data.response.data.total
  56. }
  57. };
  58. },
  59. //cache: true
  60. },
  61. placeholder: \'Search for an image\',
  62. templateResult: formatImage,
  63. templateSelection: formatImage
  64. });
  65. ';
  66. return '
  67. <script>
  68. buildCategoryEditor();
  69. let el = document.getElementById(\'categoryEditorTable\');
  70. let sortable = new Sortable(el, {
  71. onUpdate: function (evt) {
  72. $(\'input.order\').each(function(idx) {
  73. $(this).val(idx + 1);
  74. });
  75. submitCategoryOrder();
  76. },
  77. });
  78. ' . $iconSelectors . '
  79. </script>
  80. <div class="panel bg-org panel-info">
  81. <div class="panel-heading">
  82. <span lang="en">Category Editor</span>
  83. <button type="button" class="btn btn-success btn-circle pull-right popup-with-form m-r-5" href="#new-category-form" data-effect="mfp-3d-unfold"><i class="fa fa-plus"></i> </button>
  84. </div>
  85. <div class="table-responsive">
  86. <form id="submit-categories-form" onsubmit="return false;">
  87. <table class="table table-hover manage-u-table">
  88. <thead>
  89. <tr>
  90. <th width="70" class="text-center">#</th>
  91. <th lang="en">NAME</th>
  92. <th lang="en" style="text-align:center">TABS</th>
  93. <th lang="en" style="text-align:center">DEFAULT</th>
  94. <th lang="en" style="text-align:center">EDIT</th>
  95. <th lang="en" style="text-align:center">DELETE</th>
  96. </tr>
  97. </thead>
  98. <tbody id="categoryEditorTable"><td class="text-center" colspan="6"><i class="fa fa-spin fa-spinner"></i></td></tbody>
  99. </table>
  100. </form>
  101. </div>
  102. </div>
  103. <form id="new-category-form" class="mfp-hide white-popup-block mfp-with-anim">
  104. <h1 lang="en">Add New Category</h1>
  105. <fieldset style="border:0;">
  106. <div class="form-group">
  107. <label class="control-label" for="new-category-form-inputNameNew" lang="en">Category Name</label>
  108. <input type="text" class="form-control" id="new-category-form-inputNameNew" name="category" required="" autofocus>
  109. </div>
  110. <div class="row">
  111. <div class="form-group col-lg-6">
  112. <label class="control-label" for="new-category-form-chooseImage" lang="en">Choose Image</label>
  113. <select class="form-control categoryIconImageList" id="new-category-form-chooseImage" name="chooseImage"><option lang="en">Select or type Image</option></select>
  114. </div>
  115. <div class="form-group col-lg-6">
  116. <label class="control-label" for="new-category-form-chooseIcon" lang="en">Choose Icon</label>
  117. <select class="form-control categoryIconIconList" id="new-category-form-chooseIcon" name="chooseIcon"><option lang="en">Select or type Icon</option></select>
  118. </div>
  119. </div>
  120. <div class="form-group">
  121. <label class="control-label" for="new-category-form-inputImageNew" lang="en">Category Image</label>
  122. <input type="text" class="form-control" id="new-category-form-inputImageNew" name="image" required="">
  123. </div>
  124. </fieldset>
  125. <button class="btn btn-sm btn-info btn-rounded waves-effect waves-light pull-right row b-none addNewCategory" type="button"><span class="btn-label"><i class="fa fa-plus"></i></span><span lang="en">Add Category</span></button>
  126. <div class="clearfix"></div>
  127. </form>
  128. <form id="edit-category-form" class="mfp-hide white-popup-block mfp-with-anim">
  129. <input type="hidden" name="id" value="">
  130. <h1 lang="en">Edit Category</h1>
  131. <fieldset style="border:0;">
  132. <div class="form-group">
  133. <label class="control-label" for="edit-category-form-inputName" lang="en">Category Name</label>
  134. <input type="text" class="form-control" id="edit-category-form-inputName" name="category" required="" autofocus>
  135. </div>
  136. <div class="row">
  137. <div class="form-group col-lg-6">
  138. <label class="control-label" for="edit-category-form-chooseImage" lang="en">Choose Image</label>
  139. <select class="form-control categoryIconImageList" id="edit-category-form-chooseImage" name="chooseImage"><option lang="en">Select or type Image</option></select>
  140. </div>
  141. <div class="form-group col-lg-6">
  142. <label class="control-label" for="edit-category-form-chooseIcon" lang="en">Choose Icon</label>
  143. <select class="form-control categoryIconIconList" id="edit-category-form-chooseIcon" name="chooseIcon"><option lang="en">Select or type Icon</option></select>
  144. </div>
  145. </div>
  146. <div class="form-group">
  147. <label class="control-label" for="edit-category-form-inputImage" lang="en">Category Image</label>
  148. <input type="text" class="form-control" id="edit-category-form-inputImage" name="image" required="">
  149. </div>
  150. </fieldset>
  151. <button class="btn btn-sm btn-info btn-rounded waves-effect waves-light pull-right row b-none editCategory" type="button"><span class="btn-label"><i class="fa fa-plus"></i></span><span lang="en">Edit Category</span></button>
  152. <div class="clearfix"></div>
  153. </form>
  154. ';
  155. }