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