Changes between Version 6 and Version 7 of Documentation/Howto/ImplementAHLWebAppPlugin
- Timestamp:
- 10/20/15 15:15:34 (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Documentation/Howto/ImplementAHLWebAppPlugin
v6 v7 2 2 [[PageOutline]] 3 3 4 In the following Guide we will create a simple HeuristicLab WebApp plugin. 4 In the following guide we will create a simple HeuristicLab WebApp plugin. 5 It is assumed that you have read [[Documentation/Howto/SetupHiveServer]] and [[Documentation/Howto/SetupHiveStatistics]]. 5 6 6 7 == A new project == … … 13 14 14 15 == Configuring the project == 16 15 17 === References === 16 18 Every plugin has at least a reference to Microsoft ASP.NET Web API, which is needed to create a controller. … … 20 22 * Set the "Copy Local" property on these references to false. This references are provided by the WebApp and thus don't have to be deployed with every plugin. 21 23 [[Image(/raw-attachment/wiki/Documentation/Howto/ImplementAHLWebAppPlugin/references.PNG)]] 24 22 25 === Folder structure === 23 26 HeuristicLab WebApp plugins use the following folder structure, which is recommended but not mandatory. The WebApp consists of all client files whereas the WebApi contains all data controllers. … … 26 29 27 30 == Creating the Plugin configuration file == 28 Every plugin requires a configuration file, which is used to register the views of the plugin with their associated controllers. The configuration file is also used to dynamic ly build the sidebar menu. The name of the plugin configuration file has to be `{pluginname}.js`.31 Every plugin requires a configuration file, which is used to register the views of the plugin with their associated controllers. The configuration file is also used to dynamically build the sidebar menu. The name of the plugin configuration file has to be `{pluginname}.js`. 29 32 30 33 The following template can be used to create a new configuration file: … … 50 53 51 54 * `plugin.dependencies` specifies the required AngularJS modules 52 * `plugin.files` specifies the files that will be dynamic ly loaded when a view of the plugin is accessed55 * `plugin.files` specifies the files that will be dynamically loaded when a view of the plugin is accessed 53 56 * `plugin.view` is the main view of the plugin 54 57 * `plugin.controller` is the controller of the main view … … 56 59 * `app.getMenu()` is used to add an entry in the sidebar menu 57 60 58 The `view` and `controller` properties are required all other properties are optional.61 The `view` and `controller` properties are required. All other properties are optional. 59 62 60 63 == Example Plugin == … … 63 66 == Conventions == 64 67 * Controllers have to be derived from `ApiController` and have to end with `Controller` to be discovered by the WebApp 65 * The Plugin assembly name has to match the following `HeuristicLab.Services.WebApp.{pluginname}*.dll` pattern68 * The plugin assembly name has to match the following `HeuristicLab.Services.WebApp.{pluginname}*.dll` pattern 66 69 * The plugin configuration file has to be `{pluginname}.js`