summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--includes/js/MultiComboBox.js72
-rw-r--r--templates/dojo.inc.php35
-rw-r--r--templates/editbookmark.tpl.php8
-rw-r--r--templates/sidebar.block.menu2.php1
-rw-r--r--templates/top.inc.php22
5 files changed, 117 insertions, 21 deletions
diff --git a/includes/js/MultiComboBox.js b/includes/js/MultiComboBox.js
new file mode 100644
index 0000000..b263c8b
--- /dev/null
+++ b/includes/js/MultiComboBox.js
@@ -0,0 +1,72 @@
+/*
+ Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+/* SemanticScuttle: This script is a light modification of dojox.form.MultiComboBox
+This fork allows specific use until DOJO 1.2.3 in Google CDN. */
+
+
+
+if(!dojo._hasResource["js.MultiComboBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["js.MultiComboBox"] = true;
+dojo.provide("js.MultiComboBox");
+dojo.experimental("js.MultiComboBox");
+dojo.require("dijit.form.ComboBox");
+dojo.require("dijit.form.ValidationTextBox");
+
+dojo.declare("js.MultiComboBox",
+ [dijit.form.ValidationTextBox, dijit.form.ComboBoxMixin],{
+ //
+ // summary: A ComboBox that accpets multiple inputs on a single line?
+ //
+ // delimiter: String
+ // The character to use to separate items in the ComboBox input
+ delimiter: ",",
+ _previousMatches: false,
+
+ _setValueAttr: function(value){
+ if (this.delimiter && value.length != 0){
+ value = value+this.delimiter+" ";
+ arguments[0] = this._addPreviousMatches(value);
+ }
+ this.inherited(arguments);
+ },
+
+ _addPreviousMatches: function(/* String */text){
+ if(this._previousMatches){
+ if(!text.match(new RegExp("^"+this._previousMatches))){
+ text = this._previousMatches+text;
+ }
+ }
+ text = this._cleanupDelimiters(text); // SScuttle: this line was moved
+ return text; // String
+ },
+
+ _cleanupDelimiters: function(/* String */text){
+ if(this.delimiter){
+ text = text.replace(new RegExp(" +"), " ");
+ text = text.replace(new RegExp("^ *"+this.delimiter+"* *"), "");
+ text = text.replace(new RegExp(this.delimiter+" *"+this.delimiter), this.delimiter);
+ }
+ return text;
+ },
+
+ _autoCompleteText: function(/* String */text){
+ arguments[0] = this._addPreviousMatches(text);
+ this.inherited(arguments);
+ },
+
+ _startSearch: function(/* String */text){
+ text = this._cleanupDelimiters(text);
+ var re = new RegExp("^.*"+this.delimiter+" *");
+
+ if((this._previousMatches = text.match(re))){
+ arguments[0] = text.replace(re, "");
+ }
+ this.inherited(arguments);
+ }
+});
+
+} \ No newline at end of file
diff --git a/templates/dojo.inc.php b/templates/dojo.inc.php
new file mode 100644
index 0000000..bc754a0
--- /dev/null
+++ b/templates/dojo.inc.php
@@ -0,0 +1,35 @@
+<?php
+/***************************************************************************
+ Copyright (C) 2005 - 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
+
+?>
+
+<?php if (isset($loadjs)) :?>
+<script type="text/javascript"
+ src="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dojo/dojo.xd.js"
+ djConfig="parseOnLoad:true, isDebug:false, usePlainJson:true, baseUrl: '<?php echo ROOT ?>', modulePaths: {'js': 'includes/js'},"></script>
+
+<script type="text/javascript">
+dojo.require("dojo.parser");
+dojo.require("dojo.data.ItemFileReadStore");
+dojo.require("js.MultiComboBox"); // DOJO module adapted for SemanticScuttle
+dojo.require("dijit.Tree");
+</script>
+<?php endif ?> \ No newline at end of file
diff --git a/templates/editbookmark.tpl.php b/templates/editbookmark.tpl.php
index 4f97dac..9592384 100644
--- a/templates/editbookmark.tpl.php
+++ b/templates/editbookmark.tpl.php
@@ -15,8 +15,12 @@ switch ($row['bStatus']) {
$accessPrivate = ' selected="selected"';
break;
}
+
+$this->includeTemplate("dojo.inc");
?>
+
+
<script type="text/javascript">
//window.onload = function() {
// document.getElementById("address").focus();
@@ -44,7 +48,7 @@ switch ($row['bStatus']) {
<th align="left"><?php echo T_('Tags'); ?></th>
<td class="scuttletheme">
<span dojoType="dojo.data.ItemFileReadStore" jsId="memberTagStore" url="<?php echo ROOT?>ajax/gettags.php"></span>
- <input type="text" dojoType="dojox.form.MultiComboBox" id="tags" name="tags" size="75" value="<?php echo filter(implode(', ', $row['tags']), 'xml'); ?>" store="memberTagStore" delimiter="," searchAttr="tag" hasDownArrow="false"/></td>
+ <input type="text" dojoType="js.MultiComboBox" id="tags2" name="tags" size="75" value="<?php echo filter(implode(', ', $row['tags']), 'xml'); ?>" store="memberTagStore" delimiter="," searchAttr="tag" hasDownArrow="false"/></td>
<td>&larr; <?php echo T_('Comma-separated'); ?></td>
</tr>
<tr>
@@ -99,7 +103,7 @@ switch ($row['bStatus']) {
<?php
// Dynamic tag selection
-$this->includeTemplate('dynamictags.inc');
+//$this->includeTemplate('dynamictags.inc');
// Bookmarklets and import links
if (empty($_REQUEST['popup']) && (!isset($showdelete) || !$showdelete)) {
diff --git a/templates/sidebar.block.menu2.php b/templates/sidebar.block.menu2.php
index 40bf27b..439ed33 100644
--- a/templates/sidebar.block.menu2.php
+++ b/templates/sidebar.block.menu2.php
@@ -21,6 +21,7 @@ if(!isset($user) || $user == '') {
$menu2Tags = $GLOBALS['menu2Tags'];
if (sizeOf($menu2Tags) > 0) {
+ $this->includeTemplate("dojo.inc");
?>
<h2><?php echo '<span>'.T_('Menu Tags').'</span> ';?></h2>
diff --git a/templates/top.inc.php b/templates/top.inc.php
index e149c34..d2f05ea 100644
--- a/templates/top.inc.php
+++ b/templates/top.inc.php
@@ -4,8 +4,7 @@
<head>
<title><?php echo filter($GLOBALS['sitename'] . (isset($pagetitle) ? ': ' . $pagetitle : '')); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<link rel="icon" type="image/png"
- href="<?php echo ROOT ?>icon.png" />
+<link rel="icon" type="image/png" href="<?php echo ROOT ?>icon.png" />
<link rel="stylesheet" type="text/css"
href="<?php echo ROOT ?>scuttle.css" />
<?php
@@ -16,26 +15,11 @@ if(isset($rsschannels)) {
}
}
?>
-
-<?php if (isset($loadjs)) :?>
-
-<script type="text/javascript"
- src="<?php echo ROOT ?>jsScuttle.php"></script>
-
-
<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dijit/themes/nihilo/nihilo.css">
-<script type="text/javascript"
- src="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dojo/dojo.xd.js"
- djConfig="parseOnLoad:true, isDebug:false, usePlainJson:true"></script>
-
-<script type="text/javascript">
-dojo.require("dojo.parser");
-dojo.require("dojo.data.ItemFileReadStore");
-dojo.require("dojox.form.MultiComboBox");
-dojo.require("dijit.Tree");
-</script>
+<?php if (isset($loadjs)) :?>
+<script type="text/javascript" src="<?php echo ROOT ?>jsScuttle.php"></script>
<?php endif ?>
</head>