diff --git a/administrator/components/com_content/Model/ArticleModel.php b/administrator/components/com_content/Model/ArticleModel.php index 666dab0e516a5..270fe231eb005 100644 --- a/administrator/components/com_content/Model/ArticleModel.php +++ b/administrator/components/com_content/Model/ArticleModel.php @@ -137,9 +137,6 @@ protected function batchCopy($value, $pks, $contexts) // Reset hits because we are making a copy $this->table->hits = 0; - // Unpublish because we are making a copy - $this->table->state = 0; - // New category ID $this->table->catid = $categoryId; @@ -429,12 +426,12 @@ protected function canEditState($record) protected function prepareTable($table) { // Set the publish date to now - if ($table->state == 1 && (int) $table->publish_up == 0) + if ($table->state == Workflow::CONDITION_PUBLISHED && (int) $table->publish_up == 0) { $table->publish_up = Factory::getDate()->toSql(); } - if ($table->state == 1 && intval($table->publish_down) == 0) + if ($table->state == Workflow::CONDITION_PUBLISHED && intval($table->publish_down) == 0) { $table->publish_down = $this->getDbo()->getNullDate(); } @@ -711,12 +708,6 @@ public function getForm($data = array(), $loadData = true) } } - // Remove show_associations field if associations is not enabled - if (!$assoc) - { - $form->removeField('show_associations', 'attribs'); - } - return $form; } @@ -960,7 +951,6 @@ public function save($data) } $data['state'] = (int) $stage->condition; - } // Automatic handling of alias for empty fields diff --git a/administrator/components/com_content/Service/HTML/Icon.php b/administrator/components/com_content/Service/HTML/Icon.php index 8cab786e51005..b1649ab078930 100644 --- a/administrator/components/com_content/Service/HTML/Icon.php +++ b/administrator/components/com_content/Service/HTML/Icon.php @@ -18,6 +18,7 @@ use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; +use Joomla\CMS\Workflow\Workflow; use Joomla\Component\Mailto\Site\Helper\MailtoHelper; use Joomla\Registry\Registry; @@ -146,7 +147,7 @@ public function edit($article, $params, $attribs = array(), $legacy = false) } // Ignore if the state is negative (trashed). - if ($article->state < 0) + if (!in_array($article->state, [Workflow::CONDITION_UNPUBLISHED, Workflow::CONDITION_PUBLISHED])) { return; } @@ -175,7 +176,7 @@ public function edit($article, $params, $attribs = array(), $legacy = false) $contentUrl = \ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language); $url = $contentUrl . '&task=article.edit&a_id=' . $article->id . '&return=' . base64_encode($uri); - if ($article->state == 0) + if ($article->state == Workflow::CONDITION_UNPUBLISHED) { $overlib = Text::_('JUNPUBLISHED'); } diff --git a/administrator/components/com_fields/Table/FieldTable.php b/administrator/components/com_fields/Table/FieldTable.php index d44f8db4e0f91..8e3ec9d0ec336 100644 --- a/administrator/components/com_fields/Table/FieldTable.php +++ b/administrator/components/com_fields/Table/FieldTable.php @@ -148,6 +148,11 @@ public function check() $this->created_time = $date->toSql(); } + if (!(int) $this->modified_time) + { + $this->modified_time = $date->toSql(); + } + if (empty($this->created_user_id)) { $this->created_user_id = $user->get('id'); diff --git a/administrator/components/com_finder/sql/install.mysql.sql b/administrator/components/com_finder/sql/install.mysql.sql index 792d43c162566..71e4f42ea8235 100644 --- a/administrator/components/com_finder/sql/install.mysql.sql +++ b/administrator/components/com_finder/sql/install.mysql.sql @@ -74,8 +74,8 @@ CREATE TABLE IF NOT EXISTS `#__finder_logging` ( `searchterm` VARCHAR(255) NOT NULL DEFAULT '', `md5sum` VARCHAR(32) NOT NULL DEFAULT '', `query` BLOB NOT NULL, - `hits` INT(11) NOT NULL DEFAULT '1', - `results` INT(11) NOT NULL DEFAULT '0', + `hits` INT(11) NOT NULL DEFAULT 1, + `results` INT(11) NOT NULL DEFAULT 0, UNIQUE INDEX `md5sum` (`md5sum`), INDEX `searchterm` (`searchterm`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_general_ci; diff --git a/administrator/components/com_workflow/View/Stages/HtmlView.php b/administrator/components/com_workflow/View/Stages/HtmlView.php index 9ffd611a6e9a0..ecec43122ce99 100644 --- a/administrator/components/com_workflow/View/Stages/HtmlView.php +++ b/administrator/components/com_workflow/View/Stages/HtmlView.php @@ -171,10 +171,14 @@ protected function addToolbar() ToolbarHelper::addNew('stage.add'); } - if ($canDo->get('core.edit.state') && !$isCore) + if ($canDo->get('core.edit.state')) { - ToolbarHelper::publishList('stages.publish'); - ToolbarHelper::unpublishList('stages.unpublish'); + if (!$isCore) + { + ToolbarHelper::publishList('stages.publish'); + ToolbarHelper::unpublishList('stages.unpublish'); + } + ToolbarHelper::makeDefault('stages.setDefault', 'COM_WORKFLOW_TOOLBAR_DEFAULT'); } diff --git a/administrator/components/com_workflow/tmpl/stages/default.php b/administrator/components/com_workflow/tmpl/stages/default.php index 534ba078ce4d6..af2f577c7e588 100644 --- a/administrator/components/com_workflow/tmpl/stages/default.php +++ b/administrator/components/com_workflow/tmpl/stages/default.php @@ -89,10 +89,10 @@ stages as $i => $item): $edit = Route::_('index.php?option=com_workflow&task=stage.edit&id=' . $item->id . '&workflow_id=' . (int) $this->workflowID . '&extension=' . $this->extension); - $canEdit = $user->authorise('core.edit', $this->extension . '.stage.' . $item->id) && !$isCore; + $canEdit = $user->authorise('core.edit', $this->extension . '.stage.' . $item->id); // @TODO set proper checkin fields $canCheckin = true || $user->authorise('core.admin', 'com_checkin') || $item->checked_out == $userId || $item->checked_out == 0; - $canChange = $user->authorise('core.edit.stage', $this->extension . '.stage.' . $item->id) && $canCheckin && !$isCore; + $canChange = $user->authorise('core.edit.stage', $this->extension . '.stage.' . $item->id) && $canCheckin; ?> @@ -118,14 +118,14 @@
- published, $i, 'stages.', $canChange); ?> + published, $i, 'stages.', $canChange && !$isCore); ?>
default, $i, 'stages.', $canChange); ?> - + '; ?> escape(Text::_($item->title)); ?> diff --git a/administrator/components/com_workflow/tmpl/workflows/default.php b/administrator/components/com_workflow/tmpl/workflows/default.php index 53b42fedeb02b..2512313932278 100644 --- a/administrator/components/com_workflow/tmpl/workflows/default.php +++ b/administrator/components/com_workflow/tmpl/workflows/default.php @@ -102,11 +102,11 @@ $edit = Route::_('index.php?option=com_workflow&task=workflow.edit&id=' . $item->id . '&extension=' . $extension); $isCore = !empty($item->core); - $canEdit = $user->authorise('core.edit', $extension . '.workflow.' . $item->id) && !$isCore; + $canEdit = $user->authorise('core.edit', $extension . '.workflow.' . $item->id); // @TODO set proper checkin fields $canCheckin = true || $user->authorise('core.admin', 'com_checkin') || $item->checked_out == $userId || $item->checked_out == 0; - $canEditOwn = $user->authorise('core.edit.own', $extension . '.workflow.' . $item->id) && $item->created_by == $userId && !$isCore; - $canChange = $user->authorise('core.edit.state', $extension . '.workflow.' . $item->id) && $canCheckin && !$isCore; + $canEditOwn = $user->authorise('core.edit.own', $extension . '.workflow.' . $item->id) && $item->created_by == $userId; + $canChange = $user->authorise('core.edit.state', $extension . '.workflow.' . $item->id) && $canCheckin; ?> @@ -133,11 +133,11 @@
- published, $i, 'workflows.', $canChange); ?> + published, $i, 'workflows.', $canChange && !$isCore); ?>
- + '; ?>
escape(Text::_($item->title)); ?> diff --git a/administrator/language/en-GB/en-GB.ini b/administrator/language/en-GB/en-GB.ini index 00466b05c74f0..729bcf8a4166e 100644 --- a/administrator/language/en-GB/en-GB.ini +++ b/administrator/language/en-GB/en-GB.ini @@ -913,7 +913,6 @@ JTOOLBAR_BULK_IMPORT="Bulk Import" JTOOLBAR_CANCEL="Cancel" JTOOLBAR_CHANGE_STATUS="Change Status" JTOOLBAR_CHECKIN="Check-in" -JTOOLBAR_CHANGE_STATUS="Change Status" JTOOLBAR_CLOSE="Close" JTOOLBAR_DEFAULT="Default" JTOOLBAR_DELETE="Delete" diff --git a/build/media_src/system/js/showon.es6.js b/build/media_src/system/js/showon.es6.js index 4c44d7f38226d..fb64d5719263d 100644 --- a/build/media_src/system/js/showon.es6.js +++ b/build/media_src/system/js/showon.es6.js @@ -2,21 +2,6 @@ * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ - -// @todo remove this totally irrelevant piece of code from this file -// Only define the Joomla namespace if not defined. -Joomla = window.Joomla || {}; - -/** - * Sets the HTML of the container-collapse element - */ -Joomla.setcollapse = (url, name, height) => { - if (!document.getElementById(`collapse-${name}`)) { - document.getElementById('container-collapse').innerHTML = `
`; - } -}; -// end of @todo - ((document) => { 'use strict'; diff --git a/components/com_content/tmpl/featured/default_item.php b/components/com_content/tmpl/featured/default_item.php index a5e6e2212f3fe..08d5658e6d2c7 100644 --- a/components/com_content/tmpl/featured/default_item.php +++ b/components/com_content/tmpl/featured/default_item.php @@ -15,6 +15,7 @@ use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; +use Joomla\CMS\Workflow\Workflow; // Create a shortcut for params. $params = &$this->item->params; @@ -31,7 +32,7 @@
- item->state == 0 || strtotime($this->item->publish_up) > strtotime(Factory::getDate()) + item->state == Workflow::CONDITION_UNPUBLISHED || strtotime($this->item->publish_up) > strtotime(Factory::getDate()) || ((strtotime($this->item->publish_down) < strtotime(Factory::getDate())) && $this->item->publish_down != Factory::getDbo()->getNullDate())) : ?>
@@ -48,7 +49,7 @@ - item->state == 0) : ?> + item->state == Workflow::CONDITION_UNPUBLISHED) : ?> item->publish_up) > strtotime(Factory::getDate())) : ?> @@ -103,7 +104,7 @@ - item->state == 0 || strtotime($this->item->publish_up) > strtotime(Factory::getDate()) + item->state == Workflow::CONDITION_UNPUBLISHED || strtotime($this->item->publish_up) > strtotime(Factory::getDate()) || ((strtotime($this->item->publish_down) < strtotime(Factory::getDate())) && $this->item->publish_down != $this->db->getNullDate() )) : ?>
diff --git a/installation/sql/mysql/joomla.sql b/installation/sql/mysql/joomla.sql index e143acff96e26..4fb6731f58be9 100644 --- a/installation/sql/mysql/joomla.sql +++ b/installation/sql/mysql/joomla.sql @@ -699,19 +699,19 @@ CREATE TABLE IF NOT EXISTS `#__fields` ( `type` varchar(255) NOT NULL DEFAULT 'text', `note` varchar(255) NOT NULL DEFAULT '', `description` text NOT NULL, - `state` tinyint(1) NOT NULL DEFAULT '0', - `required` tinyint(1) NOT NULL DEFAULT '0', - `checked_out` int(11) NOT NULL DEFAULT '0', + `state` tinyint(1) NOT NULL DEFAULT 0, + `required` tinyint(1) NOT NULL DEFAULT 0, + `checked_out` int(11) NOT NULL DEFAULT 0, `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `ordering` int(11) NOT NULL DEFAULT '0', + `ordering` int(11) NOT NULL DEFAULT 0, `params` text NOT NULL, `fieldparams` text NOT NULL, `language` char(7) NOT NULL DEFAULT '', `created_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `created_user_id` int(10) unsigned NOT NULL DEFAULT '0', + `created_user_id` int(10) unsigned NOT NULL DEFAULT 0, `modified_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `modified_by` int(10) unsigned NOT NULL DEFAULT '0', - `access` int(11) NOT NULL DEFAULT '1', + `modified_by` int(10) unsigned NOT NULL DEFAULT 0, + `access` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`id`), KEY `idx_checkout` (`checked_out`), KEY `idx_state` (`state`), @@ -746,17 +746,17 @@ CREATE TABLE IF NOT EXISTS `#__fields_groups` ( `title` varchar(255) NOT NULL DEFAULT '', `note` varchar(255) NOT NULL DEFAULT '', `description` text NOT NULL, - `state` tinyint(1) NOT NULL DEFAULT '0', - `checked_out` int(11) NOT NULL DEFAULT '0', + `state` tinyint(1) NOT NULL DEFAULT 0, + `checked_out` int(11) NOT NULL DEFAULT 0, `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `ordering` int(11) NOT NULL DEFAULT '0', + `ordering` int(11) NOT NULL DEFAULT 0, `params` text NOT NULL, `language` char(7) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `created_by` int(10) unsigned NOT NULL DEFAULT '0', + `created_by` int(10) unsigned NOT NULL DEFAULT 0, `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `modified_by` int(10) unsigned NOT NULL DEFAULT '0', - `access` int(11) NOT NULL DEFAULT '1', + `modified_by` int(10) unsigned NOT NULL DEFAULT 0, + `access` int(11) NOT NULL DEFAULT 1, PRIMARY KEY (`id`), KEY `idx_checkout` (`checked_out`), KEY `idx_state` (`state`), @@ -864,8 +864,8 @@ CREATE TABLE IF NOT EXISTS `#__finder_logging` ( `searchterm` VARCHAR(255) NOT NULL DEFAULT '', `md5sum` VARCHAR(32) NOT NULL DEFAULT '', `query` BLOB NOT NULL, - `hits` INT(11) NOT NULL DEFAULT '1', - `results` INT(11) NOT NULL DEFAULT '0', + `hits` INT(11) NOT NULL DEFAULT 1, + `results` INT(11) NOT NULL DEFAULT 0, PRIMARY KEY `md5sum` (`md5sum`), INDEX `searchterm` (`searchterm`(191)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_general_ci; @@ -1234,7 +1234,7 @@ CREATE TABLE IF NOT EXISTS `#__menu_types` ( `menutype` varchar(24) NOT NULL, `title` varchar(48) NOT NULL, `description` varchar(255) NOT NULL DEFAULT '', - `client_id` int(11) NOT NULL DEFAULT '0', + `client_id` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), UNIQUE KEY `idx_menutype` (`menutype`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; @@ -1440,7 +1440,7 @@ CREATE TABLE IF NOT EXISTS `#__postinstall_messages` ( `description_key` varchar(255) NOT NULL DEFAULT '' COMMENT 'Lang key for description', `action_key` varchar(255) NOT NULL DEFAULT '', `language_extension` varchar(255) NOT NULL DEFAULT 'com_postinstall' COMMENT 'Extension holding lang keys', - `language_client_id` tinyint(3) NOT NULL DEFAULT '1', + `language_client_id` tinyint(3) NOT NULL DEFAULT 1, `type` varchar(10) NOT NULL DEFAULT 'link' COMMENT 'Message type - message, link, action', `action_file` varchar(255) DEFAULT '' COMMENT 'RAD URI to the PHP file containing action method', `action` varchar(255) DEFAULT '' COMMENT 'Action method name or URL', diff --git a/installation/sql/postgresql/joomla.sql b/installation/sql/postgresql/joomla.sql index 534f296ade45f..d10484f63e3da 100644 --- a/installation/sql/postgresql/joomla.sql +++ b/installation/sql/postgresql/joomla.sql @@ -754,17 +754,17 @@ CREATE TABLE IF NOT EXISTS "#__fields_groups" ( "title" varchar(255) DEFAULT '' NOT NULL, "note" varchar(255) DEFAULT '' NOT NULL, "description" text NOT NULL, - "state" smallint DEFAULT '0' NOT NULL, - "checked_out" integer DEFAULT '0' NOT NULL, + "state" smallint DEFAULT 0 NOT NULL, + "checked_out" integer DEFAULT 0 NOT NULL, "checked_out_time" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL, - "ordering" integer DEFAULT '0' NOT NULL, + "ordering" integer DEFAULT 0 NOT NULL, "params" text DEFAULT '' NOT NULL, "language" varchar(7) DEFAULT '' NOT NULL, "created" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL, - "created_by" bigint DEFAULT '0' NOT NULL, + "created_by" bigint DEFAULT 0 NOT NULL, "modified" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL, - "modified_by" bigint DEFAULT '0' NOT NULL, - "access" bigint DEFAULT '1' NOT NULL, + "modified_by" bigint DEFAULT 0 NOT NULL, + "access" bigint DEFAULT 1 NOT NULL, PRIMARY KEY ("id") ); CREATE INDEX "#__fields_groups_idx_checked_out" ON "#__fields_groups" ("checked_out"); diff --git a/layouts/joomla/toolbar/slider.php b/layouts/joomla/toolbar/slider.php deleted file mode 100644 index 7aef8bc4e5253..0000000000000 --- a/layouts/joomla/toolbar/slider.php +++ /dev/null @@ -1,26 +0,0 @@ - - onclick="" class="btn btn-secondary" data-toggle="collapse" data-target="#collapse-"> - - - diff --git a/libraries/classmap.php b/libraries/classmap.php index 7d7fac98659e7..70cdd93347b3e 100644 --- a/libraries/classmap.php +++ b/libraries/classmap.php @@ -157,7 +157,6 @@ JLoader::registerAlias('JToolbarButtonLink', '\\Joomla\\CMS\\Toolbar\\Button\\LinkButton', '5.0'); JLoader::registerAlias('JToolbarButtonPopup', '\\Joomla\\CMS\\Toolbar\\Button\\PopupButton', '5.0'); JLoader::registerAlias('JToolbarButtonSeparator', '\\Joomla\\CMS\\Toolbar\\Button\\SeparatorButton', '5.0'); -JLoader::registerAlias('JToolbarButtonSlider', '\\Joomla\\CMS\\Toolbar\\Button\\SliderButton', '5.0'); JLoader::registerAlias('JToolbarButtonStandard', '\\Joomla\\CMS\\Toolbar\\Button\\StandardButton', '5.0'); JLoader::registerAlias('JToolbarHelper', '\\Joomla\\CMS\\Toolbar\\ToolbarHelper', '5.0'); JLoader::registerAlias('JButton', '\\Joomla\\CMS\\Toolbar\\ToolbarButton', '5.0'); diff --git a/libraries/src/Form/Form.php b/libraries/src/Form/Form.php index 6e6c8d2a842fc..efe5272baae3c 100644 --- a/libraries/src/Form/Form.php +++ b/libraries/src/Form/Form.php @@ -1142,7 +1142,12 @@ public function filter($data, $group = null) if ($input->exists($key)) { $fieldObj = $this->loadField($field, $group); - $output->set($key, $fieldObj->filter($input->get($key, (string) $field['default']), $group, $input)); + + // Only set into the output if the field was supposed to render on the page (i.e. setup returned true) + if ($fieldObj) + { + $output->set($key, $fieldObj->filter($input->get($key, (string) $field['default']), $group, $input)); + } } } @@ -1199,13 +1204,22 @@ public function validate($data, $group = null) $fieldObj = $this->loadField($field, $group); - $valid = $fieldObj->validate($input->get($key), $group, $input); + if ($fieldObj) + { + $valid = $fieldObj->validate($input->get($key), $group, $input); - // Check for an error. - if ($valid instanceof \Exception) + // Check for an error. + if ($valid instanceof \Exception) + { + $this->errors[] = $valid; + $return = false; + } + } + elseif (!$fieldObj && $input->exists($key)) { - $this->errors[] = $valid; - $return = false; + // The field returned false from setup and shouldn't be included in the page body - yet we received + // a value for it. This is probably some sort of injection attack and should be rejected + $this->errors[] = new \RuntimeException(Text::sprintf('JLIB_FORM_VALIDATE_FIELD_INVALID', $key)); } } diff --git a/libraries/src/Form/FormField.php b/libraries/src/Form/FormField.php index 69d4550b3771d..7614ee29752de 100644 --- a/libraries/src/Form/FormField.php +++ b/libraries/src/Form/FormField.php @@ -1027,7 +1027,7 @@ public function filter($value, $group = null, Registry $input = null) * @param Registry $input An optional Registry object with the entire data set to validate * against the entire form. * - * @return boolean Boolean true if field value is valid, Exception on failure. + * @return boolean|\Exception Boolean true if field value is valid, Exception on failure. * * @since __DEPLOY_VERSION__ * @throws \InvalidArgumentException diff --git a/libraries/src/Toolbar/Button/SliderButton.php b/libraries/src/Toolbar/Button/SliderButton.php deleted file mode 100644 index ea3dc6942e273..0000000000000 --- a/libraries/src/Toolbar/Button/SliderButton.php +++ /dev/null @@ -1,141 +0,0 @@ -_getCommand($this->getUrl()) . '\', \'' . - $this->getName() . '\', \'' . $this->getHeight() . '\');'; - - parent::prepareOptions($options); - } - - /** - * Fetch the HTML for the button - * - * @param string $type Unused string, formerly button type. - * @param string $name Button name - * @param string $text The link text - * @param string $url URL for popup - * @param integer $width Width of popup - * @param integer $height Height of popup - * @param string $onClose JavaScript for the onClose event. - * - * @return string HTML string for the button - * - * @since 3.0 - */ - public function fetchButton($type = 'Slider', $name = '', $text = '', $url = '', $width = 640, $height = 480, $onClose = '') - { - // @todo split the irrelevant code, this button doesn't need the showon... - HTMLHelper::_('script', 'system/showon.min.js', array('version' => 'auto', 'relative' => true)); - - $this->text(Text::_($text)) - ->name($name) - ->buttonClass($this->fetchIconClass($name)) - ->width($width) - ->height($height) - ->url($url) - ->onClose(!empty($options['onClose']) ? ' rel="{onClose: function() {' . $onClose . '}}"' : ''); - - return $this->renderButton($this->options); - } - - /** - * Get the button id - * - * @return string Button CSS Id - * - * @since 3.0 - */ - public function fetchId() - { - return $this->parent->getName() . '-slider-' . $this->getName(); - } - - /** - * Get the JavaScript command for the button - * - * @param string $url URL for popup - * - * @return string JavaScript command string - * - * @since 3.0 - */ - private function _getCommand($url) - { - if (strpos($url, 'http') !== 0) - { - $url = Uri::base() . $url; - } - - return $url; - } - - /** - * Method to configure available option accessors. - * - * @return array - * - * @since 4.0.0 - */ - protected static function getAccessors(): array - { - return array_merge( - parent::getAccessors(), - [ - 'width', - 'height', - 'url', - 'onClose', - ] - ); - } -}