diff --git a/CHANGELOG.md b/CHANGELOG.md index bc7b2544..7a6c65cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## 1.0.0-RC2 + - BUGFIX #132 Fix boolean values in list + - FEATURE #132 Add id to search fields in form and dynamic list - ENHANCEMENT #131 Add created date to list view - BUGFIX #130 Fixed csv export for big results - FEATURE #129 Add disabled field type configuration diff --git a/ListBuilder/DynamicListBuilder.php b/ListBuilder/DynamicListBuilder.php index d7c69b35..8d713ce0 100644 --- a/ListBuilder/DynamicListBuilder.php +++ b/ListBuilder/DynamicListBuilder.php @@ -84,10 +84,6 @@ public function build(Dynamic $dynamic, $locale) */ protected function toString($value) { - if (!$value) { - return ''; - } - if (is_string($value) || is_numeric($value)) { return $value; } @@ -100,6 +96,10 @@ protected function toString($value) return $value->format('c'); } + if (!$value) { + return ''; + } + if (!is_array($value)) { throw new \Exception('Invalid value for list builder.'); } diff --git a/ListBuilder/DynamicListFactory.php b/ListBuilder/DynamicListFactory.php index aa2e2a8c..d96008b8 100644 --- a/ListBuilder/DynamicListFactory.php +++ b/ListBuilder/DynamicListFactory.php @@ -53,11 +53,10 @@ public function getFieldDescriptors(Form $form, $locale) } $title = ''; - $translation = $field->getTranslation($locale); if ($translation) { - $title = $translation->getTitle(); + $title = $translation->getShortTitle() ?: $translation->getTitle(); } $fieldDescriptors[$field->getKey()] = new FieldDescriptor( diff --git a/Resources/public/dist/components/dynamics/list/main.js b/Resources/public/dist/components/dynamics/list/main.js index 882803ee..f1b45ca4 100644 --- a/Resources/public/dist/components/dynamics/list/main.js +++ b/Resources/public/dist/components/dynamics/list/main.js @@ -1 +1 @@ -define(["jquery"],function(a){"use strict";var b={toolbarId:"dynamic-toolbar",toolbarKey:"dynamics",listId:"dynamic-list",endPointUrl:"/admin/api/form/dynamics",fieldsAction:"/admin/api/form/dynamics/fields"};return{layout:function(){return{extendExisting:!0,content:{width:this.options.width?this.options.width:"fixed",leftSpace:!0,rightSpace:!0}}},initialize:function(){this.render(),this.initPreview()},initPreview:function(){this.sandbox.emit("sulu.preview.initialize",null,!0)},getUrlParameters:function(){var a={form:this.getFormDataProperty(this.options.property),webspaceKey:this.options.webspace,locale:this.options.language,view:this.options.view,sortBy:"created",sortOrder:"desc"};return this.options.type&&(a.type=this.options.type,a.typeId=this.getFormDataProperty("id")),a},getFormDataProperty:function(a){var b=this.getFormData();if(b||"undefined"!=typeof b[a])return b[a]},getFormData:function(){var a=null;if("function"==typeof this.options.data?a=this.options.data():"object"==typeof this.options.data?a=this.options.data:"undefined"!=typeof this.options&&(a=this.options),a){if(this.options.page>1){if("undefined"===a._embedded||"undefined"==typeof a._embedded.pages)return;a=a._embedded.pages[this.options.page-2]}return a}},render:function(){this.sandbox.dom.html(this.$el,'
');var c=this.getUrlParameters();if(!c.form)return void a("#"+b.listId).html("

"+app.sandbox.translate("select.no-choice")+"

");var d="?"+a.param(c);this.sandbox.sulu.initListToolbarAndList.call(this,b.toolbarKey,b.fieldsAction+d,{el:this.$find("#"+b.toolbarId),template:this.sandbox.sulu.buttons.get({settings:{options:{id:"settings",dropdownItems:{"export":{options:{title:"public.export",icon:"download",callback:function(){var d=a("
");a("body").append(d);var e={el:d,urlParameter:c,url:b.endPointUrl+".csv"};App.start([{name:"csv-export@suluform",options:e}]).fail(function(){console.warn("Ignore error! For date-range specific export at least Sulu 1.5 is needed. Automatic fallback to default export."),App.start([{name:"csv-export@suluadmin",options:e}])})}.bind(this)}},columnOptions:{options:{type:"columnOptions"}}}}}}),instanceName:this.instanceName},{el:this.$find("#"+b.listId),instanceName:this.instanceName,url:b.endPointUrl+d,resultKey:"dynamics",searchFields:["email","firstName","lastName"],viewOptions:{table:{selectItem:!1,fullWidth:!0}}})}}}); \ No newline at end of file +define(["jquery"],function(a){"use strict";var b={toolbarId:"dynamic-toolbar",toolbarKey:"dynamics",listId:"dynamic-list",endPointUrl:"/admin/api/form/dynamics",fieldsAction:"/admin/api/form/dynamics/fields"};return{layout:function(){return{extendExisting:!0,content:{width:this.options.width?this.options.width:"fixed",leftSpace:!0,rightSpace:!0}}},initialize:function(){this.render(),this.initPreview()},initPreview:function(){this.sandbox.emit("sulu.preview.initialize",null,!0)},getUrlParameters:function(){var a={form:this.getFormDataProperty(this.options.property),webspaceKey:this.options.webspace,locale:this.options.language,view:this.options.view,sortBy:"created",sortOrder:"desc"};return this.options.type&&(a.type=this.options.type,a.typeId=this.getFormDataProperty("id")),a},getFormDataProperty:function(a){var b=this.getFormData();if(b||"undefined"!=typeof b[a])return b[a]},getFormData:function(){var a=null;if("function"==typeof this.options.data?a=this.options.data():"object"==typeof this.options.data?a=this.options.data:"undefined"!=typeof this.options&&(a=this.options),a){if(this.options.page>1){if("undefined"===a._embedded||"undefined"==typeof a._embedded.pages)return;a=a._embedded.pages[this.options.page-2]}return a}},render:function(){this.sandbox.dom.html(this.$el,'
');var c=this.getUrlParameters();if(!c.form)return void a("#"+b.listId).html("

"+app.sandbox.translate("select.no-choice")+"

");var d="?"+a.param(c);this.sandbox.sulu.initListToolbarAndList.call(this,b.toolbarKey,b.fieldsAction+d,{el:this.$find("#"+b.toolbarId),template:this.sandbox.sulu.buttons.get({settings:{options:{id:"settings",dropdownItems:{"export":{options:{title:"public.export",icon:"download",callback:function(){var d=a("
");a("body").append(d);var e={el:d,urlParameter:c,url:b.endPointUrl+".csv"};App.start([{name:"csv-export@suluform",options:e}]).fail(function(){console.warn("Ignore error! For date-range specific export at least Sulu 1.5 is needed. Automatic fallback to default export."),App.start([{name:"csv-export@suluadmin",options:e}])})}.bind(this)}},columnOptions:{options:{type:"columnOptions"}}}}}}),instanceName:this.instanceName},{el:this.$find("#"+b.listId),instanceName:this.instanceName,url:b.endPointUrl+d,resultKey:"dynamics",searchFields:["id","email","firstName","lastName"],viewOptions:{table:{selectItem:!1,fullWidth:!0}}})}}}); \ No newline at end of file diff --git a/Resources/public/dist/components/forms/list/main.js b/Resources/public/dist/components/forms/list/main.js index b5f3fad6..3a025629 100644 --- a/Resources/public/dist/components/forms/list/main.js +++ b/Resources/public/dist/components/forms/list/main.js @@ -1 +1 @@ -define(["suluform/collections/forms"],function(a){"use strict";var b=new a,c={toolbarId:"form-toolbar",listId:"form-list",lastClickedEventSettingsKey:"suluformformLastClicked",endPointUrl:b.url(),toolbarKey:"forms",toolbarSearchFields:["title"],fieldsAction:b.fieldsUrl(),eventPrefix:"sulu.form.forms.",translatePrefix:"sulu_form.forms."};return{view:!0,layout:{content:{width:"max"}},header:function(){return{title:c.translatePrefix+"title",noBack:!0,toolbar:{languageChanger:{preSelected:this.options.language},buttons:{add:{},deleteSelected:{}}}}},initialize:function(){this.sandbox.sulu.triggerDeleteSuccessLabel(c.translatePrefix+"success_delete"),this.bindCustomEvents(),this.render()},bindCustomEvents:function(){this.sandbox.on("sulu.toolbar.add",this.add.bind(this)),this.sandbox.on("sulu.toolbar.delete",this.deleteSelected.bind(this)),this.sandbox.on("husky.datagrid.item.click",this.saveLastClickedEvent.bind(this)),this.sandbox.on("husky.datagrid.number.selections",this.activateDeleteButton.bind(this))},activateDeleteButton:function(a){a?this.sandbox.emit("sulu.header.toolbar.item.enable","deleteSelected",!0):this.sandbox.emit("sulu.header.toolbar.item.disable","deleteSelected",!1)},render:function(){this.sandbox.dom.html(this.$el,'
'),this.sandbox.sulu.initListToolbarAndList.call(this,c.toolbarKey,c.fieldsAction+"?locale="+this.options.language,{el:this.$find("#"+c.toolbarId),template:"default",instanceName:this.instanceName},{el:this.$find("#"+c.listId),instanceName:this.instanceName,url:c.endPointUrl+"?locale="+this.options.language+"&flat=true&sortBy=title&sortOrder=asc",resultKey:c.toolbarKey,searchFields:c.toolbarSearchFields,viewOptions:{table:{icons:[{column:"title",icon:"pencil",align:"left",callback:this.edit.bind(this)}],rowClickSelect:!0,highlightSelected:!0,fullWidth:!0}}})},add:function(){this.sandbox.emit(c.eventPrefix+"navigate-add")},edit:function(a){this.saveLastClickedEvent(a),this.sandbox.emit(c.eventPrefix+"navigate-to",a)},saveLastClickedEvent:function(a){a&&this.sandbox.sulu.saveUserSetting(c.lastClickedEventSettingsKey,a)},deleteSelected:function(){this.sandbox.emit("husky.datagrid.items.get-selected",function(a){this.sandbox.emit(c.eventPrefix+"delete",a,function(a){this.sandbox.emit("husky.datagrid.record.remove",a)}.bind(this),function(){this.sandbox.emit("sulu.labels.success.show",c.translatePrefix+"delete.success","labels.success")}.bind(this))}.bind(this))}}}); \ No newline at end of file +define(["suluform/collections/forms"],function(a){"use strict";var b=new a,c={toolbarId:"form-toolbar",listId:"form-list",lastClickedEventSettingsKey:"suluformformLastClicked",endPointUrl:b.url(),toolbarKey:"forms",toolbarSearchFields:["id","title"],fieldsAction:b.fieldsUrl(),eventPrefix:"sulu.form.forms.",translatePrefix:"sulu_form.forms."};return{view:!0,layout:{content:{width:"max"}},header:function(){return{title:c.translatePrefix+"title",noBack:!0,toolbar:{languageChanger:{preSelected:this.options.language},buttons:{add:{},deleteSelected:{}}}}},initialize:function(){this.sandbox.sulu.triggerDeleteSuccessLabel(c.translatePrefix+"success_delete"),this.bindCustomEvents(),this.render()},bindCustomEvents:function(){this.sandbox.on("sulu.toolbar.add",this.add.bind(this)),this.sandbox.on("sulu.toolbar.delete",this.deleteSelected.bind(this)),this.sandbox.on("husky.datagrid.item.click",this.saveLastClickedEvent.bind(this)),this.sandbox.on("husky.datagrid.number.selections",this.activateDeleteButton.bind(this))},activateDeleteButton:function(a){a?this.sandbox.emit("sulu.header.toolbar.item.enable","deleteSelected",!0):this.sandbox.emit("sulu.header.toolbar.item.disable","deleteSelected",!1)},render:function(){this.sandbox.dom.html(this.$el,'
'),this.sandbox.sulu.initListToolbarAndList.call(this,c.toolbarKey,c.fieldsAction+"?locale="+this.options.language,{el:this.$find("#"+c.toolbarId),template:"default",instanceName:this.instanceName},{el:this.$find("#"+c.listId),instanceName:this.instanceName,url:c.endPointUrl+"?locale="+this.options.language+"&flat=true&sortBy=title&sortOrder=asc",resultKey:c.toolbarKey,searchFields:c.toolbarSearchFields,viewOptions:{table:{icons:[{column:"title",icon:"pencil",align:"left",callback:this.edit.bind(this)}],rowClickSelect:!0,highlightSelected:!0,fullWidth:!0}}})},add:function(){this.sandbox.emit(c.eventPrefix+"navigate-add")},edit:function(a){this.saveLastClickedEvent(a),this.sandbox.emit(c.eventPrefix+"navigate-to",a)},saveLastClickedEvent:function(a){a&&this.sandbox.sulu.saveUserSetting(c.lastClickedEventSettingsKey,a)},deleteSelected:function(){this.sandbox.emit("husky.datagrid.items.get-selected",function(a){this.sandbox.emit(c.eventPrefix+"delete",a,function(a){this.sandbox.emit("husky.datagrid.record.remove",a)}.bind(this),function(){this.sandbox.emit("sulu.labels.success.show",c.translatePrefix+"delete.success","labels.success")}.bind(this))}.bind(this))}}}); \ No newline at end of file diff --git a/Resources/public/js/components/dynamics/list/main.js b/Resources/public/js/components/dynamics/list/main.js index b5b32e85..e2e8ae0b 100644 --- a/Resources/public/js/components/dynamics/list/main.js +++ b/Resources/public/js/components/dynamics/list/main.js @@ -184,7 +184,7 @@ define(['jquery'], function ($) { instanceName: this.instanceName, url: constants.endPointUrl + queryString, resultKey: 'dynamics', - searchFields: ['email', 'firstName', 'lastName'], + searchFields: ['id', 'email', 'firstName', 'lastName'], viewOptions: { table: { selectItem: false, diff --git a/Resources/public/js/components/forms/list/main.js b/Resources/public/js/components/forms/list/main.js index 51e0eef5..213f0725 100644 --- a/Resources/public/js/components/forms/list/main.js +++ b/Resources/public/js/components/forms/list/main.js @@ -14,7 +14,7 @@ define(['suluform/collections/forms'], function (Collection) { lastClickedEventSettingsKey: 'suluformformLastClicked', endPointUrl: collection.url(), toolbarKey: 'forms', - toolbarSearchFields: ['title'], + toolbarSearchFields: ['id', 'title'], fieldsAction: collection.fieldsUrl(), eventPrefix: 'sulu.form.forms.', translatePrefix: 'sulu_form.forms.'