From: Andy Allan Date: Tue, 17 Aug 2010 17:23:12 +0000 (+0000) Subject: Prevent changes to created_by and version tags on changesets X-Git-Tag: 0.5~318 X-Git-Url: https://git.openstreetmap.org/potlatch2.git/commitdiff_plain/a361c909e450a8c195f92b2769d183f101029c18 Prevent changes to created_by and version tags on changesets --- diff --git a/TODO.txt b/TODO.txt index f1cb4fa5..84262975 100644 --- a/TODO.txt +++ b/TODO.txt @@ -19,7 +19,6 @@ Potlatch 2: main outstanding issues == Saving == * Should be able to reuse changesets -* Shouldn't be able to change created_by and version on changeset == Tag editing == diff --git a/net/systemeD/potlatch2/save/SaveDialog.mxml b/net/systemeD/potlatch2/save/SaveDialog.mxml index a3fa522e..c8ab631e 100644 --- a/net/systemeD/potlatch2/save/SaveDialog.mxml +++ b/net/systemeD/potlatch2/save/SaveDialog.mxml @@ -30,7 +30,9 @@ + dataProvider="{changesetTags}" + itemEditBeginning="allowForEdit(event)" + itemEditEnd="verifyInput(event)"> @@ -75,6 +77,8 @@ import mx.controls.*; import mx.managers.PopUpManager; import mx.core.Application; + import mx.events.DataGridEvent; + import mx.events.DataGridEventReason; import net.systemeD.halcyon.connection.*; @@ -116,6 +120,28 @@ conn.createChangeset(tags); } + private function allowForEdit(event:DataGridEvent):void { + /* check before editing the tag grid that it's neither created_by nor version tags */ + var item:Object = ((event.currentTarget as DataGrid).dataProvider as ArrayCollection)[event.rowIndex]; + if(item.k == 'created_by' || item.k == 'version') { + event.preventDefault(); + } + } + + private function verifyInput(event:DataGridEvent):void { + /* check before saving any change that the new key isn't created_by nor version */ + // it is OK if the user cancels the edit + if( event.reason == DataGridEventReason.CANCELLED ) return; + + var editor:TextInput = (event.currentTarget as DataGrid).itemEditorInstance as TextInput; + + if( event.dataField == "k" ) { + if( editor.text == 'created_by' || editor.text == 'version' ) { + event.preventDefault(); + } + } + } + private function changesetCreated(event:EntityEvent):void { var changeset:Changeset = conn.getActiveChangeset(); addStatus("Changeset created (id: "+changeset.id+")");