diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/Cards/List.js b/frontend/delta/js/Clipperz/PM/UI/Components/Cards/List.js index b83e227..f173e84 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/Cards/List.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/Cards/List.js @@ -34,7 +34,7 @@ Clipperz.PM.UI.Components.Cards.List = React.createClass({ }, handleClick: function (anEvent) { - MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'cardSelected', {'reference':anEvent.currentTarget.dataset.reference, 'label':anEvent.currentTarget.dataset.label}); + MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'selectCard', {'reference':anEvent.currentTarget.dataset.reference, 'label':anEvent.currentTarget.dataset.label}); }, renderItem: function (anItem) { diff --git a/frontend/delta/js/Clipperz/PM/UI/MainController.js b/frontend/delta/js/Clipperz/PM/UI/MainController.js index 4001d81..676e997 100644 --- a/frontend/delta/js/Clipperz/PM/UI/MainController.js +++ b/frontend/delta/js/Clipperz/PM/UI/MainController.js @@ -45,6 +45,8 @@ Clipperz.PM.UI.MainController = function() { this._hasKeyboard = this._isDesktop; this._recordsInfo = null; + this._selectedCards = null; + this._selectedCardInfo = null; this._closeMaskAction = null; @@ -65,7 +67,7 @@ Clipperz.PM.UI.MainController = function() { 'selectAllCards', 'selectRecentCards', 'search', 'tagSelected', 'selectUntaggedCards', 'refreshCardEditDetail', 'saveCardEdits', 'cancelCardEdits', - 'cardSelected', + 'selectCard', 'addCardClick', 'deleteCard', 'toggleArchiveCard', 'cloneCard', 'editCard', 'addTag', 'removeTag', @@ -457,7 +459,7 @@ console.log("THE BROWSER IS OFFLINE"); updateSelectedCard: function (someInfo, shouldShowLoading) { var deferredResult; - var showLoading = typeof shouldShowLoading !== 'undefined' ? shouldShowLoading : true; + var showLoading = typeof(shouldShowLoading) !== 'undefined' ? shouldShowLoading : true; if (someInfo == null) { this.setPageProperties('mainPage', 'selectedCard', {}); @@ -530,6 +532,7 @@ console.log("THE BROWSER IS OFFLINE"); resetRecordsInfo: function () { this._recordsInfo = null; + this._selectedCards = null; }, getRecordsInfo: function (cardInfo, shouldIncludeArchivedCards) { @@ -547,6 +550,17 @@ console.log("THE BROWSER IS OFFLINE"); return deferredResult; }, + //............................................................................ + + selectedCards: function () { + return this._selectedCards; + }, + + setSelectedCards: function (aValue) { + this._selectedCards = aValue; + return this._selectedCards; + }, + //---------------------------------------------------------------------------- updateSelectedCards: function (shouldIncludeArchivedCards, aFilter) { @@ -605,6 +619,7 @@ console.log("THE BROWSER IS OFFLINE"); deferredResult.addMethod(this, 'setPageProperties', 'mainPage', 'cards'); deferredResult.addCallback(MochiKit.Base.bind(function (someCards) { + this.setSelectedCards(someCards); if (!this.isSelectedCardStillVisible(someCards)) { this.updateSelectedCard(null); }; @@ -976,20 +991,20 @@ console.log("THE BROWSER IS OFFLINE"); isSelectionPanelHidable: function () { var result; - + if (this.mediaQueryStyle() == 'extra-wide') { result = false; } else { result = true; } - + return result; }, - + isSelectionPanelOpen: function () { return this._isSelectionPanelOpen; }, - + toggleSelectionPanel_handler: function (anEvent) { if (this.isSelectionPanelHidable() == true) { this._isSelectionPanelOpen = !this._isSelectionPanelOpen; @@ -997,23 +1012,97 @@ console.log("THE BROWSER IS OFFLINE"); this.refreshCurrentPage(); } }, - isSettingsPanelOpen: function () { return this._isSettingsPanelOpen; }, - + toggleSettingsPanel_handler: function (anEvent) { this._isSettingsPanelOpen = !this._isSettingsPanelOpen; this.setCloseMaskAction(MochiKit.Base.method(this, 'toggleSettingsPanel_handler')); this.refreshCurrentPage(); }, - resetCardSelection: function () { + //---------------------------------------------------------------------------- + + selectedCardInfo: function () { + return this._selectedCardInfo; + }, + + selectedCardIndex: function () { + var selectedCardInfo; + var result; + + result = -1; + selectedCardInfo = this.selectedCardInfo(); + if (selectedCardInfo != null) { + var selectedCards; + var reference; + var i, c; + + selectedCards = this.selectedCards(); + reference = selectedCardInfo['reference']; + c = selectedCards.length; + i = 0; + while (i