/** * OpenKM, Open Document Management System (http://www.openkm.com) * Copyright (c) 2006-2011 Paco Avila & Josep Llort * * No bytes were intentionally harmed during the development of this application. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package com.openkm.frontend.client.util; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.openkm.frontend.client.Main; import com.openkm.frontend.client.bean.GWTWorkspace; import com.openkm.frontend.client.contants.service.RPCService; import com.openkm.frontend.client.service.OKMRepositoryService; import com.openkm.frontend.client.service.OKMRepositoryServiceAsync; import com.openkm.frontend.client.service.OKMWorkspaceService; import com.openkm.frontend.client.service.OKMWorkspaceServiceAsync; import com.openkm.frontend.client.widget.startup.StartUp; /** * Workspace user properties * * @author jllort * */ public class WorkspaceUserProperties { private final OKMRepositoryServiceAsync repositoryService = (OKMRepositoryServiceAsync) GWT.create(OKMRepositoryService.class); private final OKMWorkspaceServiceAsync workspaceService = (OKMWorkspaceServiceAsync) GWT.create(OKMWorkspaceService.class); private GWTWorkspace workspace; private String user = ""; private String applicationURL = ""; private String msg = ""; /** * Workspace user properties */ public WorkspaceUserProperties () { } /** * First time inits workspace */ public void init() { getUserWorkspace(); } /** * Call back to get remote update message */ final AsyncCallback<String> callbackGetUpdateMessage = new AsyncCallback<String>() { public void onSuccess(String result) { msg = result; Main.get().mainPanel.bottomPanel.userInfo.setUpdateMessage(msg); } public void onFailure(Throwable caught){ Main.get().showError("RemoteUser", caught); } }; /** * Call back to get workspace user data */ final AsyncCallback<GWTWorkspace> callbackGetUserWorkspace = new AsyncCallback<GWTWorkspace>() { public void onSuccess(GWTWorkspace result) { workspace = result; user = result.getUser(); applicationURL = result.getApplicationURL(); // Changing the web skin Util.changeCss(workspace.getWebSkin()); Main.get().mainPanel.bottomPanel.userInfo.setUser(user, result.isTabAdminVisible()); if (result.isChatEnabled()) { Main.get().mainPanel.bottomPanel.userInfo.enableChat(); if (result.isChatAutoLogin()) { Main.get().mainPanel.bottomPanel.userInfo.loginChat(); } } if (result.isUserQuotaEnabled() && result.getUserQuotaLimit() > 0) { Main.get().mainPanel.bottomPanel.userInfo.enableUserQuota(workspace.getUserQuotaLimit()); } Main.get().mainPanel.bottomPanel.userInfo.showExtensions(); //Main.get().aboutPopup.setAppVersion(result.getAppVersion()); //commented by vissu on feb18 getUserDocumentsSize(); // Refreshing user document size ( here is yet set userQuota limit ) // Starting schedulers Main.get().startUp.startKeepAlive(workspace.getKeepAliveSchedule()); Main.get().mainPanel.dashboard.startRefreshingDashboard(workspace.getDashboardSchedule()); // Enabling advanced filters if (workspace.isAdvancedFilters()) { Main.get().securityPopup.enableAdvancedFilter(); Main.get().fileUpload.enableAdvancedFilter(); Main.get().notifyPopup.enableAdvancedFilter(); } // Show / hide menus Main.get().mainPanel.topPanel.mainMenu.setFileMenuVisible(workspace.isMenuFileVisible()); Main.get().mainPanel.topPanel.mainMenu.setEditMenuVisible(workspace.isMenuEditVisible()); Main.get().mainPanel.topPanel.mainMenu.setToolsMenuVisible(workspace.isMenuToolsVisible()); Main.get().mainPanel.topPanel.mainMenu.setBookmarkMenuVisible(workspace.isMenuBookmarksVisible()); Main.get().mainPanel.topPanel.mainMenu.setHelpMenuVisible(workspace.isMenuHelpVisible()); // Init available languages Main.get().mainPanel.topPanel.mainMenu.initAvailableLanguage(workspace.getLangs()); // Enabling / disabling some actions Main.get().mainPanel.topPanel.toolBar.setAvailableOption(workspace.getAvailableOption()); // Showing tabs boolean refreshTab = false; if (workspace.isTabDesktopVisible()) { Main.get().mainPanel.topPanel.tabWorkspace.showDesktop(); refreshTab = true; } if (workspace.isTabSearchVisible()) { Main.get().mainPanel.topPanel.tabWorkspace.showSearh(); refreshTab = true; } if (workspace.isTabDashboardVisible()) { Main.get().mainPanel.topPanel.tabWorkspace.showDashboard(); refreshTab = true; } if (result.isTabAdminVisible()) { Main.get().mainPanel.topPanel.mainMenu.administration.setVisible(true); Main.get().mainPanel.topPanel.tabWorkspace.showAdministration(); refreshTab = true; } refreshTab = Main.get().mainPanel.topPanel.tabWorkspace.showExtensionTabs() || refreshTab; if (refreshTab) { Main.get().mainPanel.topPanel.tabWorkspace.init(); } // showing stack boolean refreshStack = false; if (workspace.isStackTaxonomy()) { Main.get().mainPanel.desktop.navigator.showTaxonomy(); refreshStack = true; } if (workspace.isStackCategoriesVisible()) { Main.get().mainPanel.desktop.navigator.showCategories(); refreshStack = true; } if (workspace.isStackThesaurusVisible()) { Main.get().mainPanel.desktop.navigator.showThesaurus(); refreshStack = true; } if (workspace.isStackTemplatesVisible()) { Main.get().mainPanel.desktop.navigator.showTemplates(); Main.get().mainPanel.desktop.navigator.taxonomyTree.folderSelectPopup.showTemplates(); Main.get().mainPanel.desktop.navigator.categoriesTree.folderSelectPopup.showTemplates(); Main.get().mainPanel.desktop.navigator.thesaurusTree.folderSelectPopup.showTemplates(); Main.get().mainPanel.desktop.navigator.personalTree.folderSelectPopup.showTemplates(); Main.get().mainPanel.desktop.navigator.templateTree.folderSelectPopup.showTemplates(); Main.get().mainPanel.desktop.navigator.mailTree.folderSelectPopup.showTemplates(); Main.get().mainPanel.desktop.navigator.trashTree.folderSelectPopup.showTemplates(); Main.get().mainPanel.dashboard.keyMapDashboard.showTemplates(); Main.get().mainPanel.search.searchBrowser.searchIn.showTemplates(); refreshStack = true; } if (workspace.isStackPersonalVisible()) { Main.get().mainPanel.desktop.navigator.showPersonal(); Main.get().mainPanel.desktop.navigator.taxonomyTree.folderSelectPopup.showPersonal(); Main.get().mainPanel.desktop.navigator.categoriesTree.folderSelectPopup.showPersonal(); Main.get().mainPanel.desktop.navigator.thesaurusTree.folderSelectPopup.showPersonal(); Main.get().mainPanel.desktop.navigator.personalTree.folderSelectPopup.showPersonal(); Main.get().mainPanel.desktop.navigator.templateTree.folderSelectPopup.showPersonal(); Main.get().mainPanel.desktop.navigator.mailTree.folderSelectPopup.showPersonal(); Main.get().mainPanel.desktop.navigator.trashTree.folderSelectPopup.showPersonal(); Main.get().mainPanel.dashboard.keyMapDashboard.showPersonal(); Main.get().mainPanel.search.searchBrowser.searchIn.showPersonal(); refreshStack = true; } if (workspace.isStackMailVisible()) { Main.get().mainPanel.desktop.navigator.showMail(); Main.get().mainPanel.desktop.navigator.taxonomyTree.folderSelectPopup.showMail(); Main.get().mainPanel.desktop.navigator.categoriesTree.folderSelectPopup.showMail(); Main.get().mainPanel.desktop.navigator.thesaurusTree.folderSelectPopup.showMail(); Main.get().mainPanel.desktop.navigator.personalTree.folderSelectPopup.showMail(); Main.get().mainPanel.desktop.navigator.templateTree.folderSelectPopup.showMail(); Main.get().mainPanel.desktop.navigator.mailTree.folderSelectPopup.showMail(); Main.get().mainPanel.desktop.navigator.trashTree.folderSelectPopup.showMail(); Main.get().mainPanel.dashboard.keyMapDashboard.showMail(); Main.get().mainPanel.search.searchBrowser.searchIn.showMail(); refreshStack = true; } if (workspace.isStackTrashVisible()) { Main.get().mainPanel.desktop.navigator.showTrash(); Main.get().mainPanel.dashboard.keyMapDashboard.showTrash(); Main.get().mainPanel.search.searchBrowser.searchIn.showTrash(); refreshStack = true; } if (refreshStack) { Main.get().mainPanel.desktop.navigator.refreshView(); } // Documents tabs if (workspace.isTabDocumentPropertiesVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.showDocument(); } if (workspace.isTabDocumentNotesVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.showNotes(); } if (workspace.isTabDocumentSecurityVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.showSecurity(); } if (workspace.isTabDocumentVersionVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.showVersion(); } if (workspace.isTabDocumentPreviewVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.showPreview(); } if (workspace.isTabDocumentPropertyGroupsVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.showPropertyGroups(); Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.showPropertyGroups(); Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.showPropertyGroups(); } Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.setKeywordEnabled(workspace.isKeywordEnabled()); Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.showExtensions(); Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.init(); // Folder tabs if (workspace.isTabFolderPropertiesVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.showProperties(); } if (workspace.isTabFolderNotesVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.showNotes(); } if (workspace.isTabFolderSecurityVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.showSecurity(); } Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.showExtensions(); Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.init(); // Mail tabs if (workspace.isTabMailPropertiesVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.showProperties(); } if (workspace.isTabMailSecurityVisible()) { Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.showSecurity(); } Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.showExtensions(); Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.init(); // Show / hide dashboard tools if (workspace.isDashboardUserVisible()) { Main.get().mainPanel.dashboard.showUser(); } if (workspace.isDashboardMailVisible()) { Main.get().mainPanel.dashboard.showMail(); } if (workspace.isDashboardNewsVisible()) { Main.get().mainPanel.dashboard.showNews(); } if (workspace.isDashboardGeneralVisible()) { Main.get().mainPanel.dashboard.showGeneral(); } if (workspace.isDashboardWorkflowVisible()) { Main.get().mainPanel.dashboard.showWorkflow(); } if (workspace.isDashboardKeywordsVisible()) { Main.get().mainPanel.dashboard.showKeywords(); } Main.get().mainPanel.dashboard.init(); Main.get().startUp.nextStatus(StartUp.STARTUP_GET_TAXONOMY_ROOT); // Getting update messages getUpdateMessage(); } public void onFailure(Throwable caught){ Main.get().showError("getUserWorkspace", caught); } }; /** * Gets the users documents size */ final AsyncCallback<Double> callbackGetUserDocumentsSize = new AsyncCallback<Double>() { public void onSuccess(Double result) { Main.get().mainPanel.bottomPanel.userInfo.setUserRepositorySize(result.longValue()); } public void onFailure(Throwable caught){ Main.get().showError("getUserDocumentsSize", caught); } }; /** * Gets the remote user */ private void getUpdateMessage() { ServiceDefTarget endPoint = (ServiceDefTarget) repositoryService; endPoint.setServiceEntryPoint(RPCService.RepositoryService); repositoryService.getUpdateMessage(callbackGetUpdateMessage); } /** * Gets the workspace user data */ public void getUserWorkspace() { ServiceDefTarget endPoint = (ServiceDefTarget) workspaceService; endPoint.setServiceEntryPoint(RPCService.WorkspaceService); workspaceService.getUserWorkspace(callbackGetUserWorkspace); } /** * refreshUserWorkspace */ public void refreshUserWorkspace() { ServiceDefTarget endPoint = (ServiceDefTarget) workspaceService; endPoint.setServiceEntryPoint(RPCService.WorkspaceService); workspaceService.getUserWorkspace(new AsyncCallback<GWTWorkspace>() { @Override public void onSuccess(GWTWorkspace result) { workspace = result; } @Override public void onFailure(Throwable caught) { Main.get().showError("getUserWorkspace", caught); } }); } /** * Gets the user documents size */ public void getUserDocumentsSize() { ServiceDefTarget endPoint = (ServiceDefTarget) workspaceService; endPoint.setServiceEntryPoint(RPCService.WorkspaceService); workspaceService.getUserDocumentsSize(callbackGetUserDocumentsSize); } /** * Gets the user * * @return The user */ public String getUser() { return user; } /** * Gets the application URL * * @return */ public String getApplicationURL() { return applicationURL; } /** * Gets the workspace data * * @return The workspace data */ public GWTWorkspace getWorkspace() { return workspace; } /** * setAvailableAction * * Some actions must be enabled at ends because some objects are not created since end startp up */ public void setAvailableAction() { Main.get().mainPanel.desktop.navigator.taxonomyTree.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); //commented out by vissu on may18 for disable categories & thesaurus //Main.get().mainPanel.desktop.navigator.categoriesTree.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); //Main.get().mainPanel.desktop.navigator.thesaurusTree.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.desktop.navigator.templateTree.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.desktop.navigator.personalTree.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); //commented out by vissu on may14 for disable mail //Main.get().mainPanel.desktop.navigator.mailTree.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.desktop.navigator.trashTree.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.desktop.browser.fileBrowser.taxonomyMenuPopup.menu.setAvailableOption(workspace.getAvailableOption()); //commented out by vissu on may18 for disable categories & thesaurus //Main.get().mainPanel.desktop.browser.fileBrowser.categoriesMenuPopup.menu.setAvailableOption(workspace.getAvailableOption()); //Main.get().mainPanel.desktop.browser.fileBrowser.thesaurusMenuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.desktop.browser.fileBrowser.templatesMenuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.desktop.browser.fileBrowser.personalMenuPopup.menu.setAvailableOption(workspace.getAvailableOption()); //commented out by vissu on may14 for disable mail //Main.get().mainPanel.desktop.browser.fileBrowser.mailMenuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.desktop.browser.fileBrowser.trashMenuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.search.searchBrowser.searchResult.searchCompactResult.menuPopup.menu.setAvailableOption(workspace.getAvailableOption()); Main.get().mainPanel.topPanel.mainMenu.setAvailableOption(workspace); } }