diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-08-17 09:09:11 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-08-17 09:09:11 +0300 |
commit | 813814f02ed7bf226782861820570117fa196026 (patch) | |
tree | 1d11ffbff9cac6a1070f00fb03c7c14e2a54b876 /vendor/assets/javascripts/jquery.tagify.js | |
parent | 4ce034ca6526e34d71fb1a483a82be2486237e6b (diff) | |
download | gitlab-ce-813814f02ed7bf226782861820570117fa196026.tar.gz |
Application cleanup
Diffstat (limited to 'vendor/assets/javascripts/jquery.tagify.js')
-rw-r--r-- | vendor/assets/javascripts/jquery.tagify.js | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/vendor/assets/javascripts/jquery.tagify.js b/vendor/assets/javascripts/jquery.tagify.js deleted file mode 100644 index f22d4c71191..00000000000 --- a/vendor/assets/javascripts/jquery.tagify.js +++ /dev/null @@ -1,143 +0,0 @@ -/* Author: Alicia Liu */ - -(function ($) { - - $.widget("ui.tagify", { - options: { - delimiters: [13, 188], // what user can type to complete a tag in char codes: [enter], [comma] - outputDelimiter: ',', // delimiter for tags in original input field - cssClass: 'tagify-container', // CSS class to style the tagify div and tags, see stylesheet - addTagPrompt: 'add tags' // placeholder text - }, - - _create: function() { - var self = this, - el = self.element, - opts = self.options; - - this.tags = []; - - // hide text field and replace with a div that contains it's own input field for entering tags - this.tagInput = $("<input type='text'>") - .attr( 'placeholder', opts.addTagPrompt ) - .keypress( function(e) { - var $this = $(this), - pressed = e.which; - - for ( i in opts.delimiters ) { - - if (pressed == opts.delimiters[i]) { - self.add( $this.val() ); - e.preventDefault(); - return false; - } - } - }) - // for some reason, in Safari, backspace is only recognized on keyup - .keyup( function(e) { - var $this = $(this), - pressed = e.which; - - // if backspace is hit with no input, remove the last tag - if (pressed == 8) { // backspace - if ( $this.val() == "" ) { - self.remove(); - return false; - } - return; - } - }); - - this.tagDiv = $("<div></div>") - .addClass( opts.cssClass ) - .click( function() { - $(this).children('input').focus(); - }) - .append( this.tagInput ) - .insertAfter( el.hide() ); - - // if the field isn't empty, parse the field for tags, and prepopulate existing tags - var initVal = $.trim( el.val() ); - - if ( initVal ) { - var initTags = initVal.split( opts.outputDelimiter ); - $.each( initTags, function(i, tag) { - self.add( tag ); - }); - } - }, - - _setOption: function( key, value ) { - options.key = value; - }, - - // add a tag, public function - add: function(text) { - var self = this; - text = text || self.tagInput.val(); - if (text) { - var tagIndex = self.tags.length; - - var removeButton = $("<a href='#'>x</a>") - .click( function() { - self.remove( tagIndex ); - return false; - }); - var newTag = $("<span></span>") - .text( text ) - .append( removeButton ); - - self.tagInput.before( newTag ); - self.tags.push( text ); - self.tagInput.val(''); - } - }, - - // remove a tag by index, public function - // if index is blank, remove the last tag - remove: function( tagIndex ) { - var self = this; - if ( tagIndex == null || tagIndex === (self.tags.length - 1) ) { - this.tagDiv.children("span").last().remove(); - self.tags.pop(); - } - if ( typeof(tagIndex) == 'number' ) { - // otherwise just hide this tag, and we don't mess up the index - this.tagDiv.children( "span:eq(" + tagIndex + ")" ).hide(); - // we rely on the serialize function to remove null values - delete( self.tags[tagIndex] ); - } - }, - - // serialize the tags with the given delimiter, and write it back into the tagified field - serialize: function() { - var self = this; - var delim = self.options.outputDelimiter; - var tagsStr = self.tags.join( delim ); - - // our tags might have deleted entries, remove them here - var dupes = new RegExp(delim + delim + '+', 'g'); // regex: /,,+/g - var ends = new RegExp('^' + delim + '|' + delim + '$', 'g'); // regex: /^,|,$/g - var outputStr = tagsStr.replace( dupes, delim ).replace(ends, ''); - - self.element.val(outputStr); - return outputStr; - }, - - inputField: function() { - return this.tagInput; - }, - - containerDiv: function() { - return this.tagDiv; - }, - - // remove the div, and show original input - destroy: function() { - $.Widget.prototype.destroy.apply(this); - this.tagDiv.remove(); - this.element.show(); - } - }); - -})(jQuery);
\ No newline at end of file |