Samanaikaisten muokkausten estäminen
Toisinaan useampi henkilö koettaa muokata samanaikaisesti sivua. Mikäli samalle sivulle tehdyt useat muutokset tallennetaan, siitä seuraa ristiriitoja. Ilman minkäänlaista varoitusjärjestelmää yksi muokkaajista saattaa tallentaa sivun, ja muut muokkaajat saavat tallentaessaan vain varoituksen syntyneestä ristiriitatilanteesta. Tällaisten tilanteiden estämiseksi on tarpeellista näyttää varoitus kaikille niille, jotka yrittävät muokata sivua, jota joku toinen jo muokkaa. Wiki siis pitää kirjalla kaikkia parhaillaan muokattavina olevia sivuja.
MoinMoin käyttää ristiriitatilanteiden estämiseksi muokkauslukkoja. Muokkauslukkoja on mahdollista käyttää kolmella eri tavalla: varoittamalla muita muokkaajia, lukitsemalla sivu muilta muokkaajilta ja lukkojen kytkeminen kokonaan pois.
Jos MoinMoin on määritelty varoittamaan (warn), niin samanaikaisten muokkausten tapahtuessa myöhemmin muokkauksensa aloittavaa käyttäjää varoitetaan. Varoitusviesti kehottaa odottamaan, kunnes ensimmäinen muokkaaja on saanut muutoksensa tallennettua. Varoitustilassa samanaikaiset muokkaukset ovat mahdollisia.
Jos MoinMoin on määritelty lukitsemaan (lock), niin sivua ei pysty muokkaamaan kuin yksi käyttäjä kerrallaan. Muut muokkausta yrittävät käyttäjät saavat huomautuksen, jossa kerrotaan sivun olevan lukittu ja että sivua ei pysty muokkaamaan, ennen kuin muokkauslukon saanut käyttäjä on valmis.
Lukitustoimintoa käyttäessä käyttäjä saattaa aloittaa muokkauksen, mutta ei kuitenkaan tallenna tai peruuta muokkaustaan!
Käyttäjä napsauttaa Muokkaa-painiketta ja napsauttaa jotain linkkiä, jolloin selain ohjautuu toiselle sivulle ja muokkaus jää perumatta
- Käyttäjä sulkee selaimen tai selain kaatuu ilman että muokkausta perutaan
- Käyttäjä painaa selaimen Edelliselle sivulle -painiketta
- Käyttäjä aloittaa muokkauksen, mutta poistuu koneelta pitkäksi aikaa ilman muokkauksen perumista
Edellä mainitut tapaukset johtaisivat varoituksiin tai muokkauslukkoihin, jotka eivät koskaan vanhenisi. Tällaisten tapausten vuoksi varoitus- ja lukitustoiminnoissa on aikakatkaisu. Aikakatkaisu määrittelee, kuinka kauan lukon myöntämisestä muita käyttäjiä varoitetaan sivun muokkauksesta tai kuinka kauan sivu pysyy lukittuna samanaikaisilta muokkauksilta.
Käyttäjän napsauttaessa Esikatselu-painiketta tallentuu luonnos sivusta ja aikakatkaisun arvo nollautuu. Esikatselu-toimintoa käyttäessä saa siis uuden muokkauslukon sivulle. Jos poistut sivulta tai et käytä esikatselua, muokkauslukko saattaa vanheta. Silloin sivu on kaikkien muokattavissa.
Asetukset
Asetusten kohta `edit_locking` määrittelee muokkauslukitusjärjestelmän toiminnan. Seuraavat arvot ovat mahdollisia:
- "`None`", eli minkäänlaisia lukkoja ei käytetä. Käyttäjiä ei varoiteta tai estetä, jos samanaikaisia muokkauksia on tapahtumassa tai tapahtuu.
"`warn <aikakatkaisu>`" määrittelee MoinMoinin varoittamaan samanaikaisista muokkauksista. Aikakatkaisun arvo määrittelee, kuinka monta minuuttia lukon myöntämisestä muita käyttäjiä varoitetaan meneillään olevasta muokkauksesta. Esimerkiksi määritys "`warn 10`" varoittaa lukon myöntämisestä kymmenen minuutin ajan muita käyttäjiä meneillään olevasta muokkauksesta.
"`lock <aikakatkaisu>`" määrittelee MoinMoinin lukitsemaan sivun muilta muokkaajilta. Aikakatkaisun arvo määrittelee, kuinka moneksi minuutiksi sivu lukitaan muiden käyttäjien muokkauksilta siitä hetkestä lähtien, kun lukko on myönnetty. Esimerkiksi määritys "`lock 5`" käskee lukitsemaan sivun viideksi minuutiksi muokkauksen alkamisesta.
Muokkauksen peruminen
Muokkauksen perumiseksi tulee aina käyttää Peruuta-painiketta. Muuten sivun muokkauslukko saattaa jäädä turhaan käyttöön, ja muut käyttäjät eivät pysty muokkaamaan samaa sivua!
Esimerkkitapauksia
Otteita Matti Meikäläisen ja Eeva Esimerkin samanaikaisista muokkausyrityksistä
Ei lukitusta (None):: Matti Meikäläinen aloittaa muokkauksen. Eeva Esimerkki päättää muokata samaa sivua. Eevalla ei ole aavistusta siitä, että Matti muokkaa jo sivua. Kummatkin muokkaavat sivua mieleisekseen ja tallentavat muokkauksensa. Matti ehtii kuitenkin tallentaa ennen Eevaa. Koska Matti ehti tallentaa ensin, hänen muokkauksensa tallentuu. Eevan tallennus ei onnistu sellaisena kuin hän toivoisi, sillä Eeva tallentaa muokkauksensa vasta Matin jälkeen. Eeva joutuu joko yhdistämään sivut tai hylkäämään muokkauksensa. Opetus: se kumpi tallentaa ensin, saa muokkauksensa tallennettua. Myöhemmin tallentanut joutuu ongelmatilanteeseen.
Muokkausvaroitukset (warn):: Matti Meikäläinen aloittaa sivun muokkauksen. Eeva Esimerkki päättää muokata samaa sivua. Eeva napsauttaa Muokkaa-painiketta, jolloin häntä huomautetaan jo meneillään olevasta muokkauksesta. Jos Eeva poistuu sivulta muokkauksia tekemättä, Matti ei joudu ongelmiin. Mikäli Eeva kuitenkin tekee muutoksensa ja tallentaa ensin Mattia, niin Matti joutuu ongelmatilanteeseen.
Muokkauslukot (lock):: Matti Meiläinen aloittaa sivun muokkauksen. Eeva Esimerkki päättää muokata samaa sivua. Eeva napsauttaa Muokkaa-painiketta, jolloin hänelle kerrotaan sivun olevan muokkauksen kohteena jonkun toisen toimesta. Tällöin Eeva ei pysty tekemään muutoksia ja tallentamaan niitä.