diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2008-11-29 20:02:30 +0000 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2008-11-29 20:02:30 +0000 |
commit | 7ae004f76fafa3f0d31b39c45505e66d9be9b8cf (patch) | |
tree | d43673ba9d334d7467093309c727a76eaa029afb | |
parent | 70de32ebb48df84080f180e41703bb0064093ba1 (diff) |
The gui part of rearranging albums and photos on the welcome page. Haven't finished the ajax back end to actually do the move, but thought i'd put the gui up so people can play
-rw-r--r-- | core/views/welcome.html.php | 11 | ||||
-rw-r--r-- | modules/rearrange/controllers/rearrange.php | 6 | ||||
-rw-r--r-- | modules/rearrange/css/jquery.simple.tree.css | 179 | ||||
-rw-r--r-- | modules/rearrange/helpers/rearrange.php | 33 | ||||
-rw-r--r-- | modules/rearrange/helpers/rearrange_block.php | 30 | ||||
-rw-r--r-- | modules/rearrange/js/rearrange_tree.js | 0 | ||||
-rw-r--r-- | modules/rearrange/views/rearrange.html.php | 44 |
7 files changed, 296 insertions, 7 deletions
diff --git a/core/views/welcome.html.php b/core/views/welcome.html.php index 16b4659a..5e683690 100644 --- a/core/views/welcome.html.php +++ b/core/views/welcome.html.php @@ -129,9 +129,10 @@ text-decoration: underline; } </style> - <script type="text/javascript" src="<?= url::file("lib/jquery.js") ?>"></script> - <script type="text/javascript" src="<?= url::file("lib/jquery.cookie.js") ?>"></script> - <script type="text/javascript" src="<?= url::file("lib/jquery.MultiFile.js") ?>"></script> + <?= html::script("lib/jquery.js") ?> + <?= html::script("lib/jquery.cookie.js") ?> + <?= html::script("lib/jquery.MultiFile.js") ?> + <?= rearrange_block::head(null) ?> </head> <body> <div class="outer"> @@ -248,6 +249,10 @@ <input type="hidden" name="type" value="album"/> </form> </fieldset> + <fieldset> + <legend>Rearrange</legend> + <?= rearrange::get_html()->render() ?> + </fieldset> </div> <div id="access" class="activity"> diff --git a/modules/rearrange/controllers/rearrange.php b/modules/rearrange/controllers/rearrange.php index d5cebd4a..a04cc158 100644 --- a/modules/rearrange/controllers/rearrange.php +++ b/modules/rearrange/controllers/rearrange.php @@ -21,13 +21,11 @@ class Rearrange_Controller extends REST_Controller { protected $resource_type = "item"; public function _show($item) { - throw new Exception("@todo Rearrange_Controller::_show NOT IMPLEMENTED"); + print rearrange::get_html($item)->render(); } public function _index() { - // @todo: represent this in different formats - $root = ORM::factory("item", 1); - $this->_show($root); + print rearrange::get_html()->render(); } public function _form_add($item_id) { diff --git a/modules/rearrange/css/jquery.simple.tree.css b/modules/rearrange/css/jquery.simple.tree.css new file mode 100644 index 00000000..a874c53b --- /dev/null +++ b/modules/rearrange/css/jquery.simple.tree.css @@ -0,0 +1,179 @@ +@CHARSET "UTF-8"; + +.simpleTree { + font: normal 12px arial, tahoma, helvetica, sans-serif; + margin:0; + padding:20px; + margin:0; + padding:0; + /* + overflow:auto; + width: 250px; + height:350px; + overflow:auto; + border: 1px solid #444444; + */ +} + +.simpleTree li { + list-style: none; + margin:0; + padding:0 0 0 34px; + line-height: 14px; +} +.simpleTree li span { + display:inline; + clear: left; + white-space: nowrap; +} + +.simpleTree ul { + margin:0; + padding:0; +} +.simpleTree .root { + margin-left:-16px; + background: url(../images/root.gif) no-repeat 16px 0 #ffffff; +} + +.simpleTree .line { + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(../images/line_bg.gif) 0 0 no-repeat transparent; +} + +.simpleTree .line-last { + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(../images/spacer.gif) 0 0 no-repeat transparent; +} + +.simpleTree .line-over { + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(../images/line_bg_over.gif) 0 0 no-repeat transparent; +} + +.simpleTree .line-over-last { + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(../images/line_bg_over_last.gif) 0 0 no-repeat transparent; +} + +.simpleTree .folder-open { + margin-left:-16px; + background: url(../images/collapsable.gif) 0 -2px no-repeat #fff; +} + +.simpleTree .folder-open-last { + margin-left:-16px; + background: url(../images/collapsable-last.gif) 0 -2px no-repeat #fff; +} + +.simpleTree .folder-close { + margin-left:-16px; + background: url(../images/expandable.gif) 0 -2px no-repeat #fff; +} + +.simpleTree .folder-close-last { + margin-left:-16px; + background: url(../images/expandable-last.gif) 0 -2px no-repeat #fff; +} + +.simpleTree .doc { + margin-left:-16px; + background: url(../images/leaf.gif) 0 -1px no-repeat #fff; +} + +.simpleTree .doc-last { + margin-left:-16px; + background: url(../images/leaf-last.gif) 0 -1px no-repeat #fff; +} + +.simpleTree .ajax { + background: url(../images/spinner.gif) no-repeat 0 0 #ffffff; + height: 16px; + display:none; +} + +.simpleTree .ajax li { + display:none; + margin:0; + padding:0; +} + +.simpleTree .trigger { + display:inline; + margin-left:-32px; + width: 28px; + height: 11px; + cursor:pointer; +} + +.simpleTree .text { + cursor: default; +} + +.simpleTree .active { + cursor: default; + background-color:#F7BE77; + padding:0px 2px; + border: 1px dashed #444; +} + +#drag_container { + background:#ffffff; + color:#000; + font: normal 11px arial, tahoma, helvetica, sans-serif; + border: 1px dashed #767676; +} + +#drag_container ul { + list-style: none; + padding:0; + margin:0; +} + + +#drag_container li { + list-style: none; + background-color:#ffffff; + line-height:18px; + white-space: nowrap; + padding:1px 1px 0px 16px; + margin:0; +} + +#drag_container li span { + padding:0; +} + + +#drag_container li.doc, #drag_container li.doc-last { + background: url(../images/leaf.gif) no-repeat -17px 0 #ffffff; +} + +#drag_container .folder-close, #drag_container .folder-close-last { + background: url(../images/expandable.gif) no-repeat -17px 0 #ffffff; +} + + +#drag_container .folder-open, #drag_container .folder-open-last { + background: url(../images/collapsable.gif) no-repeat -17px 0 #ffffff; +} + +.contextMenu { + display:none; +} diff --git a/modules/rearrange/helpers/rearrange.php b/modules/rearrange/helpers/rearrange.php new file mode 100644 index 00000000..815014bc --- /dev/null +++ b/modules/rearrange/helpers/rearrange.php @@ -0,0 +1,33 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class rearrange_Core { + public static function get_html($item=null) { + $view = new View("rearrange.html"); + + $view->root = null; + if (empty($item)) { + $item = ORM::factory("item", 1); + $view->root = $item; + } + + $view->children = $item->children(); + return $view; + } +} diff --git a/modules/rearrange/helpers/rearrange_block.php b/modules/rearrange/helpers/rearrange_block.php new file mode 100644 index 00000000..24dead6b --- /dev/null +++ b/modules/rearrange/helpers/rearrange_block.php @@ -0,0 +1,30 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class rearrange_block_Core { + public static function head($theme) { + $head[] = html::script("modules/rearrange/js/jquery.simple.tree.js"); + + $url = url::file("modules/rearrange/css/jquery.simple.tree.css"); + $head[] = "<link rel=\"stylesheet\" type=\"text/css\" href=\"$url\" " . + "media=\"screen,print,projection\" />"; + + return implode("\n", $head); + } +} diff --git a/modules/rearrange/js/rearrange_tree.js b/modules/rearrange/js/rearrange_tree.js new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/modules/rearrange/js/rearrange_tree.js diff --git a/modules/rearrange/views/rearrange.html.php b/modules/rearrange/views/rearrange.html.php new file mode 100644 index 00000000..64b711ff --- /dev/null +++ b/modules/rearrange/views/rearrange.html.php @@ -0,0 +1,44 @@ +<?php defined("SYSPATH") or die("No direct script access."); ?> + +<? if ($root): ?> + <script> + var simpleTree_Rearrange; + $(document).ready(function() { + simpleTree_Rearrange = $(".simpleTree").simpleTree({ + autoclose: false, + animate: true, + afterClick:function(node) { + alert("text-"+$('span:first', node).text()); + }, + afterDblClick:function(node) { + alert("text-"+$('span:first', node).text()); + }, + afterMove:function(destination, source, pos) { + alert("destination: "+destination.attr('id') + "\n" + + "source: "+source.attr('id') + "\n" + + "pos: " + pos); + }, + afterAjax:function() { + } + }); + }); + </script> + <ul class="simpleTree"> + <li class="root" id="<?= $root->id?>"><span><?= $root->title?></span> +<? endif; ?> +<ul> + <? foreach ($children as $child): ?> + <li id="<?= $child->id?>"><span class="text"><?= $child->title?></span> + <? if ($child->type == "album"): ?> + <ul class="ajax"> + <li><?= url::site("rearrange/$child->id") ?></li> + </ul> + <? endif; ?> + </li> + <? endforeach;?> +</ul> +<? if ($root): ?> + </li> + </ul> +<? endif; ?> + |