Barvna shema: Riviera
Trenutno dejavna stran: start » sl » Dokumentacija » Razširitve DokuWikija (WvdS) » SQLite Data Studio » SQLite Data Studio: specifikacija področja (normativno)

SQLite Data Studio: specifikacija področja (normativno)

Dokumentacija studia: SQLite Data Studio · Oblikovalski sistem: FluentUI: skrbniško območje podrobno


Stanje: normativna ciljna opredelitev delovne površine studia (paket wksqliteds, prej wvdsdwmsqlite; skrbniško območje »Pomočnik za poizvedbe«). Ta stran je zavezujoča osnova izvedbe. Modela območij ne ponavlja, temveč nanj kaže: vir resnice sta FluentUI: skrbniško območje podrobno (pravila vedenja) in FluentUI: osnovna postavitev podrobno (območja). Oznake stopenj: [Live] = izvedeno v kodi · [S1] = stopnja 1 delovne površine, v izvedbi · [S2] = samo opredeljeno (katalog gradnikov).

Kjer stran navaja Azure Data Studio (ADS), gre za poti v njegovi izvorni kodi kot dokaz za mehaniko, ki je bila na novo zgrajena. Prevzeta ni niti vrstica kode: ADS je izdan pod licenco Source EULA, zato iz njega ne prenašamo ne kode ne datotek SVG.

1. Sedem odločitev, v katerih se studio razlikuje od Azure Data Studia

Vsaka odločitev je normativna in ima svoj razlog.

  1. Leva vrstica dejavnosti je namenjena samo skrbniškim modulom DokuWikija [Live]. V njej so izključno skrbniški moduli, ki jih dopušča ACL (vzorec skrbniškega območja); studio vanjo nikoli ne postavi lastnih dejanj. Razlog: v ADS vrstica dejavnosti gosti orodja sama. V skrbništvu WvdS pa vprašanje »kateri modul« ostaja strogo ločeno od vprašanja »kaj počnem v modulu«, zato je krmarjenje med moduli pri vseh orodjih enako.
  2. Ukazi modula so prispevki k paleti ukazov, ne desni rail modula [Live]. Studio odda en sam ukaz, ki velja za modul kot celoto: Nova poizvedba. Gostitelj ga izriše kot glavni gumb v ukazni vrstici in ga ponudi v paleti ukazov. Zgodovina poizvedb in Pravice sta od 25. 8. 2026 v meniju Dejanja pri povezavi v raziskovalcu objektov; Dokumentacijo in preklop pomožne vrstice doda gostitelj. Desni rail modula .wk-shell-rail--right (opredelitev območja) se izriše le še v nadomestni poti, kadar gostitelj lupine ne prevzame. Razlog: zgodovina in pravice govorita o eni povezavi; vrstica, ki se razteza nad celotnim modulom, ne more povedati, katero ima v mislih. V meniju povezave se to vprašanje ne zastavi.
  3. Povezava velja za zahtevo, ne za sejo [Live]. Ukazov Connect/Disconnect/Cancel iz ADS ni: vsaka zahteva povezavo odpre na novo (ConnectionManager::pdo(), predpomnilnik zahteve). Vmesnik namesto tega ponuja izbiro povezave in Preizkusi povezavo. Prekinitev poizvedbe, ki teče, je smiselna šele pri asinhronem izvajanju in je [S2]. Razlog: DokuWiki obdela vsako zahtevo posebej in na strežniku nima trajne seje za posamezno povezavo; življenjski cikel povezave, kot ga pozna ADS, ne bi imel na čem stati.
  4. Bližnjice ne trčijo z brskalnikom [Live]. Zaženi sprožita F5 in Ctrl+Enter, Preveri sintakso pa Ctrl+F5. Bližnjica zgolj klikne gumb, ki je viden na strani (data-wk-shortcut, obdela ga shortcuts.js iz wkfluentui); kjer gumba Zaženi ni, F5 stran ponovno naloži kot običajno. Celotna preglednica je v razdelku 2.6. Razlog: bližnjica ne sme odpreti druge poti oddaje in ne sme doseči dejanja, ki ga uporabnik ne vidi.
  5. Brez enostranske aplikacije in brez drugega okna [Live]. Studio dela s krogi POST in postopnim izboljševanjem, ne kot enostranska aplikacija; drugega okna ni. Vsaka izboljšava z JavaScriptom ima nadomestilo brez njega. Razlog: zgradba razširitev DokuWikija (act_dispatch, brez lastnega pogona mreže v JavaScriptu); dostopnost je tako vgrajena v zasnovo.
  6. Barvna semantika po Contract v3 [Live]. Bela = običajno dejanje (tudi Shrani), modra = posebno dejanje (izvoz, uvoz), rdeča = uničujoče dejanje; v orodnih vrsticah je vrstni red v DOM bela → modra → rdeča (Contract v3). Modra ADS za glavni poziv k dejanju se ne uporablja. Razlog: enotna barvna pogodba skrbništva WvdS; pomen nikoli ni odvisen samo od barve.
  7. Namesto nadzorne plošče »Manage« pregled tabel [Live]. Namesto gradnikov nadzorne plošče iz ADS je izhodišče, ki ga uporabnik najde brez iskanja, pregled tabel (view/Overview.php); od tam vodijo povezave v strukturo, brskanje in izvoz. Razlog: DokuWiki nima lastnega ogrodja za nadzorne plošče (glejte BizWay).

2. Popis dejanj

Navedbe kažejo na izvorno kodo Azure Data Studia; vsako dejanje ima oznako stopnje. Stolpec z barvo sledi semantiki Contract v3 (b = bela/nevtralna, m = modra/posebna, r = rdeča/uničujoča).

2.1 Naslovna vrstica stranske vrstice (raziskovalec objektov)

Dejanje Barva Stopnja Navedba
Nova povezava b [Live] gumb z ikono v orodni vrstici drevesa
Osveži (drevo znova naloži) b [Live] osvežitev v raziskovalcu objektov ADS; ObjectTree::toolbar()
Razširi vse / Strni vse b [Live] preklopnik v isti orodni vrstici
Filter objektov (omeji drevo) b [Live] listFilter(), Filter InputBox

Izbirnega seznama povezav v naslovni vrstici ni: drevo prikaže vse nastavljene povezave kot korenska vozlišča, izbira povezave je klik nanjo. Preklop pomožne vrstice je gostiteljev.

2.2 Meni »Dejanja« po vrsti vozlišča

Vsako vozlišče ima meni Dejanja; priročni meni (desni klik) le znova sproži iste povezave in gumbe, druge poti oddaje ni. Vsak vnos se posebej preveri proti lastni zmožnosti.

Vrsta vozlišča Vnosi Barva Stopnja
Povezava Pomočnik za poizvedbe · Nova poizvedba · Zgodovina poizvedb · Pravice · Preizkusi povezavo · Uredi; pri SQLite še Izdelaj varnostno kopijo · Obnovi… · Preverjanje celovitosti · Optimiraj · Upravljaj varnostne kopije; na koncu Izbriši b; le Izbriši r [Live]
Mapa tabel Nova tabela · Osveži b · b [Live]
Tabela Prebrskaj · Struktura · Stavek CREATE · Ustvari skript DROP · Izvozi · Uvozi · Lastnosti · Odstrani b · b · b · b · m · m · b · r [Live]; preimenovanje [S1]
Pogled Prebrskaj · Stavek CREATE · Lastnosti · Odstrani b · b · b · r [Live]
Prožilec brez menija v drevesu; ogled, sprememba in odstranitev na zavihku Prožilci v pogledu Struktura (zmožnost design, samo SQLite) b · r [Live]
Rutina (veja studia) Uredi · Zaženi preizkus · Izbriši b · b · r [Live]

2.3 Orodna vrstica pomočnika za poizvedbe (konzola SQL)

To je orodna vrstica področja (.wkq-panebar), ne ukazna vrstica okna. Stoji v vsebini, ker njeni kontrolniki naslavljajo obrazec urejevalnika. Na širini telefona se prelomi v novo vrstico, namesto da bi se pomikala: kontrolnik, ki ga rob odreže, ni kontrolnik, drsni trak pa na zaslonih na dotik v mirovanju nima vidnega drsnika, ki bi ga razkril.

Dejanje Barva Stopnja Navedba
Izbira povezave b [Live] <select>, zato ga ni mogoče izraziti kot kind:action
Zaženi (F5 · Ctrl+Enter) b [Live] view/Workbench.php::doSqlRun()
Preveri sintakso (Ctrl+F5) b [Live] doCheckSyntax()
Načrt poizvedbe b [Live] doQueryPlan() – samo SQLite, glejte razdelek 4a
Počisti b [Live] .wkq-clear
Shrani kot rutino m [Live] doSaveAsRoutine()
Zavihki urejevalnika (več poizvedb hkrati) – [Live] WorkbenchBufferStore · WorkspaceTabStrip
Nova poizvedba – [Live] prispevek commandPalette, ne več v tej vrstici
Prekini izvajanje r [S2] predpostavlja asinhrono izvajanje

2.4 Dejanja v mreži rezultatov

Dejanje Barva Stopnja Navedba
Razvrščanje po stolpcih b [Live] razvrščanje v dataGrid(), DataGrid: sorting
Listanje po straneh b [Live] straničenje, DataGrid: Data Paging and Scrolling
Urejanje vrstice (predal) b [Live] urejevalnik vrstic v view/Browse.php
Brisanje vrstic r [Live] posamezno in z večkratnim izborom (POST z sectok)
Izvoz rezultata m [Live] db_export_result (ukazna vrstica in zavihek Rezultati)
Povečaj rezultate b [Live] wb_maximize; gradnik: maksimiranje podokna

2.5 Ukazna vrstica in orodne vrstice po pogledih

Ukazna vrstica je gostiteljeva. Studio ne izriše lastne; kar velja za cel modul, odda kot prispevek commandPalette in se zato brez druge prijave pojavi v ukazni vrstici in v paleti ukazov, po kateri je mogoče iskati (Ctrl+Shift+P).

Tak ukaz je en sam: Nova poizvedba. Dokumentacije studio ne prispeva, ker jo adminshell::commandsFor() že tako doda iz polja url v plugin.info.txt – lasten prispevek bi se pokazal dvakrat. Zgodovina poizvedb in Pravice sta v meniju povezave (razdelek 2.2).

Stolpci spodaj naštevajo, kaj ponuja področje (.wkq-panebar, razdelek 2.3), ne tega, kar je v vrstici okna.

Pogled bela modra rdeča Stopnja
Pregled Nova tabela · Osveži Izvozi – [Live]; iskanje [S2]
Struktura (oblikovalnik tabel) Predogled · Uporabi – Odstrani tabelo [Live]
Brskanje Nov zapis – Izbriši izbrano [Live]
Pomočnik za poizvedbe Izbira povezave · Zaženi · Preveri sintakso Shrani kot rutino · Izvoz rezultata (CSV/JSON) – [Live]
Izvoz – Izvozi – [Live]

2.6 Tipkovnica (preglednica bližnjic)

Dejanje Tipka Stopnja Opomba
Zaženi poizvedbo F5 ali Ctrl+Enter [Live] deluje tudi iz polja SQL, ker funkcijske tipke ne vnašajo besedila
Preveri sintakso Ctrl+F5 [Live]
Počisti konzolo (gumb) [Live] brez globalne tipke, da se izognemo trkom
Odpri paleto ukazov Ctrl+Shift+P [Live] paleta je gostiteljeva (cmdpalette.js iz wkfluentui)
Krmarjenje po drevesu puščice / Home / End [Live] semantika treeitem
Zapri pogovorno okno Esc [Live] fokus se vrne na sprožilni element

3. Stranska vrstica, drevo, ikone

  • Naslovna vrstica [Live]: Nova povezava, Osveži, Razširi vse/Strni vse, pod njo filter objektov; zgradba po vzoru portala TreeView.
  • Ravni drevesa po zaledju [Live za SQLite, sicer T1]: SQLite je plosko (povezava → tabele/pogledi/prožilci/rutine); MySQL ima raven zbirke podatkov; PgSQL in MSSQL raven sheme; MS Access je plosk. Lastna veja studia »Rutine« visi pod povezavo (koncepta v ADS ni).
  • Shema razredov ikon [Live]: .wkq-node--{vrsta} z vrsta ∈ connection/folder/table/view/trigger/routine/column/index/fk/pk; končnice stanja wkq-node-status--{readonly,unavailable,active}. Lastne ikone za zbirko podatkov ali shemo ni (SQLite ostane plosk).
  • Izvor ikon [Live]: lastna izdelava kot podatkovni URI SVG za mask-image v screen.css – nobene ikone SVG iz ADS (Source EULA) in nobenega zunanjega paketa Codicons.

4. Zasedenost območij

Katero območje lupine zaseda studio. Sama območja: FluentUI: osnovna postavitev podrobno (tu se ne ponavljajo).

Območje Zasedenost v studiu Stopnja
Ukazna vrstica (.wk-shell-commandbar) gostiteljeva. Studio ne izriše lastne; njegov edini ukaz modula, Nova poizvedba, je prispevek commandPalette [Live]
Leva vrstica dejavnosti (.wk-shell-activitybar) skrbniški moduli DokuWikija (ACL) – nobenih dejanj studia [Live]
Desni rail modula (.wk-shell-rail--right) ni zaseden. Izriše se le v nadomestni poti, kadar gostitelj lupine ne prevzame [Live]
Stranska vrstica (.wk-shell-sidebar) raziskovalec objektov kot prispevek kind:view [Live]
Vsebina (.wk-shell-content) aktivni pogled (pregled, struktura, brskanje, pomočnik za poizvedbe, izvoz, uvoz, vzdrževanje) [Live]
Plošča (.wk-shell-panel) lastno območje, ne znotraj vsebine: rezultati · sporočila · načrt poizvedbe · dnevnik kot prispevek bottomPanel [Live]
Pomožna vrstica (.wk-shell-auxbar) lastnosti izbranega kot prispevek auxbar; brez izbire lastnosti odprte zbirke podatkov [Live]
Vrstica stanja (.wk-shell-statusbar) gostiteljeva (modul · pot nazaj · osi prikaza · uporabnik). Kazalniki studia – povezava · gonilnik · samo za branje · vrstice · trajanje – so v nogi področja (.wkq-panestatus) znotraj vsebine, ker v vrstico stanja okna ne vodi nobena pot za prispevke [Live]
Pogovorna okna in predali razdelek 6 [Live]; paleta ukazov je gostiteljeva
Tipkovnica in dostopnost razdelek 2.6 [Live]

Kontekst delovne površine, ne druga delovna površina: studio ne izriše lastne lupine. Svoje dele odda kot prispevke po Workbench Plugin Contract v1 – drevo objektov v sidebar, lastnosti objektov v auxbar, rezultate v bottomPanel, ukaz modula v commandPalette – mrežo okrog njih pa zgradi gostitelj.

Lastna lupina bi imela dve posledici. action_plugin_wkfluentui_adminworkbench::compose() se pri ownsItsShell() takoj vrne, zato ne bi nastali ne vrstica dejavnosti ne zavihki modulov – iz studia ne bi vodila nobena pot v drug modul. Drevo objektov pa bi bilo odvisno od poti, ki je značilna za posamezno predlogo; prispevki te odvisnosti ne poznajo.

Kaj ostane v vsebini in zakaj to ni druga vrstica: orodna vrstica urejevalnika (.wkq-panebar – povezava, Zaženi, Preveri sintakso, Načrt poizvedbe) in noga področja (.wkq-panestatus). Obe naslavljata področje, ne okna: izbira povezave je <select>, Zaženi pa odda obrazec urejevalnika – ničesar od tega ni mogoče izraziti kot kind:action. Azure Data Studio potegne isto mejo: orodna vrstica zavihka s poizvedbo ni ukazna vrstica okna.

Tri poimenovane vrzeli so zapisane v docs/view-layer.md paketa: vrstica zavihkov za delovne predmete (adminshell::tabStripHtml() vsako ime razreši s plugin_load(admin, …) in zato zna poimenovati samo module), vrstica stanja okna in meni za prelivanje deljene orodne vrstice. Vse tri sodijo h gostitelju; manjkajoči kontrolnik bi se sicer bral kot oblikovalska odločitev.

Spletni pogled namesto kartice wikija: površina studia leži neposredno v <main>, brez okvira dokumentne kartice, ki ga predloga sicer nariše okrog strani wikija (ozadje, senca, notranji odmik) – podrobnosti: skrbniško območje, Načelo.

4a. Načrt poizvedbe in drevo na zahtevo [Live]

Načrt poizvedbe

EXPLAIN QUERY PLAN je iz urejevalnika dosegljiv z enim dejanjem in se odpre kot zavihek spodnje plošče. Je samostojno dejanje in ne del Zaženi: po načrtu posežemo prav takrat, ko izvajanje traja predolgo.

Izriše se to, kar vrne SQLite, in nič več – štirje stolpci, torej sklic na nadrejeni korak in en stavek. Ni stroškov, ocen števila vrstic ne časov; tehtan graf bi pomenil izmišljanje števil, izmišljenega števila pa ni mogoče ločiti od izmerjenega. Poudarjena je edina razlika, ki je v podatkih res zapisana:

Oznaka SQLite izpiše Pomen
Cela tabela SCAN t prebere celo tabelo
Cel indeks SCAN t USING INDEX ix prebere cel indeks, ne tabele
Iskanje SEARCH t USING INDEX ix (…=?) ciljni dostop

Tretja oznaka je potrebna, ker se SCAN c USING INDEX idx_comments_created začne s SCAN, bere pa indeks – »Cela tabela« bi bila tam napačna. rowid se izrecno ne prikaže kot indeks; to ni indeks, ki bi ga kdo lahko ustvaril ali odstranil. Surovi izpis ostane ob strani in ga je mogoče razpreti: razlaga, ki je ni mogoče primerjati z njenim virom, je zgolj trditev.

Načrt gre skozi isto razvrstitev kot vsaka poizvedba. Če stavek opisuje pisanje, se zahteva write – kdor ne sme pisati, tudi načrta pisanja ne sme spoznati. Na sistemih, ki niso SQLite, gumba sploh ni, namesto da bi ponujal sporočilo o napaki.

Drevo objektov na zahtevo

Veja se zgradi, ko jo imenuje naslov URL (treeopen), ali če je tabela, ki jo zaslon tako ali tako prikazuje. Zaprta veja zato ne stane nobene poizvedbe introspekcije (štiri na tabelo) in ne naloži nobenega manifesta rutin.

Podatek je v naslovu in ne v skriptu: veja, ki se odpre samo z JavaScriptom, nima zaznamka, gumba Nazaj ne zgodovine. Povezava za razpiranje s seboj nese zaslon, na katerem je bila kliknjena – razpiranje ni krmarjenje. Števila ostanejo v oznakah map: listRoutines() je le izpis mape in je poceni; drago je bilo nalaganje manifestov.

Vzdrževanje pove, koliko stane

Zaslon za vzdrževanje za vsako dejanje navede pomen · tveganje · pričakovano trajanje · zaklepanje. Pri trajanju ni števila sekund: SQLite za nobeno od teh dejanj ne da ocene in ta paket vnaprej ničesar ne meri. Znana pa je velikost datoteke in to, da vsako dejanje z njo raste linearno – stolpec zato pove, od česa je trajanje odvisno, in navede trenutno velikost. Zaklepanje je dokumentirano vedenje SQLite, ne meritev te namestitve.

5. Konteksti pomožne vrstice

Pomožna vrstica sledi izbiri (ponovno nalaganje ob kliku [Live] in sledenje izbiri [Live], pogodba odjemalca: skrbniško območje).

Kontekst Vsebina Stopnja
Stolpec (col) ime · vrsta · NULL · privzeta vrednost · PK · pripadnost indeksu [Live]
Indeks (idx) ime · stolpci · enoličnost · delni indeks [Live]
Tuji ključ (fk) od → do · ON DELETE/UPDATE [Live]
Vrstica (row) vse vrednosti stolpcev označene vrstice [Live]
Povezava (conn) gonilnik · cilj · število objektov · stanje samo za branje [Live]
Tabela (table) število vrstic · število stolpcev · število indeksov in tujih ključev · velikost [Live]
Pogled (view) definicija (SELECT), stolpci [Live]
Rutina (routine) nabor · parametri · vrsta rezultata [Live]

6. Katalog predalov in pogovornih oken

Gradnika drawer()/modal() (API pomočnika).

Pogovorno okno ali predal Namen Stopnja
Urejevalnik vrstice (predal) ustvarjanje in urejanje zapisa (vezane vrednosti) [Live]
Nova tabela (predal) ustvarjanje tabele [Live]
Dodajanje stolpca / predogled stolpcev (predal) predogled DDL in uveljavitev (načrtovalnik ponovne izgradnje) [Live]
Nov indeks / nov tuji ključ (predal) ustvarjanje indeksa ali tujega ključa [Live]
Urejevalnik rutine (zavihka Lastnosti in JSON) urejanje rutine (tabs() in propertyGrid()) [Live]
Okno za vnos parametrov zahteva oznake :ime pred izvedbo [Live]
Potrditev uničujočega dejanja brisanje ali ponastavitev s številom in vzorcem [Live]
Matrika zmožnosti (pogovorno okno) urejanje pravilnika po skupinah in povezavah (razdelek 7) [Live]
Zgodovina poizvedb (predal) zadnje poizvedbe posamezne povezave; odpre se iz menija povezave [Live]
Paleta ukazov (prekrivni sloj) iskanje dejanj in ciljev krmarjenja; gostiteljeva, katalog gradnikov [Live]

7. Matrika zmožnosti [Live]

Model vlog, ki ga uveljavlja strežnik, poleg vrat za superuporabnike. Obe stopnji uvedbe sta zaključeni; potek in mejni primeri so opisani na strani Pravice.

  • Zmožnosti: use (preizkus rutin; sama odpre območje Rutine) · query (branje, konzola SQL za branje) · write (spreminjanje podatkov) · design (DDL, oblikovalnik tabel) · export · admin (upravljanje povezav in pravilnika).
  • Vrstice: skupine in uporabniki DokuWikija v zapisu iz acl.auth.php (@skupina oziroma uporabnik).
  • Obseg: globalno in za posamezno povezavo; ožje pravilo zmaga (povezava pred globalnim), znotraj istega obsega pravilo za uporabnika pred pravilom za skupino – podobno kot pri specifičnosti ACL v DokuWikiju.
  • Hramba: conf/wksqliteds.policy.json (io_saveFile, atomarno; brez skrivnosti).
  • Uveljavljanje: na strežniku v PolicyGate pred vsakim dejanjem (ne le skrivanje v vmesniku) – privzeto zavrnjeno; vmesnik dodatno skriva, vendar nikoli ni odločujoč.
  • Privzeto: samo superuporabniki (združljivost za nazaj; brez datoteke s pravilnikom se studio vede kot prej).
  • Zasilni izklop: dbadmin_readonly=1 razveljavi vsako zmožnost write/design – konzola SQL tedaj dopusti samo bralne stavke (popolna razčlenitev stavka in v SQLite PRAGMA query_only).
  • Razmejitev: pravilnik ureja dostop do studia, ne ACL strani – kdor sme brati dokumentacijo, s tem ne dobi dostopa do studia.
  • Klici prek storitve sql.routines niso vezani na matriko: storitev je lasten, zaupanja vreden klicatelj (Referenca API → storitev).

Ponazoritev (zapis v slogu acl.auth.php, ne oblika datoteke – pravila se urejajo v pogovornem oknu z matriko):

# globalno
@wvdse   use,query,export
# za povezavo "prod" (ožje pravilo -> zmaga)
prod:@wvdse   use,query          # na prod samo branje, brez write/design

8. Zasloni s seznami: videz aplikacije namesto dokumenta wikija

Področje veljavnosti: izključno lastni zasloni wksqliteds; drugi paketi se še naprej vključujejo samo znotraj lupine (vzorec vdelanega pogovornega okna, razdelek 6 in skrbniško območje) in se nikoli ne spreminjajo.

Ciljno stanje:

  1. Enotne mreže: seznami povezav, rutin in tabel v pregledu so mreže dataGrid() z razvrščanjem po stolpcih in menijem Dejanja v vsaki vrstici [Live]; zavihki oblikovalnika tabel še uporabljajo preprosto tabelo [S2]. Večkratni izbor samo tam, kjer obstaja smiselno skupinsko dejanje.
  2. Prilagoditev višini okna je za zaslone studia obvezna [S2]: admin-layout jo navaja le kot smernico (»priporočljivo, ne strogo pravilo«); za zaslone studia z lastno vrstico stanja (vseh pet pogledov) se tu dvigne na obvezno – skladno z utemeljitvijo tam, da se splača, kjer lupina dela z lastno vrstico stanja in stransko vrstico.

Razmejitev: to ne spremeni ovoja strani wikija (zgornja vrstica, noga in okvir kartice ostanejo kot pri vsakem AdminPlugin te namestitve) – to bi bil poseg na ravni predloge ali jedra in zato zunaj tega, za kar odgovarja posamezen paket. »Videz aplikacije« tu pomeni gostejšo, z mrežami poenoteno notranjost modula znotraj obstoječih območij lupine, ne izginotja ovoja strani.

8.1 Zasloni z obrazci v območjih lupine [Live]

Vzor: postavitev delovne površine WDX (WdxWorkbenchLayout: naslovna vrstica · ukazna vrstica · vrstica dejavnosti · stranska vrstica · urejevalnik · plošča · vrstica stanja) – tam je vsaka delovna površina znotraj območij, tudi zasloni z obrazci in podrobnostmi.

Ciljno stanje (normativno):

  1. Vsak lasten zaslon studia – tudi zaslon z obrazcem ali podrobnostmi – izriše tri osnovna območja: ukazno vrstico (.wk-shell-commandbar), mrežo lupine (za obrazce zadošča .wkq-shell--flat) in vrstico stanja (dbadmin/Statusbar.php; v lupini gostitelja se izriše kot noga področja .wkq-panestatus, levo kontekst zapisa, npr. default:close_pruefung).
  2. Krmarjenje in dejanja nad zapisom v ukazni vrstici po Contract v3: »« Nazaj na seznam« (bela, povezava), Preizkusi povezavo (modra, samo pri obstoječih zapisih), Izbriši (rdeča, samo pri obstoječih zapisih; gre skozi isti dvostopenjski confirmGuard() kot dejanje na seznamu) – odstavek »« nazaj« v dokumentu odpade.
  3. Mere obrazca prek propertyGrid() (način urejanja, brez wkfluentui nadomestilo plainFieldRows()) namesto <table class="inline"> – ista os oznak kot zavihek lastnosti rutine in pomožna vrstica.
  4. Naslovi v vsebini kot glave podoken: neposredni otroci <h2> elementa .wk-shell-content se izrišejo v slogu ADS (zgoščeno, z velikimi črkami, umirjeno) namesto kot naslov dokumenta – semantika in dostopnost ostaneta, spremeni se le videz, iz »dokumenta« v »delovno površino«.

Razmejitev: obvestila msg() v DokuWikiju ostanejo kanal za rezultate POST na celotni strani (vedenje jedra nad modulom); asinhroni odzivi v JavaScriptu (napake prenosa v pomožni vrstici, skupinska dejanja, sprememba nastavitev) gredo skozi gostitelja obvestil wkToast() iz wkfluentui (skrbniško območje, pravilo »Toast-Host«). Preklopnik področij (Povezave / Pomočnik za poizvedbe / Rutine) ostane nad ukazno vrstico (leva vrstica dejavnosti po razdelku 1 pripada skrbniškim modulom DokuWikija, ne področjem studia).

9. Česa ne delamo

  • Nobene enostranske aplikacije in nobenega drugega okna brskalnika.
  • Nobenih novih gonilnikov zbirk podatkov poleg obstoječih (SQLite/MySQL/PgSQL/SQLSRV/Access-ODBC).
  • Nobenih sprememb drugih paketov – samo vključitev znotraj lupine (razdelek 6).

10. Sorodne teme

sl/wiki/dwe/wksqliteds/area.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille