(function () { "use strict"; angular .module('shared') .component('addTo', { templateUrl: '/shared/js/angular/file-cabinet/add-to.html', controller: 'AddTo', bindings: { popover: '<', bookid: '<', languageid: '<', resourcetype: '<', worksheettype: '<', worksheetsubtypeid: '<', phonicslessonid: '<', parentctrl: '<' } }) .controller('AddTo', AddToCtrl); AddToCtrl.$inject = ['folders', 'folderService', '$scope', 'messageHandler', 'fileCabinetRibbonService', 'FeatureCheck', 'folderListItemAmbassador']; function AddToCtrl(folders, folderService, $scope, messageHandler, fileCabinetRibbonService, FeatureCheck, folderListItemAmbassador) { var ctrl = this; var selectedFolder = null; ctrl.addInModalEnabled = FeatureCheck.isFeatureEnabled("FILECABINET_ADD_IN_MODEL"); ctrl.$onInit = function () { folderListItemAmbassador.registerOnSelectedFolderListItemChanged($scope, onSelectedFolderListItemChanged); }; ctrl.isButtonDisabled = function() { return !selectedFolder || !selectedFolder.isChecked; }; ctrl.closePopout = function () { if (ctrl.popover != null) { ctrl.popover.close(); } }; ctrl.ribbonActive = function() { return fileCabinetRibbonService.ribbonActive(); }; ctrl.sendAddResourceRequest = function () { try { fileCabinetRibbonService.setFromLandingPage(true); var languageIDFromTabs = ctrl.languageid; if ($j('.bookTabs .active') != null && $j('.bookTabs .active').attr('data-language-id') != null) { languageIDFromTabs = $j('.bookTabs .active').attr('data-language-id'); } if ($j('#isSpanishOnly') != null && $j('#isSpanishOnly').attr('data-language-id') != null) { languageIDFromTabs = $j('#isSpanishOnly').attr('data-language-id'); } fileCabinetRibbonService.setIsBusy(true); ctrl.closePopout(); var everyoneFolder = selectedFolder != null && selectedFolder['everyoneFolder'] === true; folderService.addResourceToFolder(selectedFolder.id,null,ctrl.bookid,ctrl.resourcetype,languageIDFromTabs,ctrl.worksheettype,ctrl.worksheetsubtypeid,ctrl.phonicslessonid,everyoneFolder) .then(function success(response) { var folderObj = response.folder; var addedResource = response.resource; var thumbnailInfo = {}; thumbnailInfo.alt = addedResource.imgAlt; thumbnailInfo.orientation = addedResource.imgOrientation; thumbnailInfo.showThumbnail = false; thumbnailInfo.src = addedResource.imgSrc; var resourceToAdd = { resourcetype: ctrl.resourcetype, folderName: folderObj.name, folderObj: folderObj, isRkBook: 'false', bookId: ctrl.bookid, languageId: languageIDFromTabs, thumbnailInfo: thumbnailInfo, worksheettype: ctrl.worksheettype, worksheetsubtypeid: ctrl.worksheetsubtypeid, phonicslessonid: ctrl.phonicslessonid }; resourceToAdd.groupId = addedResource.group_id; resourceToAdd.typeId = addedResource.rtype; resourceToAdd.id = addedResource.id; if (fileCabinetRibbonService.ribbonActive()) { messageHandler.publishSuccess('Resource added to file cabinet.'); } setLastPopoutFolderId(folderObj.id); fileCabinetRibbonService.emitEventToFileCabinetRibbonScope("fileCabinetRibbon.update", resourceToAdd); }) .catch(function failure(reason) { messageHandler.publishError('Could not add resource to folder. This resource may have already been added to this folder.'); }); } catch(err) { messageHandler.publishError('Could not add resource to folder.'); } finally { fileCabinetRibbonService.setIsBusy(false); } }; function onSelectedFolderListItemChanged() { var selectedFolderListItem = folderListItemAmbassador.getSelectedFolderListItem(); selectedFolder = selectedFolderListItem && !selectedFolderListItem.locked ? selectedFolderListItem : null; } function setLastPopoutFolderId(folderId) { var id = folderId != null && folderId != null ? folderId : -1; if (id === ctrl.lastSavedFolderId) { return; } ctrl.lastSavedFolderId = id; folderService.setLastPopoutFolderID({folder_id:id}).then( function (response) { //console.log('Save last folder id ' + id); }, function (reason) { console.log('Could not set last folder id.'); console.log(reason); } ); } } })();