diff --git a/public/js/pages/pop/detail.js b/public/js/pages/pop/detail.js
new file mode 100644
index 000000000..df889e27b
--- /dev/null
+++ b/public/js/pages/pop/detail.js
@@ -0,0 +1,533 @@
+$(document).ready(function () {
+ if ($('#sortracklist').length > 0) {
+ Sortable.create(sortracklist, {
+ handle: '.move-handle',
+ onEnd: function () {
+
+ var popid = $('#sortracklist').data('popid');
+ var racksortids = [];
+
+ $('#sortracklist').find('th').each(function (index, value) {
+
+ racksortids.push($(this).data('rackid'));
+ });
+ $.post(linkSorTracklist + "&pop_id=" + popid, {
+ racksortids: racksortids
+ }, function (data) {
+ if (data.success === true) {
+
+ }
+ }, "json");
+
+ }
+
+ });
+ }
+ $('#pop-rack-div').show();
+ $('#rackModal').on('show.bs.modal', function (event) {
+ var thisclick = $(event.relatedTarget);
+ var rackhe = thisclick.closest('table').find('th').data('rackhe');
+ var rackid = thisclick.closest('table').find('th').data('rackid');
+ var rackname = $.trim(thisclick.closest('table').find('th').text());
+ var minhe = 1;
+ var modal = $(this);
+ var edit = 0;
+ modal.find('.alert').text('');
+ modal.find('.alert').hide();
+ if (rackid === undefined) {
+ $('#rack-name').val('');
+ $('#rack-he').val('');
+ var popid = thisclick.data('popid');
+ $('#rack-add').data('popid', popid);
+ $('#rack-update').hide();
+ $('#rack-remove').hide();
+ $('#rack-add').show();
+ } else {
+ edit = 1;
+ $('#rack-remove').hide();
+ $('#rack-add').hide();
+ $('#rack-update').show();
+ $('#rack-he').val(rackhe);
+ $('#rack-name').val(rackname);
+ for (let i = 1; i <= rackhe; i++) {
+ if (!thisclick.closest('table').find('tbody').find('tr').eq(i - 1).find('td').eq(1).hasClass('he-free')) {
+ minhe = i;
+ }
+ }
+ if (minhe === 1) {
+
+ $('#rack-remove').data('rackid', rackid);
+ $('#rack-remove').show();
+ }
+ $('#rack-update').data('rackid', rackid);
+ $('#rack-update').data('rackminhe', minhe);
+ }
+ }
+ )
+ ;
+ $('#rackModuleModal').on('show.bs.modal', function (event) {
+
+ trigger = $(event.relatedTarget);
+ var destinationname = trigger.closest('table').find('th').text();
+ var rackhe = trigger.closest('table').find('th').data('rackhe');
+ var modal = $(this);
+ modal.find('.modal-title').html('Modul (' + destinationname + ')');
+ modal.find('.alert').text('');
+ modal.find('.alert').hide();
+ var options;
+ var selected;
+ var hemaxcount = 1;
+ var hemaxcountactive = 1;
+ var edit = 0;
+
+ var parent = trigger.closest('tr');
+ if (trigger.closest('tr').find('td').eq(1).html() === undefined) {
+ edit = 1;
+ parent = trigger.closest('tr').prev();
+ for (let i = 1; i <= rackhe; i++) {
+ if (parent.find('td').eq(1).html() !== undefined) {
+ break;
+ } else {
+ parent = parent.prev();
+ }
+ }
+ }
+ if (parent.find('td').eq(1).data('id') || parent.find('td').eq(2).data('id') || parent.find('td').eq(3).data('id') || parent.find('td').eq(4).data('id')) {
+ var counttd = parent.find('td').length - 1;
+ var newmodule = false;
+ if (counttd > 1) {
+ var options;
+ for (let i = 1; i <= counttd; i++) {
+ options = options + '';
+ }
+ $('#module-slot').html(options);
+ $('#module-position').html(options);
+ $('#module-slot-div').show();
+ }
+ $('#module-width').attr('disabled', 'disabled');
+ $('#he-count-div').html(`