Ir para conteúdo


Conteúdo mais curtido


#129002 Campanha - Ultilização do Sencha Fiddle

Postado por Wemerson Januario em 16 September 2015 - 10:18

Olá meus amigos tudo bem?

 

Tenho percebido muitos posts de ajuda aqui na comunidade onde membros com problemas coloca apenas trechos de códigos ao invés de códigos completos .

 

Tem muitos também que postam o código completo pra facilitar que outros membros possam ajudarem, isso é ótimo.

 

 

Tenho uma proposta facilitadora para todos nós.

 

Vamos ter o hábito de usar uma grande ferramenta da Sencha que é o Sencha Fiddle. Com ela podemos demonstrar na prática nossas issues, Sendo assim não dá aquele desanimo ao ler o post.

 

Crie fiddles demonstrando o problema na prática e postem o respectivo link nas threads aqui do fórum e também é super importante informar qual versão do Ext JS estão usando.

 

Creio que esse hábito tornará a comunidade ainda mais envolvida. Vamos ajudar os outros membros te ajudar.

 

Abraços pessoal.


  • Legolas, Fabio Jr. Policeno, ratamiette e 1 outro curtiram isso


#128118 Ext JS 6

Postado por Wemerson Januario em 19 March 2015 - 14:33

Tenho acompanhado também no fórum oficial sobre o merge dos frameworks, acho que será uma grande feito. Atualmente o Sencha Touch na minha opnião está meio hibernado de atualizações devido a essa força tarefa da unificação dos frameworks. Comparando o histórico de releases está mesmo mais rápido do 5 para o 6 se realmente for lançado no meio do ano/2015. Não vejo isso como ruim, até porque o mercado/concorrência está acelerado e não tem como ficar estagnado em uma versão majoritária por muito tempo senão dá no que dá(procurar algo melhor/moderno,estável). Podem tirar como exemplo o Google Chrome e Firefox, que já estão nas versões pra lá de 40 e não param de fazer releases.

Até concordo com o lançamento do Ext JS 5.0.0 e 5.0.1 foi meio nas coxas, mas com o 5.1.0 conseguiram estabilizar mais o frame e já está confiavél ao meu ver, e até mesmo uso o 5.1.0

 

 

Vale lembrar que o Ext JS é um framework indicado para apps corporativas, grandes, ricas e tals, por isso tem o seu preço tão caro(acho também),pois posso dizer que são únicos no mercado que possui um framework tão organizado e poderoso, logo podem aproveitar da situação e elevar o preço, uma vez que não existe concorrente tão bom que chega aos pés deles(pelo menos não conheci ainda). Hoje tem Jquery, Quooxdo, Bootstrap, Prototype, Angular JS entre outros como opções, podem até fazer o que Ext Js faz, porém a dor,tempo, sofrimento, amadorismo não compensa quando precisa desenvolver algo mais avançado, corporativo com tempo curto.Todos ainda usam muito HTML, coisa que pra mim demora demais na produção.

 

Sobre a colocação do @Nom4d3 onde fala que  aplicação mobile tem que ser nativa e "pronto", Acho que não é bem assim não, Imagina você fazer uma App em 3  ou mais linguagens sendo que em HTML5 é mais simples e roda em "todas" plataformas, Pra cada caso tem a solução/tecnologia correta de se usar.

 

Enfim, Estou curioso nas sessões secretas do SenchaCon 2015. Deve vim coisa boa ai.

Vamos torcer para que sempre evolua e que a versão 6 nos surpreenda!

 

 


  • Legolas, Fabio Jr. Policeno, durtto e 1 outro curtiram isso


#129760 Algum palpite sobre a IDERA ter comprado a Sencha?

Postado por Loiane em 31 August 2017 - 17:20

Por alguns posts por aí (https://www.akawebde...arewell-sencha/), não sobrou quase ninguém que realmente sabe do fw pra dar manutenção, vai ser tudo uma galera nova.


  • Wemerson Januario, Legolas e alex_cyro curtiram isso


#129335 Campo de pesquisa no GRID

Postado por Loiane em 27 January 2016 - 08:41

Uso o search field que mencionaram para pesquisas mais simples e para funcionalidade de filtro mais completo uso o plugin filterbar: https://market.sench...sions/filterbar(acho melhorzinho que o plugin de filtro da sencha - que é escondido do usuários).


  • Legolas, ratamiette e MagnoTi curtiram isso


#128954 Nomeação do novo moderador

Postado por Legolas em 26 August 2015 - 19:30

Olá meus caros e caras da comunidade ExtJS-BR,

 

Como já devem ter percebido já tem um tempo nós da Staff estamos tentando fazer a nossa comunidade cada vez melhor realizando algumas melhorias/mudanças no fórum. Uma das mudanças foi a alteração do software do fórum, pois já estávamos já limitados com o software antigo, sei que ainda há muito a evoluir, mas com a ajuda de todos podemos conseguir.

 

Hoje venho anunciar mais uma melhoria, a nomeação do novo moderador do fórum o Wemerson Januario. Sou suspeito para falar, pois já vejo o trabalho dele há tempos, ele e também outros membros são considerados para nós Admins como "Members experts", pois tem um conhecimento diferenciado para ajudar a comunidade. Agora com a ajuda na moderação será de grande valor para todos, pois precisamos cada vez mais de pessoas empenhadas a ajudar a comunidade.

 

Dando um testemunho sobre a questão da moderação, eu mesmo sou uma prova, pois iniciei no fórum como um membro e com o tempo ajudando a comunidade fui nomeado a moderador do fórum e depois de um tempo "subi de cargo" me tornando um Admin do fórum.

 

Quem está aqui há mais tempo sabe que a comunidade era mais ativa antes, sei que muitos fatores influenciam nisso, mas quero deixar aqui a porta aberta para os demais membros porque somos nós ajudando, postando dúvidas, postando links de exemplos, etc. Que faz a comunidade crescer.

 

Então sem mais delongas seja bem vindo a equipe "Staff" Wemerson Januario, agradeço desde já toda ajuda dada e as futuras contribuições com a nossa comunidade.

 

Forte abraço.

 

Equipe ExtjsBrasil!

 

 


  • Wemerson Januario, Fabio Jr. Policeno e alvarobrg curtiram isso


#128428 Ext.grid.column.ActionButton

Postado por Wemerson Januario em 25 May 2015 - 23:09

Recentemente precisei de um menu dropdown para trabalhar com ações, para não usar vários actionscolumns e buttons nas toolbars, resolvi Extendre a classe  Ext.grid.column.Widget e criei um simples tipo de coluna chamado ActionButton

Testado em Ext JS 5.x and 6.x


Código Fonte:
https://github.com/w...mn.ActionButton
Exemplo online
https://fiddle.sencha.com/#fiddle/ndf

Blog Post

http://wemersonjanua...s-do-gridpanel/

Caso queira contribuir, o código está no github

Espero que ajude alguém.


  • Legolas, Fabio Jr. Policeno e alvarobrg curtiram isso


#129758 Algum palpite sobre a IDERA ter comprado a Sencha?

Postado por Alex Prates em 27 August 2017 - 09:37

A compra do Sencha/ExtJS pela IDERA certamente será para embutir no Embarcadero RAD Studio (Compiladores Delphi e C++ Builder) um framework Javascript que possibilite o desenvolvimento WEB de forma rápida. Com isso ela consegue emplacar no mercado de desenvolvimento uma solução que produza aplicações pra todos os dispositivos móveis, web e desktop.
Não acho que isso seja bom para a comunidade GPL, pois o histórico da Embarcadero/Idera não abona esse caminho. O foco deles são corporações e as taxas de licenciamento de qualquer ferramenta são altas para desenvolvedores individuais. Hoje uma versão de Delphi que suporta desenvolvimento multiplataforma custa R$ 30 mil a licença individual.
Somando-se a isso ainda existem as tentativas abortadas da Embarcadero (Borland/Inprise/Codegear) entrar no mundo GPL. O Kylix (https://pt.wikipedia...Kylix_(software) que seria uma IDE de desenvolvimento gráfico para o mundo Linux foi lançado gratuitamente no mercado, depois desistiram alegando que não houve a aceitação esperada. Saiu do mercado e levaram os codigos fontes. Depois veio o Interbase (Banco de Dados) (https://pt.wikipedia.org/wiki/InterBase) , que foi liberado pra comunidade GPL e retirada do mercado novamente. Uma turma esperta se apoderou do código e criou o Firebird (https://pt.wikipedia.org/wiki/Firebird_(servidor_de_base_de_dados) que até hoje está no mercado como uma ótima opção para quem quer uma alternativa free em Banco de Dados.
 
Eu, particularmente acredito que a Embarcadero/IDERA deverá com o tempo manter uma versão básica do ExtJS aberto e outra mais completa dentro da sua ferramenta RAD Studio. Se as duas vão evoluir na mesma velocidade e no mesmo patamar de melhorias tecnológicas é uma incógnita que só o tempo dirá.

  • Legolas e alex_cyro curtiram isso


#129691 Sobre o novo programa Consultor Independente da Sencha

Postado por Wemerson Januario em 04 April 2017 - 18:19

A licença dá direito ao desenvolver/consultor criar apps e ele mesmo vender/comercializar, agora se o cliente quiser o código fonte e vender a solução que vc desenvolveu ele não terá direito, estará ilegal, a não ser se você repassar a titularidade de licença para essa empresa.

 

 

Se todos clientes que você tiver quiserem usar Ext JS e deter o direito de comerciazar  os produtos feitos com o framework ele que tem que ter a licença pra você como profissional usar.

 

 

Agora se seu cliente não quiser bancar a licença pra você, você  poderá usar a sua licença, porém o direito de comercialização e detenção do código é seu.

 

A sua licença dá direito a criar N aplicações independente pra qual e quantos clientes, o importante é que a licença é sua, e você que é o dono da app e vai verder para o seu cliente o produto criado

 

Sacou?


  • Legolas e alex_cyro curtiram isso


#129476 findRecord retornando null

Postado por Wemerson Januario em 13 July 2016 - 23:00

Wemerson, mas pra eu conseguir fazer isso, terei que mudar o tipo do dado do meu model, né? 

Faça como o Legolas disse, adicione mais um campo no model, e coloque não esqueça de colocar persist: false nele para não escrever ele quando for salvar o model.


  • Legolas e Marcelo Augusto curtiram isso


#129451 Como customizar o displayField do Combobox

Postado por Legolas em 16 June 2016 - 08:19

E ai galera, só me intrometendo um pouco.

 

Esse lance de realizar um loadRecord e não popular o ComboBox, é uma dúvida recorrente de muitos membros aqui do fórum, alguns já até acharam algumas soluções para isso.

 

Veja se a thread [RESOLVIDO] Form - Atualizar - Combobox lhe ajuda.


  • ratamiette e Marcelo Augusto curtiram isso


#129436 View compartilhada e eventos sendo ouvidos no controller errado

Postado por ratamiette em 08 June 2016 - 10:39

Bom dia,

 

 

E se você tentar fazer o seguinte:

 

No Ext.widget você passar um itemId.

 

- Controller Fornecedor: 

showCidadeSearch: function () {
     Ext.widget('cidadeSearch',{
           itemId: 'cidadeSearchFornecedor'
     });
},

- Controller Franquia: 

showCidadeSearch: function () {
     Ext.widget('cidadeSearch',{
           itemId: 'cidadeSearchFranquia'
     });
},

E aí no listeners de Fornecedor: 

'#cidadeSearchFornecedor button[action=doCidadeSearch]': {
     click: this.doCidadeSearch
},
'#cidadeSearchFornecedorbutton[action=doCidadeSelect]': {
     click: this.doCidadeSelect
},
'#cidadeSearchFornecedor': {
     itemdblclick: this.doCidadeSelect
}

E você faria o mesmo com a Franquia... Não sei se é a melhor forma, ou se tem como passar o escopo como vc diz... espero que ajude.


  • djhonyy e Legolas curtiram isso


#129403 Filtrar store de grid localmente

Postado por Wemerson Januario em 26 April 2016 - 11:52

use filter ao invés de load. load irá tentar ir de forma remota.

seuStore.filter({
                    property: 'data_ponto',
                    //value: Ext.Date.format(value, 'Y-m-d')
                    value: value
                });

Fiz um fiddle demonstrando. Veja:

https://fiddle.sencha.com/#fiddle/199u


  • ratamiette e Marcelo Augusto curtiram isso


#129390 Problemas para percorrer os records de uma store

Postado por Wemerson Januario em 11 April 2016 - 11:01

Olá Marcelo, só vai funcionar se o Store estiver dados carregados, você precisa fazer isso e garantir que o load já foi feito.

 

tenta assim, verá que vai dar certo

var store = component.getStore();

store.on('load', function(st){
    store.each(function(rec) {
	console.log(rec.get('dataPonto'));
    });
});


  • ratamiette e Marcelo Augusto curtiram isso


#129245 Como customizar o displayField do Combobox

Postado por ratamiette em 15 January 2016 - 10:42

Olá Marcelo Augusto,

 

Tudo bem? Não sei se é isso que você precisa, pois você não deu muito detalhe do que acontece.  Tenho um combo de endereço, no qual eu exibo: rua, numero - bairro - cidade

 

Então eu utilizo da seguinte forma: 

 

tpl: Ext.create('Ext.XTemplate',
    '<tpl for=".">',
        '<div class="x-boundlist-item">',
            '{logradouro},{numero} - {bairro} - {idCidadecidade}',
        '</div>',
    '</tpl>'
),
displayTpl: Ext.create('Ext.XTemplate',
    '<tpl for=".">',
        '{logradouro},{numero} - {bairro} - {idCidadecidade}',
    '</tpl>'
)

* Se você somente colocar o tpl, só vai ser exibido desta forma {logradouro},{numero} - {bairro} - {idCidadecidade} quando você clica no combo, após a seleção, ele só exibe uma propriedade, no meu caso somente o logradouro. Então uso o displayTpl para continuar exibindo da forma que quero após a seleção.

 

Segue o link no Sencha Fiddle. Experimente comentar o displayField pra você entender o que estou falando. https://fiddle.sencha.com/#fiddle/13tt

 

 

Agora se o seu erro for outro, dê mais detalhes. (Se possível coloque seu código pra rodar no Sencha Fiddle, fica mais fácil compreender o problema)

 

 

Até mais!


  • Wemerson Januario e Legolas curtiram isso


#129229 Quem ainda usa ExtJS - 2016?

Postado por P Chan em 12 January 2016 - 17:21

Estou usando Bootstrap/Angular JS e JQuery no lugar do ExtJS e gostaria muito que você fizesse um curso sobre isso Principalmente com manipulação de grid master details com pesquisa e paginação, assim como você explicou no seu segundo livro de ExtJS, Mastering ExtJS que comprei logo no lançamento da primeira edição.

 

Aliás!! Se você fizer um livro explicando um CRUD com código limpo, usando Bootstrap 4 + Angular JS + Jquery com CRUD completo usando REST e explicando grid Master Details com paginação e pesquisa e de quebra usar um PHP 7 de backend de fundo, pronto! É o livro do ano para mim! E não precisa nem usar maravilhosos frameworks PHP de fundo, pois só de a galera já ver como o PHP 7 funciona de verdade já vai valer a compra porque vai ser um livro atualizado e útil para o dois lados. Para a galera do design que só quer saber usar o Bootstrap e JQuery e para o pessoal que gosta da regra de negócio.


  • Sávio Bueno e Jan Ferrer curtiram isso


#128836 Curso de Ext JS 6 - Pato Branco/PR

Postado por Legolas em 30 July 2015 - 12:36

Fala Fabio, cara se fosso online até animava, mas presencial para mim é difícil.

 

Sou meio suspeito para falar, mas sei que você tem bastante conhecimento com essa nova versão e se conhecer alguém de Pato Branco pode deixar que indico o seu curso.

 

Parabéns pela iniciativa.


  • Fabio Jr. Policeno e alvarobrg curtiram isso


#128835 Curso de Ext JS 6 - Pato Branco/PR

Postado por Fabio Jr. Policeno em 30 July 2015 - 10:57

Arquivo anexado  Ext. Js 6 - Avançado - pequeno.jpg   228.93K   1 Downloads

Obs: O curso será adiado para fim de setembro provavelmente pois precisarei fazer uma viajem de urgência. Maiores informações em breve.


  • Wemerson Januario e alvarobrg curtiram isso


#128754 Repositório de tutoriais e artigos sobre ExtJS 6

Postado por Loiane em 13 July 2015 - 09:43

Oi pessoal,

 

Comecei a gerenciar uma lista de artigos e tutoriais sobre Ext JS 6.

Estamos fazendo o mesmo trabalho em uma outra comunidade e fica bem melhor de organizar e contribuir com links para que todos possam acessar.

 

Fiquem à vontade para contribuir com mais links. A idéia é ser um repositório central mesmo e facilitar a busca depois.

 

Link: https://github.com/l...ncha-adventures


  • Wemerson Januario e Sávio Bueno curtiram isso


#128703 Ext JS 6 GA

Postado por Wemerson Januario em 01 July 2015 - 21:43

Fiz alguns testes hoje, segue meu relatório http://wemersonjanua...sobre-ext-js-6/


  • Legolas e Fabio Jr. Policeno curtiram isso


#128176 Formado de Moeda em xtype: 'textfield' ou 'numberfield'

Postado por Wemerson Januario em 06 April 2015 - 19:04

Espero que ajude!

    /* * GNU General Public License Usage
     * This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
     *
     * http://www.gnu.org/licenses/lgpl.html
     *
     * @description: This class provide additional format to numbers by extending Ext.form.field.Number
     *
     * @author: Greivin Britton
     * @email: [email protected]
     * @version: 2 compatible with ExtJS 4 (And ExtJS 5 - chamacs)
     */
    Ext.define('Ext.ux.form.NumericField', {
      extend: 'Ext.form.field.Number',//Extending the NumberField
      alias: 'widget.numericfield',//Defining the xtype	
      currencySymbol: 'R$ ',
      useThousandSeparator: true,
      thousandSeparator: '.',
      alwaysDisplayDecimals: true,

      // MOD - chamacs
      // @private
      isCurrency : false,

      // MOD - pmiguelmartins
      currencySymbolPos : 'left', // left , right

      // MOD - chamacs
      //fieldStyle: 'text-align: right;',

      // MOD - chamacs
      allowExponential : false,

      /**
       * initComponent
       */
      initComponent: function(){
        if (this.useThousandSeparator && this.decimalSeparator == ',' && this.thousandSeparator == ',') {
          this.thousandSeparator = '.';
        }
        else if (this.allowDecimals && this.thousandSeparator == '.' && this.decimalSeparator == '.') {
          this.decimalSeparator = ',';
        }

        // MOD - chamacs
        this.isCurrency = !Ext.isEmpty(this.currencySymbol);

        this.callParent(arguments);
      },

      /**
       * setValue
       */
      setValue: function(value){
        // MOD - chamacs
        Ext.ux.form.NumericField.superclass.setValue.apply(this, [value != null ? value.toString().replace('.', this.decimalSeparator) : value]);

        this.setRawValue(this.getFormattedValue(this.getValue()));
      },

      /**
       * getFormattedValue
       */
      getFormattedValue: function(value){
        if (Ext.isEmpty(value) || !this.hasFormat()) {
          return value;
        }
        else {
          var neg = null;

          value = (neg = value < 0) ? value * -1 : value;
          value = this.allowDecimals && this.alwaysDisplayDecimals ? value.toFixed(this.decimalPrecision) : value;

          if (this.useThousandSeparator) {
            if (this.useThousandSeparator && Ext.isEmpty(this.thousandSeparator)) {
              throw ('NumberFormatException: invalid thousandSeparator, property must has a valid character.');
            }
            if (this.thousandSeparator == this.decimalSeparator) {
              throw ('NumberFormatException: invalid thousandSeparator, thousand separator must be different from decimalSeparator.');
            }

            value = value.toString();

            var ps = value.split('.');
            ps[1] = ps[1] ? ps[1] : null;

            var whole = ps[0];

            var r = /(\d+)(\d{3})/;

            var ts = this.thousandSeparator;

            while (r.test(whole)) {
              whole = whole.replace(r, '$1' + ts + '$2');
            }

            value = whole + (ps[1] ? this.decimalSeparator + ps[1] : '');
          }

          // MOD - pmiguelmartins - updated by chamacs
          var position1 = this.isCurrency ? this.currencySymbol + ' ' : '';
          var position2 = value;
          if (this.currencySymbolPos === 'right') {
            position1 = value;
            position2 = this.isCurrency ? ' ' + this.currencySymbol : '';
          }
          return Ext.String.format('{0}{1}{2}', (neg ? '-'  : ''), position1, position2);
        }
      },

      /**
       * overrides parseValue to remove the format applied by this class
       */
      parseValue: function(value){
        // MOD - chamacs
        //Replace the currency symbol and thousand separator
        return Ext.ux.form.NumericField.superclass.parseValue.apply(this, [this.removeFormat(value)]);
      },

      /**
       * Remove only the format added by this class to let the superclass validate with it's rules.
       * @param {Object} value
       */
      removeFormat: function(value){
        // MOD - chamacs
        if (Ext.isEmpty(value)) {
          return '';
        }
        else if (!this.hasFormat()) {
          return value;
        }
        else {
          // MOD - bhaidaya
          value = Ext.String.trim(value.toString().replace(this.currencySymbol, ''));

          value = this.useThousandSeparator ? value.replace(new RegExp('[' + this.thousandSeparator + ']', 'g'), '') : value;
          return value;
        }
      },

      /**
       * Remove the format before validating the the value.
       * @param {Number} value
       */
      getErrors: function(value) {
        // MOD - chamacs
        return Ext.ux.form.NumericField.superclass.getErrors.apply(this, [this.removeFormat(value)]);
      },

      /**
       * hasFormat
       */
      hasFormat: function() {
        return this.decimalSeparator != '.' || (this.useThousandSeparator == true && this.getRawValue() != null) || !Ext.isEmpty(this.currencySymbol) || this.alwaysDisplayDecimals;
      },

      /**
       * Display the numeric value with the fixed decimal precision and without the format using the setRawValue, don't need to do a setValue because we don't want a double
       * formatting and process of the value because beforeBlur perform a getRawValue and then a setValue.
       */
      onFocus: function() {
        this.setRawValue(this.removeFormat(this.getRawValue()));

        this.callParent(arguments);
      },

      /**
       * MOD - Jeff.Evans
       */
      processRawValue: function(value) {
        return this.removeFormat(value);
      }
    });

  • Legolas e Antonio Junior curtiram isso