Jump to content

Edit History

franvpg

franvpg

1 hour ago, joseantgv said:

El control está en un JS. Entiendo que han añadido esa restricción porque habrá un límite en su API, luego si lo quitas posiblemente los envíos que vayan a Correos fallen. Te aconsejo que hables con ellos para que te den más información.

Efectivamente el problema viene del modulo de correosexpress. 

Dudo mucho que ellos sepan o quieran molestarse en arreglarlo, por mi experiencia con ellos cada vez que algo falla se lavan las manos.

Creo haber encontrado el archivo js a modificar aunque no tengo muy claro que tocar, pego aquí el archivo por si puedes echarle un vistazo:

function($){  
    $.fn.textareaCount = function(options, fn) {   
        var defaults = {  
            maxCharacterSize: -1,  
            originalStyle: 'originalTextareaInfo',
            warningStyle: 'warningTextareaInfo',  
            warningNumber: 20,
            displayFormat: '#input caracteres | #words palabras'
        };  
        var options = $.extend(defaults, options);
        
        var container = $(this);
        
        $("<div class='charleft'>&nbsp;</div>").insertAfter(container);
        
        //create charleft css
        var charLeftCss = {
            'width' : container.width()
        };
        
        var charLeftInfo = getNextCharLeftInformation(container);
        charLeftInfo.addClass(options.originalStyle);
        charLeftInfo.css(charLeftCss);
        
        var numInput = 0;
        var maxCharacters = options.maxCharacterSize;
        var numLeft = 0;
        var numWords = 0;
                
        container.bind('keyup', function(event){limitTextAreaByCharacterCount();})
                 .bind('mouseover', function(event){setTimeout(function(){limitTextAreaByCharacterCount();}, 10);})
                 .bind('paste', function(event){setTimeout(function(){limitTextAreaByCharacterCount();}, 10);});
        
        
        function limitTextAreaByCharacterCount(){
            charLeftInfo.html(countByCharacters());
            //function call back
            if(typeof fn != 'undefined'){
                fn.call(this, getInfo());
            }
            return true;
        }
        
        function countByCharacters(){
            var content = container.val();
            var contentLength = content.length;
            
            //Start Cut
            if(options.maxCharacterSize > 0){
                //If copied content is already more than maxCharacterSize, chop it to maxCharacterSize.
                if(contentLength >= options.maxCharacterSize) {
                    content = content.substring(0, options.maxCharacterSize);                 
                }
                
                var newlineCount = getNewlineCount(content);
                
                // newlineCount new line character. For windows, it occupies 2 characters
                var systemmaxCharacterSize = options.maxCharacterSize - newlineCount;
                if (!isWin()){
                     systemmaxCharacterSize = options.maxCharacterSize
                }
                if(contentLength > systemmaxCharacterSize){
                    //avoid scroll bar moving
                    var originalScrollTopPosition = this.scrollTop;
                    container.val(content.substring(0, systemmaxCharacterSize));
                    this.scrollTop = originalScrollTopPosition;
                }
                charLeftInfo.removeClass(options.warningStyle);
                if(systemmaxCharacterSize - contentLength <= options.warningNumber){
                    charLeftInfo.addClass(options.warningStyle);
                }
                
                numInput = container.val().length + newlineCount;
                if(!isWin()){
                    numInput = container.val().length;
                }
            
                numWords = countWord(getCleanedWordString(container.val()));
                
                numLeft = maxCharacters - numInput;
            } else {
                //normal count, no cut
                var newlineCount = getNewlineCount(content);
                numInput = container.val().length + newlineCount;
                if(!isWin()){
                    numInput = container.val().length;
                }
                numWords = countWord(getCleanedWordString(container.val()));
            }
            
            return formatDisplayInfo();
        }
        
        function formatDisplayInfo(){
            var format = options.displayFormat;
            format = format.replace('#input', numInput);
            format = format.replace('#words', numWords);
            //When maxCharacters <= 0, #max, #left cannot be substituted.
            if(maxCharacters > 0){
                format = format.replace('#max', maxCharacters);
                format = format.replace('#left', numLeft);
            }
            return format;
        }
        
        function getInfo(){
            var info = {
                input: numInput,
                max: maxCharacters,
                left: numLeft,
                words: numWords
            };
            return info;
        }
        
        function getNextCharLeftInformation(container){
                return container.next('.charleft');
        }
        
        function isWin(){
            var strOS = navigator.appVersion;
            if (strOS.toLowerCase().indexOf('win') != -1){
                return true;
            }
            return false;
        }
        
        function getNewlineCount(content){
            var newlineCount = 0;
            for(var i=0; i<content.length;i++){
                if(content.charAt(i) == '\n'){
                    newlineCount++;
                }
            }
            return newlineCount;
        }
        
        function getCleanedWordString(content){
            var fullStr = content + " ";
            var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
            var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
            var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
            var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
            var splitString = cleanedStr.split(" ");
            return splitString;
        }
        
        function countWord(cleanedWordString){
            var word_count = cleanedWordString.length-1;
            return word_count;
        }
    };  
})(jQuery); 

 

franvpg

franvpg

1 hour ago, joseantgv said:

El control está en un JS. Entiendo que han añadido esa restricción porque habrá un límite en su API, luego si lo quitas posiblemente los envíos que vayan a Correos fallen. Te aconsejo que hables con ellos para que te den más información.

Efectivamente el problema viene del modulo de correosexpress. 

Dudo mucho que ellos sepan o quieran molestarse en arreglarlo, por mi experiencia con ellos cada vez que algo falla se lavan las manos.

Creo haber encontrado la variable a modificar y parece que ya funciona.  Muchas gracias por tu ayuda.

 

franvpg

franvpg

1 hour ago, joseantgv said:

El control está en un JS. Entiendo que han añadido esa restricción porque habrá un límite en su API, luego si lo quitas posiblemente los envíos que vayan a Correos fallen. Te aconsejo que hables con ellos para que te den más información.

Efectivamente el problema viene del modulo de correosexpress. 

Dudo mucho que ellos sepan o quieran molestarse en arreglarlo, por mi experiencia con ellos cada vez que algo falla se lavan las manos.

Creo haber encontrado el archivo js que está dando los problemas aunque no tengo muy claro que modificar, es el siguiente:

(function($){  
    $.fn.textareaCount = function(options, fn) {   
        var defaults = {  
            maxCharacterSize: -1,  
            originalStyle: 'originalTextareaInfo',
            warningStyle: 'warningTextareaInfo',  
            warningNumber: 20,
            displayFormat: '#input caracteres | #words palabras'
        };  
        var options = $.extend(defaults, options);
        
        var container = $(this);
        
        $("<div class='charleft'>&nbsp;</div>").insertAfter(container);
        
        //create charleft css
        var charLeftCss = {
            'width' : container.width()
        };
        
        var charLeftInfo = getNextCharLeftInformation(container);
        charLeftInfo.addClass(options.originalStyle);
        charLeftInfo.css(charLeftCss);
        
        var numInput = 0;
        var maxCharacters = options.maxCharacterSize;
        var numLeft = 0;
        var numWords = 0;
                
        container.bind('keyup', function(event){limitTextAreaByCharacterCount();})
                 .bind('mouseover', function(event){setTimeout(function(){limitTextAreaByCharacterCount();}, 10);})
                 .bind('paste', function(event){setTimeout(function(){limitTextAreaByCharacterCount();}, 10);});
        
        
        function limitTextAreaByCharacterCount(){
            charLeftInfo.html(countByCharacters());
            //function call back
            if(typeof fn != 'undefined'){
                fn.call(this, getInfo());
            }
            return true;
        }
        
        function countByCharacters(){
            var content = container.val();
            var contentLength = content.length;
            
            //Start Cut
            if(options.maxCharacterSize > 0){
                //If copied content is already more than maxCharacterSize, chop it to maxCharacterSize.
                if(contentLength >= options.maxCharacterSize) {
                    content = content.substring(0, options.maxCharacterSize);                 
                }
                
                var newlineCount = getNewlineCount(content);
                
                // newlineCount new line character. For windows, it occupies 2 characters
                var systemmaxCharacterSize = options.maxCharacterSize - newlineCount;
                if (!isWin()){
                     systemmaxCharacterSize = options.maxCharacterSize
                }
                if(contentLength > systemmaxCharacterSize){
                    //avoid scroll bar moving
                    var originalScrollTopPosition = this.scrollTop;
                    container.val(content.substring(0, systemmaxCharacterSize));
                    this.scrollTop = originalScrollTopPosition;
                }
                charLeftInfo.removeClass(options.warningStyle);
                if(systemmaxCharacterSize - contentLength <= options.warningNumber){
                    charLeftInfo.addClass(options.warningStyle);
                }
                
                numInput = container.val().length + newlineCount;
                if(!isWin()){
                    numInput = container.val().length;
                }
            
                numWords = countWord(getCleanedWordString(container.val()));
                
                numLeft = maxCharacters - numInput;
            } else {
                //normal count, no cut
                var newlineCount = getNewlineCount(content);
                numInput = container.val().length + newlineCount;
                if(!isWin()){
                    numInput = container.val().length;
                }
                numWords = countWord(getCleanedWordString(container.val()));
            }
            
            return formatDisplayInfo();
        }
        
        function formatDisplayInfo(){
            var format = options.displayFormat;
            format = format.replace('#input', numInput);
            format = format.replace('#words', numWords);
            //When maxCharacters <= 0, #max, #left cannot be substituted.
            if(maxCharacters > 0){
                format = format.replace('#max', maxCharacters);
                format = format.replace('#left', numLeft);
            }
            return format;
        }
        
        function getInfo(){
            var info = {
                input: numInput,
                max: maxCharacters,
                left: numLeft,
                words: numWords
            };
            return info;
        }
        
        function getNextCharLeftInformation(container){
                return container.next('.charleft');
        }
        
        function isWin(){
            var strOS = navigator.appVersion;
            if (strOS.toLowerCase().indexOf('win') != -1){
                return true;
            }
            return false;
        }
        
        function getNewlineCount(content){
            var newlineCount = 0;
            for(var i=0; i<content.length;i++){
                if(content.charAt(i) == '\n'){
                    newlineCount++;
                }
            }
            return newlineCount;
        }
        
        function getCleanedWordString(content){
            var fullStr = content + " ";
            var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
            var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
            var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
            var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
            var splitString = cleanedStr.split(" ");
            return splitString;
        }
        
        function countWord(cleanedWordString){
            var word_count = cleanedWordString.length-1;
            return word_count;
        }
    };  
})(jQuery); 

franvpg

franvpg

1 hour ago, joseantgv said:

El control está en un JS. Entiendo que han añadido esa restricción porque habrá un límite en su API, luego si lo quitas posiblemente los envíos que vayan a Correos fallen. Te aconsejo que hables con ellos para que te den más información.

Efectivamente el problema viene del modulo de correosexpress. 

Dudo mucho que ellos sepan o quieran molestarse en arreglarlo, por mi experiencia con ellos cada vez que algo falla se lavan las manos.

En todo el modulo solo hay un archivo js y no parece contener nada acerca de los mensajes, estoy buscando en los php pero sin suerte por ahora.

De hecho esta es la única función que encuentro sobre los mensajes, nose si tendrá algo que ver con el problema... :

private function guardarMensajeOrden($idOrden, $mensaje, $private)
    {
        // private == 1 privada, private ==0 publica
        $message = new Message();
        $message->message  = $mensaje;
        $message->id_order = (int)$idOrden;
        $message->private  = $private;
        $message->add();
    }

franvpg

franvpg

1 hour ago, joseantgv said:

El control está en un JS. Entiendo que han añadido esa restricción porque habrá un límite en su API, luego si lo quitas posiblemente los envíos que vayan a Correos fallen. Te aconsejo que hables con ellos para que te den más información.

Efectivamente el problema viene del modulo de correosexpress. 

Dudo mucho que ellos sepan o quieran molestarse en arreglarlo, por mi experiencia con ellos cada vez que algo falla se lavan las manos.

En todo el modulo solo hay un archivo js y no parece contener nada acerca de los mensajes, estoy buscando en los php pero sin suerte por ahora.

De hecho esta es la única función que encuentro sobre los mensajes:

private function guardarMensajeOrden($idOrden, $mensaje, $private)
    {
        // private == 1 privada, private ==0 publica
        $message = new Message();
        $message->message  = $mensaje;
        $message->id_order = (int)$idOrden;
        $message->private  = $private;
        $message->add();
    }

franvpg

franvpg

1 hour ago, joseantgv said:

El control está en un JS. Entiendo que han añadido esa restricción porque habrá un límite en su API, luego si lo quitas posiblemente los envíos que vayan a Correos fallen. Te aconsejo que hables con ellos para que te den más información.

Efectivamente el problema viene del modulo de correosexpress. 

Dudo mucho que ellos sepan o quieran molestarse en arreglarlo, por mi experiencia con ellos cada vez que algo falla se lavan las manos.

En todo el modulo solo hay un archivo js y no parece contener nada acerca de los mensajes, estoy buscando en los php pero sin suerte por ahora.

De hecho esto es lo unico que encuentro sobre los mensajes:

private function guardarMensajeOrden($idOrden, $mensaje, $private)
    {
        // private == 1 privada, private ==0 publica
        $message = new Message();
        $message->message  = $mensaje;
        $message->id_order = (int)$idOrden;
        $message->private  = $private;
        $message->add();
    }

franvpg

franvpg

58 minutes ago, joseantgv said:

El control está en un JS. Entiendo que han añadido esa restricción porque habrá un límite en su API, luego si lo quitas posiblemente los envíos que vayan a Correos fallen. Te aconsejo que hables con ellos para que te den más información.

Efectivamente el problema viene del modulo de correosexpress. 

Dudo mucho que ellos sepan o quieran molestarse en arreglarlo, por mi experiencia con ellos cada vez que algo falla se lavan las manos.

En todo el modulo solo hay un archivo js y no parece contener nada acerca de los mensajes, estoy buscando en los php pero sin suerte por ahora.

×
×
  • Create New...