diff --git a/Element/QueryBuilderElement.php b/Element/QueryBuilderElement.php index 6cc7d86..8f5d305 100644 --- a/Element/QueryBuilderElement.php +++ b/Element/QueryBuilderElement.php @@ -57,10 +57,8 @@ public static function getDefaultConfiguration() return array( 'source' => 'default', 'allowRemove' => false, - 'allowEdit' => false, 'allowExecute' => true, 'allowSave' => false, - 'allowCreate' => false, 'allowExport' => true, 'allowHtmlExport' => true, 'allowSearch' => false, @@ -115,6 +113,11 @@ public function getAssets() ), 'js' => array( '@MapbenderQueryBuilderBundle/Resources/public/queryBuilder.element.js', + '../../vendor/mapbender/vis-ui.js/src/js/jquery.form.generator.js', + '../../vendor/mapbender/vis-ui.js/src/js/utils/fn.formData.js', + '../../vendor/mapbender/vis-ui.js/src/js/elements/date.selector.js', // only for legacy browsers + '../../vendor/mapbender/vis-ui.js/src/js/elements/popup.dialog.js', + '../../vendor/mapbender/vis-ui.js/src/js/elements/data.result-table.js', ), 'trans' => array( 'MapbenderQueryBuilderBundle:Element:queryBuilder.json.twig', @@ -216,7 +219,7 @@ public function handleHttpRequest(Request $requestService) break; case 'save': - if (!$configuration['allowCreate'] && !$configuration['allowSave']) { + if (!$configuration['allowSave']) { throw new AccessDeniedHttpException(); } $dataStore = $this->getDataStore($configuration['source']); diff --git a/Element/Type/QueryBuilderAdminType.php b/Element/Type/QueryBuilderAdminType.php index 29cbb2b..d7b48c4 100644 --- a/Element/Type/QueryBuilderAdminType.php +++ b/Element/Type/QueryBuilderAdminType.php @@ -38,16 +38,12 @@ public function buildForm(FormBuilderInterface $builder, array $options) ->add('source', 'Symfony\Component\Form\Extension\Core\Type\ChoiceType', array( 'choices' => $dataStoreSelectValues, 'required' => true, - 'empty_value' => null ) ) ->add('sqlFieldName', 'Symfony\Component\Form\Extension\Core\Type\TextType', array('required' => true)) ->add('orderByFieldName', 'Symfony\Component\Form\Extension\Core\Type\TextType', array('required' => true)) ->add('titleFieldName', 'Symfony\Component\Form\Extension\Core\Type\TextType', array('required' => true)) ->add('connectionFieldName', 'Symfony\Component\Form\Extension\Core\Type\TextType', array('required' => true)) - - ->add('allowCreate', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', array('required' => false)) - ->add('allowEdit', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', array('required' => false)) ->add('allowSave', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', array('required' => false)) ->add('allowRemove', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', array('required' => false)) ->add('allowExecute', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', array('required' => false)) diff --git a/Resources/config/applications.yml b/Resources/config/applications.yml index 87899d1..ef2ec0d 100644 --- a/Resources/config/applications.yml +++ b/Resources/config/applications.yml @@ -60,12 +60,6 @@ parameters: title: SQL Queries class: Mapbender\DataSourceBundle\Element\QueryBuilderElement - # Allow edit - allowEdit: true - - # Allow edit - allowCreate: false - # Allow save allowSave: true diff --git a/Resources/public/queryBuilder.element.js b/Resources/public/queryBuilder.element.js index 2131a89..67b70cf 100644 --- a/Resources/public/queryBuilder.element.js +++ b/Resources/public/queryBuilder.element.js @@ -206,76 +206,6 @@ }); }, - /** - * Open SQL edit dialog - * - * @param item - */ - openEditDialog: function(item) { - var widget = this; - var config = widget.options; - var buttons = []; - - config.allowSave && buttons.push(widget.saveButton); - config.allowExecute && buttons.push(widget.executeButton); - config.allowExport && buttons.push(widget.exportButton); - config.allowExport && buttons.push(widget.exportHtmlButton); - config.allowRemove && buttons.push(widget.removeButton); - - buttons.push(widget.closeButton); - - var $form = $("
") - .data("item", item) - .generateElements({ - children: [{ - type: "fieldSet", - children: [{ - title: trans("sql.title"), // "Name" - type: "input", - css: {"width": "45%"}, - name: config.titleFieldName, - placeholder: "Query name", - options: widget.connections - }, { - title: trans("sql.connection.name"), // "Connection name" - type: "select", - name: config.connectionFieldName, - css: {"width": "25%"}, - value: item.connection_name, - options: widget.connections - }, { - title: "Order", - type: "input", - name: config.orderByFieldName, - value: item[config.orderByFieldName], - css: {"width": "15%"} - }, { - title: trans("sql.publish"), // "Anzeigen" - type: "checkbox", - css: {"width": "15%"}, - value: 1, - name: config.publicFieldName - }] - }, { - type: "textArea", - title: "SQL", - name: config.sqlFieldName, - rows: 16 - }] - }) - .popupDialog({ - title: item[this.options.titleFieldName], - width: 500, - buttons: buttons - }) - .formData(item); - - if( !config.allowSave){ - $form.disableForm(); - } - return $form; - }, - _initialize: function() { var widget = this; var element = widget.element ; @@ -302,25 +232,7 @@ $(this).popupDialog('close'); } }; - - var editButton = widget.editButton = { - text: trans('Edit'), - className: 'fa-edit', - click: function(e) { - widget.openEditDialog($(this).data("item")); - } - }; - - var createButton = widget.createButton = { - type: "button", - text: trans('Create'), - title: " ", - cssClass: 'fa-plus create', - click: function(e) { - widget.openEditDialog({connection_name:"default"}); - } - }; - + var saveButton = widget.saveButton = { text: trans('Save'), className: 'fa-floppy-o', @@ -390,9 +302,7 @@ config.allowExport && buttons.push(exportButton); config.allowExport && buttons.push(exportHtmlButton); config.allowExecute && buttons.push(executeButton); - config.allowEdit && buttons.push(editButton); config.allowRemove && buttons.push(removeButton); - config.allowCreate && toolBar.push(createButton); if(toolBar.length){ pane.push({ diff --git a/Resources/translations/messages.de.yml b/Resources/translations/messages.de.yml index 774a89e..206676f 100644 --- a/Resources/translations/messages.de.yml +++ b/Resources/translations/messages.de.yml @@ -1,16 +1,20 @@ -mb.query.builder.Cancel: Abbrechen -mb.query.builder.Edit: Änderun -mb.query.builder.Create: Erstellen -mb.query.builder.Save: Speichern -mb.query.builder.Remove: Löschen -mb.query.builder.Execute: Ausführen -mb.query.builder.sql.title: Titel -mb.query.builder.sql.connection.name: Verbindungsname -mb.query.builder.sql.publish: Anzeigen -mb.query.builder.confirm.remove: 'Löschen bestätigen' -mb.query.builder.OK: OK -mb.query.builder.sql.saved: 'SQL erfolgreich gespeichert.' -mb.query.builder.sql.removed: 'SQL erfolgreich gelöscht.' -mb.query.builder.Export: Exportieren -mb.query.builder.Results: Ergebnisse -mb.query.builder.HTML-Export: HTML-Export +mb.query.builder: + Cancel: Abbrechen + Edit: Änderung + Create: Erstellen + Save: Speichern + Remove: Löschen + Execute: Ausführen + sql: + title: Titel + connection: + name: Verbindungsname + publish: Anzeigen + saved: 'SQL erfolgreich gespeichert.' + removed: 'SQL erfolgreich gelöscht.' + confirm: + remove: 'Löschen bestätigen' + OK: OK + Export: Exportieren + Results: Ergebnisse + HTML-Export: HTML-Export diff --git a/Resources/translations/messages.en.yml b/Resources/translations/messages.en.yml index ff37bed..edab7ca 100644 --- a/Resources/translations/messages.en.yml +++ b/Resources/translations/messages.en.yml @@ -1,16 +1,20 @@ -mb.query.builder.Cancel: Cancel -mb.query.builder.Edit: Edit -mb.query.builder.Create: Create -mb.query.builder.Save: Save -mb.query.builder.Remove: Remove -mb.query.builder.Execute: Execute -mb.query.builder.sql.title: Title -mb.query.builder.sql.connection.name: Connection -mb.query.builder.sql.publish: Public -mb.query.builder.confirm.remove: 'Confirm remove' -mb.query.builder.OK: OK -mb.query.builder.sql.saved: 'SQL saved successfully.' -mb.query.builder.sql.removed: 'SQL removed successfully.' -mb.query.builder.Export: Export -mb.query.builder.Results: Results -mb.query.builder.HTML-Export: HTML-Export +mb.query.builder: + Cancel: Cancel + Edit: Edit + Create: Create + Save: Save + Remove: Remove + Execute: Execute + sql: + title: Title + connection: + name: Connection + publish: Publish + saved: 'SQL saved successfully.' + removed: 'SQL removed successfully.' + confirm: + remove: 'Confirm remove' + OK: OK + Export: Export + Results: Results + HTML-Export: HTML-Export diff --git a/Resources/translations/messages.ru.yml b/Resources/translations/messages.ru.yml index 88172e3..5c2f63e 100644 --- a/Resources/translations/messages.ru.yml +++ b/Resources/translations/messages.ru.yml @@ -1,16 +1,20 @@ -mb.query.builder.Cancel: Отмена -mb.query.builder.Edit: Редактировать -mb.query.builder.Create: Создать -mb.query.builder.Save: Сохранить -mb.query.builder.Remove: Удалить -mb.query.builder.Execute: Выполнить -mb.query.builder.sql.title: Заголовок -mb.query.builder.sql.connection.name: Соеденение -mb.query.builder.sql.publish: Опубликовать -mb.query.builder.confirm.remove: 'Потвердите удаление' -mb.query.builder.OK: OK -mb.query.builder.sql.saved: 'SQL запрос сохранён.' -mb.query.builder.sql.removed: 'SQL запрос удалён.' -mb.query.builder.Export: Экспорт -mb.query.builder.Results: Результат -mb.query.builder.HTML-Export: 'HTML Экспорт' +mb.query.builder: + Cancel: Отмена + Edit: Редактировать + Create: Создать + Save: Сохранить + Remove: Удалить + Execute: Выполнить + sql: + title: Заголовок + connection: + name: Соеденение + publish: Опубликовать + saved: 'SQL запрос сохранён.' + removed: 'SQL запрос удалён.' + confirm: + remove: 'Потвердите удаление' + OK: OK + Export: Экспорт + Results: Результат + HTML-Export: 'HTML Экспорт' diff --git a/Resources/views/Element/queryBuilder.json.twig b/Resources/views/Element/queryBuilder.json.twig index ef968c4..689a830 100644 --- a/Resources/views/Element/queryBuilder.json.twig +++ b/Resources/views/Element/queryBuilder.json.twig @@ -15,4 +15,4 @@ "mb.query.builder.saved": "{{ "mb.query.builder.sql.saved"|trans }}", "mb.query.builder.HTML-Export": "{{ "mb.query.builder.HTML-Export"|trans }}", "mb.query.builder.removed": "{{ "mb.query.builder.sql.removed"|trans }}" -} \ No newline at end of file +} diff --git a/composer.json b/composer.json index cf34857..9b42fa6 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,8 @@ ], "require": { "php": ">=5.3.3", - "mapbender/data-source": "0.x" + "mapbender/data-source": "~0.1.15", + "mapbender/vis-ui.js": "^0.1.78 || ~0.2.0" }, "conflict": { "symfony/symfony": "<2.4"