mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-21 18:21:30 +00:00
upgrade Dojo to 1.6.1
This commit is contained in:
@@ -1,59 +1,103 @@
|
||||
/*
|
||||
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
||||
Copyright (c) 2004-2011, 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
|
||||
*/
|
||||
|
||||
|
||||
if(!dojo._hasResource["dijit.form.SimpleTextarea"]){
|
||||
dojo._hasResource["dijit.form.SimpleTextarea"]=true;
|
||||
if(!dojo._hasResource["dijit.form.SimpleTextarea"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
|
||||
dojo._hasResource["dijit.form.SimpleTextarea"] = true;
|
||||
dojo.provide("dijit.form.SimpleTextarea");
|
||||
dojo.require("dijit.form.TextBox");
|
||||
dojo.declare("dijit.form.SimpleTextarea",dijit.form.TextBox,{baseClass:"dijitTextBox dijitTextArea",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{rows:"textbox",cols:"textbox"}),rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){
|
||||
if(!this.value&&this.srcNodeRef){
|
||||
this.value=this.srcNodeRef.value;
|
||||
}
|
||||
this.inherited(arguments);
|
||||
},filter:function(_1){
|
||||
if(_1){
|
||||
_1=_1.replace(/\r/g,"");
|
||||
}
|
||||
return this.inherited(arguments);
|
||||
},postCreate:function(){
|
||||
this.inherited(arguments);
|
||||
if(dojo.isIE&&this.cols){
|
||||
dojo.addClass(this.textbox,"dijitTextAreaCols");
|
||||
}
|
||||
},_previousValue:"",_onInput:function(e){
|
||||
if(this.maxLength){
|
||||
var _2=parseInt(this.maxLength);
|
||||
var _3=this.textbox.value.replace(/\r/g,"");
|
||||
var _4=_3.length-_2;
|
||||
if(_4>0){
|
||||
if(e){
|
||||
dojo.stopEvent(e);
|
||||
}
|
||||
var _5=this.textbox;
|
||||
if(_5.selectionStart){
|
||||
var _6=_5.selectionStart;
|
||||
var cr=0;
|
||||
if(dojo.isOpera){
|
||||
cr=(this.textbox.value.substring(0,_6).match(/\r/g)||[]).length;
|
||||
}
|
||||
this.textbox.value=_3.substring(0,_6-_4-cr)+_3.substring(_6-cr);
|
||||
_5.setSelectionRange(_6-_4,_6-_4);
|
||||
}else{
|
||||
if(dojo.doc.selection){
|
||||
_5.focus();
|
||||
var _7=dojo.doc.selection.createRange();
|
||||
_7.moveStart("character",-_4);
|
||||
_7.text="";
|
||||
_7.select();
|
||||
}
|
||||
}
|
||||
}
|
||||
this._previousValue=this.textbox.value;
|
||||
}
|
||||
this.inherited(arguments);
|
||||
}});
|
||||
|
||||
|
||||
dojo.declare("dijit.form.SimpleTextarea",
|
||||
dijit.form.TextBox,
|
||||
{
|
||||
// summary:
|
||||
// A simple textarea that degrades, and responds to
|
||||
// minimal LayoutContainer usage, and works with dijit.form.Form.
|
||||
// Doesn't automatically size according to input, like Textarea.
|
||||
//
|
||||
// example:
|
||||
// | <textarea dojoType="dijit.form.SimpleTextarea" name="foo" value="bar" rows=30 cols=40></textarea>
|
||||
//
|
||||
// example:
|
||||
// | new dijit.form.SimpleTextarea({ rows:20, cols:30 }, "foo");
|
||||
|
||||
baseClass: "dijitTextBox dijitTextArea",
|
||||
|
||||
attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, {
|
||||
rows:"textbox", cols: "textbox"
|
||||
}),
|
||||
|
||||
// rows: Number
|
||||
// The number of rows of text.
|
||||
rows: "3",
|
||||
|
||||
// rows: Number
|
||||
// The number of characters per line.
|
||||
cols: "20",
|
||||
|
||||
templateString: "<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",
|
||||
|
||||
postMixInProperties: function(){
|
||||
// Copy value from srcNodeRef, unless user specified a value explicitly (or there is no srcNodeRef)
|
||||
// TODO: parser will handle this in 2.0
|
||||
if(!this.value && this.srcNodeRef){
|
||||
this.value = this.srcNodeRef.value;
|
||||
}
|
||||
this.inherited(arguments);
|
||||
},
|
||||
|
||||
buildRendering: function(){
|
||||
this.inherited(arguments);
|
||||
if(dojo.isIE && this.cols){ // attribute selectors is not supported in IE6
|
||||
dojo.addClass(this.textbox, "dijitTextAreaCols");
|
||||
}
|
||||
},
|
||||
|
||||
filter: function(/*String*/ value){
|
||||
// Override TextBox.filter to deal with newlines... specifically (IIRC) this is for IE which writes newlines
|
||||
// as \r\n instead of just \n
|
||||
if(value){
|
||||
value = value.replace(/\r/g,"");
|
||||
}
|
||||
return this.inherited(arguments);
|
||||
},
|
||||
|
||||
_previousValue: "",
|
||||
_onInput: function(/*Event?*/ e){
|
||||
// Override TextBox._onInput() to enforce maxLength restriction
|
||||
if(this.maxLength){
|
||||
var maxLength = parseInt(this.maxLength);
|
||||
var value = this.textbox.value.replace(/\r/g,'');
|
||||
var overflow = value.length - maxLength;
|
||||
if(overflow > 0){
|
||||
if(e){ dojo.stopEvent(e); }
|
||||
var textarea = this.textbox;
|
||||
if(textarea.selectionStart){
|
||||
var pos = textarea.selectionStart;
|
||||
var cr = 0;
|
||||
if(dojo.isOpera){
|
||||
cr = (this.textbox.value.substring(0,pos).match(/\r/g) || []).length;
|
||||
}
|
||||
this.textbox.value = value.substring(0,pos-overflow-cr)+value.substring(pos-cr);
|
||||
textarea.setSelectionRange(pos-overflow, pos-overflow);
|
||||
}else if(dojo.doc.selection){ //IE
|
||||
textarea.focus();
|
||||
var range = dojo.doc.selection.createRange();
|
||||
// delete overflow characters
|
||||
range.moveStart("character", -overflow);
|
||||
range.text = '';
|
||||
// show cursor
|
||||
range.select();
|
||||
}
|
||||
}
|
||||
this._previousValue = this.textbox.value;
|
||||
}
|
||||
this.inherited(arguments);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user