Dashboard

MIRTH-3732: Overhauled tags and filtering on the Dashboard and Channels views.

Inside the Channel Edit view, the tags are now set using a single field component, rather than a table. On the Dashboard and Channels views, the wrench icon at the bottom-left has been replaced by the same field component. This filter field can be used to enter tags, specific channels, or free text. If free text is used, it will match on the channel name (ignoring case).

For the dashboard, the filtering is actually done on the server side, so it can potentially speed up dashboard refresh requests for instances that have a lot of channels.

On both views, there are new buttons in the bottom-right, to switch how tags are visible on each channel (either an icon with tool-tip, or a bubble-text label).

There is also a new settings tab for tag configuration. On this view the user can see at a glance how many tags there are across the entire server. The names and background colors can be changed, and channels can be bulk-selected across multiple tags at once. Tags can be added or removed from this view as well.

User Auth permissions for view/manage were added as well.

  1. /trunk/client/src/com/mirth/connect/client/ui/tag
  2. … 52 more files in changeset.
MIRTH-3732: Committing auto-completion files in preparation for changes.
    • -0
    • +1515
    /trunk/client/src/org/fife/ui/autocomplete/AutoCompletion.java
  1. /trunk/client/src/org/fife/ui/autocomplete
MIRTH-3732: Fixed antialiasing for the text icon.
MIRTH-4032: Fixed issue with the Web Service Sender properties where revision changes were still occurring even if nothing changed.
MIRTH-3858: Java 8 is now a minimum requirement. Various libraries have been upgraded to their JDK 8 counterparts where necessary. This includes Jetty and JSP dependencies (from 9.2.14 to 9.3.14), PostgreSQL JDBC (same version 9.4.1212, but to the JDBC 4.2 JAR), and HikariCP (2.3.2 to 2.5.1).

MIRTH-4060: Fixed issue with extensions using the code template panel during startup. Now the code template panel is initialized before plugins are started on the client side.

    • binary
    /trunk/donkey/lib/database/postgresql-9.4.1212.jdbc42.jar
    • binary
    /trunk/server/lib/jetty/jsp/org.apache.taglibs.taglibs-standard-spec-1.2.5.jar
    • binary
    /trunk/donkey/lib/HikariCP-2.5.1.jar
    • binary
    /trunk/server/lib/jetty/jetty-security-9.3.14.v20161028.jar
    • binary
    /trunk/donkey/lib/HikariCP-java6-2.3.2.jar
  1. … 35 more files in changeset.
MIRTH-4081: Added validation across all code templates when saving in the Administrator.

MIRTH-4060: Various additions needed by plugins. The abstract panel now has a method to get default properties, the plugin itself now requires the parent panel, and a new method was added to the resource plugin as a hook so extensions can act when the client-side resources are refreshed.

    • binary
    /trunk/client/lib/joda-time-2.2.jar
MIRTH-4080: A custom ThreadFactory has been created for all JavaScript tasks, and a stateful subclass of Thread now houses the underlying Rhino context / scope. Once the task is executed and gets inside the synchronization block, the context and scope get set.
MIRTH-4079: Added a new escape method to the JsonUtil User API class. Also switched the pretty print logger from error to warn so that those messages don't clutter the standard output.
MIRTH-4078: Updated the PostgreSQL JDBC driver to the latest 4.1 (JRE 7 compatible) release.
MIRTH-4077: The Javadoc task now links to the public JDK docs so that external links will be properly generated. Also a new property "jdk_src_path" was added so that builds can link to the JDK source and Javadocs can correctly use the inheritDoc property.
MIRTH-4076: Added classes to the User API so that users can easily create Map and List objects. The builder classes allow fluent appending of elements/entries so a user can easily create a new HashMap with a single entry all on one line. Code templates for them have also been added to the Reference list.
    • -0
    • +48
    /trunk/server/src/com/mirth/connect/userutil/Lists.java
    • -0
    • +171
    /trunk/server/src/com/mirth/connect/userutil/MapBuilder.java
    • -0
    • +50
    /trunk/server/src/com/mirth/connect/userutil/Maps.java
    • -0
    • +258
    /trunk/server/src/com/mirth/connect/userutil/ListBuilder.java
MIRTH-4032: Fixed issue where channel groups failed to import. This was happening because of an NPE inside the migration code.
MIRTH-3732: Adding helper component to draw icons containing text in a bubble.
MIRTH-4060: Further refactoring to move the code field out of CodeTemplate and into the properties itself. This way extensions can provide their own properties and generate code from them, rather than having to store both the properties and a copy of the generated code. This also makes the client-side cleaner since only the properties object needs to be passed to and from the properties panel, rather than the properties and the code.
MIRTH-4060: There is now a dedicated plugin point to allow extensions to supply their own code template properties and settings panels. The plugin class is on the client side, and subclasses must supply a panel. The panel will return the properties implementation, which contains the type (moved from CodeTemplate) and the plugin point name. The "basic" properties are built-in, and use the same plugin point names as the basic types themselves (Function, Drag-And-Drop Code, Compiled Code).

The code template model classes have been moved into a dedicated package, so most changes here are merely refactoring imports.

  1. … 101 more files in changeset.
Tagging 3.4.2
Merge from trunk.

MIRTH-3960:Fixed issue with validating complex/large js scripts. Went through all the places we do validation. They all use the context returned from JavaScriptContextUtil where the optimization level is set. This is more of a workaround a rhino bug that is still present in the latest release.

Issue: MIRTH-3960

  1. … 10 more files in changeset.
Fixed issue with validating complex/large js scripts. Went through all the places we do validation. They all use the context returned from JavaScriptContextUtil where the optimization level is set. This is more of a workaround a rhino bug that is still present in the latest release.

Issue: MIRTH-MIRTH-3960

  1. … 4 more files in changeset.
MIRTH-4051: Fixed issue where closing the response after the client has been closed causes an additional IllegalStateException.

Merged from trunk.

MIRTH-4051: Fixed issue where closing the response after the client has been closed causes an additional IllegalStateException.
MIRTH-4051: Fixed issue that caused HTTP Sender destinations to become unusable after a fatal IllegalStateException or other Error occurs. This realistically only happens when the server runs out of memory for some reason, and even then there's only a small chance the client will get into such a state. If it did, restarting the connector fixed it. However now the dispatcher will gracefully recover from such errors, closing the client and allowing the next dispatch attempt to recreate it.

Similar changes were made to ServerConnection to allow it to restart itself (close and recreate the client) when a fatal error occurs. The cookie store is created and set separately so that users don't have to login again when this happens.

Merged from trunk.

MIRTH-4051: Fixed issue that caused HTTP Sender destinations to become unusable after a fatal IllegalStateException or other Error occurs. This realistically only happens when the server runs out of memory for some reason, and even then there's only a small chance the client will get into such a state. If it did, restarting the connector fixed it. However now the dispatcher will gracefully recover from such errors, closing the client and allowing the next dispatch attempt to recreate it.

Similar changes were made to ServerConnection to allow it to restart itself (close and recreate the client) when a fatal error occurs. The cookie store is created and set separately so that users don't have to login again when this happens.

MIRTH-4050: Fixed bug that caused native JavaScript strings / numbers to not always correctly remove destinations from a DestinationSet.

Merged from trunk.

MIRTH-4050: Fixed bug that caused native JavaScript strings / numbers to not always correctly remove destinations from a DestinationSet.
MIRTH-4049: Fixed bug in DatabaseConnectionFactory that prevented using more than one driver in the same script with custom libraries. Instead of a single boolean/driver, there is now a map (lazily created) that contains info for each driver string. That way each new driver is treated separately, and multiple custom drivers can be created in the same context.

Merged from trunk.

MIRTH-4049: Fixed bug in DatabaseConnectionFactory that prevented using more than one driver in the same script with custom libraries. Instead of a single boolean/driver, there is now a map (lazily created) that contains info for each driver string. That way each new driver is treated separately, and multiple custom drivers can be created in the same context.
MIRTH-4044: Fixed issue causing Select/Deselect All links to not work properly in the libraries tab.

Merged from trunk.

MIRTH-4044: Fixed issue causing Select/Deselect All links to not work properly in the libraries tab.
MIRTH-4045: Fixed race condition between stats updater thread and deleting channels. Now there's a new ChannelDoesNotExistException that gets thrown when the local channel ID cannot be found. The updater thread will catch that and remove stats for those channels IDs as necessary, and then re-attempt the commit on the next iteration.

Merged from trunk.

MIRTH-4045: Fixed race condition between stats updater thread and deleting channels. Now there's a new ChannelDoesNotExistException that gets thrown when the local channel ID cannot be found. The updater thread will catch that and remove stats for those channels IDs as necessary, and then re-attempt the commit on the next iteration.