Ho inserito un progetto esistente che riguarda esclusivamente il mantenimento di strutture di dati annidate. Avete aziende che sono assidue di account, contatti e note e ... in pratica il solito gruppo di relazioni 1: 1, 1..n, n: m, memorizzate in mysql o postgres, avvolte da Doctrine.
Naturalmente, ogni nodo viene fornito con il solito set di metadati, che richiede la convalida in termini di tipo (numero, testo, ...) e semanticamente (email, url, 'enum' come stato, tipo, valuta).
Più specificamente ciò che ho inserito descrivevo (anche per esperienza precedente) come tipico inferno di ExtJS. Suona familiare a tutti?
- un tipico singolo URL-Applicazione: nessuna cronologia, nessun segnalibro specifico significativo, oh e ti sfido a premere il pulsante Indietro ...
- la navigazione a schede è impossibile (il caso di utilizzo non così raro di guardare il cliente A, mentre si inserisce qualcosa di significativo nell'account o cliente B side-by-side)
- hai quel tipico albero di navigazione sulla sinistra, le cose sulla destra sono chiamate da Ajax. Dati, ma anche un sacco di codice java eseguibile.
- un strong "tocco di MS Office": gli sprite CSS sono molto, molto semplici, i pull semplici ei pulsanti a scelta multipla richiedono uno sforzo per essere "abbigliati" per essere utilizzabili.
- Per non parlare di tutti i div blobati come opossed a pochi tag puliti, semanticamente significativi
- un bel po 'di javascript (alcuni dei quali abbastanza abilmente creati in PHP) per adattarsi a controller e archivi hard-to-debug e un sacco di codice ridondante, per garantire la stessa cosa più e più volte per i vari campi di dati. c'è una gerarchia di classi OOP per quelle Ext. [ux.] griglie e finestre, ma di aiuto limitato.
Da esperienze precedenti mi piacerebbe che io passassi a un'API REST-ful diritta, roba fatta in realtà tra una richiesta di pagina, URl ti dà come dovrebbe apparire:
foo.com/accounts/16324/contact/create
foo.com/customer/search/state=California
E fai in modo che l'intero sia basato su jQuery, dove guadagno più controllo. Questo mi porta alla mia domanda generale: mi manca uno strato intermedio?
Problemi: mi chiedo, come riempire alcune lacune (che probabilmente incontreranno anche altre "Converte", quindi oso fare una domanda così ampia):
-
quali plugin sarebbero utili per le tabelle (modificabili)? Inclusi commenti ridimensionabili e ordinabili? Conosco jQueryUI e jQueryTools ma non penso che sia la soluzione giusta. Ho bisogno di una tabella / griglia veramente buona, probabilmente con le routine di backend che si adattano.
-
* In generale, sento che mi manca uno strato intermedio tra ORM e UI se mi arrangio con le strutture dati, posso portare un automatismo del tipo "Ecco la mia struttura dati, inclusi i tipi e le regole di convalida, (oh , e i dati esistenti / predefiniti) ora creano il modulo da esso "Poiché questo potrebbe variare da cliente a cliente, è un altro motivo per non completare questo hardcode a molto.
Anche la funzione di memorizzazione di Ext-JS-ish di inviare solo i campi che sono realmente cambiati varrebbe la pena. Come riconosce la sporcizia (ovvero la necessità di confermare "salva / annulla" alla chiusura del dialogo). *
- Molto preziosi sarebbero meccanismi generici di "tentativene sotto-dialoghi", ad es. Salvaschermo di Windows: andare in un menu, da lì a un sottomenu, dire ok nella finestra di dialogo secondaria, quindi annullare su main == > cancella tutto, niente memorizzato. In altre parole: archiviare in modo flessibile alcuni set di dati gerarchici nella sessione sarebbe positivo. E spingerli nel DB (con mezzi generici ripetitivi) quando ho ottenuto il vero "OK".
Qualche buon suggerimento per me la parte di modifica della tabella nel frontend e / o nella parte centrale della struttura dei dati?
Grazie, Danke, Merci, Mille grazie, Xie xie!
Fronker