Commits on Nov 8, 2018
  1. #1084 Prevent that an admin user can share a collection to it's owner

    MPDLbrede committed Nov 8, 2018
    - Before: Code checked that a collection cannot be shared to the
      user who is sharing the collection. In case of an admin
      user sharing an other user's collection it was still possible
      to share a collection to its owner. As a result the owner's
      admin grant for the collection was overwritten in Jena with an
      edit grant and this edit grant could be removed by revoking the
      sharing. This created owners without grants to their own
    - Now: Code checks that a collection cannot be shared to it's owner.
Commits on Nov 7, 2018
  1. #1079 changed log level for privacy protection

    MPDLbrede committed Nov 7, 2018
    - Changed the log level of log messages indicating whether a specific
      email was or wasn't send by Imeji from INFO to DEBUG level
    - Messages with INFO level are logged into the log file. This creates
      privacy issues in live systems. Messages with DEBUG level are not
      automatically logged.
  2. #1070 (fix) user adds DOI

    MPDLbrede committed Nov 7, 2018
    - functionality was corrupted by code changes done in #1070
    - restored functionality
  3. #1070 #1079 fixes

    MPDLbrede committed Nov 7, 2018
Commits on Oct 31, 2018
  1. #1063 Discard publish collection that is empty

    MPDLbrede committed Oct 31, 2018
    - bug was due to a missing check (is list of collection's items empty?)
      in de.mpg.imeji.logic.core.facade.WorkflowFacade
  2. #1079 (log) not sent e mails

    MPDLbrede committed Oct 31, 2018
    Added logging: Log when an email is sent by Imeji
Commits on Oct 30, 2018
  1. #833 (fix) Added migration, exchanged placeholder icon with final icon

    MPDLbrede committed Oct 30, 2018
    - Added functionality for re-creating file previews (full, web,
      thumbnail) for all uploaded files. Function can be called from
      Admin>Tools>Regenerate full web and thumbnail images for all files
    - Exchanged icon with final icon for compressed files
  2. #1070 Add DOI to a collection

    MPDLbrede committed Oct 30, 2018
    - Bug was in JSF/XHTML layer: DOI was not sent to Server
    - Attached DOI field in GUI to setter/getter methods in
    - Added validation functionality that complies to DOI handbook
    - Re-factored exception handling and output (GUI/Log) in DOI processing
      and validation
Commits on Oct 23, 2018
  1. #896 (fix) ,-mistakes fixed

    MPDLbrede committed Oct 23, 2018
    fix: ","-mistakes in email messages
    fix: German grammar mistake in email message
  2. #1079, #1054 access grants and send email in share page

    MPDLbrede committed Oct 23, 2018
    Both bugs were caused by the same reason: not sending all html-form
    elements (access grants and shareEmail) to server
Commits on Oct 22, 2018
  1. #956 (fix) Center icons in move items/collections dialogue

    MPDLbrede committed Oct 22, 2018
    Center icons (shared with user, shared with users, released) in move
    item/move collection dialogue
Commits on Sep 21, 2018
  1. #963 Added check for unusual/unexpected file extensions

    MPDLbrede committed Sep 21, 2018
    In case that a file extension
    - has no characters or more than 20 characters
    - contains characters other than a-z, a-Z, 0-9, _
    a blank is saved as file extension instead
  2. # 963 Added alphabetical sorting of file extension/file type

    MPDLbrede committed Sep 21, 2018
    Before: file extension was sorted lexically.
Commits on Sep 20, 2018
  1. #1053 Update log4j framework with log4j2 framework

    MPDLbrede committed Sep 20, 2018
    Log4j2 provides functionality for:
    - deleting old log files
    - automatically zipping log files on log rotate
Commits on Sep 17, 2018
  1. #1052 Impact of size limit of 500 in ElasticSearch scroll search

    MPDLbrede committed Sep 17, 2018
    (1) Moved search constants up one level in abstraction:
      from ElasticSearch to Search interface
      - ElasticSearch.SIZE_GET_ALL_RESULTS, ElasticSearch.SEARCH_FROM_START
    (2) Introduced Constant SUGGEST_RESULTS_SIZE,
    (3) Re-factored code that uses "magic number" "-1" to indicate that all
    existing results for a given search query shall be retrieved.
    Replaced "-1" with constant Search.GET_ALL_RESULTS (and "0 as start
    index/offset" with Search.SEARCH_FROM_START_INDEX) in:
    - logic.core.item.listener.StatementChangedListener.updateItemIndex(..)
    - presentation.item.details.ItemBean.getStatementMenu()
    - presentation.item.edit.EditMetadataAbstract.EditMetadataAbstract()
    - presentation.item.edit.batch.EditItemsBatchBean.retrieveItems()
    - presentation.item.move.MoveItemsBean.searchCollectionsForMove(..)
    - presentation.item.upload.UploadBean.filterCollections()
    - presentation.user.subscription.SubscriptionBean.retrieveCollections()
    - logic.core.collection.CollectionService.deleteSingleCollection(..)
    - logic.core.facade.WorkflowFacade.getItemIds(..)
    - presentation.item.browse.ItemsBean.searchAllItems()
    - presentation.export.ExportServlet.getItemIds(..)
    - presentation.item.browse.CollectionItemsBean.searchAllItems()
    - presentation.item.license.ItemsEditLicenseBean.retrieveAllCollectionsItem(..)
    - presentation.collection.share.ShareList.retrieveGroups(..)
    - presentation.collection.share.ShareList.retrieveUsers(..)
    - presentation.item.edit.AutocompleterServlet.autoCompleteForInternalUsers(..)
    - rest.api.CollectionAPIService.readItems(..)
        All of the following classes discard size and start_at_index
       still replaced magic number "-1" for consistency/clarity:
    - logic.batch.CleanInternalStorageJob.isLogo(..)
    - logic.core.item.ItemService.retrieveLazyForFile(..)
    - logic.core.item.ItemService.checkQuota(..)
    - presentation.item.edit.util.SuggestBean.init()
    - logic.init.ImejiInitializer.initDefaultStatements()
    - logic.statistic.StatisticsService.getAllInstitute()
    - logic.statistic.StatisticsService.getUsedStorageSizeForInstitute(..)
    - logic.statistic.StatisticsService.getAllFileSize()
    - logic.validation.impl.StatementValidator.indexAlreadyUsed(..)
    - logic.validation.impl.UserValidator.existsUserWitheMail(..)
    - presentation.admin.StorageStatisticsBean.getAllCollectionsSize()
    - presentation.admin.StorageStatisticsBean.getAllImagesSize()
    - logic.core.facade.WorkflowFacade.addLicense(..)
    - logic.core.item.ItemService.searchAndRetrieve(..)
    - logic.core.item.ItemService.release(..)
    - logic.export.util.ExportUtil.retrieveItems(..)
    - presentation.item.browse.ItemsBean.loadItems(..)
    - presentation.item.browse.ItemsBean.withdraw(..)
    - presentation.item.browse.ItemsBean.delete(..)
    - presentation.item.browse.ItemsBean.findSelectedDeletableItems(..)
    - presentation.item.edit.selected.EditItemsSelectedBean.retrieveItems()
    - presentation.item.license.ItemsEditLicenseBean.retrieveSelectedItems()
    - presentation.item.move.MoveItemsBean.moveItems(..)
    (4) Re-factored and moved methods in classes
      ElasticSearch and ElasticSearchFactoryUtil
     Goal: Handle all functions that access ElasticSearch for searching in
     one class.
     Equip these functions with scroll search functionality.
    - Moved function searchStringAndRetrieveFieldValue from
      ElasticSearchFactoryUtil to ElasticSearch
    - Re-factored all functions in ElasticSearch class that access ES to
      provide both single page and scroll search
Commits on Sep 5, 2018
  1. #1049 Suspend size limit in ElasticSearch scroll search

    MPDLbrede committed Sep 5, 2018
    Moved search constants up one level in abstraction:
    from ElasticSearch to Search interface
    removed: ElasticSearch.SIZE_GET_ALL_RESULTS,
Commits on Sep 3, 2018
  1. #1049 Suspend size limit in ElasticSearch scroll search

    MPDLbrede committed Sep 3, 2018
    Amount of objects that can be retrieved from ElasticSearch was
    previously limited to 500. New: no limit.
    - Added constant with semantic meaning "get all results/no size limit"
    - Added further constants for ElasticSearch (scroll interval, timeout
    - Changed functions searchElasticSearch, searchWithScroll: added
      functionality of searching without size limit.
    - re-factored function scrollHitIds
    - added function scrollAllResults for scroll search without size limit
    - added constants ElasticSearch.SIZE_GET_ALL_RESULTS and
      ElasticSearch.SEARCH_FROM_START in function retrieveObjects.
  2. #1046 Restored code for 3D-display of .swc files

    MPDLbrede committed Sep 3, 2018
    Code for an interactive 3D view of a file format (text/plain, .swc) that
    defines a 3D model of a neuron was added to the project in February
    2015. The 3D view is displayed in page Item>Details.
    Parts of the code were removed later on which caused the reported error.
    Functionality is now restored.
Commits on Aug 29, 2018
  1. #963 Sort items by name of file type

    MPDLbrede committed Aug 29, 2018
    In Items view the items were previously sorted by their mime type.
    New: The items are sorted by their file extension.
    (1) File extension:
    The file extension of a file is solely derived from the provided file
    name. In case there is no file extension provided, the program uses "".
    A new field "fileextension" is added to "items" type in ElasticSearch
    and used for sorting of results.
    (2) Multilevel sorting:
    Items that are sorted by last modification, file name, file size or file
    extension are additionally sorted alphabetically by file name whenever
    several results exist for one category.
    (3) GUI: Labeling "sort by file type" stays. In Windows systems users
    sort by "file type" when they sort by file extension. The current
    labeling is according to users' expectations.
    You need to re-index the data in order to use the new functionality.
    Follow these steps:
    - Start up Server
    - Login as admin
    - Do Admin>Tools>Re-Index
Commits on Aug 24, 2018
  1. #960 Multi level sorting for facets

    MPDLbrede committed Aug 24, 2018
    First level: sort by document count, descending (as before)
    Second level: sort by label, alphabetically (new)
    ATTENTION: Feature requires a re-index of ElasticSearch because a field
    has changed
    (1) Checkout code
    (2) Start Imeji
    (3) Login as Admin
    (4) Reindex (Admin>Tools>Reindex)
    (5) From then Imeji can be used as usual
Commits on Aug 17, 2018
  1. #956 Display a private/shared icon for all collections in Collections

    MPDLbrede committed Aug 17, 2018
    view when logged-in as admin
    Before the private/shared icon was only displayed for collections that
    were created by the admin or shared with the admin.
    No icon was displayed for all other collections.
    Now the private/shared icon is shown for all collections.
    Why: Admin role can access and manage all collections
  2. #1044 Separate pages for configuration of DOI Service and Email Server

    MPDLbrede committed Aug 17, 2018
    Configuration of DOI Service and Email Server is separated from main
    configuration. Two pages are added to the Admin view:
    Admin > Configuration > Email server configuration
    Admin > Configuration > DOI Service configuration
    The password input fields for DOI Service and Email server are changed:
    (1) The password can be set but not read. The user can set a password
    and then save it. Upon reload of the page the password field is empty
    again, showing a placeholder.
    Background: improved security. No saved password can be retrieved by
    examining website source code.
    (2) In order to set a password the user has to check the set-password
    check box first.
    Background: Enable user to save an empty password and clarify that a new
    password shall be set.
Commits on Jul 24, 2018
  1. #833 generate icon for archive/compressed files

    MPDLbrede committed Jul 24, 2018
    - added classes and functionality to create a separate icon for
      compressed, archived and archived+compressed files
      Icon consists of
         a background image
         a text that states the extension of the file
      (classes CompressedFilesImageGenerator, compressed_file_icon.jpg)
    - compressed_file_icon.jpg is a test image and can be exchanged by
      an other image file
    - refactored:
      Changed class name and function names for more clarity and
      expressivity (NiceRawFileImageGenerator -> TextFileIconGenerator)
      Changed ImageGenerator from interface to abstract class and
      added functionality that forces a check of supported
      mime types
      Introduced class AbstractWritableImageGenerator that
      writes customized text on a background image
Commits on Jul 20, 2018
  1. # 1048 renamed function

    MPDLbrede committed Jul 20, 2018
  2. #1048 update email content after change of system languages

    MPDLbrede committed Jul 20, 2018
    added functionality for updating email content after change of system
Commits on Jul 12, 2018
  1. #896 Changed salutation in email "I shared my collection with you"

    MPDLbrede committed Jul 12, 2018
    Salutation was dear lastname, firstname
    Changed to dear firstname, lastname