diff --git a/.travis.yml b/.travis.yml index 9f1d072..d957452 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,8 @@ sudo: false language: php +dist: precise + matrix: include: - php: 5.3 diff --git a/code/model/editableformfields/EditableFileField.php b/code/model/editableformfields/EditableFileField.php index f272925..b81a1f2 100755 --- a/code/model/editableformfields/EditableFileField.php +++ b/code/model/editableformfields/EditableFileField.php @@ -45,10 +45,14 @@ class EditableFileField extends EditableFormField ) ); - $fields->addFieldToTab("Root.Main", new LiteralField("FileUploadWarning", - "

" . _t("UserDefinedForm.FileUploadWarning", - "Files uploaded through this field could be publicly accessible if the exact URL is known") - . "

"), "Type"); + $fields->addFieldToTab("Root.Main", new LiteralField( + "FileUploadWarning", + "

" + . _t( + "UserDefinedForm.FileUploadWarning", + "Files uploaded through this field could be publicly accessible if the exact URL is known" + ) . "

" + ), "Type"); $fields->addFieldToTab( 'Root.Main', @@ -57,6 +61,8 @@ class EditableFileField extends EditableFormField ->setDescription("Note: Maximum php allowed size is {$this->getPHPMaxFileSizeMB()} MB") ); + $fields->removeByName('Default'); + return $fields; } diff --git a/code/model/recipients/UserDefinedForm_EmailRecipient.php b/code/model/recipients/UserDefinedForm_EmailRecipient.php index ad118c5..9e73484 100644 --- a/code/model/recipients/UserDefinedForm_EmailRecipient.php +++ b/code/model/recipients/UserDefinedForm_EmailRecipient.php @@ -261,12 +261,9 @@ class UserDefinedForm_EmailRecipient extends DataObject ->addExtraClass('toggle-html-only'), TextareaField::create('EmailBody', _t('UserDefinedForm.EMAILBODY', 'Body')) ->addExtraClass('toggle-plain-only'), - LiteralField::create( - 'EmailPreview', - '
' . $preview . '
' - ) + LiteralField::create('EmailPreview', $preview) )); - + $fields->fieldByName('Root.EmailContent')->setTitle(_t('UserDefinedForm_EmailRecipient.EMAILCONTENTTAB', 'Email Content')); // Custom rules for sending this field @@ -291,7 +288,7 @@ class UserDefinedForm_EmailRecipient extends DataObject ), $grid )); - + $fields->fieldByName('Root.CustomRules')->setTitle(_t('UserDefinedForm_EmailRecipient.CUSTOMRULESTAB', 'Custom Rules')); $this->extend('updateCMSFields', $fields); @@ -421,7 +418,10 @@ class UserDefinedForm_EmailRecipient extends DataObject */ public function getEmailBodyContent() { - return $this->SendPlain ? $this->EmailBody : $this->EmailBodyHtml; + if ($this->SendPlain) { + return DBField::create_field('HTMLText', $this->EmailBody)->NoHTML(); + } + return DBField::create_field('HTMLText', $this->EmailBodyHtml)->RAW(); } /** diff --git a/code/model/submissions/SubmittedFileField.php b/code/model/submissions/SubmittedFileField.php index 557235a..44f8df8 100755 --- a/code/model/submissions/SubmittedFileField.php +++ b/code/model/submissions/SubmittedFileField.php @@ -55,7 +55,7 @@ class SubmittedFileField extends SubmittedFormField { if ($file = $this->UploadedFile()) { if (trim($file->getFilename(), '/') != trim(ASSETS_DIR, '/')) { - return $this->UploadedFile()->URL; + return $this->UploadedFile()->AbsoluteLink(); } } } diff --git a/code/model/submissions/SubmittedForm.php b/code/model/submissions/SubmittedForm.php index ff62413..6378680 100755 --- a/code/model/submissions/SubmittedForm.php +++ b/code/model/submissions/SubmittedForm.php @@ -81,9 +81,14 @@ class SubmittedForm extends DataObject $self->Values()->sort('Created', 'ASC') ); + $exportColumns = array( + 'Title' => 'Title', + 'ExportValue' => 'Value' + ); + $config = new GridFieldConfig(); $config->addComponent(new GridFieldDataColumns()); - $config->addComponent(new GridFieldExportButton()); + $config->addComponent(new GridFieldExportButton('after', $exportColumns)); $config->addComponent(new GridFieldPrintButton()); $values->setConfig($config); diff --git a/composer.json b/composer.json index 930e378..610ba53 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "require": { "silverstripe/framework": "~3.2", "silverstripe/cms": "~3.2", - "silverstripe-australia/gridfieldextensions": "~1.1", + "symbiote/silverstripe-gridfieldextensions": "~1.1", "silverstripe/segment-field": "^1.0" }, "suggest": { diff --git a/css/UserForm_cms.css b/css/UserForm_cms.css index f533cb8..5711a5f 100644 --- a/css/UserForm_cms.css +++ b/css/UserForm_cms.css @@ -1,14 +1,6 @@ /** * Animations */ -@keyframes rowSlide { - 0% { - top: 20%; - } - 100% { - top: 80%; - } -} @keyframes flashBackground { 0% { background-color: white; @@ -42,10 +34,6 @@ .cms .uf-field-editor table.ss-gridfield-table .ss-gridfield-item .handle { min-height: 46px; } -.cms .uf-field-editor table.ss-gridfield-table .ss-gridfield-item.newField { - position: fixed; - animation: rowSlide .5s ease forwards; -} .cms .uf-field-editor table.ss-gridfield-table .ss-gridfield-item.flashBackground { animation: flashBackground 2s linear; } diff --git a/javascript/FieldEditor.js b/javascript/FieldEditor.js index 5e9b14e..ff825aa 100644 --- a/javascript/FieldEditor.js +++ b/javascript/FieldEditor.js @@ -8,8 +8,8 @@ $(".uf-field-editor tbody").entwine({ onmatch: function() { - var i, - thisLevel, + var i, + thisLevel, depth = 0, $buttonrow = $('.uf-field-editor .ss-gridfield-buttonrow').addClass('stickyButtons'), navHeight = $('.cms-content-header.north').height() + parseInt($('.stickyButtons').css('padding-top'), 10), @@ -17,7 +17,7 @@ self = this; this._super(); - + // Loop through all rows and set necessary styles this.find('.ss-gridfield-item').each(function() { switch($(this).data('class')) { @@ -37,7 +37,7 @@ thisLevel = depth; } } - + $(this).toggleClass('inFieldGroup', thisLevel > 0); for(i = 1; i <= 5; i++) { $(this).toggleClass('inFieldGroup-level-'+i, thisLevel >= i); @@ -76,7 +76,7 @@ var self = this; this._super(); - + // When the 'Add field' button is clicked set a one time listener. // When the GridField is reloaded focus on the newly added field. this.on('addnewinline', function () { @@ -92,19 +92,11 @@ $newField.find('.col-Title input').focus(); } - // animate the row positioning (add the first class) - if (document.createElement('div').style.animationName !== void 0) { - $newField.addClass('newField'); + $newField.addClass('flashBackground'); + $(".cms-content-fields").scrollTop($(".cms-content-fields")[0].scrollHeight); + if($groupEnd) { + $groupEnd.css('visibility', 'visible'); } - - // Once the animation has completed - setTimeout(function () { - $newField.removeClass('newField').addClass('flashBackground'); - $(".cms-content-fields").scrollTop($(".cms-content-fields")[0].scrollHeight); - if($groupEnd) { - $groupEnd.css('visibility', 'visible'); - } - }, 500); }); }); }, diff --git a/javascript/Recipient.js b/javascript/Recipient.js index 0bae6bf..0e97c57 100644 --- a/javascript/Recipient.js +++ b/javascript/Recipient.js @@ -5,12 +5,11 @@ (function ($) { $(document).ready(function () { + var sendPlain = $('input[name="SendPlain"]'); var recipient = { // Some fields are only visible when HTML email are being sent. updateFormatSpecificFields: function () { - var sendPlainChecked = $('#SendPlain') - .find('input[type="checkbox"]') - .is(':checked'); + var sendPlainChecked = sendPlain.is(':checked'); $(".field.toggle-html-only")[sendPlainChecked ? 'hide' : 'show'](); $(".field.toggle-plain-only")[sendPlainChecked ? 'show' : 'hide'](); @@ -27,7 +26,7 @@ } }); - $('#SendPlain').entwine({ + sendPlain.entwine({ onchange: function () { recipient.updateFormatSpecificFields(); } diff --git a/scss/UserForm_cms.scss b/scss/UserForm_cms.scss index 43bd20d..a15abbc 100644 --- a/scss/UserForm_cms.scss +++ b/scss/UserForm_cms.scss @@ -2,11 +2,6 @@ * Animations */ -@keyframes rowSlide { - 0% {top: 20%;} - 100% {top: 80%;} -} - @keyframes flashBackground { 0% {background-color: white;} 10% {background-color: #dcfedd;} @@ -30,11 +25,11 @@ &, &:hover { background: white; } - + td { border-right-width: 0; border-top: 1px solid #EEE; - + &:last-child { border-right-width: 1px; } @@ -44,11 +39,6 @@ min-height: 46px; } - &.newField { - position: fixed; - animation: rowSlide .5s ease forwards; - } - &.flashBackground { animation: flashBackground 2s linear; } @@ -62,24 +52,24 @@ &, &:hover { background: #f2f9fd; } - + td { border-bottom: 0; border-top: 1px solid #eee; } - + .col-reorder, .handle { background: #BEE0F8; border-top: 0; } - + &.inFieldGroup-level-2 { .col-reorder, .handle { background: #99CEF4; border-top: 0; } } - + &.inFieldGroup-level-3 { .col-reorder, .handle { background: #89BEF4; @@ -116,7 +106,7 @@ td { border-top: 1px solid #a8d7f5; } - + label { font-weight: bold; color: #444; @@ -135,7 +125,7 @@ .col-buttons .action{ display: none; } - + label { color: #777; } diff --git a/tests/model/recipients/UserDefinedForm_EmailRecipientTest.php b/tests/model/recipients/UserDefinedForm_EmailRecipientTest.php new file mode 100644 index 0000000..237560a --- /dev/null +++ b/tests/model/recipients/UserDefinedForm_EmailRecipientTest.php @@ -0,0 +1,24 @@ +objFromFixture('SiteTree', 'about_us'); + + $recipient = UserDefinedForm_EmailRecipient::create(); + $recipient->SendPlain = false; + $recipient->EmailBodyHtml = '

Some email content. About us: [sitetree_link,id=' . $page->ID . '].

'; + + $result = $recipient->getEmailBodyContent(); + $this->assertContains('/about-us/', $result); + + $recipient->SendPlain = true; + $recipient->EmailBody = 'Some email content. About us: [sitetree_link,id=' . $page->ID . '].'; + + $result = $recipient->getEmailBodyContent(); + $this->assertContains('/about-us/', $result); + } +} diff --git a/tests/model/recipients/UserDefinedForm_EmailRecipientTest.yml b/tests/model/recipients/UserDefinedForm_EmailRecipientTest.yml new file mode 100644 index 0000000..7ff28c7 --- /dev/null +++ b/tests/model/recipients/UserDefinedForm_EmailRecipientTest.yml @@ -0,0 +1,4 @@ +SiteTree: + about_us: + Title: About Us + URLSegment: about-us