Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tämä käyttöliittymäohjeistus on laadittu Perusrekisterin kehittäjien apuvälineeksi, jotta kehittäjien ei tarvitse käyttää aikaa näkymän suunnitteluun ja toteutettavat näkymät noudattavat samaa linjaa kautta ohjelmiston. Ohjeistuksessa käsitellään Perusrekisterissä käytettävät erilaiset näkymätyypit (aloitusnäkymät, listaukset, jne) sekä yksittäiset elementit (painikkeet, lomake-elementit, jne). Ohjeistus sisältää yleiset sommitteluperiaatteet, joita noudattamalla saavutetaan yhtenäinen kokonaisuus. Ohjeeseen kootaan myös kehittäjän tarkistuslista, josta voidaan tarkistaa täyttääkö tehty näkymä määritellyt vaatimukset. Poikkeustilanteet käsitellään ja hyväksytetään käyttöliittymätiimin kanssa. Ohjeistusta tullaan täydentämään projektin edetessä, kun esimerkiksi uusia näkymätarpeita ilmenee. Ohjeistus pohjautuu Eduixin Eduplan GUI käyttöliittymäkirjaston dokumentaatioon ja käytäntöihin, Metropolian käyttöliittymästandardiin sekä TIPTOP-projektin yhteydessä laadittuun käyttöliittymästandardiin.

Info
titleHuomio
Tarkemmat kooditason ohjeistuksen löytyvät alasivuilta: Kehittäjän ohjeet sekä varsinaisesta demo-ympäristöstä http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php

Pohjamateriaalit

...

Eduplan GUI perustuu nyt Bootstrap 3-frameworkkiin. Se on hyväksi todettu ja monipuolinen kirjasto, jossa on toteutettu myös mukautuvuus kattavasti. Tämän päälle on tyylitelty oma visuaalinen tyyli, sekä tarvittavat lisäkomponentit, css-luokat ja javascriptit.

Kehys

...

  • Yläpalkki (header)
    • sovellus brändäys, tausta
    • käyttäjän tiedot ja toiminnot
    • päänavigaatio

Päänavigaatio (topbar)

  • Päänavigaatioon Bootstrap-pohjainen ikoninavigaatio
  • Maksimaalinen tilan käyttö
  • Mukautuvuus (voi olla myös sidemenu!)

Alapalkki (footer)

  • [Takaisin ylös] mobiilissa

Typografia

  • otsikot
  • pieni teksti (himmennetty)
  • lihavoinnit, kursivointi
  • listat (ul, ol). Muotoilematon, ilman etumerkkejä
  • linkit, linkkien eri tilat

Näkymät

Näkymäesimerkit ovat tässä määrittelyssä ensisijaisen tärkeitä. Pelkät elementtien määrittelyt eivät riitä takaamaan yhdenmukaisia toteutuksia. 

...

  1. palvelun työpöytä (dashboard) 
    1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#desktop
  2. alaosion työpöytä
    1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#sub-desktop
    2. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#sub-desktop-left
    3. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#sub-desktop-help-visible
  3. listausnäkymä
    1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#listing
  4. yksittäisen katselu (avain arvo-tietolistan näyttäminen esimerkiksi. Esim peppi > henkilö > profiili)
    1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#view-single-item
    lomake / muokkaus 
    1. Palstajaottelu, jotta pysyy ryhdissämodal
        1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#items
    2. lomake / muokkaus 
      1. modaalissa
        1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#dialog-ajax
        2. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#form-items
        3. Valittuna yksipalstainen oletuksena
      2. muokkauksen sisäinen navigointi eri osioihin view-näkymästä (sidebar)
      3. jos sivu tyhjä eikä dataa: tarjoa ensimmäinen toimenpide
    3. Näkymän sisäinen navigaatiorakenne
      1. dynaamiset valinnat vasemmalla, esim. Pepin tallennetut haut
      2. valintojen väliotsikot
      3. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#left-navi
    4. kompleksi tietojen muokkaus, ops-editori muokkaa opsia, miten huomioidaan tallennus eri välilehdillä > jokainen oma modaali
    5. haku + hakutulos. Erilaisia malleja erilaisiin/erimääräisiin hakukriteereihin ja tuloksiin. Hakutuloksesta paluu hakuun/listaukseen.
      1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#search
      2. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#search-simple
      3. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#search-complicated
    6. Excel-tyyppinen inline editointi (mass edit)
    7. Perus "sisältö"sivu. Eli otsikko/teksti/kuva-tyyppinen sisältö
      1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#basic-page
    8. Palstat perustuvat Bootstrapin Gridiin. 
      1. Sisällössä http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#grid-content
    9. Lomakkeiden validointi
      1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#form-validation-2
    10. Palautteet toiminnoista
      1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php#form-feedback

    Poikkeavat / uniikit näkymät aina UI-tiimin kautta!

     

    Komponentit

    ...

    1. Latausikoni 
      1. http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.

    ...

      1. php#loader

    ...

    Poikkeavat / uniikit näkymät aina UI-tiimin kautta!

    Näkymien navigointi 

    Eritasoiset navigaatiot

    • taso 1 - päätason välilehdet (horisontaalinen). Esim HOPS
    • taso 2 - vasemman laidan välilehdet (vertikaalinen)
    • taso 3 - sisältöalueen (oikea palsta) välilehdet (horisontaalinen)

    Ensisijaisesti käytetään pystynavigaatiota, perustelut tabinavigaatioon oltava:
    sivuvalinnat http:

    ...

    //espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php

    Murupolku

    • sovittu että yleisperiaatteena tulee kaikkialle, kun siirrytään työpöydältä eteenpäin

    Komponentit

     

    Periaatekysymykset

    • sovittu että katselu pyritään toteuttamaan aina (eli ei suoraan lomakenäkymä)
      • jos katselua ei toteuteta, tähän vaaditaan hyväksyntä ja perustelu (yhteneväisyys!)
    • muokkaus modal-ikkunassa 
      • hyödyt: samaa muokkausta voidaan hyödyntää eri kautta, eri paikoissa
      • modal perustuu laajennettuun bootstrapin modaaliin. Scrollaa näkymässä jos yli selainikkunan korkeuden
    • jos näkymässä on kokonaisuuksia (esim 3 listaa) ne pitää visuaalisesti erottaa (peppi > yksikko > kustannuspaikat), erotin, panel tms
    • Painikkeiden sijainnit
      • Modaali: oikea laita
      • Perusnäkymissä vasemmalla. "Sulje" linkkimäinen

    Yleinen sommittelu

    Inline-editointi (ajax)
    • ainoastaan jos selkeä tarve
    • editointitoiminnallisuudet ("koska tehdään ajaxilla ja koska pitää tallentaa" -ongelma)
    • jos ajax-tallennuksia, hyvin selkeä palaute
    • vältetään eri tallennustapoja näkymien sisällä

    Näkymien navigointi 

    Eritasoiset navigaatiot

    • taso 1 - päätason välilehdet (horisontaalinen). Esim HOPS
    • taso 2 - vasemman laidan välilehdet (vertikaalinen)
    • taso 3 - sisältöalueen (oikea palsta) välilehdet (horisontaalinen)
    • "sticky" navigaatio (optiona tulevaisuudessa)
      • vieritettäessä sivun yläreunaan jäävä navigaatio

    Ensisijaisesti käytetään pystynavigaatiota, perustelut tabinavigaatioon oltava:
    sivuvalinnat http://espdev.eduix.fi/eduplangui/latest/demo/version2/demo/demo-service.php

    ...

    Murupolku

    • sovittu että yleisperiaatteena tulee kaikkialle, myös Liferayn sisällä

    Näkymän sisäinen layout / rakenne 

    Palstat ja grid näkymät uusiksi

    Grid

    Tutustutaan ja arvioidaan olemassa olevia ja käytetään hyödyksi suunnittelussa

    Lisänä yksinkertaisempi malli? 

    Tarve equal heights(?): http://foundation.zurb.com/docs/components/equalizer.html

    Ikonit

    • ikonien käyttö (kirjastona: Font Awesome). Laajin skaala, väritys mahdollinen, lisenssi vapaa

    Painikkeet

    Eduguin nykyisten painikkeiden freesaus ja asemointi, myös aktiiviset tilat huomioiden

    Periaatteet

    • yleinen linja käytettävästä tagista (a, button jne vai aina sama?)
    • dialogien napit sisällössä/dialogin buttoneina
    • eri tyyppisten toimintonappien sijainti suhteessa toisiinsa, (tallenna, peruuta, sulje)
    • tallenna/järjestys leijukkeissa kuten tip top

    Lomakkeet

    • eri tyyppiset: basic, horizontal, jne. http://getbootstrap.com/css/#forms
    • validointi
      • käytetäänkö esim. Dirty Forms
      • pakollisen kentän merkitseminen yleisesti 
      • select2 validointi
    • elementtien disablointi, tyylit
    • TAB ordering, testauslistaan testaa ilman hiirtä
    • koot
    • eri tyyppisten inputtien käyttö tekstuaalisesti selitetty kuten tiptopissa, missä tilanteessa käytetään mitäkin

    • auto-focus on input (malli, perustelut missä käytetään)

    • textarea ei monospace, määriteltävä fontti (wysiwygin käyttö?)

    Input-tyypit

    • eri input-tyypit, katsotaan edugui läpi
    • ainakin
      • tekstikenttä
      • tekstialue
      • pudotusvalikko (select2 käyttö)
      • radio button / checkbox
        • ryhmät
      • datepicker
      • timepicker
      • transfer select
      • kenttäkohtaiset ohjeet?

    Fieldset

    • miten edugui, voidaanko päivittää vain css tai rinnalle uusi

    Tagit

    Sliderit?

    Autocomplete (select2)

    • erilaiset käyttötavat, milloin ja missä

    Toteutusjärjestys

    Esteettömyys

    • tabi/näppäimistönavigointi. Inputtien korostukset (vrt. peppi nyt)

    Taulukot / listaukset

    ...

    • perus, raidoitettu,  ym
    • oletuksena listassa nimen klikkaus vie katseluun, muut toiminnot painikkeen taakse
    • määriteltävä oletus linkitetty sarake (nimi, otsikko)?

    ...

    Periaatteet 

    • DataTables kuopataan, käytetään serveripään toimintoja sorttaukseen ja sivutukseen

    http://designshack.net/articles/css/15-tips-for-designing-terrific-tables

     

    Fluid-list

    • plussana fluid list (toteutettu tuubissa)

    Perus ei-taulukkomainen lista

    Palautteet

    • Palautteiden sijainti näkymissä
    • Varmennukset (oletko varma...)
    • Toiminto aloitettu (disablointi)
    • Toimintoa tehdään (etenemispalautteet)
    • Tallennus/toiminto on tehty (samoja voidaan käyttää myös saavuttaessa näkymään)
      • Onnistui
      • Info
      • Varoitus
      • Virhe
    • etenemispalautteet
      • etenemispalkki (progress bar)
      • latausindikaattori

    Esimerkit! Virheeseen fixed-palkki ylös, joku yleinen virhe sovelluksessa. Siihen myös sulje rasti. Dialogilla virhe joka syntyy kun aktivoidaan joku toiminto.

    Periaatteet

    • Yleinen sijainti(sijainnit) latausindikaatiolle, samoin tapa käyttää (inline/vakiopaikka/dialogi/muu?)

    Tiptopista: Varoitusikkuna, Tiedote, Virheilmoitus, Varmennus, Sisäänkirjautuminen 

    Etenemispalautteet

    • Etenemispalkki (progress bar)
      • Aikamääräinen+edistymispalkki+(Determinate+progress+bar), 
      • Määrämitaton+edistymispalkki+(Indeterminate+progress+bar)+
    • Latausindikaattori (ajax spinner) 

    http://getbootstrap.com/components/#alerts

    Ohjeet

    Tilatiedot

    labels, status, ikonit
    http://getbootstrap.com/components/#labels 

    http://foundation.zurb.com/docs/components/labels.html

    Paneelit (Boksit)

    - laatikko, title, content

    http://foundation.zurb.com/docs/components/panels.html

    http://getbootstrap.com/components/#panels

    Nimetään myös panel, nykyinen box jää legacyyn

    Dialogit

    • modaalidialogit yleisesti tai milloin modal ja milloin ei
    • dialogien toimintonapit
    • mobiilivalmius?

    jQuery UI, mutta myös normaali modaalimalli?

    http://gumbyframework.com/docs/components/#!/modals

    http://getbootstrap.com/javascript/#modals

    Malli peräkkäisistä, http://foundation.zurb.com/docs/components/reveal.html

    Kalenteri

    Iso kalenteri

    • edelleen fullcalendar

    Pvm valinta

    • jQuery UI datepicker

    Apuvälinetyylit ja elementit

    - quickfloats, clearfix, show hide jne 

    http://getbootstrap.com/css/#helper-classes

    http://imperavi.com/kube/helpers/

    http://foundation.zurb.com/docs/utility-classes.html

    > valitaan olennaisimmat

    Käyttöympäristö ja päätelaitteet / mukautuvuus

    Mukautuvuus

    Selainyhteensopivuus

    Mozilla Firefox 14, Internet Explorer 9, Google Chrome (uusin versio), 
    Safari 4 ja 5, Opera 10 ja 11 (Heidi täsmennä mitä on määritelty perusrekisteriin nyt?)

    Tulostus

    - Tulostus (css tyylit), print.less 

    Kieleistys

    Käytettävät / tarvittavat kirjastot

    Arvioitava mitä tarvitaan perusrekisterissä, näistä esimerkit

    • (tick) jQuery ja jQuery UI 
    • (tick) select2
    • (tick) fontAwesome
    • (question) fullcalendar
    • (question) jstree?
    • (question) DataTables?
    • (question) Timepicker? (erillinen plugin)
    • (question) qtip / tiptip 
    • (question) tinymce tmv
    • ...

     Testaus

    • näkymä-checklistit kehittäjille, tiptopista vinkkejä
    • liikkuminen tabilla, testauslistaan testaa ilman hiirtä
    • selainyhteensopivuus (browserstack, muu työkalu)

    Tekninen toteutus

     

    ...

    • pidetään hakemistossa edugui/core jne, koska polut viittaavat monessa paikkaa
    • uusi svn projekti

    ...

    • Tehdään Liferay-instassi jossa Edugui2 teema, johon voidaan hakea esimerkit => testaus oikeassa ympäristössä

    ...

    • elementit/kokonaisuudet palikoidaan
    • Variables.less
      • värit, buttons, navi jne
      • esim pyöristysten koot tms 
      • mallia (Bootstrap theme)

    ...

    • myös js?

    ...

    • aui pois päältä oletuksena, päälle jos admin tai parempi: käyttäjän valinnalla (user bar) jos admin
    • esimerkit testattava suurella datamäärällä ja liferay-teemalla

     

    Periaatekysymykset

    • sovittu että katselu pyritään toteuttamaan aina (eli ei suoraan lomakenäkymiä)
      • jos katselua ei toteuteta, tähän vaaditaan hyväksyntä ja perustelu (yhteneväisyys!)
    • muokkaus modal-ikkunassa (egdialog)
      • hyödyt: samaa muokkausta voidaan hyödyntää eri kautta, eri paikoissa
      • modal perustuu laajennettuun bootstrapin modaaliin. Scrollaa näkymässä jos yli selainikkunan korkeuden
    • jos näkymässä on kokonaisuuksia (esim 3 listaa) ne pitää visuaalisesti erottaa (peppi > yksikko > kustannuspaikat), erotin, panel tms
    • Painikkeiden sijainnit
      • Modaali: oikea laita
      • Perusnäkymissä vasemmalla. 
      • "Sulje/Peruuta" linkkimäinen (btn-link)

    Yleinen sommittelu

    Inline-editointi (ajax)
    • ainoastaan jos selkeä tarve
    • editointitoiminnallisuudet ("koska tehdään ajaxilla ja koska pitää tallentaa" -ongelma)
    • jos ajax-tallennuksia, hyvin selkeä palaute
    • vältetään eri tallennustapoja näkymien sisällä

    Kalenteri

    Iso kalenteri

    • edelleen fullcalendar

    Pvm valinta

    • jQuery UI datepicker

    Muuta / huomioita

    Grid

    Perustuu Bootstrapin grid-järjestelmään

    Autocomplete (select2)

    • selectit yleensä aina tällä

    Periaatteet 

    • DataTables kuopataan, käytetään serveripään toimintoja sorttaukseen ja sivutukseen

    Käyttöympäristö ja päätelaitteet / mukautuvuus

    Mukautuvuus

    Selainyhteensopivuus

    Mozilla Firefox 14, Internet Explorer 9, Google Chrome (uusin versio), 
    Safari 4 ja 5, Opera 10 ja 11

    Kieleistys

    • yhteneväisyys (save = Tallenna)
      • js-kirjastojen kieleistys myös
    • Kieleistys kehittäessä, ei jälkikäteen

    Testaus

    • Laadunvarmistus-checklist 
    • selainyhteensopivuus 
    • demot pitkillä listoilla / isolla datamäärällä
    • oikeassa ympäristössä testaaminen
     

    Käyttöliittymien laatu:

    Näkymät on käyty läpi seuraavan tarkistuslistan mukaan:

     
    Tämä laadunvarmistuslista kehittyy Eduixin omassa releasedokumentaatiossa
    Jokainen näkymä on tehty eelin tyyli-kirjaston mukaan
    Näkymän otsikkoalue:
    • Näkymissä on otsikko joka kertoo missä ollaan ja mitä katsellaan/muokataan
    • Murupolku on ja toimii
    Navigointi noudattaa perusperiaatetta, lista > katselunäkymä > modaali(tai useita) tietojen muokkaukseen. Paluu listaukseen on toteutettu
    Lomakkeet
    • Enterin painallus lomakkeella lähettää lomakkeen
    • Jokaisen uuden input kentän validoinnit on tarkistettu
    • Jokaisen uuden input kentän merkkimäärät on testattu. esim. kopioidaan wordista iso dokumentti textareaan ja koitetaan tallennusta
    • Jokainen uusi tieto on tarkastettu vahingollisen datan osalta. esim. tallennetaan javascript-merkkijonoja tekstikenttiin.
    • Lomakkeen navigointi tabilla toimii loogisesti
    • Kaikki selectit on select2-muodossa
    Painikkeiden sijainnit ja järjestys vastaavat ohjeistusta
    Näkymä on mahdollisuuksien mukaan testattu runsaalla datalla. Pitkät listat, pitkät nimet, isot tekstisisällöt
    Selaimen back-painikkeen painaminen ei aiheuta poikkeuksia uusissa näkymissä
    Näkymät näyttävät samoilta kuin mockupit. Muutokset kommunikoidaan kälipuolelle

    Näkymä ei aiheuta virheilmoituksia konsoliin (vaikka eivät olisikaan toiminnallisesti merkittäviä)

    Kieleistys on yhteneväinen. Painike kertoo toiminnon. "Tallenna" (Todo määrittely, yleiset termit?)
    Palautteet toiminnoista on kunnossa. Käyttäjän on tiedettävä joka hetki mitä tapahtuu/tapahtui. Pitkään kestävissä toiminnoissa lataus-indikaatio (todo malli)
    Virheistä tulee selkeät virheilmoitukset
    Listoissa toiminnot ovat tehty määrittelyn mukaan. Linkki katselunäkymään title/nimi-vastaavasta kohdasta. Jos ei ole, linkiksi "Näytä tiedot"

    Jos sivu tyhjä eikä dataa: tarjoa ensimmäinen toimenpide tai kerro ettei dataa löydy

    Jos käytetään alaosion työpöytänäkymiä, niissä on järkevää dataa / toimintoja eikä vain Hae-ruutua tai ei mitään käyttäjää ohjaavaa.
    Selaintestaus on tehty, etenkin IE-versioilla. Kompleksit näkymät kattavasti. 
    Mukautuvuus on testattu niissä näkymissä joissa sellaista on määritelty tarvittavan. Oletus on työpöytäkäyttö. Testataan min. 1024-resoluutiolla 

     

    Lähteitä / linkkejä

    Priorisointi

    Tärkeimmät osiot, listataan muut jatkossa määriteltävät

    • Osio tuleville, mutta ei juuri nyt tarpeen
      - Velho (jos jää aikaa)
      - thumbnails

    Tulevaisuudessa kehitettävää

    Listataan ominaisuuksia, joita voidaan myöhemmin kehittää. Ei todennäköisesti tarvita perusrekisterissä

    Pysyvä otsikkopalkki, Sticky nav

    Wizard-näkymä

    undo-toiminto mahdollista?

    Tekniseen toteutukseen arvioidaan mahdollista siirtymistä angularjs

    fb tyylinen unlimited loading, ehkä käypä esim. tiedotteiden kanssa (dashboardin pikkutietoboksit)

     Muuta esille tullutta

     

    • Dokumentoi jos ominaisuus vaatii selaimelta jotain erikoista tai sen käyttöä on harkittava!
    • Miten tämä uusi dokumentaatio suhtautuu eduguihin omaan dokumentaatioon? omistusoikeus?

    ...

    Linkkejä

    ...