Index: lams_central/src/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as =================================================================== diff -u -r85778860894cb37b9d17b1f4cb47915ff1ac4d6c -rfab349e06b84c920af8cef909f78d71fe4268459 --- lams_central/src/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 85778860894cb37b9d17b1f4cb47915ff1ac4d6c) +++ lams_central/src/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision fab349e06b84c920af8cef909f78d71fe4268459) @@ -56,6 +56,7 @@ private var _learningDesignID:Number; + private var _prevLearningDesignID:Number; // used for backup retrieval of the learning Design ID private var _title:String; private var _description:String; private var _helpText:String; @@ -716,6 +717,14 @@ _learningDesignID = a; } + public function get prevLearningDesignID():Number{ + return _prevLearningDesignID; + } + + public function set prevLearningDesignID(a:Number):Void{ + _prevLearningDesignID = a; + } + public function get title():String{ return _title; } Index: lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as =================================================================== diff -u -r8d7b0e756e76ad04fb57fd54fe0395e8621da222 -rfab349e06b84c920af8cef909f78d71fe4268459 --- lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision 8d7b0e756e76ad04fb57fd54fe0395e8621da222) +++ lams_central/src/flash/org/lamsfoundation/lams/authoring/cv/Canvas.as (.../Canvas.as) (revision fab349e06b84c920af8cef909f78d71fe4268459) @@ -347,11 +347,15 @@ public function saveDesignToServerAs(mode:String){ // if design as not been previously saved then we should use SAVE mode if(_ddm.learningDesignID == null) { mode = Workspace.MODE_SAVE } + else { + //hold exisiting learningDesignID value in model (backup) + _ddm.prevLearningDesignID = _ddm.learningDesignID; + + //clear the learningDesignID so it will not overwrite the existing one + _ddm.learningDesignID = null; + } - //clear the learningDesignID so it will not overwrite the existing one - //_ddm.learningDesignID = null; - var onOkCallback:Function = Proxy.create(this, saveDesignToServer); var ws = Application.getInstance().getWorkspace(); ws.setDesignProperties("LOCATION", mode, onOkCallback); @@ -373,7 +377,7 @@ */ public function saveDesignToServer(workspaceResultDTO:Object):Boolean{ _global.breakpoint(); - _ddm.learningDesignID = null; + //TODO: Set the results from wsp into design. if(workspaceResultDTO != null){ if(workspaceResultDTO.selectedResourceID != null){ @@ -417,6 +421,11 @@ Application.getInstance().getWorkspace().getWV().clearDialog(); if(r instanceof LFError){ + // reset old learning design ID if failed completing a save-as operation + if(_ddm.prevLearningDesignID != null && _ddm.saveMode == 1) { + _ddm.prevLearningDesignID = null; + } + Cursor.showCursor(Application.C_DEFAULT); r.showErrorAlert(); }else{ Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -rfa4cad3bae1bbb2f5a05a63d09a8582bb83ff0cf -rfab349e06b84c920af8cef909f78d71fe4268459 Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -rfa4cad3bae1bbb2f5a05a63d09a8582bb83ff0cf -rfab349e06b84c920af8cef909f78d71fe4268459 Binary files differ Index: lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as =================================================================== diff -u -ra39ae5b70adbb7b3f5cea84657d3e70367a501b4 -rfab349e06b84c920af8cef909f78d71fe4268459 --- lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as (.../WorkspaceDialog.as) (revision a39ae5b70adbb7b3f5cea84657d3e70367a501b4) +++ lams_common/src/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as (.../WorkspaceDialog.as) (revision fab349e06b84c920af8cef909f78d71fe4268459) @@ -25,6 +25,9 @@ import mx.utils.* import mx.managers.* import mx.events.* +import org.lamsfoundation.lams.authoring.Application; +import org.lamsfoundation.lams.authoring.cv.Canvas; +import org.lamsfoundation.lams.authoring.DesignDataModel; import org.lamsfoundation.lams.common.*; import org.lamsfoundation.lams.common.ws.* import org.lamsfoundation.lams.common.util.* @@ -721,9 +724,7 @@ * Called by the cancel button */ private function cancel(){ - trace('Cancel'); - //close parent window - _container.deletePopUp(); + close(); } public function showHideBtn(v:Boolean):Void{ @@ -970,7 +971,7 @@ } public function closeThisDialogue(){ - _container.deletePopUp(); + close(); } @@ -999,9 +1000,23 @@ */ private function click(e:Object){ trace('WorkspaceDialog.click'); - e.target.deletePopUp(); + close(e.target); + // e.target.deletePopUp(); } + private function close(container:Object){ + // restore learningDesignID + var ddm:DesignDataModel = Application.getInstance().getCanvas().ddm; + + if(ddm.prevLearningDesignID != null) { + ddm.learningDesignID = ddm.prevLearningDesignID; + ddm.prevLearningDesignID = null; + } + + //close parent window + if(container != null) { container.deletePopUp(); } + else { _container.deletePopUp(); } + } /** * Recursive function to set any folder with children to be a branch