Desenvolver um CRUD em AngularJS, com framework Angular-Material. Esse CRUD deve ser feito com uma DataTable, que aceite edição INLINE (Edita a Linha e salva) e BATCH (Edita várias linhas e salva) e Campo a Campo ( Edita um campo e salva )
** Não se impressione com o tamanho da descrição, isso não significa que o projeto é grande, mas sim que é bem documentado.
Ele deve possuir:
- Um header para Filtros com todos os campos. (Quase pronto nos exemplos)
- Um header Para exibir e esconder colunas (pronto nos exemplos)
- Sortable Columns - ordenação (pronto nos exemplos).
- Opção de Infinite Scroll e Paginação comun (pronto nos exemplos)
- Uma Progress Bar para aguardar as requisições da api (pronto nos exemplos)
* é só frontend, a api será fornecida.
* É AngularJS (JavaScript), não Angular 2 (Typescript)
**O código deve estar bem distribuído em Controllers, Services e Directives e bem comentado.
**Os campos devem ter validações, tanto do lado do cliente, como receber erro de validação do lado do Server e exibir.
** As linhas devem ser selecionaveis com um CheckBox (pronto nos exemplos)
É um projeto simples, porque já tem tudo resolvido nesta pesquisa abaixo, basta compilar, organizar e caprichar.
https://github.com/daniel-nagy/md-data-table
https://github.com/iamisti/mdDataTable
http://iamisti.github.io/mdDataTable/
https://codepen.io/enigmatic/pen/JGvwEv
http://iamisti.github.io/mdDataTable/
Não vale usar lib pronta como as desses exemplos acima (
https://github.com/daniel-nagy/md-data-table ,
https://github.com/iamisti/mdDataTable), se quiser usá-los, são open-source, de modo que você pode usar oque quiser, mas deve entregar services e directives próprios.
Preferênica por basear-se na (
https://github.com/daniel-nagy/md-data-table) e fazer as edições de campo bem parecidas com oque está aqui (
https://codepen.io/enigmatic/pen/JGvwEv)
Prefiro a do daniel-nagy porque ele cria em cima de tabela e dá mais autonomia, a do iamisti está tudo em uma directive, oque tem vantagens, mas para o meu projeto é menos recomendado.
Ambas têm vantagens e desvantagens em relação a outra, porém se complementam muito na funcionalidade que eu quero. Por isso sugiro que peguem oque tem de melhor nas duas.
É Um crud de produtos, os campos do crud são:
- id (int, readonly)
- categoria (múltipla seleção de uma lista genérica ou da api, usar alguma directive de multiple selection do angularjs)
- nome do produto (text input)
- descrição (textarea, validacao de maximo de caracteres)
- descrição html (editor de html, como por exemplo text angular, melhor que abra em popup)
- html (editor de código, como codemirror ou ace , melhor que abra em popup)
- preço (currency)
- data de validade (data , usar datepicker do angularjs material)
- é promoção? (boolean)
- data e hora da promoção (datahora, usar datepicker do angularjs material e algum timepicker que gostar (habilitar e desabilitar conforme o campo "é promoção" ))
- preço promoção (currency , (habilitar e desabilitar conforme o campo "é promoção" ))
- variação (seleção única de lista genérica ou da api)
- subvariação ( seleção múltipla, de lista genérica ou da api, filtrada de acorodo com a "variação" )
** por padrão todos obrigatórios
** os campos que
use um modelo de template pronto de angularjs material pra ficar apresentável.
**** EXTRAS (pago a mais, mas não é obrigatorio) - drag drop das colunas. Ou na propria tabela, ou no Header de exibir e esconder as colunas.
O resultado final deve ficar parecido, por exemplo com a KendoGrid, do KendoUI, mas esta é JQuery ou algumas outras e não vale.
Como todo este material ai da pesquisa, creio que sejam umas 16h de trabalho, quem topa? Se ficar muito bom, rola um bônus de 10% a 30%.
Obrigado e até mais.
Prazo de Entrega: Não estabelecido