Commit f198b7e2 by David Baumgold

Clean up Backbone view logic

parent 109ccf6c
<div id="prompt-assetupload" class="wrapper wrapper-prompt wrapper-prompt-assetupload" aria-describedby="prompt-assetupload-description" aria-labelledby="prompt-assetupload-title" role="dialog" aria-hidden="false"> <div id="prompt-assetupload"
class="wrapper wrapper-prompt wrapper-prompt-assetupload <% if(shown) { print('is-shown') } %>"
aria-describedby="prompt-assetupload-description"
aria-labelledby="prompt-assetupload-title"
aria-hidden="<%= !shown %>"
role="dialog">
<div class="prompt confirm"> <div class="prompt confirm">
<div class="copy"> <div class="copy">
......
...@@ -114,10 +114,7 @@ CMS.Views.ChapterEdit = Backbone.View.extend({ ...@@ -114,10 +114,7 @@ CMS.Views.ChapterEdit = Backbone.View.extend({
message: "[asset upload requirements]" message: "[asset upload requirements]"
}) })
var view = new CMS.Views.UploadDialog({model: msg, chapter: this.model}) var view = new CMS.Views.UploadDialog({model: msg, chapter: this.model})
$(".wrapper-view").append(view.render().el) $(".wrapper-view").after(view.show().el)
$body.addClass('prompt-is-shown');
$('.wrapper-prompt').addClass('is-shown').attr('aria-hidden','false');
} }
}) })
CMS.Models.FileUpload = Backbone.Model.extend({ CMS.Models.FileUpload = Backbone.Model.extend({
...@@ -131,6 +128,9 @@ CMS.Models.FileUpload = Backbone.Model.extend({ ...@@ -131,6 +128,9 @@ CMS.Models.FileUpload = Backbone.Model.extend({
} }
}); });
CMS.Views.UploadDialog = Backbone.View.extend({ CMS.Views.UploadDialog = Backbone.View.extend({
options: {
shown: true
},
initialize: function() { initialize: function() {
this.template = _.template($("#upload-dialog-tpl").text()); this.template = _.template($("#upload-dialog-tpl").text());
this.listenTo(this.model, "change", this.render); this.listenTo(this.model, "change", this.render);
...@@ -147,6 +147,7 @@ CMS.Views.UploadDialog = Backbone.View.extend({ ...@@ -147,6 +147,7 @@ CMS.Views.UploadDialog = Backbone.View.extend({
selectedFile = oldInput.files[0]; selectedFile = oldInput.files[0];
} }
this.$el.html(this.template({ this.$el.html(this.template({
shown: this.options.shown,
url: UPLOAD_ASSET_CALLBACK_URL, url: UPLOAD_ASSET_CALLBACK_URL,
title: this.model.escape('title'), title: this.model.escape('title'),
message: this.model.escape('message'), message: this.model.escape('message'),
...@@ -163,18 +164,27 @@ CMS.Views.UploadDialog = Backbone.View.extend({ ...@@ -163,18 +164,27 @@ CMS.Views.UploadDialog = Backbone.View.extend({
}, },
events: { events: {
"change input[type=file]": "selectFile", "change input[type=file]": "selectFile",
"click .action-cancel": "removeSelf", "click .action-cancel": "hideAndRemove",
"click .action-upload": "upload" "click .action-upload": "upload"
}, },
selectFile: function(e) { selectFile: function(e) {
this.model.set('fileList', e.target.files) this.model.set('fileList', e.target.files)
}, },
removeSelf: function(e) { show: function(e) {
if(e && e.preventDefault) { e.preventDefault(); } if(e && e.preventDefault) { e.preventDefault(); }
this.remove(); this.options.shown = true;
$body.addClass('prompt-is-shown');
return this.render();
},
hide: function(e) {
if(e && e.preventDefault) { e.preventDefault(); }
this.options.shown = false;
$body.removeClass('prompt-is-shown'); $body.removeClass('prompt-is-shown');
$('.wrapper-prompt').removeClass('is-shown').attr('aria-hidden','true'); return this.render();
},
hideAndRemove: function(e) {
if(e && e.preventDefault) { e.preventDefault(); }
return this.hide().remove();
}, },
upload: function(e) { upload: function(e) {
this.model.set('uploading', true); this.model.set('uploading', true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment