From 066fb4e8e3e911b8504365cf62ce1af15e391628 Mon Sep 17 00:00:00 2001
From: mensonge
Date: Wed, 3 Dec 2008 09:46:31 +0000
Subject: Bug fix: correct DOJO completion in tags edition
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@186 b3834d28-1941-0410-a4f8-b48e95affb8f
---
includes/js/MultiComboBox.js | 72 +++++++++++++++++++++++++++++++++++++++
templates/dojo.inc.php | 35 +++++++++++++++++++
templates/editbookmark.tpl.php | 8 +++--
templates/sidebar.block.menu2.php | 1 +
templates/top.inc.php | 22 ++----------
5 files changed, 117 insertions(+), 21 deletions(-)
create mode 100644 includes/js/MultiComboBox.js
create mode 100644 templates/dojo.inc.php
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 @@
+
+
+
+
+
+
+
\ 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");
?>
+
+
-
-
-
-
-
+
+
--
cgit v1.2.3-54-g00ecf