X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=roojs-debug.js;h=e8dd42b35d0c569dfef66af9932ade622a39204b;hb=248c5cdd0fe1c3012360d530f5fd34ef516a79fb;hp=db783cf0d6d5c8254ce2c0b9f48a8b9572e9e551;hpb=89b03a0009ad29be68bd417551948042c2b146b3;p=roojs1 diff --git a/roojs-debug.js b/roojs-debug.js index db783cf0d6..e8dd42b35d 100644 --- a/roojs-debug.js +++ b/roojs-debug.js @@ -505,15 +505,18 @@ Roo.factory(conf, Roo.data); return s.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1"); }, - // internal - callback : function(cb, scope, args, delay){ - if(typeof cb == "function"){ - if(delay){ - cb.defer(delay, scope, args || []); - }else{ - cb.apply(scope, args || []); - } + // internal (non-delayed, will get a return value..) + callback : function(cb, scope, args, delay) + { + if(typeof cb != "function"){ + return false; + } + if(delay){ + cb.defer(delay, scope, args || []); + return false } + return cb.apply(scope, args || []); + }, /** @@ -5513,7 +5516,7 @@ Roo.DomHelper = function(){ if (typeof(o) == 'string') { return parentNode.appendChild(document.createTextNode(o)); } - o.tag = o.tag || div; + o.tag = o.tag || 'div'; if (o.ns && Roo.isIE) { ns = false; o.tag = o.ns + ':' + o.tag; @@ -16992,6 +16995,13 @@ Roo.extend(Roo.Component, Roo.util.Observable, { */ actionMode : "el", + /** + * @cfg {String} style + * css styles to add to component + * eg. text-align:right; + */ + style : false, + /** @private */ getActionEl : function(){ return this[this.actionMode]; @@ -24973,8 +24983,8 @@ Roo.data.Store = function(config){ * If you return Json { data: [] , success: false, .... } then this will be thrown with the following args * * @param {Proxy} - * @param {Object} return from JsonData.reader() - success, totalRecords, records - * @param {Object} load options + * @param {Object} ret return data from JsonData.reader() - success, totalRecords, records + * @param {Object} opts - load Options * @param {Object} jsonData from your request (normally this contains the Exception) */ loadexception : true @@ -25980,24 +25990,24 @@ Roo.extend(Roo.data.HttpProxy, Roo.data.DataProxy, { // thse are take from connection... /** - * @cfg {String} url (Optional) The default URL to be used for requests to the server. (defaults to undefined) + * @cfg {String} url The default URL to be used for requests to the server. (defaults to undefined) */ /** - * @cfg {Object} extraParams (Optional) An object containing properties which are used as + * @cfg {Object} extraParams An object containing properties which are used as * extra parameters to each request made by this object. (defaults to undefined) */ /** - * @cfg {Object} defaultHeaders (Optional) An object containing request headers which are added + * @cfg {Object} defaultHeaders An object containing request headers which are added * to each request made by this object. (defaults to undefined) */ /** - * @cfg {String} method (Optional) The default HTTP method to be used for requests. (defaults to undefined; if not set but parms are present will use POST, otherwise GET) + * @cfg {String} method (GET|POST) The default HTTP method to be used for requests. (defaults to undefined; if not set but parms are present will use POST, otherwise GET) */ /** - * @cfg {Number} timeout (Optional) The timeout in milliseconds to be used for requests. (defaults to 30000) + * @cfg {Number} timeout The timeout in milliseconds to be used for requests. (defaults to 30000) */ /** - * @cfg {Boolean} autoAbort (Optional) Whether this request should abort any pending requests. (defaults to false) + * @cfg {Boolean} autoAbort Whether this request should abort any pending requests. (defaults to false) * @type Boolean */ @@ -45018,7 +45028,9 @@ Roo.extend(Roo.form.Checkbox, Roo.form.Field, { this.fireEvent('check', this, state); } this.inSetChecked = true; - this.el.dom.value = state ? this.inputValue : this.valueOff; + + this.el.dom.value = state ? this.inputValue : this.valueOff; + this.inSetChecked = false; }, @@ -45109,9 +45121,49 @@ Roo.extend(Roo.form.Radio, Roo.form.Checkbox, { this.el.dom.checked = 'checked' ; } + }, + /** + * Sets the checked state of the checkbox. + * On is always based on a string comparison between inputValue and the param. + * @param {Boolean/String} value - the value to set + * @param {Boolean/String} suppressEvent - whether to suppress the checkchange event. + */ + setValue : function(v,suppressEvent){ + + + //this.checked = (v === true || v === 'true' || v == '1' || String(v).toLowerCase() == 'on'); + //if(this.el && this.el.dom){ + // this.el.dom.checked = this.checked; + // this.el.dom.defaultChecked = this.checked; + //} + this.setChecked(String(v) === String(this.inputValue), suppressEvent); + + this.el.dom.form[this.name].value = v; + + //this.fireEvent("check", this, this.checked); + }, + // private.. + setChecked : function(state,suppressEvent) + { + + if(this.wrap){ + this.wrap[state ? 'addClass' : 'removeClass']('x-menu-item-checked'); + } + this.checked = state; + if(suppressEvent !== true){ + this.fireEvent('check', this, state); + } + + + + + }, + reset : function(){ + // this.setValue(this.resetValue); + //this.originalValue = this.getValue(); + this.clearInvalid(); } - });Roo.rtf = {}; // namespace Roo.rtf.Hex = function(hex) { @@ -46111,7 +46163,7 @@ Roo.htmleditor.FilterWord = function(cfg) this.replaceAname(cfg.node); // this is disabled as the removal is done by other filters; // this.walk(cfg.node); - + this.replaceImageTable(cfg.node); } @@ -46264,44 +46316,44 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, // this is a bit odd - but it appears some indents use ql-indent-1 //Roo.log(doc.innerHTML); - var listpara = doc.getElementsByClassName('MsoListParagraphCxSpFirst'); + var listpara = Array.from(doc.getElementsByClassName('MsoListParagraphCxSpFirst')); for( var i = 0; i < listpara.length; i ++) { - listpara.item(i).className = "MsoListParagraph"; + listpara[i].className = "MsoListParagraph"; } - listpara = doc.getElementsByClassName('MsoListParagraphCxSpMiddle'); + listpara = Array.from(doc.getElementsByClassName('MsoListParagraphCxSpMiddle')); for( var i = 0; i < listpara.length; i ++) { - listpara.item(i).className = "MsoListParagraph"; + listpara[i].className = "MsoListParagraph"; } - listpara = doc.getElementsByClassName('MsoListParagraphCxSpLast'); + listpara = Array.from(doc.getElementsByClassName('MsoListParagraphCxSpLast')); for( var i = 0; i < listpara.length; i ++) { - listpara.item(i).className = "MsoListParagraph"; + listpara[i].className = "MsoListParagraph"; } - listpara = doc.getElementsByClassName('ql-indent-1'); + listpara = Array.from(doc.getElementsByClassName('ql-indent-1')); for( var i = 0; i < listpara.length; i ++) { - listpara.item(i).className = "MsoListParagraph"; + listpara[i].className = "MsoListParagraph"; } // this is a bit hacky - we had one word document where h2 had a miso-list attribute. - var htwo = doc.getElementsByTagName('h2'); + var htwo = Array.from(doc.getElementsByTagName('h2')); for( var i = 0; i < htwo.length; i ++) { - if (htwo.item(i).hasAttribute('style') && htwo.item(i).getAttribute('style').match(/mso-list:/)) { - htwo.item(i).className = "MsoListParagraph"; + if (htwo[i].hasAttribute('style') && htwo[i].getAttribute('style').match(/mso-list:/)) { + htwo[i].className = "MsoListParagraph"; } } - listpara = doc.getElementsByClassName('MsoNormal'); - while(listpara.length) { - if (listpara.item(0).hasAttribute('style') && listpara.item(0).getAttribute('style').match(/mso-list:/)) { - listpara.item(0).className = "MsoListParagraph"; + listpara = Array.from(doc.getElementsByClassName('MsoNormal')); + for( var i = 0; i < listpara.length; i ++) { + if (listpara[i].hasAttribute('style') && listpara[i].getAttribute('style').match(/mso-list:/)) { + listpara[i].className = "MsoListParagraph"; } else { - listpara.item(0).className = "MsoNormalx"; + listpara[i].className = "MsoNormalx"; } } listpara = doc.getElementsByClassName('MsoListParagraph'); + // Roo.log(doc.innerHTML); - //Roo.log(doc.innerHTML); while(listpara.length) { @@ -46319,7 +46371,8 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, parent = p.parentNode, doc = parent.ownerDocument, items = []; - + + //Roo.log("Parsing: " + p.innerText) ; var listtype = 'ul'; while (ns) { if (ns.nodeType != 1) { @@ -46327,22 +46380,38 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, continue; } if (!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)) { + //Roo.log("Missing para r q1indent - got:" + ns.className); break; } var spans = ns.getElementsByTagName('span'); + if (ns.hasAttribute('style') && ns.getAttribute('style').match(/mso-list/)) { items.push(ns); ns = ns.nextSibling; has_list = true; - if (spans.length && spans[0].hasAttribute('style')) { - var style = this.styleToObject(spans[0]); - if (typeof(style['font-family']) != 'undefined' && !style['font-family'].match(/Symbol/)) { - listtype = 'ol'; + if (!spans.length) { + continue; + } + var ff = ''; + var se = spans[0]; + for (var i = 0; i < spans.length;i++) { + se = spans[i]; + if (se.hasAttribute('style') && se.hasAttribute('style') && se.style.fontFamily != '') { + ff = se.style.fontFamily; + break; } } + + + //Roo.log("got font family: " + ff); + if (typeof(ff) != 'undefined' && !ff.match(/(Symbol|Wingdings)/) && "·o".indexOf(se.innerText.trim()) < 0) { + listtype = 'ol'; + } continue; } + //Roo.log("no mso-list?"); + var spans = ns.getElementsByTagName('span'); if (!spans.length) { break; @@ -46435,7 +46504,7 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, lvl = nlvl; // not starting at 1.. - if (!stack[nlvl].hasAttribute("start") && num > 1) { + if (!stack[nlvl].hasAttribute("start") && listtype == "ol") { stack[nlvl].setAttribute("start", num); } @@ -46453,9 +46522,63 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, - } - + }, + replaceImageTable : function(doc) + { + /* +
+ | |
+ | + |