managecollectionfields.html 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <h3><?php echo $I18n->t('managefields.fieldsfor'); ?> <a href="index.php?p=managecolletions&m=edit&id=<?php echo $TemplateData['editData']['id']; ?>"><?php echo $TemplateData['editData']['name']; ?></a></h3>
  2. <h4><?php echo $I18n->t('managefields.addorremove'); ?></h4>
  3. <p><?php echo $I18n->t('managefields.addorremove.description'); ?></p>
  4. <div id="sortableContainer">
  5. <div class="window">
  6. <div class="title-bar">
  7. <div class="title-bar-text">Configured fields</div>
  8. </div>
  9. <div class="window-body">
  10. <div id="collectionFields">
  11. <?php foreach($TemplateData['existingFields'] as $k=>$v) { ?>
  12. <div class="sortitem" data-field-id="<?php echo $k; ?>">
  13. <?php echo $I18n->t($v['displayname']); ?> (<?php echo $v['type'],'; ',$v['identifier']; ?>)
  14. </div>
  15. <?php } ?>
  16. </div>
  17. </div>
  18. </div>
  19. <div class="window">
  20. <div class="title-bar">
  21. <div class="title-bar-text"><?php echo $I18n->t('managefields.fieldsavailable'); ?></div>
  22. </div>
  23. <div class="window-body">
  24. <div id="availableFields">
  25. <?php foreach($TemplateData['availableFields'] as $k=>$v) { ?>
  26. <div class="sortitem" data-field-id="<?php echo $k; ?>">
  27. <?php echo $I18n->t($v['displayname']); ?> (<?php echo $v['type'],'; ',$v['identifier']; ?>)
  28. </div>
  29. <?php } ?>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. <form method="post" onsubmit="return saveOrderAndSubmit()">
  35. <input type="hidden" name="fdata[fieldSortString]" id="fieldSort"
  36. value="<?php echo $TemplateData['editData']['fieldSortString'] ?? ''; ?>">
  37. <input type="submit" name="submitForm" value="<?php echo $I18n->t('global.save'); ?>">
  38. </form>
  39. <script src="view/98/ui/js/sortable.js"></script>
  40. <script>
  41. new Sortable(collectionFields, {
  42. group: 'shared',
  43. animation: 150
  44. });
  45. new Sortable(availableFields, {
  46. group: 'shared',
  47. animation: 150
  48. });
  49. </script>
  50. <script type="text/javascript">
  51. function saveOrderAndSubmit() {
  52. let list = document.getElementById("collectionFields");
  53. let fieldSort = document.getElementById("fieldSort");
  54. let sortString = '';
  55. if(list && list.children.length > 0 && fieldSort) {
  56. let fields = Array.from(list.children);
  57. fields.forEach(function(item, index) {
  58. sortString += item.getAttribute("data-field-id")+",";
  59. });
  60. fieldSort.value = sortString;
  61. return true;
  62. }
  63. return false;
  64. }
  65. </script>