← Back to team overview

dhis2-devs team mailing list archive

[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>&nbsp;&nbsp;$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()" /> &nbsp;
 	<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>&nbsp;&nbsp;$i18n.getString( "open" )</a></li>
+    <li><a data-target-fn="removeApp"><i class="fa fa-trash-o"></i>&nbsp;&nbsp;$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);
+}