~funderscoreblog cgit wikiget in touch

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!

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:

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ä.