Fix exporting of empty folder [SCI-10427] (#7270)

This commit is contained in:
ajugo 2024-03-13 16:23:38 +01:00 committed by GitHub
parent e61d593a0e
commit 3d1907d972
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 32 additions and 13 deletions

View file

@ -326,18 +326,22 @@ export default {
}
},
async exportProjects(event, rows) {
this.exportDescription = event.message;
const ok = await this.$refs.exportModal.show();
if (ok) {
axios.post(event.path, {
project_ids: rows.filter((row) => !row.folder).map((row) => row.id),
project_folder_ids: rows.filter((row) => row.folder).map((row) => row.id)
}).then((response) => {
this.reloadingTable = true;
HelperModule.flashAlertMsg(response.data.flash, 'success');
}).catch((error) => {
HelperModule.flashAlertMsg(error.response.data.error, 'danger');
});
if (event.number_of_projects === 0) {
HelperModule.flashAlertMsg(this.i18n.t('projects.export_projects.zero_projects_flash'), 'danger');
} else {
this.exportDescription = event.message;
const ok = await this.$refs.exportModal.show();
if (ok) {
axios.post(event.path, {
project_ids: rows.filter((row) => !row.folder).map((row) => row.id),
project_folder_ids: rows.filter((row) => row.folder).map((row) => row.id)
}).then((response) => {
this.reloadingTable = true;
HelperModule.flashAlertMsg(response.data.message, 'success');
}).catch((error) => {
HelperModule.flashAlertMsg(error.response.data.error, 'danger');
});
}
}
},
move(event, rows) {

View file

@ -101,7 +101,7 @@ module Toolbars
def export_action
return unless @items.all? { |item| item.is_a?(Project) ? can_export_project?(item) : true }
num_projects = @items.length
num_projects = count_of_export_projects
limit = TeamZipExport.exports_limit
num_of_requests_left = @current_user.exports_left - 1
team = @items.first.team
@ -121,6 +121,7 @@ module Toolbars
icon: 'sn-icon sn-icon-export',
message: message,
path: export_projects_team_path(team),
number_of_projects: num_projects,
type: :emit
}
end
@ -205,5 +206,19 @@ module Toolbars
type: :link
}
end
def count_of_export_projects
@items.sum do |item|
if item.is_a?(Project) && can_export_project?(item)
1
elsif item.respond_to?(:inner_projects)
item.inner_projects.visible_to(@current_user, item.team).count do |project|
can_export_project?(project)
end
else
0
end
end
end
end
end