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


#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


#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


#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


#129425 Quem ainda usa ExtJS - 2016?

Postado por rafaelreuber em 21 May 2016 - 16:50

Eu estou usando o ExtJS6 em um projeto.

Concordo que as políticas de pricing  da sencha tornaram-se muito agressivas. No meu caso, o preço valeu muito a pena.

Meu projeto necessita de muitas (e põe muitas) features que só o ExtJS já possui. Se fossemos implementar as features necessárias com AngularJS + Bootstrap, isso ia triplicar o custo do projeto.


  • Wemerson Januario 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


#129264 Campo de pesquisa no GRID

Postado por ratamiette em 19 January 2016 - 10:18

Outra opção também seria ter  o filtro somente no Header de cada coluna do Grid. Clicando na seta da coluna e indo na opção Filters.

 

Segue exemplo: http://docs.sencha.c...lter-local.html


  • Wemerson Januario e MagnoTi curtiram isso


#129263 Campo de pesquisa no GRID

Postado por Wemerson Januario em 19 January 2016 - 10:09

Talvez possa ajudar

 

https://fiddle.sencha.com/#fiddle/11p5


  • Legolas e ratamiette 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


#128851 Perguntas de quem ainda está decidindo qual tecnologia usar no FrontEnd

Postado por Loiane em 02 August 2015 - 12:53

Hoje realmente recomendo algo que seja javascript no lado do frontend. 

Não recomendo usar nada que vc programe em linguagem X e essa mesma gera o HTML/JS/CSS pra vc. Isso era muito usado no inicio dos anos 2000 com a web 2.0, mas hoje os tempos são outros (HTML5). Mas essa é somente minha opinião pessoal - até tenho palestra sobre esse assunto.

 

IDE é questão de gosto pessoal. A senha em si não tem nenhuma IDE - tem o Sencha Architect que é mais uma ferramenta de prototipação. Tenho usado por 2 anos já o WebStorm/IntelliJ IDEA e gosto muito pois é leve (e agora tem plugin da Sencha).

Como mencionaram Java, não recomendo Eclipse para JavaScript. Pode usar o Eclipse normalmente pro Java e um editor mais leve (como sublime text) para editar JS.

 

Os items 2 e 3 são possíveis com ExtJS sim e também com qualquer outro framework ou biblioteca JavaScript que forem usar.

A parte de push inclusive uso nos meus projetos para ter CRUDs em tempo real, já que no projeto as informações são bem sensíveis a mudança. Isso não depende somente do JavaScript, mas o servidor que vai ser usado para deploy da aplicação também precisa ter suporte. Com websockets do HTML5 isso ficou bem mais fácil e servidores mais recentes também suportam esse recurso.

 

A documentação da Sencha a partir da versão 4 melhorou muito, hoje considero em termos de organização uma das melhores.


  • durtto e alvarobrg curtiram isso


#128840 Enquete desenvolvimento backend

Postado por DaniloTerra em 30 July 2015 - 17:05

Legal cara! Eu estudei ASP.NET WebAPI, mas não dei conta de fazer uma API nele hehehehehhehehe. Está utilizando EntityFramework?

 

Curto demais a plataforma .NET, a linguagem C# então, nem se fala. Mas acabei me bandeando para PHP/Laravel graças ao Sr. Wemerson.


  • Wemerson Januario e relson 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


#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


#128469 Preparem seus Bolsos.. ExtJS custará $4,341

Postado por Legolas em 02 June 2015 - 12:26

eu fiz de conta que nem li essa newsletter deles. kkkk

Então somos dois Wemerson.


  • Wemerson Januario e henemer 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