dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #38957
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19778: App manager, moved app list to install page
------------------------------------------------------------
revno: 19778
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2015-08-18 16:08:20 -0400
message:
App manager, moved app list to install page
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/appmanager/AppManager.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/appmanager/DefaultAppManager.java
dhis-2/dhis-services/dhis-service-core/src/main/resources/i18n_global.properties
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AppController.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/java/org/hisp/dhis/appmanager/action/DeleteAppAction.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/resources/org/hisp/dhis/appmanager/i18n_module.properties
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/appSettings.vm
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/index.vm
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/deleteApp.js
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/uploadApp.js
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/appmanager/AppManager.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/appmanager/AppManager.java 2015-01-17 07:41:26 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/appmanager/AppManager.java 2015-08-18 20:08:20 +0000
@@ -54,6 +54,14 @@
* @return list of installed apps
*/
List<App> getApps();
+
+ /**
+ * Returns the app with the given key (folder name).
+ *
+ * @param key the app key.
+ * @return the app with the given key.
+ */
+ App getApp( String key );
List<App> getAccessibleApps();
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/appmanager/DefaultAppManager.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/appmanager/DefaultAppManager.java 2015-04-03 07:01:36 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/appmanager/DefaultAppManager.java 2015-08-18 20:08:20 +0000
@@ -93,6 +93,21 @@
return apps;
}
+
+ public App getApp( String key )
+ {
+ List<App> apps = getApps();
+
+ for ( App app : apps )
+ {
+ if ( key.equals( app.getKey() ) )
+ {
+ return app;
+ }
+ }
+
+ return null;
+ }
@Override
public List<App> getAccessibleApps()
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/i18n_global.properties'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/i18n_global.properties 2015-07-31 10:03:58 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/i18n_global.properties 2015-08-18 20:08:20 +0000
@@ -218,6 +218,7 @@
minus=Minus
no_of_days=No of days
variables=Variables
+open=Open
#-- Relative periods -----------------------------------------------------------#
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AppController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AppController.java 2015-07-10 19:12:53 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AppController.java 2015-08-18 20:08:20 +0000
@@ -97,6 +97,20 @@
renderService.toJson( response.getOutputStream(), apps );
}
+ @RequestMapping( method = RequestMethod.GET )
+ public void getAppByKey( @RequestParam String key, HttpServletRequest request, HttpServletResponse response ) throws IOException
+ {
+ App app = appManager.getApp( key );
+
+ if ( app == null )
+ {
+ response.sendError( HttpServletResponse.SC_NOT_FOUND );
+ return;
+ }
+
+ renderService.toJson( response.getOutputStream(), app );
+ }
+
@RequestMapping( method = RequestMethod.POST )
@ResponseStatus( HttpStatus.NO_CONTENT )
@PreAuthorize( "hasRole('ALL') or hasRole('M_dhis-web-maintenance-appmanager')" )
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/java/org/hisp/dhis/appmanager/action/DeleteAppAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/java/org/hisp/dhis/appmanager/action/DeleteAppAction.java 2015-01-17 07:41:26 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/java/org/hisp/dhis/appmanager/action/DeleteAppAction.java 2015-08-18 20:08:20 +0000
@@ -40,10 +40,13 @@
public class DeleteAppAction
implements Action
{
- // -------------------------------------------------------------------------
- // Dependencies
- // -------------------------------------------------------------------------
-
+ private I18n i18n;
+
+ public void setI18n( I18n i18n )
+ {
+ this.i18n = i18n;
+ }
+
@Autowired
private AppManager appManager;
@@ -51,13 +54,6 @@
// Input & Output
// -------------------------------------------------------------------------
- private I18n i18n;
-
- public void setI18n( I18n i18n )
- {
- this.i18n = i18n;
- }
-
private String appName;
public void setAppName( String appName )
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/resources/org/hisp/dhis/appmanager/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/resources/org/hisp/dhis/appmanager/i18n_module.properties 2015-06-11 08:29:55 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/resources/org/hisp/dhis/appmanager/i18n_module.properties 2015-08-18 20:08:20 +0000
@@ -11,12 +11,12 @@
appmanager_install_success=App installed successfully
appmanager_manifest_not_found=Manifest file not found in app
appmanager_not_zip=App is not a valid ZIP archive
-appmanager_confirm_delete=Are you sure to delete this app?
+appmanager_confirm_delete=Are you sure you want to delete this app?
appmanager_invalid_json=Invalid JSON syntax in manifest file
appmanager_could_not_read_file_check_server_permissions=Could not read app files, check server permissions
appmanager_delete_success=App deleted successfully
appmanager_management=Manage Installed Apps
-appmanager_appname=Application name
+appmanager_appname=App name
appmanager_you_have_no_apps_installed=You have no apps installed at the moment
appmanager_author=Author
appmanager_version=Version
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/appSettings.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/appSettings.vm 2015-06-11 08:29:55 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/appSettings.vm 2015-08-18 20:08:20 +0000
@@ -12,19 +12,13 @@
menuItemActiveClass: 'contextMenuItemActive'
});
});
-
- function removeApp( args ) {
- deleteApp( args.id, args.name );
- }
-
- var i18n_confirm_delete = '$encoder.jsEscape( $i18n.getString( "appmanager_confirm_delete" ) , "'")';
</script>
<h3>$i18n.getString( "appmanager_settings" )</h3>
<div id="contextMenu" class="contextMenu">
<ul id="contextMenuItems" class="contextMenuItems">
- <li><a data-target-fn="removeApp"><i class="fa fa-trash-o"></i> $i18n.getString( "remove" )</a></li>
+ <li><a data-target-fn="removeApp"><i class="fa fa-trash-o"></i>$i18n.getString( "remove" )</a></li>
</ul>
</div>
@@ -36,31 +30,3 @@
<input type="button" value="Save" style="width:120px" onclick="setAppConfig()" />
<a href="javascript:resetAppConfig()">$i18n.getString( "appmanager_set_to_default" )</a>
</div>
-
-<h3>$i18n.getString( "appmanager_management" )</h3>
-
-<table style="width:80%">
- <tr>
- <td style="vertical-align:top">
- <table class="listTable" id="appList" width='100%'>
- <col/>
- <col/>
- <thead>
- <tr>
- <th>$i18n.getString( "appmanager_appname" )</th>
- <th>$i18n.getString( "version" )</th>
- </tr>
- </thead>
- <tbody id="list">
- #foreach( $app in $appList )
- <tr id="tr${app.key}" data-id="${app.key}" data-name="$encoder.jsEncode( $app.name )">
- <td>$encoder.jsEncode( $app.name )</td>
- <td>$app.version</td>
- </tr>
- #end
- </tbody>
- </table>
- </td>
- </tr>
-</table>
-
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/index.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/index.vm 2014-03-10 12:34:15 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/index.vm 2015-08-18 20:08:20 +0000
@@ -15,14 +15,47 @@
#appStoreLink {
font-size: 15px;
color: #777;
- border-bottom: 1px solid #ccc;
- padding-bottom: 10px;
+ padding-bottom: 20px;
width: auto;
max-width: 460px;
}
</style>
-<h3>$i18n.getString( "dhis-web-maintenance-appmanager" ) #*openHelp( "appManager" )*#</h3>
+<script>
+jQuery(document).ready(function() {
+ jQuery('#appSettingsForm').ajaxForm({
+ dataType: 'json',
+ success: function(data){
+ setHeaderDelayMessage(data.message);
+ }
+ });
+
+ dhis2.contextmenu.makeContextMenu({
+ menuId: 'contextMenu',
+ menuItemActiveClass: 'contextMenuItemActive'
+ });
+});
+
+function openApp( context ) {
+ jQuery.getJSON('../api/apps?key=' + context.id, function(json) {
+ var app = json[0];
+ var url = '${appBaseUrl}/' + app.folderName + '/' + app.launch_path;
+ window.location.href = url;
+ });
+}
+
+function removeApp( context ) {
+ deleteApp( context.id, context.name );
+}
+
+var i18n_confirm_delete = '$encoder.jsEscape( $i18n.getString( "appmanager_confirm_delete" ) , "'")';
+</script>
+
+<h3>$i18n.getString( "dhis-web-maintenance-appmanager" )</h3>
+
+#if( $!appStoreUrl )
+<div id="appStoreLink">Look for apps in the <a href="${appStoreUrl}" target="_blank">app store</a></div>
+#end
<div>
#if( ${settingsValid} == true )
@@ -37,23 +70,39 @@
#end
</div>
-#if( $!appStoreUrl )
-<div id="appStoreLink">Look for more apps in the <a href="${appStoreUrl}" target="_blank">app store</a></div>
-#end
+<div id="contextMenu" class="contextMenu">
+ <ul id="contextMenuItems" class="contextMenuItems">
+ <li><a data-target-fn="openApp"><i class="fa fa-play"></i> $i18n.getString( "open" )</a></li>
+ <li><a data-target-fn="removeApp"><i class="fa fa-trash-o"></i> $i18n.getString( "remove" )</a></li>
+ </ul>
+</div>
-<ul class="introList">
#if( $appList.isEmpty() )
- <li style="margin-left: 15px; margin-top: 6px;">$i18n.getString( "appmanager_you_have_no_apps_installed" )</li>
+<div style="margin-left: 15px; margin-top: 6px;">$i18n.getString( "appmanager_you_have_no_apps_installed" )</div>
#else
- #foreach( $app in $appList )
- <li class="introItem" onclick="window.location.href='${appBaseUrl}/${app.folderName}/${app.launchPath}'">
- <span class="introItemHeader">
- <img style="float:left; margin-right:15px" src="${appBaseUrl}/${app.folderName}/${app.icons.icon48}">
- ${app.name}
- </span><br>
- $i18n.getString( "appmanager_author" ): ${app.developer.name}<br>
- $i18n.getString( "appmanager_version" ): ${app.version}
- </li>
- #end
+<table style="width:80%">
+ <tr>
+ <td style="vertical-align:top">
+ <table class="listTable" id="appList" width='100%'>
+ <col/>
+ <col/>
+ <thead>
+ <tr>
+ <th>$i18n.getString( "appmanager_appname" )</th>
+ <th>$i18n.getString( "version" )</th>
+ </tr>
+ </thead>
+ <tbody id="list">
+ #foreach( $app in $appList )
+ <tr id="tr${app.key}" data-id="${app.key}" data-name="$encoder.jsEncode( $app.name )">
+ <td>$encoder.jsEncode( $app.name )</td>
+ <td>$app.version</td>
+ </tr>
+ #end
+ </tbody>
+ </table>
+ </td>
+ </tr>
+</table>
#end
-</ul>
+
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/deleteApp.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/deleteApp.js 2015-01-16 19:19:53 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/deleteApp.js 2015-08-18 20:08:20 +0000
@@ -1,8 +1,4 @@
-function deleteApp( appId, appName ) {
- removeItem(appId, appName, i18n_confirm_delete, "deleteApp.action?appName=" + appName);
-}
-
function setAppConfig() {
var config = {
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/uploadApp.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/uploadApp.js 2015-04-14 09:21:56 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-appmanager/src/main/webapp/dhis-web-maintenance-appmanager/javascript/uploadApp.js 2015-08-18 20:08:20 +0000
@@ -38,3 +38,7 @@
xhr.send(fd);
}, false);
});
+
+function deleteApp( appId, appName ) {
+ removeItem(appId, appName, i18n_confirm_delete, "deleteApp.action?appName=" + appName);
+}