From ed71bbc775a564dc3ba10af58fe509a0a29d7829 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Tue, 28 Aug 2012 00:33:27 -0300 Subject: [PATCH] Bug Do not fail on empty url. This should not append on modern browsers. --- .../src/main/javascript/widget/LinkEditor.js | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/mindplot/src/main/javascript/widget/LinkEditor.js b/mindplot/src/main/javascript/widget/LinkEditor.js index a37ff90f..0f1c9bb7 100644 --- a/mindplot/src/main/javascript/widget/LinkEditor.js +++ b/mindplot/src/main/javascript/widget/LinkEditor.js @@ -18,24 +18,24 @@ mindplot.widget.LinkEditor = new Class({ Extends:MooDialog, - initialize : function(model) { + initialize:function (model) { $assert(model, "model can not be null"); var panel = this._buildPanel(model); this.parent({ closeButton:true, destroyOnClose:true, title:'Link', - onInitialize: function(wrapper) { + onInitialize:function (wrapper) { wrapper.setStyle('opacity', 0); this.fx = new Fx.Morph(wrapper, { - duration: 600, - transition: Fx.Transitions.Bounce.easeOut + duration:600, + transition:Fx.Transitions.Bounce.easeOut }); }, - onBeforeOpen: function() { + onBeforeOpen:function () { this.overlay = new Overlay(this.options.inject, { - duration: this.options.duration + duration:this.options.duration }); if (this.options.closeOnOverlayClick) this.overlay.addEvent('click', this.close.bind(this)); @@ -43,18 +43,18 @@ mindplot.widget.LinkEditor = new Class({ this.overlay.open(); this.fx.start({ - 'margin-top': [-200, -100], - opacity: [0, 1] - }).chain(function() { + 'margin-top':[-200, -100], + opacity:[0, 1] + }).chain(function () { this.fireEvent('show'); }.bind(this)); }, - onBeforeClose: function() { + onBeforeClose:function () { this.fx.start({ - 'margin-top': [-100, 0], - opacity: 0 - }).chain(function() { + 'margin-top':[-100, 0], + opacity:0 + }).chain(function () { this.fireEvent('hide'); }.bind(this)); this.overlay.destroy(); @@ -63,20 +63,20 @@ mindplot.widget.LinkEditor = new Class({ this.setContent(panel); }, - _buildPanel : function (model) { + _buildPanel:function (model) { var result = new Element('div'); - var form = new Element('form', {'action': 'none', 'id':'linkFormId'}); + var form = new Element('form', {'action':'none', 'id':'linkFormId'}); // Add combo ... var select = new Element('select'); - select.setStyles({margin: '5px'}); + select.setStyles({margin:'5px'}); new Element('option', {text:'URL'}).inject(select); // new Element('option', {text:'Mail'}).inject(select); select.inject(form); // Add Input ... var input = new Element('input', { - placeholder: 'http://www.example.com/', + placeholder:'http://www.example.com/', type:Browser.ie ? 'text' : 'url', // IE workaround required:true, autofocus:'autofocus' @@ -88,11 +88,13 @@ mindplot.widget.LinkEditor = new Class({ input.inject(form); // Register submit event ... - form.addEvent('submit', function(event) { + form.addEvent('submit', function (event) { event.stopPropagation(); event.preventDefault(); - model.setValue(input.value); + if (input.value != null && input.value.trim() != "") { + model.setValue(input.value); + } this.close(); }.bind(this)); @@ -100,17 +102,17 @@ mindplot.widget.LinkEditor = new Class({ var buttonContainer = new Element('div').setStyles({paddingTop:5, textAlign:'center'}); // Create accept button ... - var okButton = new Element('input', {type:'submit', value:'Accept','class':'btn-primary'}); + var okButton = new Element('input', {type:'submit', value:'Accept', 'class':'btn-primary'}); okButton.addClass('button'); okButton.inject(buttonContainer); // Create remove button ... if ($defined(model.getValue())) { - var rmButton = new Element('input', {type:'button', value:'Remove','class':'btn-primary'}); + var rmButton = new Element('input', {type:'button', value:'Remove', 'class':'btn-primary'}); rmButton.setStyle('margin', '5px'); rmButton.addClass('button'); rmButton.inject(buttonContainer); - rmButton.addEvent('click', function(event) { + rmButton.addEvent('click', function (event) { model.setValue(null); event.stopPropagation(); this.close(); @@ -119,16 +121,16 @@ mindplot.widget.LinkEditor = new Class({ } // Create cancel button ... - var cButton = new Element('input', {type:'button', value:'Cancel','class':'btn-secondary'}); + var cButton = new Element('input', {type:'button', value:'Cancel', 'class':'btn-secondary'}); cButton.setStyle('margin', '5px'); cButton.addClass('button'); cButton.inject(buttonContainer); - cButton.addEvent('click', function() { + cButton.addEvent('click', function () { this.close(); }.bind(this)); buttonContainer.inject(form); - result.addEvent('keydown', function(event) { + result.addEvent('keydown', function (event) { event.stopPropagation(); }); @@ -136,8 +138,7 @@ mindplot.widget.LinkEditor = new Class({ return result; }, - show : function() { + show:function () { this.open(); } - });