summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2008-12-15 01:48:34 +0000
committerBharat Mediratta <bharat@menalto.com>2008-12-15 01:48:34 +0000
commitc02d2554cfdf23a91b6b756ada91ab1ce1018280 (patch)
tree73cc4f8bfef0254e253a8724a74711e04392a83a
parent19e75b1e2ed73521b3cad01e55d546d3a6b55587 (diff)
Refactor admin dashboard.
o Copy all the assets from default to default_admin so that they're totally separate o Get rid of $item_theme o Rename list_users.html.php to users.html.php o use __call in admin controller to allow us to load any admin page
-rw-r--r--core/controllers/admin.php39
-rw-r--r--core/libraries/Theme_View.php2
-rw-r--r--themes/default_admin/css/screen.css1095
-rw-r--r--themes/default_admin/images/arrows-ffffff.pngbin0 -> 244 bytes
-rw-r--r--themes/default_admin/images/ico-draggable.pngbin0 -> 227 bytes
-rwxr-xr-xthemes/default_admin/images/ico-error.pngbin0 -> 701 bytes
-rwxr-xr-xthemes/default_admin/images/ico-help.pngbin0 -> 786 bytes
-rwxr-xr-xthemes/default_admin/images/ico-info.pngbin0 -> 778 bytes
-rwxr-xr-xthemes/default_admin/images/ico-success.pngbin0 -> 537 bytes
-rwxr-xr-xthemes/default_admin/images/ico-warning.pngbin0 -> 666 bytes
-rw-r--r--themes/default_admin/images/logo.pngbin0 -> 10222 bytes
-rw-r--r--themes/default_admin/jquery/superfish-navbar.css93
-rw-r--r--themes/default_admin/jquery/superfish.css136
-rw-r--r--themes/default_admin/jquery/superfish.js121
-rw-r--r--themes/default_admin/views/admin.html.php52
-rw-r--r--themes/default_admin/views/users.html.php (renamed from themes/default_admin/views/list_users.html.php)0
16 files changed, 1494 insertions, 44 deletions
diff --git a/core/controllers/admin.php b/core/controllers/admin.php
index f00d3fdf..97f29cbb 100644
--- a/core/controllers/admin.php
+++ b/core/controllers/admin.php
@@ -18,36 +18,39 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class Admin_Controller extends Controller {
- public $theme_name = null;
-
public function __construct() {
if (!(user::active()->admin)) {
throw new Exception("@todo UNAUTHORIZED", 401);
}
- // giving default is probably overkill
- $this->theme_name = module::get_var("core", "active_admin_theme", "default_admin");
parent::__construct();
}
public function index() {
- // For now, in order not to duplicate js and css, keep the regular ("item")
- // theme in addition to admin theme.
- $item_theme_name = module::get_var("core", "active_theme", "default");
- $item_theme = new Theme_View("album.html", "album", $item_theme_name);
-
- $template = new Theme_View("admin.html", "admin", $this->theme_name);
- $template->item_theme = $item_theme;
- $template->subpage = "dashboard.html";
+ $theme_name = module::get_var("core", "active_admin_theme", "default_admin");
+ $template = new Admin_View("admin.html", $theme_name);
+ $template->content = new View("dashboard.html");
print $template;
}
- public function subpage() {
- $template = new Theme_View($_REQUEST["name"] . ".html", "admin", $this->theme_name);
- switch ($_REQUEST["name"]) {
- case "list_users":
- $template->set_global("users", ORM::factory("user")->find_all());
+ public function __call($page_name, $args) {
+ $theme_name = module::get_var("core", "active_admin_theme", "default_admin");
+ // For now, we have only two legal pages.
+ // @todo get these pages from the modules
+ switch($page_name) {
+ case "users":
+ $view = new Admin_View("users.html", $theme_name);
+ $view->users = ORM::factory("user")->find_all();
+ break;
+
+ case "dashboard":
+ $view = new Admin_View("dashboard.html", $theme_name);
+ break;
+
+ default:
+ Kohana::show_404();
}
- print $template;
+
+ print $view;
}
}
diff --git a/core/libraries/Theme_View.php b/core/libraries/Theme_View.php
index 51d7c545..7fc400ce 100644
--- a/core/libraries/Theme_View.php
+++ b/core/libraries/Theme_View.php
@@ -25,7 +25,7 @@ class Theme_View_Core extends View {
*
* @throws Kohana_Exception if the requested view cannot be found
* @param string $name view name
- * @param string $page_type page type: album, photo, tags, admin, etc
+ * @param string $page_type page type: album, photo, tags, etc
* @param string $theme_name view name
* @return void
*/
diff --git a/themes/default_admin/css/screen.css b/themes/default_admin/css/screen.css
new file mode 100644
index 00000000..89374810
--- /dev/null
+++ b/themes/default_admin/css/screen.css
@@ -0,0 +1,1095 @@
+/**
+ * Gallery 3 Default Theme Styles
+ *
+ * @requires YUI reset, font, grids CSS
+ *
+ * Sheet organization:
+ * 1) Basic HTML elements
+ * 2) Base text styles
+ * 3) Page layout containers
+ * 4) Reusable content containers
+ * 5) Specific content blocks
+ * 6) Navigation and menus
+ * 7) Generic styles
+ * 8) Browser hacks
+ * 9) Debugging information
+ * 10) Ajax/DOM features
+ * 11) jQuery UI
+ */
+
+/** *******************************************************************
+ * 1) Basic HTML elements
+ ******************************************************************/
+
+/* Basic HTML elements ~~~~~~~~~~~~~~~~ */
+
+body, html {
+ background-color: #ccc;
+ font-family: 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
+}
+
+p {
+ margin-bottom: 1em;
+}
+
+/* Headings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+h1, h2, h3, h4, h5 {
+ font-weight: bold;
+}
+
+h1 {
+ font-size: 1.7em
+}
+
+h2 {
+ font-size: 1.4em
+}
+
+h3 {
+ font-size: 1.2em
+}
+
+/* Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+a {
+ color: #6b8cb7;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #f30;
+ text-decoration: underline;
+}
+
+/* Tables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+caption {
+ text-align: left;
+}
+
+th {
+ font-weight: bold;
+ text-align: left;
+}
+
+/* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+fieldset {
+ border: 1px solid #ccc;
+}
+
+legend {
+ font-weight: bold;
+ margin-left: 1em;
+}
+
+label {
+ cursor: help;
+}
+
+input[type="text"],
+input[type="password"],
+textarea,
+select {
+}
+
+input[type="text"],
+input[type="password"],
+textarea,
+.gValidationRule {
+ width: 40%;
+}
+
+input[type="button"] {
+}
+
+input[type="checkbox"] {
+}
+
+input[type="file"] {
+}
+
+input[type="password"] {
+}
+
+input[type="radio"] {
+}
+
+input[type="reset"] {
+}
+
+input[type="submit"] {
+}
+
+input[type="text"] {
+}
+
+option {
+}
+
+optgroup {
+}
+
+select {
+}
+
+textarea {
+ width: 99%;
+ height: 12em;
+}
+
+button {
+}
+
+input:focus,
+textarea:focus,
+option:focus {
+ background-color: #ffc;
+}
+
+/* Form layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+form li {
+ margin: 0 !important;
+ padding: .3em 1.5em .3em 1em;
+}
+
+form ul ul {
+ clear: both;
+}
+
+form ul ul li {
+ float: left;
+}
+
+input,
+textarea {
+ display: block;
+ clear: both;
+}
+
+/* Form validation ~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gRequired {
+}
+
+.gValidationRule {
+ font-size: 80%;
+ margin-top: .5em;
+}
+
+form.gError input[type="text"],
+li.gError input[type="text"],
+form.gError input[type="password"],
+li.gError input[type="password"],
+form.gError input[type="checkbox"],
+li.gError input[type="checkbox"],
+form.gError input[type="radio"],
+li.gError input[type="radio"],
+form.gError textarea,
+li.gError textarea,
+form.gError select,
+li.gError select {
+ border: 2px solid red;
+}
+
+/** ****************************************************************
+ * 2) Base text styles
+ ******************************************************************/
+
+#gContent {
+ font-size: 1em;
+}
+
+#gSidebar {
+ font-size: .9em;
+}
+
+#gHeader, #gFooter {
+ font-size: .8em;
+}
+
+.gItem {
+ font-size: .8em;
+}
+
+/*** ***************************************************************
+ * 3) Page layout containers
+ ******************************************************************/
+
+/* View container ~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gView {
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border-bottom: none;
+}
+
+/* Layout containers ~~~~~~~~~~~~~~~~~~~~~ */
+
+#gHeader {
+ border-bottom: 1px solid #fff;
+}
+
+#gContent {
+ padding-left: 20px;
+}
+
+#gSidebar {
+ background-color: #fff;
+ margin-top: -20px;
+ padding: 0 20px;
+ width: 220px;
+}
+
+#gFooter {
+ border-top: 1px solid #ccc;
+ margin-top: 20px;
+ padding: 10px 20px;
+}
+
+/** ****************************************************************
+ * 4) Reusable content containers
+ ******************************************************************/
+
+.gBlock {
+ clear: both;
+ margin-bottom: 2.5em;
+}
+
+#gSidebar .gBlock h3 {
+ background: #e8e8e8;
+ padding: .3em .75em;
+}
+
+#gSidebar .gBlockContent {
+ padding: .5em 1em;
+}
+
+/** ****************************************************************
+ * 5) Specific content blocks
+ ******************************************************************/
+
+/* Logo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gLogo {
+ margin: 5px 10px 10px 20px;
+}
+
+.gThumbnail {
+}
+
+/* Album ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gAlbumHeader {
+ position: relative;
+}
+
+#gAlbumGrid {
+ margin-top: 20px;
+}
+
+#gAlbumGrid .gItem {
+ float: left;
+ height: 270px;
+ margin-bottom: 10px;
+ padding: 0 0 5px 0;
+ text-align: center;
+ width: 33%;
+}
+
+.gItem h2 {
+ margin: 5px 0;
+}
+
+.gAlbum {
+ background-color: #d4daff;
+}
+
+.gAlbum h2 {
+ color: #006;
+}
+
+/* Individual photo ~~~~~~~~~~~~~~~~~~~~~ */
+
+#gItem {
+ margin: 1em 0;
+}
+
+/* Metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gMetadata td,
+.gMetadata th {
+ padding: 0 1em .5em 0;
+ vertical-align: top;
+}
+
+.gMetadata th,
+.gMetadata td.toggle {
+ text-align: right;
+}
+
+/* Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gComments {
+ margin-top: 2em;
+}
+
+#gComments ul li {
+ margin: 1em 0;
+}
+
+#gComments ul li p {
+ background-color: #e8e8e8;
+ margin-bottom: 2px;
+ padding: 4px;
+}
+
+#gComments ul li div {
+ padding: 8px;
+}
+
+/* Status messages ~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gMessages li {
+ border: 1px solid #ccc;
+ margin: .4em 0;
+}
+
+.gError, .gWarning, .gSuccess, .gHelp, .gInfo {
+ background-position: .5em .1em;
+ background-repeat: no-repeat;
+ padding: .1em .5em .1em 30px;
+}
+
+.gError {
+ background-color: #fcc;
+ background-image: url('../images/ico-error.png');
+}
+
+.gWarning {
+ background-color: #ff9;
+ background-image: url('../images/ico-warning.png');
+}
+
+.gSuccess {
+ background-color: #cfc;
+ background-image: url('../images/ico-success.png');
+}
+
+.gHelp {
+ background-image: url('../images/ico-help.png');
+}
+
+.gInfo {
+ background-image: url('../images/ico-info.png');
+}
+
+/* Inline layout (forms, lists) ~~~~~~~~~~ */
+
+#gHeader #gLoginMenu li,
+#gHeader #gSearchForm li,
+#gSidebar #gAddTagForm li {
+ float: left;
+ padding: .4em .5em;
+}
+
+#gHeader #gLoginMenu input[type="text"],
+#gHeader #gLoginMenu input[type="password"],
+#gHeader #gSearchForm input[type="text"],
+#gSidebar #gAddTagForm input[type="text"] {
+ width: 10em;
+}
+
+#gHeader #gLoginForm button {
+ margin-top: 1em;
+}
+
+#gHeader #gSearchForm {
+ float: right;
+ margin-right: 20px;
+}
+
+#gHeader #gLoginForm legend,
+#gHeader #gLoginFormContainer,
+#gHeader #gSearchForm label,
+#gSidebar #gAddTagForm legend {
+ display: none;
+}
+
+#gHeader #gLoginForm fieldset,
+#gSidebar #gAddTagForm fieldset {
+ border: none;
+}
+
+/* Credits ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gCredits li {
+ display: inline;
+}
+
+#gCredits li:before {
+ padding: 0 2px 0 2px;
+ content: "|"
+}
+
+#gCredits li.first:before {
+ content: ""
+}
+
+/** *******************************************************************
+ * 6) Navigation and menus
+ ****************************************************************** /
+
+/* Login menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gLoginMenu {
+ border: 1px solid #ccc;
+ border-top: none;
+ float: right;
+ margin-right: 20px;
+}
+
+/* Site Menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gSiteMenu {
+ border-bottom: 1px solid #ccc;
+ font-size: 1.2em;
+ padding: 0 20px 0;
+}
+
+#gSiteMenu ul {
+ margin-bottom: 0;
+}
+
+#gViewMenu li {
+ float: left;
+}
+
+#gViewMenu #gAlbumLink,
+#gViewMenu #gHybridLink,
+#gViewMenu #gSlideshowLink,
+#gViewMenu #gFullsizeLink {
+ background-color: #BDD2FF;
+ background-repeat: no-repeat;
+ background-position: center center;
+ color: transparent;
+ display: block;
+ font-size: .9em;
+ height: 22px;
+ overflow: hidden;
+ text-indent: 1000px;
+ white-space: nowrap;
+ width: 32px;
+}
+
+#gViewMenu #gAlbumLink {
+ background-image: url('../images/ico-view-album.png');
+}
+
+#gViewMenu #gHybridLink {
+ background-image: url('../images/ico-view-hybrid.png');
+}
+
+#gViewMenu #gSlideshowLink {
+ background-image: url('../images/ico-view-slideshow.png');
+}
+
+#gViewMenu #gFullsizeLink {
+ background-image: url('../images/ico-view-fullsize.png');
+}
+
+/* Breadcrumbs ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gBreadcrumbs {
+ padding-left: 20px;
+}
+
+#gBreadcrumbs li {
+ background: transparent url('../images/icon_breadcrumb_separator.gif') no-repeat scroll left center;
+ float: left;
+ padding: 10px 0 10px 12px;
+}
+
+#gBreadcrumbs li.root {
+ background: transparent;
+}
+
+#gBreadcrumbs li a,
+#gBreadcrumbs li span {
+ display: block;
+}
+
+#gBreadcrumbs li.active span {
+ font-weight: bold;
+}
+
+/* Tags and cloud ~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gTagCloud ul {
+ font-size: 1.4em;
+ text-align: justify;
+}
+
+#gTagCloud ul li {
+ display: inline;
+ line-height: 1.5em;
+ text-align: justify;
+}
+
+#gTagCloud ul li a {
+ text-decoration: none;
+}
+
+#gTagCloud ul li span {
+ display: none;
+}
+
+#gTagCloud ul li.size1 a {
+ color: #9cf;
+ font-size: 80%;
+ font-weight: 100;
+}
+
+#gTagCloud ul li.size2 a {
+ color: #69f;
+ font-size: 90%;
+ font-weight: 300;
+}
+
+#gTagCloud ul li.size3 a {
+ color: #69c;
+ font-size: 100%;
+ font-weight: 500;
+}
+
+#gTagCloud ul li.size4 a {
+ color: #369;
+ font-size: 110%;
+ font-weight: 700;
+}
+
+#gTagCloud ul li.size5 a {
+ color: #0e2b52;
+ font-size: 120%;
+ font-weight: 900;
+}
+
+#gTagCloud ul li.size6 a {
+ color: #0e2b52;
+ font-size: 130%;
+ font-weight: 900;
+}
+
+#gTagCloud ul li.size7 a {
+ color: #0e2b52;
+ font-size: 140%;
+ font-weight: 900;
+}
+
+#gTagCloud ul li a:hover {
+ color: #f30;
+ text-decoration: underline;
+}
+
+/* Pagination ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gPager {
+ clear: both;
+ padding-top: 2em;
+}
+
+#gPager li {
+ background-repeat: no-repeat;
+ float: left;
+ padding: 5px;
+}
+
+#gPager .first {
+ background-image: url('../images/first.png');
+ background-position: left;
+ padding-left: 20px;
+}
+
+#gPager .first_inactive {
+ background-image: url('../images/first_inactive.png');
+ background-position: left;
+ color: #ccc;
+ padding-left: 20px;
+}
+
+#gPager .previous {
+ background-image: url('../images/previous.png');
+ background-position: left;
+ padding-left: 17px;
+}
+
+#gPager .previous_inactive {
+ background-image: url('../images/previous_inactive.png');
+ background-position: left;
+ color: #ccc;
+ padding-left: 17px;
+}
+
+#gPager .next {
+ background-image: url('../images/next.png');
+ background-position: right;
+ padding-right: 17px;
+}
+
+#gPager .next_inactive {
+ background-image: url('../images/next_inactive.png');
+ background-position: right;
+ color: #ccc;
+ padding-right: 17px;
+}
+
+#gPager .last {
+ background-image: url('../images/last.png');
+ background-position: right;
+ padding-right: 20px;
+}
+
+#gPager .last_inactive {
+ background-image: url('../images/last_inactive.png');
+ background-position: right;
+ color: #ccc;
+ padding-right: 20px;
+}
+
+/** *******************************************************************
+ * 7) Generic styles
+ ******************************************************************/
+
+.gButtonLink {
+ border: 1px solid #ccc;
+ display: block;
+ height: 24px;
+ line-height: 1.7em;
+ padding: 3px 1em 0;
+}
+
+.gButtonLink:hover {
+ background-color: #f3f3f3;
+}
+
+/** *******************************************************************
+ * 8) Browser hacks
+ *********************************************************************/
+
+.gClearFix:after {
+ clear: both;
+ content: ".";
+ display: block;
+ height: 0;
+ visibility: hidden;
+}
+
+/** *******************************************************************
+ * 9) Debugging information
+ *********************************************************************/
+
+div.gAnnotatedThemeBlock {
+ position: relative;
+ padding: 1em;
+ margin: 1em;
+ border: 1px solid #C00;
+ clear: both;
+}
+
+div.gAnnotatedThemeBlock_album_top {
+ float: right;
+}
+
+div.gAnnotatedThemeBlock_header_bottom {
+ float: right;
+}
+
+div.gAnnotatedThemeBlock div.title {
+ position: absolute;
+ top: -1em;
+ right: -1em;
+ border: 1px solid black;
+ background: #C00;
+ color: white;
+ text-align: left;
+ padding: 4px;
+ font-size: 110%;
+ -moz-border-radius: 5% 5% 5% 5%;
+}
+
+/** *******************************************************************
+ * 10) Ajax/DOM features
+ *********************************************************************/
+
+.gInPlaceEdit,
+.gInPlaceEdit form,
+.gInPlaceEdit input {
+ display: inline;
+}
+
+span.gInPlaceEdit:hover {
+ color: #6b8cb7;
+}
+
+.gClose a {
+ border: 1px solid #ccc;
+ color: #ccc;
+ display: block;
+ font-weight: bold;
+ padding: 1px 3px;
+}
+
+.gClose a:hover {
+ border: 1px solid #666;
+ color: #666;
+ text-decoration: none;
+}
+
+.gHide,
+.gClose {
+ display: none;
+}
+
+#gDialog {
+ background-color: #fff;
+ text-align: left;
+}
+
+#gDialog form {
+}
+
+.gDialogLink {
+
+}
+
+/** *******************************************************************
+ * 11) jQuery UI
+ *********************************************************************/
+
+/*UI tabs*/
+.ui-tabs-nav {
+ float: left;
+ position: relative;
+ z-index: 1;
+ border-right: 1px solid #ccc;
+ bottom: -1px;
+}
+.ui-tabs-nav li {
+ float: left;
+ border: 1px solid #ccc;
+ border-right: none;
+}
+.ui-tabs-nav li a {
+ float: left;
+ font-weight: normal;
+ text-decoration: none;
+ padding: .5em 1.7em;
+ color: #444444;
+ background: #e6e6e6 url(../jquery/images/e6e6e6_40x100_textures_02_glass_80.png) 0 50% repeat-x;
+}
+.ui-tabs-nav li a:hover, .ui-tabs-nav li a:focus, .ui-tabs-nav li a:active { /* order: LVHFA */
+ background: #eb9300 url(../jquery/images/eb9300_40x100_textures_02_glass_90.png) 0 50% repeat-x;
+ color: #111111;
+}
+.ui-tabs-nav li.ui-tabs-selected {
+ border-bottom-color: #8ab9ff;
+}
+.ui-tabs-nav li.ui-tabs-selected a, .ui-tabs-nav li.ui-tabs-selected a:hover,
+.ui-tabs-nav li.ui-tabs-selected a:focus, .ui-tabs-nav li.ui-tabs-selected a:active {
+ background: #8ab9ff url(../jquery/images/8ab9ff_40x100_textures_02_glass_50.png) 0 50% repeat-x;
+ color: #000;
+}
+.ui-tabs-panel {
+ clear:left;
+ border: 1px solid #ccc;
+ background: #f3f3f3 url(../jquery/images/f3f3f3_40x100_textures_01_flat_0.png) 0 0 repeat-x;
+ color: #362b36;
+ padding: 1.5em 1.7em;
+ min-width: 0; /* => IE7 trigger hasLayout (while maintaining valid CSS) to prevent margins pushed here from preceding elements */
+}
+* html .ui-tabs-panel {
+ display: inline-block; /* => IE6 trigger hasLayout (while maintaining valid CSS) in IE6 to prevent margins pushed here from preceding elements */
+}
+.ui-tabs-hide {
+ display: none !important/*for accessible hiding: position: absolute; left: -99999999px;*/;
+}
+
+/*dialog*/
+.ui-dialog {
+ font-family: Lucida Grande, Lucida Sans, Arial, sans-serif;
+ font-size: 1.2em;
+ background: #f3f3f3 url(../jquery/images/f3f3f3_40x100_textures_01_flat_0.png) 0 0 repeat-x;
+ color: #362b36;
+ border: 4px solid #dddddd;
+ position: relative;
+}
+.ui-resizable-handle {
+ position: absolute;
+ font-size: 0.1px;
+ z-index: 99999;
+}
+.ui-resizable .ui-resizable-handle {
+ display: block;
+}
+body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
+.ui-resizable-n {
+ cursor: n-resize;
+ height: 7px;
+ width: 100%;
+ top: -5px;
+ left: 0px;
+}
+.ui-resizable-s {
+ cursor: s-resize;
+ height: 7px;
+ width: 100%;
+ bottom: -5px;
+ left: 0px;
+}
+.ui-resizable-e {
+ cursor: e-resize;
+ width: 7px;
+ right: -5px;
+ top: 0px;
+ height: 100%;
+}
+.ui-resizable-w {
+ cursor: w-resize;
+ width: 7px;
+ left: -5px;
+ top: 0px;
+ height: 100%;
+}
+.ui-resizable-se {
+ cursor: se-resize;
+ width: 18px;
+ height: 18px;
+ right: -5px;
+ bottom: -5px;
+ background: url(../jquery/images/222222_11x11_icon_resize_se.gif) no-repeat 0 0;
+}
+.ui-resizable-sw {
+ cursor: sw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ bottom: -5px;
+}
+.ui-resizable-nw {
+ cursor: nw-resize;
+ width: 9px;
+ height: 9px;
+ left: -5px;
+ top: -5px;
+}
+.ui-resizable-ne {
+ cursor: ne-resize;
+ width: 9px;
+ height: 9px;
+ right: -5px;
+ top: -5px;
+}
+.ui-dialog-titlebar {
+ padding: .5em 1.5em .5em 1em;
+ color: #444444;
+ background: #e6e6e6 url(../jquery/images/e6e6e6_40x100_textures_02_glass_80.png) 0 50% repeat-x;
+ border-bottom: 1px solid #cccccc;
+ font-size: 1em;
+ font-weight: normal;
+ position: relative;
+}
+.ui-dialog-title {}
+.ui-dialog-titlebar-close {
+ background: url(../jquery/images/888888_11x11_icon_close.gif) 0 0 no-repeat;
+ position: absolute;
+ right: 8px;
+ top: .7em;
+ width: 11px;
+ height: 11px;
+ z-index: 100;
+}
+.ui-dialog-titlebar-close-hover, .ui-dialog-titlebar-close:hover {
+ background: url(../jquery/images/222222_11x11_icon_close.gif) 0 0 no-repeat;
+}
+.ui-dialog-titlebar-close:active {
+ background: url(../jquery/images/ffffff_11x11_icon_close.gif) 0 0 no-repeat;
+}
+.ui-dialog-titlebar-close span {
+ display: none;
+}
+.ui-dialog-content {
+ color: #362b36;
+ padding: 1.5em 1.7em;
+}
+.ui-dialog-buttonpane {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ text-align: left;
+ border-top: 1px solid #dddddd;
+ background: #f3f3f3;
+}
+.ui-dialog-buttonpane button {
+ margin: .5em 0 .5em 8px;
+ color: #444444;
+ background: #e6e6e6 url(../jquery/images/e6e6e6_40x100_textures_02_glass_80.png) 0 50% repeat-x;
+ font-size: 1em;
+ border: 1px solid #cccccc;
+ cursor: pointer;
+ padding: .2em .6em .3em .6em;
+ line-height: 1.4em;
+}
+.ui-dialog-buttonpane button:hover {
+ color: #111111;
+ background: #eb9300 url(../jquery/images/eb9300_40x100_textures_02_glass_90.png) 0 50% repeat-x;
+ border: 1px solid #888888;
+}
+.ui-dialog-buttonpane button:active {
+ color: #000000;
+ background: #8ab9ff url(../jquery/images/8ab9ff_40x100_textures_02_glass_50.png) 0 50% repeat-x;
+ border: 1px solid #2694e8;
+}
+/* This file skins dialog */
+.ui-dialog.ui-draggable .ui-dialog-titlebar,
+.ui-dialog.ui-draggable .ui-dialog-titlebar {
+ cursor: move;
+}
+
+/*
+Generic ThemeRoller Classes
+>> Make your jQuery Components ThemeRoller-Compatible!
+*/
+
+/*component global class*/
+.ui-component {
+}
+/*component content styles*/
+.ui-component-content {
+ border: 1px solid #dddddd;
+ background: #f3f3f3 url(../jquery/images/f3f3f3_40x100_textures_01_flat_0.png) 0 0 repeat-x;
+ color: #362b36;
+}
+.ui-component-content a {
+ color: #362b36;
+ text-decoration: underline;
+}
+/*component states*/
+.ui-default-state {
+ border: 1px solid #ccc;
+ background: #e6e6e6 url(../jquery/images/e6e6e6_40x100_textures_02_glass_80.png) 0 50% repeat-x;
+ font-weight: normal;
+ color: #444444 !important;
+}
+.ui-default-state a {
+ color: #444444;
+}
+.ui-default-state:hover, .ui-hover-state {
+ border: 1px solid #888888;
+ background: #eb9300 url(../jquery/images/eb9300_40x100_textures_02_glass_90.png) 0 50% repeat-x;
+ font-weight: normal;
+ color: #111111 !important;
+}
+.ui-hover-state a {
+ color: #111111;
+}
+.ui-default-state:active, .ui-active-state {
+ border: 1px solid #2694e8;
+ background: #8ab9ff url(../jquery/images/8ab9ff_40x100_textures_02_glass_50.png) 0 50% repeat-x;
+ font-weight: normal;
+ color: #000 !important;
+ outline: none;
+}
+.ui-active-state a {
+ color: #000;
+ outline: none;
+}
+/*icons*/
+.ui-arrow-right-default {background: url(../jquery/images/888888_7x7_arrow_right.gif) no-repeat 50% 50%;}
+.ui-arrow-right-default:hover, .ui-arrow-right-hover {background: url(../jquery/images/222222_7x7_arrow_right.gif) no-repeat 50% 50%;}
+.ui-arrow-right-default:active, .ui-arrow-right-active {background: url(../jquery/images/ffffff_7x7_arrow_right.gif) no-repeat 50% 50%;}
+.ui-arrow-right-content {background: url(../jquery/images/222222_7x7_arrow_right.gif) no-repeat 50% 50%;}
+
+.ui-arrow-left-default {background: url(../jquery/images/888888_7x7_arrow_left.gif) no-repeat 50% 50%;}
+.ui-arrow-left-default:hover, .ui-arrow-left-hover {background: url(../jquery/images/222222_7x7_arrow_left.gif) no-repeat 50% 50%;}
+.ui-arrow-left-default:active, .ui-arrow-left-active {background: url(../jquery/images/ffffff_7x7_arrow_left.gif) no-repeat 50% 50%;}
+.ui-arrow-left-content {background: url(../jquery/images/222222_7x7_arrow_left.gif) no-repeat 50% 50%;}
+
+.ui-arrow-down-default {background: url(../jquery/images/888888_7x7_arrow_down.gif) no-repeat 50% 50%;}
+.ui-arrow-down-default:hover, .ui-arrow-down-hover {background: url(../jquery/images/222222_7x7_arrow_down.gif) no-repeat 50% 50%;}
+.ui-arrow-down-default:active, .ui-arrow-down-active {background: url(../jquery/images/ffffff_7x7_arrow_down.gif) no-repeat 50% 50%;}
+.ui-arrow-down-content {background: url(../jquery/images/222222_7x7_arrow_down.gif) no-repeat 50% 50%;}
+
+.ui-arrow-up-default {background: url(../jquery/images/888888_7x7_arrow_up.gif) no-repeat 50% 50%;}
+.ui-arrow-up-default:hover, .ui-arrow-up-hover {background: url(../jquery/images/222222_7x7_arrow_up.gif) no-repeat 50% 50%;}
+.ui-arrow-up-default:active, .ui-arrow-up-active {background: url(../jquery/images/ffffff_7x7_arrow_up.gif) no-repeat 50% 50%;}
+.ui-arrow-up-content {background: url(../jquery/images/222222_7x7_arrow_up.gif) no-repeat 50% 50%;}
+
+.ui-close-default {background: url(../jquery/images/888888_11x11_icon_close.gif) no-repeat 50% 50%;}
+.ui-close-default:hover, .ui-close-hover {background: url(../jquery/images/222222_11x11_icon_close.gif) no-repeat 50% 50%;}
+.ui-close-default:active, .ui-close-active {background: url(../jquery/images/ffffff_11x11_icon_close.gif) no-repeat 50% 50%;}
+.ui-close-content {background: url(../jquery/images/ffffff_11x11_icon_close.gif) no-repeat 50% 50%;}
+
+.ui-folder-closed-default {background: url(../jquery/images/888888_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+.ui-folder-closed-default:hover, .ui-folder-closed-hover {background: url(../jquery/images/222222_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+.ui-folder-closed-default:active, .ui-folder-closed-active {background: url(../jquery/images/ffffff_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+.ui-folder-closed-content {background: url(../jquery/images/888888_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
+
+.ui-folder-open-default {background: url(../jquery/images/888888_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+.ui-folder-open-default:hover, .ui-folder-open-hover {background: url(../jquery/images/222222_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+.ui-folder-open-default:active, .ui-folder-open-active {background: url(../jquery/images/ffffff_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+.ui-folder-open-content {background: url(../jquery/images/ffffff_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
+
+.ui-doc-default {background: url(../jquery/images/888888_11x11_icon_doc.gif) no-repeat 50% 50%;}
+.ui-doc-default:hover, .ui-doc-hover {background: url(../jquery/images/222222_11x11_icon_doc.gif) no-repeat 50% 50%;}
+.ui-doc-default:active, .ui-doc-active {background: url(../jquery/images/ffffff_11x11_icon_doc.gif) no-repeat 50% 50%;}
+.ui-doc-content {background: url(../jquery/images/222222_11x11_icon_doc.gif) no-repeat 50% 50%;}
+
+.ui-arrows-leftright-default {background: url(../jquery/images/888888_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+.ui-arrows-leftright-default:hover, .ui-arrows-leftright-hover {background: url(../jquery/images/222222_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+.ui-arrows-leftright-default:active, .ui-arrows-leftright-active {background: url(../jquery/images/ffffff_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+.ui-arrows-leftright-content {background: url(../jquery/images/222222_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
+
+.ui-arrows-updown-default {background: url(../jquery/images/888888_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+.ui-arrows-updown-default:hover, .ui-arrows-updown-hover {background: url(../jquery/images/222222_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+.ui-arrows-updown-default:active, .ui-arrows-updown-active {background: url(../jquery/images/ffffff_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+.ui-arrows-updown-content {background: url(../jquery/images/222222_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
+
+.ui-minus-default {background: url(../jquery/images/888888_11x11_icon_minus.gif) no-repeat 50% 50%;}
+.ui-minus-default:hover, .ui-minus-hover {background: url(../jquery/images/222222_11x11_icon_minus.gif) no-repeat 50% 50%;}
+.ui-minus-default:active, .ui-minus-active {background: url(../jquery/images/ffffff_11x11_icon_minus.gif) no-repeat 50% 50%;}
+.ui-minus-content {background: url(../jquery/images/222222_11x11_icon_minus.gif) no-repeat 50% 50%;}
+
+.ui-plus-default {background: url(../jquery/images/888888_11x11_icon_plus.gif) no-repeat 50% 50%;}
+.ui-plus-default:hover, .ui-plus-hover {background: url(../jquery/images/222222_11x11_icon_plus.gif) no-repeat 50% 50%;}
+.ui-plus-default:active, .ui-plus-active {background: url(../jquery/images/ffffff_11x11_icon_plus.gif) no-repeat 50% 50%;}
+.ui-plus-content {background: url(../jquery/images/222222_11x11_icon_plus.gif) no-repeat 50% 50%;}
+
+/*hidden elements*/
+.ui-hidden {
+ display: none/*for accessible hiding: position: absolute; left: -99999999px;*/;
+}
+.ui-accessible-hidden {
+ position: absolute; left: -99999999px;
+}
+/*reset styles*/
+.ui-reset {
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
+}
+/*clearfix class*/
+.ui-clearfix:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+.ui-clearfix {display: inline-block;}
+/* Hides from IE-mac \*/
+* html .ui-clearfix {height: 1%;}
+.ui-clearfix {display: block;}
+/* End hide from IE-mac */
+
+/* Note: for resizable styles, use the styles listed above in the dialog section */
diff --git a/themes/default_admin/images/arrows-ffffff.png b/themes/default_admin/images/arrows-ffffff.png
new file mode 100644
index 00000000..995df520
--- /dev/null
+++ b/themes/default_admin/images/arrows-ffffff.png
Binary files differ
diff --git a/themes/default_admin/images/ico-draggable.png b/themes/default_admin/images/ico-draggable.png
new file mode 100644
index 00000000..2fb361f2
--- /dev/null
+++ b/themes/default_admin/images/ico-draggable.png
Binary files differ
diff --git a/themes/default_admin/images/ico-error.png b/themes/default_admin/images/ico-error.png
new file mode 100755
index 00000000..c37bd062
--- /dev/null
+++ b/themes/default_admin/images/ico-error.png
Binary files differ
diff --git a/themes/default_admin/images/ico-help.png b/themes/default_admin/images/ico-help.png
new file mode 100755
index 00000000..5c870176
--- /dev/null
+++ b/themes/default_admin/images/ico-help.png
Binary files differ
diff --git a/themes/default_admin/images/ico-info.png b/themes/default_admin/images/ico-info.png
new file mode 100755
index 00000000..12cd1aef
--- /dev/null
+++ b/themes/default_admin/images/ico-info.png
Binary files differ
diff --git a/themes/default_admin/images/ico-success.png b/themes/default_admin/images/ico-success.png
new file mode 100755
index 00000000..a9925a06
--- /dev/null
+++ b/themes/default_admin/images/ico-success.png
Binary files differ
diff --git a/themes/default_admin/images/ico-warning.png b/themes/default_admin/images/ico-warning.png
new file mode 100755
index 00000000..628cf2da
--- /dev/null
+++ b/themes/default_admin/images/ico-warning.png
Binary files differ
diff --git a/themes/default_admin/images/logo.png b/themes/default_admin/images/logo.png
new file mode 100644
index 00000000..7d7b9b9b
--- /dev/null
+++ b/themes/default_admin/images/logo.png
Binary files differ
diff --git a/themes/default_admin/jquery/superfish-navbar.css b/themes/default_admin/jquery/superfish-navbar.css
new file mode 100644
index 00000000..68c71358
--- /dev/null
+++ b/themes/default_admin/jquery/superfish-navbar.css
@@ -0,0 +1,93 @@
+
+/*** adding the class sf-navbar in addition to sf-menu creates an all-horizontal nav-bar menu ***/
+.sf-navbar {
+ background: #BDD2FF;
+ height: 2.5em;
+ padding-bottom: 2.5em;
+ position: relative;
+}
+.sf-navbar li {
+ background: #AABDE6;
+ position: static;
+}
+.sf-navbar a {
+ border-top: none;
+}
+.sf-navbar li ul {
+ width: 44em; /*IE6 soils itself without this*/
+}
+.sf-navbar li li {
+ background: #BDD2FF;
+ position: relative;
+}
+.sf-navbar li li ul {
+ width: 13em;
+}
+.sf-navbar li li li {
+ width: 100%;
+}
+.sf-navbar ul li {
+ width: auto;
+ float: left;
+}
+.sf-navbar a, .sf-navbar a:visited {
+ border: none;
+}
+.sf-navbar li.current {
+ background: #BDD2FF;
+}
+.sf-navbar li:hover,
+.sf-navbar li.sfHover,
+.sf-navbar li li.current,
+.sf-navbar a:focus, .sf-navbar a:hover, .sf-navbar a:active {
+ background: #BDD2FF;
+}
+.sf-navbar ul li:hover,
+.sf-navbar ul li.sfHover,
+ul.sf-navbar ul li:hover li,
+ul.sf-navbar ul li.sfHover li,
+.sf-navbar ul a:focus, .sf-navbar ul a:hover, .sf-navbar ul a:active {
+ background: #D1DFFF;
+}
+ul.sf-navbar li li li:hover,
+ul.sf-navbar li li li.sfHover,
+.sf-navbar li li.current li.current,
+.sf-navbar ul li li a:focus, .sf-navbar ul li li a:hover, .sf-navbar ul li li a:active {
+ background: #E6EEFF;
+}
+ul.sf-navbar .current ul,
+ul.sf-navbar ul li:hover ul,
+ul.sf-navbar ul li.sfHover ul {
+ left: 0;
+ top: 2.5em; /* match top ul list item height */
+}
+ul.sf-navbar .current ul ul {
+ top: -999em;
+}
+
+.sf-navbar li li.current > a {
+ font-weight: bold;
+}
+
+/*** point all arrows down ***/
+/* point right for anchors in subs */
+.sf-navbar ul .sf-sub-indicator { background-position: -10px -100px; }
+.sf-navbar ul a > .sf-sub-indicator { background-position: 0 -100px; }
+/* apply hovers to modern browsers */
+.sf-navbar ul a:focus > .sf-sub-indicator,
+.sf-navbar ul a:hover > .sf-sub-indicator,
+.sf-navbar ul a:active > .sf-sub-indicator,
+.sf-navbar ul li:hover > a > .sf-sub-indicator,
+.sf-navbar ul li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/*** remove shadow on first submenu ***/
+.sf-navbar > li > ul {
+ background: transparent;
+ padding: 0;
+ -moz-border-radius-bottomleft: 0;
+ -moz-border-radius-topright: 0;
+ -webkit-border-top-right-radius: 0;
+ -webkit-border-bottom-left-radius: 0;
+} \ No newline at end of file
diff --git a/themes/default_admin/jquery/superfish.css b/themes/default_admin/jquery/superfish.css
new file mode 100644
index 00000000..e87756b2
--- /dev/null
+++ b/themes/default_admin/jquery/superfish.css
@@ -0,0 +1,136 @@
+
+/*** ESSENTIAL STYLES ***/
+.sf-menu, .sf-menu * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+.sf-menu {
+ line-height: 1.0;
+}
+.sf-menu ul {
+ position: absolute;
+ top: -999em;
+ width: 10em; /* left offset of submenus need to match (see below) */
+}
+.sf-menu ul li {
+ width: 100%;
+}
+.sf-menu li:hover {
+ visibility: inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+ float: left;
+ position: relative;
+}
+.sf-menu a {
+ display: block;
+ position: relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+ left: 0;
+ top: 2.5em; /* match top ul list item height */
+ z-index: 99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+
+/*** DEMO SKIN ***/
+.sf-menu {
+ float: left;
+ margin-bottom: 1em;
+}
+.sf-menu a {
+ border-left: 1px solid #fff;
+ border-top: 1px solid #CFDEFF;
+ padding: .75em 1em;
+ text-decoration: none;
+}
+.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/
+ color: #13a;
+}
+.sf-menu li {
+ background: #BDD2FF;
+}
+.sf-menu li li {
+ background: #AABDE6;
+}
+.sf-menu li li li {
+ background: #9AAEDB;
+}
+.sf-menu li:hover, .sf-menu li.sfHover,
+.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
+ background: #CFDEFF;
+ outline: 0;
+}
+
+/*** arrows **/
+.sf-menu a.sf-with-ul {
+ padding-right: 2.25em;
+ min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */
+}
+.sf-sub-indicator {
+ position: absolute;
+ display: block;
+ right: .75em;
+ top: 1.05em; /* IE6 only */
+ width: 10px;
+ height: 10px;
+ text-indent: -999em;
+ overflow: hidden;
+ background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
+}
+a > .sf-sub-indicator { /* give all except IE6 the correct values */
+ top: .8em;
+ background-position: 0 -100px; /* use translucent arrow for modern browsers*/
+}
+/* apply hovers to modern browsers */
+a:focus > .sf-sub-indicator,
+a:hover > .sf-sub-indicator,
+a:active > .sf-sub-indicator,
+li:hover > a > .sf-sub-indicator,
+li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/* point right for anchors in subs */
+.sf-menu ul .sf-sub-indicator { background-position: -10px 0; }
+.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }
+/* apply hovers to modern browsers */
+.sf-menu ul a:focus > .sf-sub-indicator,
+.sf-menu ul a:hover > .sf-sub-indicator,
+.sf-menu ul a:active > .sf-sub-indicator,
+.sf-menu ul li:hover > a > .sf-sub-indicator,
+.sf-menu ul li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
+
+/*** shadows for all but IE6 ***/
+.sf-shadow ul {
+ background: url('../images/shadow.png') no-repeat bottom right;
+ padding: 0 8px 9px 0;
+ -moz-border-radius-bottomleft: 17px;
+ -moz-border-radius-topright: 17px;
+ -webkit-border-top-right-radius: 17px;
+ -webkit-border-bottom-left-radius: 17px;
+}
+.sf-shadow ul.sf-shadow-off {
+ background: transparent;
+}
diff --git a/themes/default_admin/jquery/superfish.js b/themes/default_admin/jquery/superfish.js
new file mode 100644
index 00000000..c6a9c7de
--- /dev/null
+++ b/themes/default_admin/jquery/superfish.js
@@ -0,0 +1,121 @@
+
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($){
+ $.fn.superfish = function(op){
+
+ var sf = $.fn.superfish,
+ c = sf.c,
+ $arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
+ over = function(){
+ var $$ = $(this), menu = getMenu($$);
+ clearTimeout(menu.sfTimer);
+ $$.showSuperfishUl().siblings().hideSuperfishUl();
+ },
+ out = function(){
+ var $$ = $(this), menu = getMenu($$), o = sf.op;
+ clearTimeout(menu.sfTimer);
+ menu.sfTimer=setTimeout(function(){
+ o.retainPath=($.inArray($$[0],o.$path)>-1);
+ $$.hideSuperfishUl();
+ if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
+ },o.delay);
+ },
+ getMenu = function($menu){
+ var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+ sf.op = sf.o[menu.serial];
+ return menu;
+ },
+ addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
+
+ return this.each(function() {
+ var s = this.serial = sf.o.length;
+ var o = $.extend({},sf.defaults,op);
+ o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+ $(this).addClass([o.hoverClass,c.bcClass].join(' '))
+ .filter('li:has(ul)').removeClass(o.pathClass);
+ });
+ sf.o[s] = sf.op = o;
+
+ $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+ if (o.autoArrows) addArrow( $('>a:first-child',this) );
+ })
+ .not('.'+c.bcClass)
+ .hideSuperfishUl();
+
+ var $a = $('a',this);
+ $a.each(function(i){
+ var $li = $a.eq(i).parents('li');
+ $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
+ });
+ o.onInit.call(this);
+
+ }).each(function() {
+ var menuClasses = [c.menuClass];
+ if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
+ $(this).addClass(menuClasses.join(' '));
+ });
+ };
+
+ var sf = $.fn.superfish;
+ sf.o = [];
+ sf.op = {};
+ sf.IE7fix = function(){
+ var o = sf.op;
+ if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+ this.toggleClass(sf.c.shadowClass+'-off');
+ };
+ sf.c = {
+ bcClass : 'sf-breadcrumb',
+ menuClass : 'sf-js-enabled',
+ anchorClass : 'sf-with-ul',
+ arrowClass : 'sf-sub-indicator',
+ shadowClass : 'sf-shadow'
+ };
+ sf.defaults = {
+ hoverClass : 'sfHover',
+ pathClass : 'overideThisToUse',
+ pathLevels : 1,
+ delay : 800,
+ animation : {opacity:'show'},
+ speed : 'normal',
+ autoArrows : true,
+ dropShadows : true,
+ disableHI : false, // true disables hoverIntent detection
+ onInit : function(){}, // callback functions
+ onBeforeShow: function(){},
+ onShow : function(){},
+ onHide : function(){}
+ };
+ $.fn.extend({
+ hideSuperfishUl : function(){
+ var o = sf.op,
+ not = (o.retainPath===true) ? o.$path : '';
+ o.retainPath = false;
+ var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+ .find('>ul').hide().css('visibility','hidden');
+ o.onHide.call($ul);
+ return this;
+ },
+ showSuperfishUl : function(){
+ var o = sf.op,
+ sh = sf.c.shadowClass+'-off',
+ $ul = this.addClass(o.hoverClass)
+ .find('>ul:hidden').css('visibility','visible');
+ sf.IE7fix.call($ul);
+ o.onBeforeShow.call($ul);
+ $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
+ return this;
+ }
+ });
+
+})(jQuery);
diff --git a/themes/default_admin/views/admin.html.php b/themes/default_admin/views/admin.html.php
index 0d1f8e28..8b3cede3 100644
--- a/themes/default_admin/views/admin.html.php
+++ b/themes/default_admin/views/admin.html.php
@@ -6,24 +6,24 @@
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>G3: Admin Dashboard</title>
<link rel="stylesheet" href="<?= url::file("lib/yui/reset-fonts-grids.css") ?>" type="text/css" media="screen,projection">
- <link rel="stylesheet" href="<?= $item_theme->url("css/screen.css") ?>" type="text/css" media="screen,projection">
+ <link rel="stylesheet" href="<?= $theme->url("css/screen.css") ?>" type="text/css" media="screen,projection">
<script src="<?= url::file("lib/jquery.js") ?>"></script>
<script src="<?= url::file("lib/jquery-ui.packed.js") ?>"></script>
- <link rel="stylesheet" href="<?= $item_theme->url("jquery/superfish.css") ?>" type="text/css" media="screen,projection">
- <link rel="stylesheet" href="<?= $item_theme->url("jquery/superfish-navbar.css") ?>" type="text/css" media="screen,projection">
- <script src="<?= $item_theme->url("jquery/superfish.js") ?>"></script>
- <script type="text/javascript">
+ <link rel="stylesheet" href="<?= $theme->url("jquery/superfish.css") ?>" type="text/css" media="screen,projection">
+ <link rel="stylesheet" href="<?= $theme->url("jquery/superfish-navbar.css") ?>" type="text/css" media="screen,projection">
+ <script src="<?= $theme->url("jquery/superfish.js") ?>"></script>
+ <script type="text/javascript">
$(document).ready(function(){
- $("ul.sf-menu").superfish({
- pathClass: 'current'
+ $("ul.sf-menu").superfish({
+ pathClass: 'current'
});
- $("#gSiteAdminMenu li[id]").click(function(event) {
- $("#gContent").load("admin/subpage", {name: this.id});
- return false;
+ $("#gSiteAdminMenu li a").click(function(event) {
+ $("#gContent").load(this.href);
+ return false;
});
- });
+ });
</script>
-
+
<style type="text/css">
#gSiteAdminMenu {
clear: both;
@@ -42,7 +42,7 @@
background-color: #e7e7e7;
margin: -.4em;
padding: .2em .6em;
- background: #f4f4f4 url('<?= $item_theme->url("images/ico-draggable.png") ?>') no-repeat center right;
+ background: #f4f4f4 url('<?= $theme->url("images/ico-draggable.png") ?>') no-repeat center right;
cursor: move;
}
.gClose {
@@ -59,7 +59,7 @@
text-decoration: none;
}
#gPhotoStream .gBlockContent {
- overflow: scroll;
+ overflow: scroll;
}
</style>
</head>
@@ -72,9 +72,11 @@
<li><?= html::anchor("albums/1", "Browse Gallery") ?></li>
<li id="gLogoutLink"><a href="<?= url::site("logout?continue=albums/1") ?>">Logout</a></li>
</ul>
- <img src="<?= $item_theme->url("images/logo.png") ?>" id="gLogo" alt="Gallery 3: Your Photos on Your Web Site" />
+ <img src="<?= $theme->url("images/logo.png") ?>" id="gLogo" alt="Gallery 3: Your Photos on Your Web Site" />
<ul id="gSiteAdminMenu" class="sf-menu sf-navbar">
- <li id="dashboard"><a href="#">Dashboard</a><li>
+ <li id="dashboard">
+ <a href="<?= url::site("admin/dashboard") ?>">Dashboard</a>
+ <li>
<li><a href="#">General Settings</a><li>
<li class="current"><a href="#">Content</a>
<ul>
@@ -95,7 +97,7 @@
</li>
<li><a href="#">Users/Groups</a>
<ul>
- <li id="list_users"><a href="#">List Users</a></li>
+ <li><a href="<?= url::site("admin/users") ?>">List Users</a></li>
<li><a href="#">Create new user</a><li>
<li><a href="#">Edit Profile</a></li>
</ul>
@@ -112,12 +114,12 @@
<div id="yui-main">
<div class="yui-b">
<div id="gContent" class="yui-g">
- <?= $theme->display($subpage); ?>
+ <?= $content ?>
</div>
</div>
</div>
<div id="gSidebar" class="yui-b">
-
+
<div id="gAvailableBlocks" class="gBlock">
<a href="" class="gClose">X</a>
<form class="gBlockContent">
@@ -131,7 +133,7 @@
</fieldset>
</form>
</div>
-
+
<div id="gPlatform" class="gBlock">
<a href="" class="gClose">X</a>
<h2>Gallery Stats</h2>
@@ -140,7 +142,7 @@
<li>Your gallery has 34 albums containing 603 photos with 26 comments.</li>
</ul>
</div>
-
+
<div id="gPlatform" class="gBlock">
<a href="" class="gClose">X</a>
<h2>Platform Information</h2>
@@ -165,14 +167,14 @@
<li>ImageMagick 1.6</li>
<li>GD</li>
<li>FFMPEG</li>
- </ul>
+ </ul>
</li>
</ul>
</li>
</ul>
<p class="gWarning">^ Display as a tree widget</p>
</div>
-
+
<div id="gProjectNews" class="gBlock">
<a href="" class="gClose">X</a>
<h2>Gallery Project News</h2>
@@ -182,7 +184,7 @@
<li>4-Feb <a href="#">Gallery 3.0 released!</a></li>
</ul>
</div>
-
+
</div>
</div>
<div id="ft">
@@ -193,4 +195,4 @@
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/themes/default_admin/views/list_users.html.php b/themes/default_admin/views/users.html.php
index 409cacc5..409cacc5 100644
--- a/themes/default_admin/views/list_users.html.php
+++ b/themes/default_admin/views/users.html.php