From e1b7df38efe54a4df08585648a853fd4fb83e3f1 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Thu, 17 Oct 2013 10:55:11 +0200 Subject: [PATCH] HTML attr encoding for UploadField config Also fixed UploadField operation with canUpload=false, which broke the JS because no config could be found, since the field wasn't present. We can't put the data-config attribute on the field holder, since fields can be rendered without their field holder through FormField->SmalLFieldHolder(). Fixes https://github.com/silverstripe/silverstripe-cms/issues/874 --- forms/UploadField.php | 2 +- javascript/UploadField.js | 6 ++---- templates/UploadField.ss | 2 ++ 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/forms/UploadField.php b/forms/UploadField.php index 90e004676..03f89fe29 100644 --- a/forms/UploadField.php +++ b/forms/UploadField.php @@ -1000,7 +1000,7 @@ class UploadField extends FileField { $mergedConfig = array_merge($config, $this->ufConfig); return $this->customise(array( - 'configString' => str_replace('"', "'", Convert::raw2json($mergedConfig)), + 'configString' => str_replace('"', """, Convert::raw2json($mergedConfig)), 'config' => new ArrayData($mergedConfig), 'multiple' => $allowedMaxFileNumber !== 1 ))->renderWith($this->getTemplates()); diff --git a/javascript/UploadField.js b/javascript/UploadField.js index a824deb8c..81bbb2cdd 100644 --- a/javascript/UploadField.js +++ b/javascript/UploadField.js @@ -151,9 +151,9 @@ if(this.is('.readonly,.disabled')) return; - var fileInput = this.find('input[type=file]'); + var fileInput = this.find('.ss-uploadfield-fromcomputer-fileinput'); var dropZone = this.find('.ss-uploadfield-dropzone'); - var config = $.parseJSON(fileInput.data('config').replace(/'/g,'"')); + var config = fileInput.data('config'); /* Attach classes to dropzone when element can be dropped*/ $(document).unbind('dragover'); @@ -181,8 +181,6 @@ e.preventDefault(); }); - - this.setConfig(config); this.fileupload($.extend(true, { diff --git a/templates/UploadField.ss b/templates/UploadField.ss index cd020b72c..d67406589 100644 --- a/templates/UploadField.ss +++ b/templates/UploadField.ss @@ -52,6 +52,8 @@ <% _t('UploadField.FROMCOMPUTER', 'From your computer') %> multiple="multiple"<% end_if %> /> + <% else %> + <% end_if %> <% if $canAttachExisting %>