Skip to content

Commit

Permalink
Activity log details page #148 [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
hmiguim authored and 006627 committed Jan 28, 2020
1 parent aa49b95 commit e79ed65
Show file tree
Hide file tree
Showing 24 changed files with 303 additions and 79 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.databasepreservation.common.server.ViewerConfiguration;
import com.databasepreservation.common.api.common.ConsumesOutputStream;
import com.databasepreservation.common.client.ViewerConstants;
import com.databasepreservation.common.server.ViewerConfiguration;

public class Theme {

Expand Down Expand Up @@ -61,6 +61,8 @@ public static StreamResponse getThemeResourceStreamResponse(final Pair<String, I
mimeType = "image/png";
} else if (resourceId.endsWith(".js")) {
mimeType = "text/javascript";
} else if (resourceId.endsWith(".svg")) {
mimeType = "image/svg+xml";
} else {
mimeType = ViewerConstants.MEDIA_TYPE_APPLICATION_OCTET_STREAM;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.roda.core.data.exceptions.RequestNotValidException;
import org.roda.core.data.utils.JsonUtils;
import org.roda.core.data.v2.index.filter.Filter;
import org.roda.core.data.v2.index.filter.FilterParameter;
import org.roda.core.data.v2.index.filter.SimpleFilterParameter;
import org.roda.core.data.v2.user.User;
import org.slf4j.Logger;
Expand Down Expand Up @@ -113,7 +114,12 @@ public IndexResult<ViewerDatabase> findDatabases(FindRequest findRequest, String
List<String> fieldsToReturn = new ArrayList<>();
fieldsToReturn.add(ViewerConstants.INDEX_ID);
fieldsToReturn.add(ViewerConstants.SOLR_DATABASES_METADATA);
return getViewerDatabaseIndexResult(findRequest, fieldsToReturn, controllerAssistant, user, state);
FilterParameter parameter = new SimpleFilterParameter(ViewerConstants.SOLR_DATABASES_STATUS,
ViewerDatabaseStatus.AVAILABLE.name());
Filter databasesReadyFilter = new Filter(parameter);
FindRequest request = new FindRequest(findRequest.classToReturn, databasesReadyFilter, findRequest.sorter,
findRequest.sublist, findRequest.facets, findRequest.exportFacets, fieldsToReturn);
return getViewerDatabaseIndexResult(request, fieldsToReturn, controllerAssistant, user, state);
}
} else {
return getViewerDatabaseIndexResult(findRequest, controllerAssistant, user, state);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE file at the root of the source
* tree and available online at
*
* https://github.com/keeps/roda
*/
package com.databasepreservation.common.api.v1.utils;

import javax.activation.MimetypesFileTypeMap;

public class MimeTypeHelper {

private static final String APPLICATION_OCTET_STREAM = "application/octet-stream";
private static final MimetypesFileTypeMap MIMEMAP = new MimetypesFileTypeMap();

static {
MIMEMAP.addMimeTypes("text/css css CSS");
MIMEMAP.addMimeTypes("application/javascript js JS");
MIMEMAP.addMimeTypes("image/svg+xml svg SVG");
MIMEMAP.addMimeTypes("video/mp4 mp4 MP4");
}

public static String getContentType(String filename) {
return getContentType(filename, APPLICATION_OCTET_STREAM);
}

public static String getContentType(String filename, String fallback) {
String ret = MIMEMAP.getContentType(filename);

if (APPLICATION_OCTET_STREAM.equals(ret)) {
ret = fallback;
}

return ret;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@
import com.databasepreservation.common.client.ClientLogger;
import com.databasepreservation.common.client.common.dialogs.Dialogs;
import com.databasepreservation.common.client.common.utils.AsyncCallbackUtils;
import com.databasepreservation.common.client.tools.HistoryManager;
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.rpc.AsyncCallback;

import config.i18n.client.ClientMessages;

Expand Down Expand Up @@ -65,14 +67,36 @@ public void onFailure(Method method, Throwable throwable) {
// user.
AuthenticationResource.Util.call((User user) -> {
if (user.isGuest()) {
Dialogs.showErrors("Authentication error", "not login mister", messages.basicActionClose());
UserLogin.getInstance().showSuggestLoginDialog();
} else {
Dialogs.showErrors("Authentication error", "not login mister", messages.basicActionClose());
Dialogs.showInformationDialog(messages.loginDialogTitle(), messages.loginMissingPermissions(), messages.basicActionClose(),
"btn btn-close", new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
HistoryManager.gotoHome();
}

@Override
public void onSuccess(Void result) {
HistoryManager.gotoHome();
}
});
}
}).getAuthenticatedUser();

} else if (method.getResponse().getStatusCode() == Response.SC_NOT_FOUND) {
Dialogs.showErrors("NOT FOUND", "NOT FOUND", messages.basicActionClose());
Dialogs.showInformationDialog(messages.loginDialogTitle(), messages.objectNotFound(), messages.basicActionClose(),
"btn btn-close", new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
HistoryManager.gotoHome();
}

@Override
public void onSuccess(Void result) {
HistoryManager.gotoHome();
}
});
}

new ClientLogger(AsyncCallbackUtils.class.getName())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,27 @@
import java.util.List;
import java.util.Vector;

import com.databasepreservation.common.client.services.AuthenticationService;
import org.apache.http.HttpRequest;
import org.fusesource.restygwt.client.Method;
import org.fusesource.restygwt.client.MethodCallback;
import org.roda.core.data.v2.user.User;

import com.databasepreservation.common.client.BrowserService;
import com.databasepreservation.common.client.BrowserServiceAsync;
import com.databasepreservation.common.client.ClientLogger;
import com.databasepreservation.common.client.common.dialogs.Dialogs;
import com.databasepreservation.common.client.services.AuthenticationService;
import com.databasepreservation.common.client.tools.HistoryManager;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.LocaleInfo;
import com.google.gwt.safehtml.shared.UriUtils;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;

import javax.servlet.http.HttpServletRequest;
import config.i18n.client.ClientMessages;

/**
* @author Bruno Ferreira <bferreira@keep.pt>
*/
public class UserLogin {
private static final ClientMessages messages = GWT.create(ClientMessages.class);
private static final ClientLogger logger = new ClientLogger(UserLogin.class.getName());

private static UserLogin instance = null;
Expand Down Expand Up @@ -148,4 +148,24 @@ public void onLoginStatusChanged(User newUser) {
listener.onLoginStatusChanged(newUser);
}
}

public void showSuggestLoginDialog() {
Dialogs.showConfirmDialog(messages.loginDialogTitle(), messages.casForwardWarning(),
messages.basicActionCancel(), messages.loginDialogLogin(), new AsyncCallback<Boolean>() {

@Override
public void onSuccess(Boolean result) {
if (result) {
UserLogin.getInstance().login();
} else {
HistoryManager.gotoHome();
}
}

@Override
public void onFailure(Throwable caught) {
HistoryManager.gotoHome();
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -156,16 +156,13 @@ public String getValue(ViewerDatabase object) {
};
openColumn.setFieldUpdater((index, object, value) -> HistoryManager.gotoSIARDInfo(object.getUuid()));

// nameColumn.setSortable(true);
// archivalDateColumn.setSortable(true);
// dataOriginTimespan.setSortable(true);
// description.setSortable(true);

addColumn(nameColumn, messages.managePageTableHeaderTextForDatabaseName(), true, TextAlign.NONE, 15);
addColumn(dataOwnerColumn, messages.managePageTableHeaderTextForDataOwner(), true, TextAlign.NONE, 5);
addColumn(dbmsColumn, messages.managePageTableHeaderTextForProductName(), true, TextAlign.NONE, 10);
addColumn(archivalDateColumn, messages.managePageTableHeaderTextForArchivalDate(), true, TextAlign.NONE, 5);
addColumn(locationColumn, messages.managePageTableHeaderTextForSIARDLocation(), true, TextAlign.NONE, 8);
if (ApplicationType.getType().equals(ViewerConstants.DESKTOP)) {
addColumn(locationColumn, messages.managePageTableHeaderTextForSIARDLocation(), true, TextAlign.NONE, 8);
}
addColumn(sizeColumn, messages.managePageTableHeaderTextForSIARDSize(), true, TextAlign.NONE, 4);
addColumn(versionColumn, messages.managePageTableHeaderTextForSIARDVersion(), true, TextAlign.NONE, 4);
addColumn(validColumn, messages.managePageTableHeaderTextForSIARDValidationStatus(), true, TextAlign.NONE, 5);
Expand All @@ -176,18 +173,11 @@ public String getValue(ViewerDatabase object) {
display.setEmptyTableWidget(alert);
}

private static SafeHtml getBooleanValue(boolean value) {
return value ? SafeHtmlUtils.fromSafeConstant(OPEN_VALIDATED_SPAN)
: SafeHtmlUtils.fromSafeConstant(OPEN_NOT_VALIDATED_SPAN);
}

@Override
protected void getData(Sublist sublist, ColumnSortList columnSortList,
MethodCallback<IndexResult<ViewerDatabase>> callback) {
Filter filter = getFilter();

GWT.log("filter: " + filter);

Map<Column<ViewerDatabase, ?>, List<String>> columnSortingKeyMap = new HashMap<>();
Sorter sorter = createSorter(columnSortList, columnSortingKeyMap);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,29 +116,31 @@ private void buildMenuForUser(final User user) {
if (authenticationIsEnabled) {
if (user.isGuest()) {
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.USER, messages.loginLogin()),
(Command) () -> UserLogin.getInstance().login());
(Command) () -> UserLogin.getInstance().login());
} else {
if (!hideMenu) {
MenuBar subMenu = new MenuBar(true);
subMenu.addItem(messages.loginLogout(), (Command) () -> UserLogin.getInstance().logout());
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.USER, user.getFullName()), subMenu);
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.NEW_UPLOAD, messages.newUpload()),
(Command) HistoryManager::gotoNewUpload);
menu.addItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.DATABASES, messages.menusidebar_manageDatabases()),
(Command) HistoryManager::gotoDatabaseList);
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.ACTIVITY_LOG, messages.activityLogMenuText()),
(Command) HistoryManager::gotoActivityLog);
FontAwesomeIconManager.loaded(FontAwesomeIconManager.DATABASES, messages.menusidebar_manageDatabases()),
(Command) HistoryManager::gotoDatabaseList);
MenuBar administrationMenu = new MenuBar(true);
administrationMenu.addItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.ACTIVITY_LOG, messages.activityLogMenuText()),
(Command) HistoryManager::gotoActivityLog);
administrationMenu.addItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.COG, messages.preferencesMenuText()),
(Command) HistoryManager::gotoHome);
menu.addItem(messages.administrationMenuText(), administrationMenu);
}
}
} else {
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.NEW_UPLOAD, messages.newUpload()),
(Command) HistoryManager::gotoNewUpload);
(Command) HistoryManager::gotoNewUpload);
menu.addItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.DATABASES, messages.menusidebar_manageDatabases()),
(Command) HistoryManager::gotoDatabaseList);
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.BLOB, messages.activityLogMenuText()),
(Command) HistoryManager::gotoActivityLog);
FontAwesomeIconManager.loaded(FontAwesomeIconManager.DATABASES, messages.menusidebar_manageDatabases()),
(Command) HistoryManager::gotoDatabaseList);
}

if (!hideMenu) {
Expand All @@ -147,7 +149,7 @@ private void buildMenuForUser(final User user) {
setLanguageMenu(languagesMenu);

MenuItem languagesMenuItem = new MenuItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.GLOBE, selectedLanguage), languagesMenu);
FontAwesomeIconManager.loaded(FontAwesomeIconManager.GLOBE, selectedLanguage), languagesMenu);
languagesMenuItem.addStyleName("menu-item menu-item-label menu-item-language");
menu.addItem(languagesMenuItem);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,14 +135,17 @@ private void buildMenuForUser(final User user) {
MenuBar subMenu = new MenuBar(true);
subMenu.addItem(messages.loginLogout(), (Command) () -> UserLogin.getInstance().logout());
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.USER, user.getFullName()), subMenu);
menu.addItem(FontAwesomeIconManager.loaded(FontAwesomeIconManager.NEW_UPLOAD, messages.newUpload()),
(Command) HistoryManager::gotoNewUpload);
menu.addItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.DATABASES, messages.menusidebar_manageDatabases()),
(Command) HistoryManager::gotoDatabaseList);
menu.addItem(
MenuBar administrationMenu = new MenuBar(true);
administrationMenu.addItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.ACTIVITY_LOG, messages.activityLogMenuText()),
(Command) HistoryManager::gotoActivityLog);
administrationMenu.addItem(
FontAwesomeIconManager.loaded(FontAwesomeIconManager.COG, messages.preferencesMenuText()),
(Command) HistoryManager::gotoHome);
menu.addItem(messages.administrationMenuText(), administrationMenu);
}
}
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
package com.databasepreservation.common.client.common.visualization.manager.databasePanel;
package com.databasepreservation.common.client.common.visualization.manager.databasePanel.admin;

import java.util.List;

import com.databasepreservation.common.client.common.fields.MetadataField;
import com.databasepreservation.common.client.common.utils.CommonClientUtils;
import com.databasepreservation.common.client.tools.FontAwesomeIconManager;
import com.google.gwt.user.client.ui.SimplePanel;
import org.roda.core.data.v2.index.filter.BasicSearchFilterParameter;
import org.roda.core.data.v2.index.filter.Filter;

import com.databasepreservation.common.client.ViewerConstants;
import com.databasepreservation.common.client.models.structure.ViewerDatabase;
import com.databasepreservation.common.client.common.ContentPanel;
import com.databasepreservation.common.client.common.breadcrumb.BreadcrumbItem;
import com.databasepreservation.common.client.common.breadcrumb.BreadcrumbPanel;
import com.databasepreservation.common.client.common.ContentPanel;
import com.databasepreservation.common.client.common.helpers.HelperUploadSIARDFile;
import com.databasepreservation.common.client.common.lists.DatabaseList;
import com.databasepreservation.common.client.common.utils.ApplicationType;
import com.databasepreservation.common.client.models.structure.ViewerDatabase;
import com.databasepreservation.common.client.tools.BreadcrumbManager;
import com.databasepreservation.common.client.tools.HistoryManager;
import com.databasepreservation.common.client.tools.ViewerStringUtils;
Expand Down Expand Up @@ -51,6 +55,12 @@ interface ManageUiBinder extends UiBinder<Widget, DatabaseManage> {
@UiField
AccessibleFocusPanel searchInputButton;

@UiField
SimplePanel mainHeader;

@UiField
SimplePanel description;

@UiField(provided = true)
DatabaseList databaseList;

Expand All @@ -70,11 +80,17 @@ public static DatabaseManage getInstance() {
}

private DatabaseManage() {

databaseList = new DatabaseList();

initWidget(binder.createAndBindUi(this));

mainHeader.setWidget(CommonClientUtils.getHeader(FontAwesomeIconManager.getTag(FontAwesomeIconManager.SERVER),
messages.menusidebar_databases(), "h1"));

MetadataField instance = MetadataField.createInstance(messages.manageDatabasePageDescription());
instance.setCSS("table-row-description", "font-size-description");

description.setWidget(instance);

searchInputBox.getElement().setPropertyString("placeholder", messages.searchPlaceholder());

searchInputBox.addKeyDownHandler(event -> {
Expand Down Expand Up @@ -103,7 +119,7 @@ private void initButtons() {
create.addClickHandler(event -> HistoryManager.gotoCreateSIARD());
open.addClickHandler(event -> new HelperUploadSIARDFile().openFile(databaseList));
} else {
create.setVisible(false);
create.setText(messages.managePageButtonTextForDownloadDBPTK());
open.addClickHandler(event -> HistoryManager.gotoNewUpload());
}
}
Expand Down
Loading

0 comments on commit e79ed65

Please sign in to comment.