]> gitweb.fluxo.info Git - semanticscuttle.git/commitdiff
Bug fix: correct DOJO completion in tags edition
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Wed, 3 Dec 2008 09:46:31 +0000 (09:46 +0000)
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Wed, 3 Dec 2008 09:46:31 +0000 (09:46 +0000)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@186 b3834d28-1941-0410-a4f8-b48e95affb8f

includes/js/MultiComboBox.js [new file with mode: 0644]
templates/dojo.inc.php [new file with mode: 0644]
templates/editbookmark.tpl.php
templates/sidebar.block.menu2.php
templates/top.inc.php

diff --git a/includes/js/MultiComboBox.js b/includes/js/MultiComboBox.js
new file mode 100644 (file)
index 0000000..b263c8b
--- /dev/null
@@ -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 (file)
index 0000000..bc754a0
--- /dev/null
@@ -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
index 4f97dac17aa222ca1d2d59d94f3fe668d303ac5c..95923849c05e219e26cca6956205b52d022d1f91 100644 (file)
@@ -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)) {
index 40bf27beb149fa1495d136c31396b08cf4da7792..439ed3345ceffd7cd89ea42fb24e8f652d962426 100644 (file)
@@ -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>
index e149c34093961e4fbb2e54a629f66b062a074712..d2f05eaa1b11da27ce39bd47118818022e00c26a 100644 (file)
@@ -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>