/[jquery]/tag_complete/tag_complete.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /tag_complete/tag_complete.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 51 by dpavlin, Sat Aug 19 10:50:49 2006 UTC revision 52 by dpavlin, Sat Aug 19 12:53:59 2006 UTC
# Line 8  var _tag = { Line 8  var _tag = {
8          name: new Array(),          name: new Array(),
9          obj: new Array(),          obj: new Array(),
10          selected: new Array(),          selected: new Array(),
11            entered: {                      // array of entered tags
12                    i: new Array(),         // offset to tags
13                    tag: new Array()        // mapping from tag i to entered
14            },
15    
16          current: null,          // current selected suggestion          current: null,                  // current selected suggestion
17    
18          select: function( tag ) {          select: function( tag ) {
19    
# Line 26  var _tag = { Line 30  var _tag = {
30    
31                                  jQuery.className.add( _tag.obj[i], 'selected' );                                  jQuery.className.add( _tag.obj[i], 'selected' );
32    
33                                  suggest += '<a href="#" onclick="javascript:return _tag.add_tag(\'' + t + '\',' + i + ')">' + t + '</a> ';                                  suggest += '<a href="#'+i+'" onclick="javascript:return _tag.tag(\'' + t + '\',' + i + ')">' + t + '</a> ';
34                                  _tag.selected[j++] = {                                  _tag.selected[j++] = {
35                                          i: i,                                          i: i,
36                                          obj: _tag.obj[i],                                          obj: _tag.obj[i]
37                                  }                                  }
38                          }                          }
39                  }                  }
# Line 80  var _tag = { Line 84  var _tag = {
84                  $.log.info('add '+i+': '+t);                  $.log.info('add '+i+': '+t);
85                  _tag.focus();                  _tag.focus();
86                  jQuery.className.add( _tag.obj[i], 'entered' );                  jQuery.className.add( _tag.obj[i], 'entered' );
87                    var entered_i = _tag.entered.i.length;
88                    _tag.entered.i[ entered_i ] = i;
89                    _tag.entered.tag[i] = entered_i;
90                  _tag.clean_selected();                  _tag.clean_selected();
91                  $('#tags').val(                  $('#tags').val(
92                          $('#tags').val().replace(                          $('#tags').val().replace(
# Line 89  var _tag = { Line 96  var _tag = {
96                  return false;                  return false;
97          },          },
98    
99            remove_tag: function( t, i ) {
100                    $.log.info('remove '+i+': '+t);
101                    _tag.focus();
102                    jQuery.className.remove( _tag.obj[i], 'entered' );
103                    // remove selected tag and rebuild tags
104    
105                    var ent_i = _tag.entered.tag[i];
106                    $.log.debug('entered i:'+ent_i);
107                    _tag.entered.i.splice(ent_i,1);
108                    _tag.entered.tag[i] = null;
109    
110                    $.log.debug("tags "+_tag.entered.i.join(","));
111    
112                    var tags = '';
113                    for (var j = 0; j < _tag.entered.i.length; j++) {
114                            var tag_i = _tag.entered.i[j];
115                            tags += _tag.name[ tag_i ] + ' ';
116                            _tag.entered.tag[ tag_i ] = j;
117                    }
118    
119                    _tag.clean_selected();
120                    $.log.debug('tags left: '+tags);
121                    $('#tags').val( tags );
122                    return false;
123            },
124    
125            tag: function( t, i ) {
126                    if (_tag.entered.tag[i] != null) {
127                            _tag.remove_tag( t, i );
128                    } else {
129                            _tag.add_tag( t, i );
130                    }
131            },
132    
133          move_suggested: function( where ) {          move_suggested: function( where ) {
134                  var c = _tag.current;                  var c = _tag.current;
135                  if (c == null) {                  if (c == null) {
# Line 127  $(document).ready( function() { Line 168  $(document).ready( function() {
168                  _tag.name[i] = n;                  _tag.name[i] = n;
169                  _tag.obj[i] = this;                  _tag.obj[i] = this;
170                  this.onclick = function() {                  this.onclick = function() {
171                          return _tag.add_tag( n, i );                          return _tag.tag( n, i );
172                  }                  }
173                    this.href = '#'+i;      // FIXME debug
174          });          });
175          $.log.info( 'found ' + _tag.name.length + ' tags' );          $.log.info( 'found ' + _tag.name.length + ' tags' );
176    

Legend:
Removed from v.51  
changed lines
  Added in v.52

  ViewVC Help
Powered by ViewVC 1.1.26