| /* |
| Copyright (c) 2004-2006, The Dojo Foundation |
| All Rights Reserved. |
| |
| Licensed under the Academic Free License version 2.1 or above OR the |
| modified BSD license. For more information on Dojo licensing, see: |
| |
| http://dojotoolkit.org/community/licensing.shtml |
| */ |
| |
| dojo.provide("dojo.widget.InternetTextbox"); |
| |
| dojo.require("dojo.widget.ValidationTextbox"); |
| dojo.require("dojo.validate.web"); |
| |
| dojo.widget.defineWidget( |
| "dojo.widget.IpAddressTextbox", |
| dojo.widget.ValidationTextbox, |
| { |
| // summary: A Textbox which tests for a valid IP address |
| // description: Can specify formats for ipv4 or ipv6 as attributes in the markup. |
| |
| // allowDottedDecimal: Boolean: |
| // true or false, default is true. |
| |
| // allowDottedHex: Boolean: |
| // true or false, default is true. |
| |
| // allowDottedOctal: Boolean: |
| // true or false, default is true. |
| |
| // allowDecimal: Boolean: |
| // true or false, default is true. |
| |
| // allowHex: Boolean: |
| // true or false, default is true. |
| |
| // allowIPv6: Boolean: |
| // true or false, default is true. |
| |
| // allowHybrid: Boolean: |
| // true or false, default is true. |
| |
| mixInProperties: function(/*Object*/localProperties){ |
| // summary: see dojo.widget.Widget |
| |
| // First initialize properties in super-class. |
| dojo.widget.IpAddressTextbox.superclass.mixInProperties.apply(this, arguments); |
| |
| // Get properties from markup attributes, and assign to flags object. |
| if(localProperties.allowdotteddecimal){ |
| this.flags.allowDottedDecimal = (localProperties.allowdotteddecimal == "true"); |
| } |
| if(localProperties.allowdottedhex){ |
| this.flags.allowDottedHex = (localProperties.allowdottedhex == "true"); |
| } |
| if(localProperties.allowdottedoctal){ |
| this.flags.allowDottedOctal = (localProperties.allowdottedoctal == "true"); |
| } |
| if(localProperties.allowdecimal){ |
| this.flags.allowDecimal = (localProperties.allowdecimal == "true"); |
| } |
| if(localProperties.allowhex){ |
| this.flags.allowHex = (localProperties.allowhex == "true"); |
| } |
| if(localProperties.allowipv6){ |
| this.flags.allowIPv6 = (localProperties.allowipv6 == "true"); |
| } |
| if(localProperties.allowhybrid){ |
| this.flags.allowHybrid = (localProperties.allowhybrid == "true"); |
| } |
| }, |
| |
| isValid: function(){ |
| // summary: see dojo.widget.ValidationTextbox |
| return dojo.validate.isIpAddress(this.textbox.value, this.flags); |
| } |
| } |
| ); |
| |
| dojo.widget.defineWidget( |
| "dojo.widget.UrlTextbox", |
| dojo.widget.IpAddressTextbox, |
| { |
| // summary: |
| // A Textbox which tests for a valid URL |
| |
| // scheme: Boolean: |
| // Can be true or false. If omitted the scheme is optional. |
| |
| // allowIP: Boolean: |
| // Allow an IP address for hostname. Default is true. |
| |
| // allowLocal: Boolean: |
| // Allow the host to be "localhost". Default is false. |
| |
| // allowCC: Boolean: |
| // Allow 2 letter country code domains. Default is true. |
| |
| // allowGeneric: Boolean: |
| // Allow generic domains. Can be true or false, default is true. |
| |
| mixInProperties: function(/*Object*/localProperties){ |
| // summary: see dojo.widget.Widget |
| |
| // First initialize properties in super-class. |
| dojo.widget.UrlTextbox.superclass.mixInProperties.apply(this, arguments); |
| |
| // Get properties from markup attributes, and assign to flags object. |
| if ( localProperties.scheme ) { |
| this.flags.scheme = ( localProperties.scheme == "true" ); |
| } |
| if ( localProperties.allowip ) { |
| this.flags.allowIP = ( localProperties.allowip == "true" ); |
| } |
| if ( localProperties.allowlocal ) { |
| this.flags.allowLocal = ( localProperties.allowlocal == "true" ); |
| } |
| if ( localProperties.allowcc ) { |
| this.flags.allowCC = ( localProperties.allowcc == "true" ); |
| } |
| if ( localProperties.allowgeneric ) { |
| this.flags.allowGeneric = ( localProperties.allowgeneric == "true" ); |
| } |
| }, |
| |
| isValid: function(){ |
| // summary: see dojo.widget.ValidationTextbox |
| return dojo.validate.isUrl(this.textbox.value, this.flags); |
| } |
| } |
| ); |
| |
| //FIXME: DOC: need more consistent explanation on whether attributes are inherited from the parent. Some make sense, some don't? |
| |
| dojo.widget.defineWidget( |
| "dojo.widget.EmailTextbox", |
| dojo.widget.UrlTextbox, |
| { |
| // summary: |
| // A Textbox which tests for a valid email address |
| // description: |
| // Can use all markup attributes/properties of UrlTextbox except scheme. |
| |
| // allowCruft: Boolean: |
| // Allow address like <mailto:foo@yahoo.com>. Default is false. |
| |
| mixInProperties: function(/*Object*/localProperties){ |
| // summary: see dojo.widget.Widget |
| |
| // First initialize properties in super-class. |
| dojo.widget.EmailTextbox.superclass.mixInProperties.apply(this, arguments); |
| |
| // Get properties from markup attributes, and assign to flags object. |
| if(localProperties.allowcruft){ |
| this.flags.allowCruft = (localProperties.allowcruft == "true"); |
| } |
| }, |
| |
| isValid: function(){ |
| // summary: see dojo.widget.ValidationTextbox |
| return dojo.validate.isEmailAddress(this.textbox.value, this.flags); |
| } |
| } |
| ); |
| |
| //TODO: perhaps combine with EmailTextbox? |
| dojo.widget.defineWidget( |
| "dojo.widget.EmailListTextbox", |
| dojo.widget.EmailTextbox, |
| { |
| // summary: A Textbox which tests for a list of valid email addresses |
| // |
| // listSeparator: String |
| // The character used to separate email addresses. |
| // Default is ";", ",", "\n" or " " |
| |
| mixInProperties: function(/*Object*/localProperties){ |
| // summary: see dojo.widget.Widget |
| |
| // First initialize properties in super-class. |
| dojo.widget.EmailListTextbox.superclass.mixInProperties.apply(this, arguments); |
| |
| // Get properties from markup attributes, and assign to flags object. |
| if(localProperties.listseparator){ |
| this.flags.listSeparator = localProperties.listseparator; |
| } |
| }, |
| |
| isValid: function(){ |
| // summary: see dojo.widget.ValidationTextbox |
| return dojo.validate.isEmailAddressList(this.textbox.value, this.flags); |
| } |
| } |
| ); |