Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/IndexButton.as =================================================================== diff -u -re81958af10d6f71738ab15ba4ee3df5d459cf578 -rc086a9913cea155e2ac9ed14df0e43b04182232d --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/IndexButton.as (.../IndexButton.as) (revision e81958af10d6f71738ab15ba4ee3df5d459cf578) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/IndexButton.as (.../IndexButton.as) (revision c086a9913cea155e2ac9ed14df0e43b04182232d) @@ -109,6 +109,7 @@ matchesArr = mc.searchForLearners(String(mm.learnerIndexView.getIdxTextField().text)); if (matchesArr.length > 0) { mm.drawIndexButtons = true; + mm.currentLearnerIndexNoRedraw = 1; mm.searchResults = matchesArr; var toggleBtn:MovieClip = mm.getMonitor().getMV().getLearnerIndexPanel().toggleBtn; toggleBtn._visible = true; @@ -121,13 +122,12 @@ mm.drawIndexButtons = true; mm.inSearchView = false; mm.resetSearchTextField = true; - - //mm.currentLearnerIndexNoRedraw = 1; + mm.currentLearnerIndexNoRedraw = mm.oldIndex; mm.setLessonProgressData(mm.progressArrBackup); - } else { mm.drawIndexButtons = false; + mm.indexSelected = true; mm.currentLearnerIndex = Number(label.text); if (!mm.inSearchView) mm.oldIndex = mm.currentLearnerIndex; Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as =================================================================== diff -u -re81958af10d6f71738ab15ba4ee3df5d459cf578 -rc086a9913cea155e2ac9ed14df0e43b04182232d --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision e81958af10d6f71738ab15ba4ee3df5d459cf578) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/MonitorModel.as (.../MonitorModel.as) (revision c086a9913cea155e2ac9ed14df0e43b04182232d) @@ -93,6 +93,7 @@ private var _isDesignDrawn:Boolean; private var _showLearners:Boolean; private var _inSearchView:Boolean; + private var _indexSelected:Boolean; private var _resetSearchTextField:Boolean; private var _endGate:MovieClip; private var _learnerIndexView:MovieClip; @@ -124,6 +125,7 @@ private var _learnersPerPage:Number; private var _numLearners:Number; private var _firstDisplayedIndexButton:Number; + private var _oldFirstDisplayedIndexButton:Number; private var _lastDisplayedIndexButton:Number; private var _numDisplayedIdxButtons:Number private var _numPreferredIndexButtons:Number; @@ -154,11 +156,14 @@ lastIndexInitialised = false; _inSearchView = false; _resetSearchTextField = false; + _indexSelected = false; _currentLearnerIndex = 1; + _oldIndex = 1; _numPreferredIndexButtons = 10; // to be displayed at a time _learnersPerPage = (_root.pb == undefined) ? 10 : _root.pb; _firstDisplayedIndexButton = 1; + _oldFirstDisplayedIndexButton = 1; Debugger.log("progress batch number: "+_root.pb,Debugger.CRITICAL,"MonitorModel","MonitorModel"); _activeView = null; @@ -496,31 +501,38 @@ var minButtons:Number = Math.min(diff, _numPreferredIndexButtons); _lastDisplayedIndexButton += minButtons; _firstDisplayedIndexButton = _lastDisplayedIndexButton - Math.min(numIndexButtons, _numPreferredIndexButtons) + 1; + if (!_inSearchView) + _oldFirstDisplayedIndexButton = _firstDisplayedIndexButton; sendButtonUpdate(); } else if (s == "<<") { _firstDisplayedIndexButton -= _numPreferredIndexButtons; if (_firstDisplayedIndexButton < 1) _firstDisplayedIndexButton = 1; + if (!_inSearchView) + _oldFirstDisplayedIndexButton = _firstDisplayedIndexButton; _lastDisplayedIndexButton = numIndexButtons > _numPreferredIndexButtons ? (_firstDisplayedIndexButton + _numPreferredIndexButtons - 1) : numIndexButtons; sendButtonUpdate(); } - else { // Refresh or Go clicked - Debugger.log("Refresh or Go clicked", Debugger.CRITICAL, "updateIndexButtons", "MonitorModel"); - Debugger.log("MonitorModel inSearchView: "+inSearchView, Debugger.GEN, "updateIndexButtons", "MonitorModel"); - if (_inSearchView ) { - if (numIndexButtons < currentLearnerIndex) { - _firstDisplayedIndexButton = 1; - _lastDisplayedIndexButton = Math.min(numIndexButtons,_numPreferredIndexButtons); - } else - _lastDisplayedIndexButton = Math.min(numIndexButtons,_numPreferredIndexButtons); + else { // 'Refresh', 'Go' or 'Index View' or numeric index button clicked + if (_indexSelected) { + _indexSelected = false; } - else if (_lastDisplayedIndexButton < _numPreferredIndexButtons) { + else if (_inSearchView) { + _firstDisplayedIndexButton = 1; // index View _lastDisplayedIndexButton = Math.min(numIndexButtons,_numPreferredIndexButtons); } + else { + _firstDisplayedIndexButton = (_oldFirstDisplayedIndexButton > 0) ? _oldFirstDisplayedIndexButton : 1; + _lastDisplayedIndexButton = _firstDisplayedIndexButton + Math.min(numIndexButtons,_numPreferredIndexButtons) - 1; + } } } + public function set indexSelected(idxSelected:Boolean) { + _indexSelected = idxSelected; + } + public function sendButtonUpdate():Void { //Set flag for notify observers setChanged(); @@ -542,7 +554,7 @@ public function get numDisplayedIdxButtons():Number { return _numDisplayedIdxButtons = _lastDisplayedIndexButton - _firstDisplayedIndexButton + 1; - } + } public function get firstDisplayedIndexButton():Number { return _firstDisplayedIndexButton; @@ -561,12 +573,10 @@ } public function set searchResults(matchesArr:Array) { - //_oldIndex = _currentLearnerIndex; - Debugger.log("_inSearchView: "+_inSearchView, Debugger.CRITICAL, "searchResults", "MonitorModel"); if (!_inSearchView) { _currentLearnerIndex = 1; - _inSearchView = true; } + _inSearchView = true; setLessonProgressData(matchesArr); _searchResultsBackup = matchesArr; } @@ -576,6 +586,7 @@ _drawButtons = true; if (_inSearchView) _currentLearnerIndex = 1; + _oldFirstDisplayedIndexButton = 1; _inSearchView = false; _resetSearchTextField = true; } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerIndexView.as =================================================================== diff -u -rcf04925b143ac697c9914d5f5cf2288f3af50ad5 -rc086a9913cea155e2ac9ed14df0e43b04182232d --- lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerIndexView.as (.../LearnerIndexView.as) (revision cf04925b143ac697c9914d5f5cf2288f3af50ad5) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/monitoring/mv/tabviews/LearnerIndexView.as (.../LearnerIndexView.as) (revision c086a9913cea155e2ac9ed14df0e43b04182232d) @@ -188,42 +188,10 @@ //var styleObj = _tm.getStyleObject('IndexBar'); } - /*public function setupButtons(mm:MonitorModel):Void { - rangeLabel.text = "Page " + mm.currentLearnerIndex + " of " + mm.numIndexButtons; - if ((displayedButtons.length > 0) && (drawButtons == true)) { - removeButtons(); - } - - if (drawButtons == true) { - _buttonsPanel_mc = this.createEmptyMovieClip("_buttonsPanel_mc", DepthManager.kTop); - addRangeLabel(mm); - if (mm.numIndexButtons > mm.numPreferredIndexButtons) { - addBackNavigationButton(mm); - } - } - addIndexButtons(mm); // if drawButtons = false, just rename labels - - if (drawButtons == true) { - if (mm.numIndexButtons > mm.numPreferredIndexButtons) { - addForwardNavigationButton(mm); - navigationButtonsDrawn = true; - } - addIndexTextField(mm); - addGoButton(mm); - addToggleViewButton(mm); - - buttonsShown = true; - direction = null; - } - //if (mm.inSearchView) - // toggleBtn._visible = true; - - nextPosition = 0; - }*/ public function setupButtons(mm:MonitorModel):Void { rangeLabel.text = "Page " + mm.currentLearnerIndex + " of " + mm.numIndexButtons; - + Debugger.log("displayedButtons.length: "+displayedButtons.length, Debugger.CRITICAL, "setupButtons", "LearnerIndexView"); if (!navigationButtonsDrawn && mm.numIndexButtons > displayedButtons.length && displayedButtons.length == mm.numPreferredIndexButtons) mm.drawIndexButtons = true; Index: lams_monitoring/web/lams_monitoring.swf =================================================================== diff -u -rcf04925b143ac697c9914d5f5cf2288f3af50ad5 -rc086a9913cea155e2ac9ed14df0e43b04182232d Binary files differ Index: lams_monitoring/web/lams_monitoring_library.swf =================================================================== diff -u -rcf04925b143ac697c9914d5f5cf2288f3af50ad5 -rc086a9913cea155e2ac9ed14df0e43b04182232d Binary files differ