diff --git a/app/assets/javascripts/documentable.js b/app/assets/javascripts/documentable.js index b6b85ba8c..7aa9e1b29 100644 --- a/app/assets/javascripts/documentable.js +++ b/app/assets/javascripts/documentable.js @@ -17,11 +17,11 @@ App.Documentable.lockUploads(); } }); + App.Documentable.initializeRemoveCachedDocumentLinks(); }, initializeDirectUploadInput: function(input) { var inputData; inputData = this.buildData([], input); - this.initializeRemoveCachedDocumentLink(input, inputData); $(input).fileupload({ paramName: "attachment", formData: null, @@ -45,7 +45,6 @@ App.Documentable.setInputErrors(data); $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove(); $(data.addAttachmentLabel).addClass("error"); - $(data.addAttachmentLabel).show(); }, done: function(e, data) { var destroyAttachmentLink; @@ -54,16 +53,8 @@ App.Documentable.setProgressBar(data, "complete"); App.Documentable.setFilename(data, data.result.filename); App.Documentable.clearInputErrors(data); - $(data.addAttachmentLabel).hide(); - $(data.wrapper).find(".attachment-actions").removeClass("small-12").addClass("small-6 float-right"); - $(data.wrapper).find(".attachment-actions .action-remove").removeClass("small-3").addClass("small-12"); destroyAttachmentLink = $(data.result.destroy_link); $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink); - $(destroyAttachmentLink).on("click", function(event) { - event.preventDefault(); - event.stopPropagation(); - App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); - }); if (input.lockUpload) { App.Documentable.showNotice(); } @@ -78,8 +69,6 @@ buildData: function(data, input) { var wrapper; wrapper = $(input).closest(".direct-upload"); - data.input = input; - data.wrapper = wrapper; data.progressBar = $(wrapper).find(".progress-bar-placeholder"); data.errorContainer = $(wrapper).find(".attachment-errors"); data.fileNameContainer = $(wrapper).find("p.file-name"); @@ -92,7 +81,6 @@ }, clearFilename: function(data) { $(data.fileNameContainer).text(""); - $(data.fileNameContainer).hide(); }, clearInputErrors: function(data) { $(data.errorContainer).find("small.error").remove(); @@ -102,7 +90,6 @@ }, setFilename: function(data, file_name) { $(data.fileNameContainer).text(file_name); - $(data.fileNameContainer).show(); }, setProgressBar: function(data, klass) { $(data.progressBar).find(".loading-bar").addClass(klass); @@ -127,39 +114,10 @@ showNotice: function() { $("#max-documents-notice").removeClass("hide"); }, - doDeleteCachedAttachmentRequest: function(url, data) { - $.ajax({ - type: "POST", - url: url, - dataType: "json", - data: { - "_method": "delete" - }, - complete: function() { - $(data.cachedAttachmentField).val(""); - $(data.addAttachmentLabel).show(); - App.Documentable.clearFilename(data); - App.Documentable.clearInputErrors(data); - App.Documentable.clearProgressBar(data); - App.Documentable.unlockUploads(); - $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right"); - $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12"); - if ($(data.input).data("nested-document") === true) { - $(data.wrapper).remove(); - } else { - $(data.wrapper).find("a.remove-cached-attachment").remove(); - } - } - }); - }, - initializeRemoveCachedDocumentLink: function(input, data) { - var remove_document_link, wrapper; - wrapper = $(input).closest(".direct-upload"); - remove_document_link = $(wrapper).find("a.remove-cached-attachment"); - $(remove_document_link).on("click", function(e) { - e.preventDefault(); - e.stopPropagation(); - App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); + initializeRemoveCachedDocumentLinks: function() { + $("#nested-documents").on("ajax:complete", "a.remove-cached-attachment", function() { + App.Documentable.unlockUploads(); + $(this).closest(".direct-upload").remove(); }); }, removeDocument: function(id) { diff --git a/app/assets/javascripts/imageable.js b/app/assets/javascripts/imageable.js index 7f0773907..c2ee3e882 100644 --- a/app/assets/javascripts/imageable.js +++ b/app/assets/javascripts/imageable.js @@ -8,20 +8,17 @@ $("#nested-image").on("cocoon:after-remove", function() { $("#new_image_link").removeClass("hide"); }); - $("#nested-image").on("cocoon:before-insert", function() { - $(".js-image-attachment").closest(".image").remove(); - }); $("#nested-image").on("cocoon:after-insert", function(e, nested_image) { var input; $("#new_image_link").addClass("hide"); input = $(nested_image).find(".js-image-attachment"); App.Imageable.initializeDirectUploadInput(input); }); + App.Imageable.initializeRemoveCachedImageLinks(); }, initializeDirectUploadInput: function(input) { var inputData; inputData = this.buildData([], input); - this.initializeRemoveCachedImageLink(input, inputData); $(input).fileupload({ paramName: "attachment", formData: null, @@ -46,7 +43,6 @@ App.Imageable.clearPreview(data); $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove(); $(data.addAttachmentLabel).addClass("error"); - $(data.addAttachmentLabel).show(); }, done: function(e, data) { var destroyAttachmentLink; @@ -55,17 +51,9 @@ App.Imageable.setProgressBar(data, "complete"); App.Imageable.setFilename(data, data.result.filename); App.Imageable.clearInputErrors(data); - $(data.addAttachmentLabel).hide(); - $(data.wrapper).find(".attachment-actions").removeClass("small-12").addClass("small-6 float-right"); - $(data.wrapper).find(".attachment-actions .action-remove").removeClass("small-3").addClass("small-12"); App.Imageable.setPreview(data); destroyAttachmentLink = $(data.result.destroy_link); $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink); - $(destroyAttachmentLink).on("click", function(event) { - event.preventDefault(); - event.stopPropagation(); - App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); - }); }, progress: function(e, data) { var progress; @@ -77,7 +65,6 @@ buildData: function(data, input) { var wrapper; wrapper = $(input).closest(".direct-upload"); - data.input = input; data.wrapper = wrapper; data.progressBar = $(wrapper).find(".progress-bar-placeholder"); data.preview = $(wrapper).find(".image-preview"); @@ -92,7 +79,6 @@ }, clearFilename: function(data) { $(data.fileNameContainer).text(""); - $(data.fileNameContainer).hide(); }, clearInputErrors: function(data) { $(data.errorContainer).find("small.error").remove(); @@ -105,7 +91,6 @@ }, setFilename: function(data, file_name) { $(data.fileNameContainer).text(file_name); - $(data.fileNameContainer).show(); }, setProgressBar: function(data, klass) { $(data.progressBar).find(".loading-bar").addClass(klass); @@ -130,40 +115,10 @@ data.preview = $(data.wrapper).find(".image-preview"); } }, - doDeleteCachedAttachmentRequest: function(url, data) { - $.ajax({ - type: "POST", - url: url, - dataType: "json", - data: { - "_method": "delete" - }, - complete: function() { - $(data.cachedAttachmentField).val(""); - $(data.addAttachmentLabel).show(); - App.Imageable.clearFilename(data); - App.Imageable.clearInputErrors(data); - App.Imageable.clearProgressBar(data); - App.Imageable.clearPreview(data); - $("#new_image_link").removeClass("hide"); - $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right"); - $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12"); - if ($(data.input).data("nested-image") === true) { - $(data.wrapper).remove(); - } else { - $(data.wrapper).find("a.remove-cached-attachment").remove(); - } - } - }); - }, - initializeRemoveCachedImageLink: function(input, data) { - var remove_image_link, wrapper; - wrapper = $(input).closest(".direct-upload"); - remove_image_link = $(wrapper).find("a.remove-cached-attachment"); - $(remove_image_link).on("click", function(e) { - e.preventDefault(); - e.stopPropagation(); - App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); + initializeRemoveCachedImageLinks: function() { + $("#nested-image").on("ajax:complete", "a.remove-cached-attachment", function() { + $("#new_image_link").removeClass("hide"); + $(this).closest(".direct-upload").remove(); }); }, removeImage: function(id) { diff --git a/app/assets/stylesheets/mixins/uploads.scss b/app/assets/stylesheets/mixins/uploads.scss index f7fd718fc..570b65326 100644 --- a/app/assets/stylesheets/mixins/uploads.scss +++ b/app/assets/stylesheets/mixins/uploads.scss @@ -20,13 +20,17 @@ p { margin-bottom: 0; } + + &:focus-within label { + outline: $outline-focus; + } } .attachment-errors { > .js-image-attachment, > .js-document-attachment { - display: none; + @include element-invisible; ~ .error { display: inline-block; @@ -41,7 +45,17 @@ } .file-name { + padding-left: 0; margin-top: 0; + + &:empty { + display: none; + } + + &:not(:empty) + .document-attachment, + &:not(:empty) + .image-attachment { + display: none; + } } .loading-bar { diff --git a/app/components/admin/budget_phases/form_component.html.erb b/app/components/admin/budget_phases/form_component.html.erb index 3fcaab81c..45e8b65d4 100644 --- a/app/components/admin/budget_phases/form_component.html.erb +++ b/app/components/admin/budget_phases/form_component.html.erb @@ -57,7 +57,7 @@ <% if feature?(:allow_images) %>
<%= t("admin.budget_phases.edit.image_description") %>
<%= t("admin.budgets.edit.image_description") %>
- <%= document_attachment_file_name(f.object) %> -
-<%= documentables_note(documentable) %>
- -- <%= image_attachment_file_name(f.object) %> -
-<%= imageables_note(imageable) %>
- -