mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-21 03:06:15 +08:00
Broken modal for sharing inventories [SCI-8548] (#5506)
* Fix share_modal js loading [SCI-8548] Co-authored-by: Sboursen <dev.sboursen@gmail.com> * Fix hound [SCI-8548] Co-authored-by: Sboursen <dev.sboursen@gmail.com> * Fix hound [SCI-8548] Co-authored-by: Sboursen <dev.sboursen@gmail.com> --------- Co-authored-by: Sboursen <dev.sboursen@gmail.com>
This commit is contained in:
parent
420b78d217
commit
46fc3d17e6
5 changed files with 76 additions and 66 deletions
68
app/assets/javascripts/repositories/share_modal.js
Normal file
68
app/assets/javascripts/repositories/share_modal.js
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
/* global HelperModule PerfectScrollbar */
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
var ShareModal = (function() {
|
||||||
|
function init() {
|
||||||
|
var form = $('.share-repo-modal').find('form');
|
||||||
|
var sharedCBs = form.find("input[name='share_team_ids[]']");
|
||||||
|
var permissionCBs = form.find("input[name='write_permissions[]']");
|
||||||
|
var permissionChanges = form.find("input[name='permission_changes']");
|
||||||
|
var submitBtn = form.find('input[type="submit"]');
|
||||||
|
var selectAllCheckbox = form.find('.all-teams .sci-checkbox');
|
||||||
|
|
||||||
|
form.find('.teams-list').find('input.sci-checkbox, .permission-selector')
|
||||||
|
.toggleClass('hidden', selectAllCheckbox.is(':checked'));
|
||||||
|
form.find('.all-teams .sci-toggle-checkbox')
|
||||||
|
.toggleClass('hidden', !selectAllCheckbox.is(':checked'))
|
||||||
|
.attr('disabled', !selectAllCheckbox.is(':checked'));
|
||||||
|
|
||||||
|
selectAllCheckbox.change(function() {
|
||||||
|
form.find('.teams-list').find('input.sci-checkbox, .permission-selector')
|
||||||
|
.toggleClass('hidden', this.checked);
|
||||||
|
form.find('.all-teams .sci-toggle-checkbox').toggleClass('hidden', !this.checked)
|
||||||
|
.attr('disabled', !this.checked);
|
||||||
|
});
|
||||||
|
|
||||||
|
sharedCBs.change(function() {
|
||||||
|
var selectedTeams = form.find('.teams-list .sci-checkbox:checked').length;
|
||||||
|
form.find('#select_all_teams').prop('indeterminate', selectedTeams > 0);
|
||||||
|
$('#editable_' + this.value).toggleClass('hidden', !this.checked)
|
||||||
|
.attr('disabled', !this.checked);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (form.find('.teams-list').length) new PerfectScrollbar(form.find('.teams-list')[0]);
|
||||||
|
|
||||||
|
permissionCBs.change(function() {
|
||||||
|
var changes = JSON.parse(permissionChanges.val());
|
||||||
|
changes[this.value] = 'true';
|
||||||
|
permissionChanges.val(JSON.stringify(changes));
|
||||||
|
});
|
||||||
|
|
||||||
|
submitBtn.on('click', function(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: form.attr('action'),
|
||||||
|
data: form.serialize(),
|
||||||
|
success: function(data) {
|
||||||
|
if (data.warnings) {
|
||||||
|
alert(data.warnings);
|
||||||
|
}
|
||||||
|
$(`#slide-panel li.active .repository-share-status,
|
||||||
|
#repository-toolbar .repository-share-status
|
||||||
|
`).toggleClass('hidden', !data.status);
|
||||||
|
HelperModule.flashAlertMsg(form.data('success-message'), 'success');
|
||||||
|
$('.share-repo-modal').modal('hide');
|
||||||
|
},
|
||||||
|
error: function(data) {
|
||||||
|
alert(data.responseJSON.errors);
|
||||||
|
$('.share-repo-modal').modal('hide');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
init: init
|
||||||
|
};
|
||||||
|
}());
|
|
@ -94,66 +94,6 @@
|
||||||
closeBtn.on('click', pageReload);
|
closeBtn.on('click', pageReload);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initShareModal() {
|
|
||||||
var form = $('.share-repo-modal').find('form');
|
|
||||||
var sharedCBs = form.find("input[name='share_team_ids[]']");
|
|
||||||
var permissionCBs = form.find("input[name='write_permissions[]']");
|
|
||||||
var permissionChanges = form.find("input[name='permission_changes']");
|
|
||||||
var submitBtn = form.find('input[type="submit"]');
|
|
||||||
var selectAllCheckbox = form.find('.all-teams .sci-checkbox');
|
|
||||||
|
|
||||||
form.find('.teams-list').find('input.sci-checkbox, .permission-selector')
|
|
||||||
.toggleClass('hidden', selectAllCheckbox.is(':checked'));
|
|
||||||
form.find('.all-teams .sci-toggle-checkbox')
|
|
||||||
.toggleClass('hidden', !selectAllCheckbox.is(':checked'))
|
|
||||||
.attr('disabled', !selectAllCheckbox.is(':checked'));
|
|
||||||
|
|
||||||
selectAllCheckbox.change(function() {
|
|
||||||
form.find('.teams-list').find('input.sci-checkbox, .permission-selector')
|
|
||||||
.toggleClass('hidden', this.checked);
|
|
||||||
form.find('.all-teams .sci-toggle-checkbox').toggleClass('hidden', !this.checked)
|
|
||||||
.attr('disabled', !this.checked);
|
|
||||||
});
|
|
||||||
|
|
||||||
sharedCBs.change(function() {
|
|
||||||
var selectedTeams = form.find('.teams-list .sci-checkbox:checked').length;
|
|
||||||
form.find('#select_all_teams').prop('indeterminate', selectedTeams > 0);
|
|
||||||
$('#editable_' + this.value).toggleClass('hidden', !this.checked)
|
|
||||||
.attr('disabled', !this.checked);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (form.find('.teams-list').length) new PerfectScrollbar(form.find('.teams-list')[0]);
|
|
||||||
|
|
||||||
permissionCBs.change(function() {
|
|
||||||
var changes = JSON.parse(permissionChanges.val());
|
|
||||||
changes[this.value] = 'true';
|
|
||||||
permissionChanges.val(JSON.stringify(changes));
|
|
||||||
});
|
|
||||||
|
|
||||||
submitBtn.on('click', function(event) {
|
|
||||||
event.preventDefault();
|
|
||||||
$.ajax({
|
|
||||||
type: 'POST',
|
|
||||||
url: form.attr('action'),
|
|
||||||
data: form.serialize(),
|
|
||||||
success: function(data) {
|
|
||||||
if (data.warnings) {
|
|
||||||
alert(data.warnings);
|
|
||||||
}
|
|
||||||
$(`#slide-panel li.active .repository-share-status,
|
|
||||||
#repository-toolbar .repository-share-status
|
|
||||||
`).toggleClass('hidden', !data.status);
|
|
||||||
HelperModule.flashAlertMsg(form.data('success-message'), 'success');
|
|
||||||
$('.share-repo-modal').modal('hide');
|
|
||||||
},
|
|
||||||
error: function(data) {
|
|
||||||
alert(data.responseJSON.errors);
|
|
||||||
$('.share-repo-modal').modal('hide');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.repository-title-name .inline-editing-container').on('inlineEditing::updated', function(e, value, viewValue) {
|
$('.repository-title-name .inline-editing-container').on('inlineEditing::updated', function(e, value, viewValue) {
|
||||||
$('.repository-archived-title-name')
|
$('.repository-archived-title-name')
|
||||||
.text(I18n.t('repositories.show.archived_inventory_items', { repository_name: viewValue }));
|
.text(I18n.t('repositories.show.archived_inventory_items', { repository_name: viewValue }));
|
||||||
|
@ -161,10 +101,6 @@
|
||||||
.text(I18n.t('repositories.show.archived_view_label.active', { repository_name: viewValue }));
|
.text(I18n.t('repositories.show.archived_view_label.active', { repository_name: viewValue }));
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#shareRepoBtn').on('ajax:success', function() {
|
|
||||||
initShareModal();
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.create-new-repository').initSubmitModal('#create-repo-modal', 'repository');
|
$('.create-new-repository').initSubmitModal('#create-repo-modal', 'repository');
|
||||||
|
|
||||||
function initArchivingActionsInDropdown() {
|
function initArchivingActionsInDropdown() {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* global animateSpinner ProtocolsIndex ProjectsIndex */
|
/* global animateSpinner ProtocolsIndex ProjectsIndex ShareModal */
|
||||||
(function() {
|
(function() {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
@ -22,6 +22,10 @@
|
||||||
ProtocolsIndex.reloadTable();
|
ProtocolsIndex.reloadTable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if ($(this).hasClass('share-repo-modal')) {
|
||||||
|
animateSpinner(null, false);
|
||||||
|
ShareModal.init();
|
||||||
|
}
|
||||||
$(this).find('.selectpicker').selectpicker();
|
$(this).find('.selectpicker').selectpicker();
|
||||||
})
|
})
|
||||||
.on('hidden.bs.modal', function() {
|
.on('hidden.bs.modal', function() {
|
||||||
|
|
|
@ -62,5 +62,6 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= javascript_include_tag "repositories/index" %>
|
<%= javascript_include_tag "repositories/index" %>
|
||||||
|
<%= javascript_include_tag "repositories/share_modal" %>
|
||||||
<%= stylesheet_link_tag 'datatables' %>
|
<%= stylesheet_link_tag 'datatables' %>
|
||||||
<%= javascript_include_tag "vue_components_action_toolbar" %>
|
<%= javascript_include_tag "vue_components_action_toolbar" %>
|
||||||
|
|
|
@ -83,6 +83,7 @@ Rails.application.config.assets.precompile += %w(search.js)
|
||||||
Rails.application.config.assets.precompile += %w(label_printers/index.js)
|
Rails.application.config.assets.precompile += %w(label_printers/index.js)
|
||||||
Rails.application.config.assets.precompile += %w(label_printers/zebra_settings.js)
|
Rails.application.config.assets.precompile += %w(label_printers/zebra_settings.js)
|
||||||
Rails.application.config.assets.precompile += %w(repositories/index.js)
|
Rails.application.config.assets.precompile += %w(repositories/index.js)
|
||||||
|
Rails.application.config.assets.precompile += %w(repositories/share_modal.js)
|
||||||
Rails.application.config.assets.precompile += %w(repositories/edit.js)
|
Rails.application.config.assets.precompile += %w(repositories/edit.js)
|
||||||
Rails.application.config.assets.precompile += %w(repositories/stock.js)
|
Rails.application.config.assets.precompile += %w(repositories/stock.js)
|
||||||
Rails.application.config.assets.precompile += %w(repositories/repository_datatable.js)
|
Rails.application.config.assets.precompile += %w(repositories/repository_datatable.js)
|
||||||
|
|
Loading…
Add table
Reference in a new issue