From 42a5bd20a550a9edb5ec84625037b9d85889ff63 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 26 Jun 2009 07:51:29 -0700 Subject: 1) Move the generation of script tags to gallery_theme::head and gallery_theme::admin_head. This allows us to potentially manage the scripts like we do in g2 (single file and compressed) 2) Change Theme_View::_call to always call the gallery_theme::$function first. --- themes/admin_default/views/admin.html.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'themes/admin_default/views/admin.html.php') diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index b7cfaa40..dfbafe31 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -20,15 +20,7 @@ " media="screen,print,projection" /> - - - - - - - - - admin_head() ?> + admin_head() ?> body_attributes() ?>> -- cgit v1.2.3 From c4f991bb7d7e90f8c55897f89888d9196c7e438f Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 28 Jun 2009 19:45:11 -0700 Subject: Clean up the combined javascript change and refactor out the Gallery_View base class from Theme_View and Admin_View. 1) Move all the theme specific jquery stuff from gallery_theme::head() and admin_head() into the theme files. Use $theme->script() as appropriate. 2) Get rid of the extra boolean on $theme->url() that we were using so that we could call $theme->script($theme->url(...)) -- add $theme->theme_script() instead (poorly named, but still clearer than what we had before) 3) Fix the bug that combined scripts didn't work at all in the admin theme. 4) Get rid of $theme->display() in favor of new View(...) --- modules/gallery/helpers/gallery_theme.php | 24 -------- modules/gallery/libraries/Admin_View.php | 17 ++---- modules/gallery/libraries/Gallery_View.php | 89 ++++++++++++++++++++++++++++++ modules/gallery/libraries/Theme_View.php | 61 +------------------- themes/admin_default/views/admin.html.php | 10 ++++ themes/default/views/page.html.php | 24 +++++++- 6 files changed, 128 insertions(+), 97 deletions(-) create mode 100644 modules/gallery/libraries/Gallery_View.php (limited to 'themes/admin_default/views/admin.html.php') diff --git a/modules/gallery/helpers/gallery_theme.php b/modules/gallery/helpers/gallery_theme.php index b6b24b27..cffecb12 100644 --- a/modules/gallery/helpers/gallery_theme.php +++ b/modules/gallery/helpers/gallery_theme.php @@ -21,22 +21,6 @@ class gallery_theme_Core { static function head($theme) { $session = Session::instance(); $buf = ""; - $theme->script("lib/jquery.js"); - $theme->script("lib/jquery.form.js"); - $theme->script("lib/jquery-ui.js"); - $theme->script("lib/gallery.common.js"); - $theme->script("lib/gallery.dialog.js"); - $theme->script("lib/gallery.form.js"); - $theme->script("lib/superfish/js/superfish.js"); - if ($theme->page_type == 'photo') { - $theme->script("lib/jquery.scrollTo.js"); - $theme->script("lib/jquery.localscroll.js"); - $theme->script("lib/gallery.show_full_size.js"); - } - if ($theme->page_type == 'movie') { - $theme->script("lib/flowplayer.js"); - } - $theme->script($theme->url("js/ui.init.js", false, true)); if ($session->get("debug")) { $buf .= ""; @@ -95,14 +79,6 @@ class gallery_theme_Core { static function admin_head($theme) { $session = Session::instance(); $buf = ""; - $theme->script("lib/jquery.js"); - $theme->script("lib/jquery.form.js"); - $theme->script("lib/jquery-ui.js"); - $theme->script("lib/gallery.common.js"); - $theme->script("lib/gallery.dialog.js"); - $theme->script("lib/superfish/js/superfish.js"); - $theme->script($theme->url("js/jquery.dropshadow.js", false, true)); - $theme->script($theme->url("js/ui.init.js", false, true)); if ($session->get("debug")) { $buf .= ""; diff --git a/modules/gallery/libraries/Admin_View.php b/modules/gallery/libraries/Admin_View.php index 7a7396eb..01496c0d 100644 --- a/modules/gallery/libraries/Admin_View.php +++ b/modules/gallery/libraries/Admin_View.php @@ -17,9 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -class Admin_View_Core extends View { - private $theme_name = null; - +class Admin_View_Core extends Gallery_View { /** * Attempts to load a view and pre-load view data. * @@ -46,15 +44,6 @@ class Admin_View_Core extends View { $this->set_global("user", user::active()); } - public function url($path, $absolute_url=false) { - $arg = "themes/{$this->theme_name}/$path"; - return $absolute_url ? url::abs_file($arg) : url::file($arg); - } - - public function display($page_name, $view_class="View") { - return new $view_class($page_name); - } - public function admin_menu() { $menu = Menu::factory("root"); gallery_menu::admin($menu, $this); @@ -109,6 +98,10 @@ class Admin_View_Core extends View { } } + if ($function == "admin_head") { + array_unshift($blocks, $this->combine_script()); + } + if (Session::instance()->get("debug")) { if ($function != "admin_head") { array_unshift( diff --git a/modules/gallery/libraries/Gallery_View.php b/modules/gallery/libraries/Gallery_View.php new file mode 100644 index 00000000..f2298b7d --- /dev/null +++ b/modules/gallery/libraries/Gallery_View.php @@ -0,0 +1,89 @@ +scripts[$file] = 1; + } + + /** + * Add a script to the combined scripts list. + * @param $file the relative path to a script from the base of the active theme + * @param + */ + public function theme_script($file) { + $file = "themes/{$this->theme_name}/$file"; + $this->scripts[$file] = 1; + } + + /** + * Provide a url to a resource within the current theme. This allows us to refer to theme + * resources without naming the theme itself which makes themes easier to copy. + */ + public function url($path, $absolute_url=false) { + $arg = "themes/{$this->theme_name}/$path"; + return $absolute_url ? url::abs_file($arg) : url::file($arg); + } + + /** + * Combine a series of Javascript files into a single one and cache it in the database, then + * return a single "; + } +} \ No newline at end of file diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index 25818821..8e320f44 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -17,10 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -class Theme_View_Core extends View { - private $theme_name = null; - private $scripts = array(); - +class Theme_View_Core extends Gallery_View { /** * Attempts to load a view and pre-load view data. * @@ -69,11 +66,6 @@ class Theme_View_Core extends View { return module::get_var("gallery", "thumb_size", 200) / 200; } - public function url($path, $absolute_url=false, $no_root=false) { - $arg = "themes/{$this->theme_name}/$path"; - return $absolute_url ? url::abs_file($arg) : $no_root ? $arg : url::file($arg); - } - public function item() { return $this->item; } @@ -86,10 +78,6 @@ class Theme_View_Core extends View { return $this->page_type; } - public function display($page_name, $view_class="View") { - return new $view_class($page_name); - } - public function site_menu() { $menu = Menu::factory("root"); if ($this->page_type != "login") { @@ -168,49 +156,6 @@ class Theme_View_Core extends View { return message::get(); } - public function script($file) { - $this->scripts[$file] = 1; - } - - /** - * Combine a series of Javascript files into a single one and cache it in the database, then - * return a single "; - } - /** * Handle all theme functions that insert module content. */ @@ -270,8 +215,8 @@ class Theme_View_Core extends View { } } - if ($function == "head" || $function == "admin_head") { - array_unshift($blocks, $this->_combine_script()); + if ($function == "head") { + array_unshift($blocks, $this->combine_script()); } if (Session::instance()->get("debug")) { diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index dfbafe31..2a91a76c 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -20,6 +20,16 @@ " media="screen,print,projection" /> + + script("lib/jquery.js") ?> + script("lib/jquery.form.js") ?> + script("lib/jquery-ui.js") ?> + script("lib/gallery.common.js") ?> + script("lib/gallery.dialog.js") ?> + script("lib/superfish/js/superfish.js") ?> + theme_script("js/jquery.dropshadow.js") ?> + theme_script("js/ui.init.js") ?> + admin_head() ?> diff --git a/themes/default/views/page.html.php b/themes/default/views/page.html.php index c74d4097..8b9466ac 100644 --- a/themes/default/views/page.html.php +++ b/themes/default/views/page.html.php @@ -49,6 +49,24 @@ + script("lib/jquery.js") ?> + script("lib/jquery.form.js") ?> + script("lib/jquery-ui.js") ?> + script("lib/gallery.common.js") ?> + script("lib/gallery.dialog.js") ?> + script("lib/gallery.form.js") ?> + script("lib/superfish/js/superfish.js") ?> + script("lib/jquery.localscroll.js") ?> + theme_script("js/ui.init.js") ?> + + head() they get combined */ ?> + page_type == "photo"): ?> + script("lib/jquery.scrollTo.js") ?> + script("lib/gallery.show_full_size.js") ?> + page_type == "movie"): ?> + script("lib/flowplayer.js") ?> + + head() ?> @@ -57,7 +75,7 @@
site_status() ?>
- display("header.html") ?> +
@@ -70,12 +88,12 @@
page_type != "login"): ?> - display("sidebar.html") ?> +
- display("footer.html") ?> +
page_bottom() ?> -- cgit v1.2.3 From 6e8a8c53e685a6c3f35f1426ab4dd6dcc18578e0 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 28 Jun 2009 19:49:48 -0700 Subject: Rename $theme->url() to $theme->theme_url() for consistency wiht $theme->theme_script(). --- modules/comment/views/admin_block_recent_comments.html.php | 2 +- modules/comment/views/admin_comments.html.php | 2 +- modules/comment/views/comment.html.php | 2 +- modules/comment/views/comments.html.php | 2 +- modules/gallery/libraries/Gallery_View.php | 2 +- modules/user/views/admin_users.html.php | 2 +- themes/admin_default/views/admin.html.php | 4 ++-- themes/default/views/header.html.php | 2 +- themes/default/views/page.html.php | 6 +++--- 9 files changed, 12 insertions(+), 12 deletions(-) (limited to 'themes/admin_default/views/admin.html.php') diff --git a/modules/comment/views/admin_block_recent_comments.html.php b/modules/comment/views/admin_block_recent_comments.html.php index edaa19ae..af4d946e 100644 --- a/modules/comment/views/admin_block_recent_comments.html.php +++ b/modules/comment/views/admin_block_recent_comments.html.php @@ -2,7 +2,7 @@
    $comment): ?>
  • "> - " + " class="gAvatar" alt="author_name()) ?>" width="32" diff --git a/modules/comment/views/admin_comments.html.php b/modules/comment/views/admin_comments.html.php index 86585c65..453cf849 100644 --- a/modules/comment/views/admin_comments.html.php +++ b/modules/comment/views/admin_comments.html.php @@ -106,7 +106,7 @@ "> - " + " class="gAvatar" alt="author_name()) ?>" width="40" diff --git a/modules/comment/views/comment.html.php b/modules/comment/views/comment.html.php index ce52951b..6d2cc592 100644 --- a/modules/comment/views/comment.html.php +++ b/modules/comment/views/comment.html.php @@ -2,7 +2,7 @@
  • - " + " class="gAvatar" alt="author_name()) ?>" width="40" diff --git a/modules/comment/views/comments.html.php b/modules/comment/views/comments.html.php index 854f9554..d9405e5f 100644 --- a/modules/comment/views/comments.html.php +++ b/modules/comment/views/comments.html.php @@ -10,7 +10,7 @@

  • - " + " class="gAvatar" alt="author_name()) ?>" width="40" diff --git a/modules/gallery/libraries/Gallery_View.php b/modules/gallery/libraries/Gallery_View.php index f2298b7d..e21e83d8 100644 --- a/modules/gallery/libraries/Gallery_View.php +++ b/modules/gallery/libraries/Gallery_View.php @@ -43,7 +43,7 @@ class Gallery_View_Core extends View { * Provide a url to a resource within the current theme. This allows us to refer to theme * resources without naming the theme itself which makes themes easier to copy. */ - public function url($path, $absolute_url=false) { + public function theme_url($path, $absolute_url=false) { $arg = "themes/{$this->theme_name}/$path"; return $absolute_url ? url::abs_file($arg) : url::file($arg); } diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index 542b8b8b..b469f82d 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -66,7 +66,7 @@ $user): ?> user admin ? "admin" : "" ?>"> - " + " title="" alt="name) ?>" width="20" diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index 2a91a76c..62f9761f 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -14,10 +14,10 @@ media="screen,projection" /> " media="screen,projection" /> - " + " media="screen,projection" /> diff --git a/themes/default/views/header.html.php b/themes/default/views/header.html.php index e1e52bda..b38cffed 100644 --- a/themes/default/views/header.html.php +++ b/themes/default/views/header.html.php @@ -4,7 +4,7 @@ "> - " src="url("images/logo.png") ?>" /> + " src="theme_url("images/logo.png") ?>" /> diff --git a/themes/default/views/page.html.php b/themes/default/views/page.html.php index 8b9466ac..3ae3e155 100644 --- a/themes/default/views/page.html.php +++ b/themes/default/views/page.html.php @@ -23,17 +23,17 @@ - " type="image/x-icon" /> + " type="image/x-icon" /> " media="screen,print,projection" /> " media="screen" /> " media="screen,print,projection" /> - " + " media="screen,print,projection" /> page_type == 'album'): ?> -- cgit v1.2.3 From 42c82ef7f081630c15a5d354205896764348a76a Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Mon, 29 Jun 2009 06:08:50 -0700 Subject: Temporary checkin to allow merge with trunk... don't integrate --- modules/gallery/libraries/Theme_View.php | 29 ++++++++++++++++++++++++- modules/organize/helpers/organize_theme.php | 3 +-- modules/server_add/helpers/server_add_theme.php | 3 +-- themes/admin_default/views/admin.html.php | 16 +------------- 4 files changed, 31 insertions(+), 20 deletions(-) (limited to 'themes/admin_default/views/admin.html.php') diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index 25818821..c5888b4a 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -20,6 +20,7 @@ class Theme_View_Core extends View { private $theme_name = null; private $scripts = array(); + private $css = array(); /** * Attempts to load a view and pre-load view data. @@ -172,6 +173,10 @@ class Theme_View_Core extends View { $this->scripts[$file] = 1; } + public function css($file) { + $this->css[$file] = 1; + } + /** * Combine a series of Javascript files into a single one and cache it in the database, then * return a single "; } + /** + * Combine a series of Javascript files into a single one and cache it in the database, then + * return a single "; diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index dfbafe31..1361ae33 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -6,21 +6,7 @@ <?= t("Admin Dashboard") ?> " type="image/x-icon" /> - " - media="screen,projection" /> - " - media="screen,projection" /> - " - media="screen,projection" /> - " - media="screen,projection" /> - " - media="screen,projection" /> - - admin_head() ?> + admin_head() ?> body_attributes() ?>> -- cgit v1.2.3 From f5f74e3638e31517e7513a3d9cbda48d9806a904 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Mon, 29 Jun 2009 20:12:27 -0700 Subject: Remove fix-ie.css scripts from the combined bundle, since we only want to load them conditionally. --- themes/admin_default/views/admin.html.php | 7 ++++--- themes/default/views/page.html.php | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'themes/admin_default/views/admin.html.php') diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index 2a231057..fed1afe6 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -12,9 +12,10 @@ css("lib/superfish/css/superfish.css") ?> css("themes/default/css/screen.css") ?> theme_css("css/screen.css") ?> - + script("lib/jquery.js") ?> script("lib/jquery.form.js") ?> diff --git a/themes/default/views/page.html.php b/themes/default/views/page.html.php index 2e68f571..519a0c39 100644 --- a/themes/default/views/page.html.php +++ b/themes/default/views/page.html.php @@ -29,7 +29,8 @@ css("lib/themeroller/ui.base.css") ?> theme_css("css/screen.css") ?> page_type == 'album'): ?> -- cgit v1.2.3 From 21f228b1aed8b32dc9856add51f4ef8a3c7ced95 Mon Sep 17 00:00:00 2001 From: Andy Staudacher Date: Mon, 29 Jun 2009 21:03:40 -0700 Subject: Ticket 86 (addendum) - Guard against themes that don't define MSG_CANCEL and add the message to admin_default as well. --- lib/gallery.dialog.js | 2 ++ themes/admin_default/views/admin.html.php | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'themes/admin_default/views/admin.html.php') diff --git a/lib/gallery.dialog.js b/lib/gallery.dialog.js index 6d986aa0..fc66323e 100644 --- a/lib/gallery.dialog.js +++ b/lib/gallery.dialog.js @@ -98,6 +98,8 @@ function openDialog(element, on_success) { } function on_form_loaded() { + // Should be defined (and localized) in the theme + MSG_CANCEL = MSG_CANCEL || 'Cancel'; var eCancel = '' + MSG_CANCEL + ''; if ($("#gDialog .submit").length) { $("#gDialog .submit").addClass("ui-state-default ui-corner-all"); diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index fed1afe6..36deea9e 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -21,6 +21,10 @@ script("lib/jquery.form.js") ?> script("lib/jquery-ui.js") ?> script("lib/gallery.common.js") ?> + + script("lib/gallery.dialog.js") ?> script("lib/superfish/js/superfish.js") ?> theme_script("js/jquery.dropshadow.js") ?> -- cgit v1.2.3 From 0b34ec4e8b1f97db0dc6807bdb3a5ece8e1b83e4 Mon Sep 17 00:00:00 2001 From: jhilden Date: Tue, 30 Jun 2009 22:22:29 -0400 Subject: UI enhancement: made the 'back to the Gallery' links a little bit easier to discover --- themes/admin_default/css/screen.css | 20 ++++++++++++++++++-- themes/admin_default/views/admin.html.php | 4 ++-- themes/default/css/fix-ie.css | 2 +- themes/default/css/screen.css | 4 ++-- themes/default/views/header.html.php | 4 ++-- 5 files changed, 25 insertions(+), 9 deletions(-) (limited to 'themes/admin_default/views/admin.html.php') diff --git a/themes/admin_default/css/screen.css b/themes/admin_default/css/screen.css index f4173d4b..629d0451 100644 --- a/themes/admin_default/css/screen.css +++ b/themes/admin_default/css/screen.css @@ -98,12 +98,28 @@ * 4) Content blocks in specific layout containers *********************************************************************/ -#gHeader #gLogo { +#gHeader #gLogo img { float: left; margin: -22px 10px 0 0; } -.rtl #gHeader #gLogo { +#gHeader #gLogo { + position: relative; + display: block; + text-decoration: none; +} +#gHeader #gLogo span { + display: none; + position: absolute; + top: -20px; + left: 2px; + color: #FF6600; +} +#gHeader #gLogo:hover span { + display: inline; +} + +.rtl #gHeader #gLogo img { float: left; } diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index 36deea9e..1be454c3 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -44,10 +44,10 @@

    admin_header_top() ?> - ">" id="gLogo" alt="" /> + diff --git a/themes/default/css/fix-ie.css b/themes/default/css/fix-ie.css index 0b37acd2..3d9604e6 100644 --- a/themes/default/css/fix-ie.css +++ b/themes/default/css/fix-ie.css @@ -10,7 +10,7 @@ zoom: 1; } -#gHeader #gLogo { +#gHeader #gLogo img { margin-top: 5px; margin-bottom: 0; } diff --git a/themes/default/css/screen.css b/themes/default/css/screen.css index e37de70e..48ded542 100644 --- a/themes/default/css/screen.css +++ b/themes/default/css/screen.css @@ -422,7 +422,7 @@ form .gError, /* Header ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -#gHeader #gLogo { +#gHeader #gLogo img { float: left; margin: -4px 10px 0 0; } @@ -1046,7 +1046,7 @@ form .gError, .rtl input[type="submit"], .rtl input[type="reset"], .rtl .gShortForm li, -.rtl #gHeader #gLogo, +.rtl #gHeader #gLogo img, .rtl #gContent #gAlbumGrid .gItem, .rtl #gSiteMenu, .rtl .gBreadcrumbs li, diff --git a/themes/default/views/header.html.php b/themes/default/views/header.html.php index b38cffed..51f55b41 100644 --- a/themes/default/views/header.html.php +++ b/themes/default/views/header.html.php @@ -3,8 +3,8 @@ -"> - " src="theme_url("images/logo.png") ?>" /> + -- cgit v1.2.3 From 979d32759514cdff790b3fd4a5a59764edfb6b02 Mon Sep 17 00:00:00 2001 From: jhilden Date: Wed, 1 Jul 2009 02:17:38 -0400 Subject: change to the 'back to the Gallery' link from the admin. --- themes/admin_default/css/screen.css | 28 +++++++++------------------- themes/admin_default/views/admin.html.php | 4 ++-- 2 files changed, 11 insertions(+), 21 deletions(-) (limited to 'themes/admin_default/views/admin.html.php') diff --git a/themes/admin_default/css/screen.css b/themes/admin_default/css/screen.css index 629d0451..98e0905e 100644 --- a/themes/admin_default/css/screen.css +++ b/themes/admin_default/css/screen.css @@ -98,30 +98,20 @@ * 4) Content blocks in specific layout containers *********************************************************************/ -#gHeader #gLogo img { +#gHeader #gLogo { float: left; margin: -22px 10px 0 0; -} - -#gHeader #gLogo { - position: relative; display: block; + padding-left: 2px; + width: 105px; /* 107px - padding-left */ + height: 48px; + background-image: url('../../default/images/logo.png'); + color: gray ! important; +} +#gHeader #gLogo:hover { + color: #FF6600 ! important; text-decoration: none; } -#gHeader #gLogo span { - display: none; - position: absolute; - top: -20px; - left: 2px; - color: #FF6600; -} -#gHeader #gLogo:hover span { - display: inline; -} - -.rtl #gHeader #gLogo img { - float: left; -} #gHeader #gLoginMenu { float: none; diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index 1be454c3..76f59d4a 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -47,8 +47,8 @@
- -