Change javascript for modal handeling and some other small fixes

This commit is contained in:
Mojca Lorber 2020-12-03 12:53:19 +01:00
parent 74f0f0474a
commit 9253cf5ade
3 changed files with 42 additions and 11 deletions

View file

@ -42,6 +42,37 @@
var selectedProjects = [];
var selectedProjectFolders = [];
// Init new project folder modal function
function initNewProjectFolderModal() {
var newProjectFolderModal = '#new-project-folder-modal'
// Modal's submit handler function
function newProjectFolderModalResponse() {
$(newProjectFolderModal).find('form')
.on('ajax:success', function(ev, data) {
refreshCurrentView();
$(newProjectFolderModal).modal('hide');
HelperModule.flashAlertMsg(data.message, 'success');
})
.on('ajax:error', function(e, data) {
$(this).renderFormErrors('project_folder', data.responseJSON);
});
}
$('.new-project-folder-btn')
.on('ajax:success', function(e, data) {
// Add and show modal
$('body').append($.parseHTML(data.html));
$(newProjectFolderModal).modal('show');
$(newProjectFolderModal).find("input[type='text']").focus();
newProjectFolderModalResponse();
// Remove modal when it gets closed
$(newProjectFolderModal).on('hidden.bs.modal', function() {
$(newProjectFolderModal).remove();
});
});
}
/**
* Initialize the JS for new project modal to work.
*/
@ -402,12 +433,12 @@
exportProjectsSubmit = $('#export-projects-modal-submit');
updateSelectedCards();
initNewProjectFolderModal();
initNewProjectModal();
initEditProjectModal();
initManageUsersModal();
initExportProjectsModal();
initExportProjects();
$('.new-project-folder-btn').initSubmitModal('#new-project-folder-modal', 'project_folder');
initEditProjectButton($('.panel-project'));
initArchiveRestoreButton($('.panel-project'));

View file

@ -1,6 +1,8 @@
# frozen_string_literal: true
class ProjectFoldersController < ApplicationController
include InputSanitizeHelper
before_action :load_current_folder, only: %i(new)
before_action :check_create_permissions, only: %i(new create)
before_action :check_manage_permissions, only: %i(move_to)
@ -19,19 +21,17 @@ class ProjectFoldersController < ApplicationController
end
def create
@project_folder = ProjectFolder.new(team: current_team)
@project_folder.assign_attributes(project_folders_params)
project_folder = current_team.project_folders.new(project_folders_params)
respond_to do |format|
format.json do
if @project_folder.save
if project_folder.save
# log_activity()
flash[:success] = t('projects.index.modal_new_project_folder.success_flash',
name: @project_folder.name)
render json: { url: project_folder_path(@project_folder) },
status: :ok
message = t('projects.index.modal_new_project_folder.success_flash',
name: escape_input(project_folder.name))
render json: { message: message }
else
render json: @project_folder.errors,
render json: project_folder.errors,
status: :unprocessable_entity
end
end
@ -58,7 +58,7 @@ class ProjectFoldersController < ApplicationController
private
def load_current_folder
if current_team && params[:project_folder_id].present?
if params[:project_folder_id].present?
@current_folder = current_team.project_folders.find_by(id: params[:project_folder_id])
end
end

View file

@ -1,5 +1,5 @@
<div class="modal" id="new-project-folder-modal" tabindex="-1" role="dialog" aria-labelledby="new-project-folder-modal-label">
<%= bootstrap_form_for [@project_folder], remote: true do |f| %>
<%= bootstrap_form_for @project_folder, remote: true do |f| %>
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">