Jump to: navigation, search

Difference between revisions of "Orion/Documentation/Developer Guide/Project services"

(Service methods)
(Service properties)
Line 10: Line 10:
* Adding additional information to project page
* Adding additional information to project page
== Service properties ==
== Service attributes ==
; id
; id
: <tt>String</tt>
: <tt>String</tt>

Revision as of 08:32, 8 November 2013

Overview of project services

Orion allows to extend the project functionality by adding other project types. Project types are not exclusive, one project may be of two different types.


The orion.project.handler service is used to provide a custom project handler. Creating a custom project handler enables to:

  • Creating project of given type
  • Adding dependencies of given type
  • Adding additional information to project page

Service attributes

String the unique identifier of the project type (for instance git or jazz)
ParameterDefinition[] Array of objects containing id String, type String describing one of the html5 input types or "textarea" and name being a display String for the parameter. Those parameters will be used to generate an input form when user tries init and new project or dependency.
Since 5.0 arameterDefinition[] a list of optional parameters that will display in a separate dialog when user clicks "More" in the input form with addParamethers
String Name of the action for adding dependency
String Tooltip of the action for adding dependency
String Name of the action for adding project
String Tooltip of the action for adding project
optional String comment displayed when project or dependency are being initialized

optional ValidationProperties[] that define if given item can be handled by this project handler, see Validation Properties

Service methods

getAdditionalProjectProperties (item, projectMetadata)
optional returns ProjectPageSectionDescription[] Implementing this function allows to add extra information to project page.
Example returned project page section description:
   name: "Git",
   children: [
      name: "Git Url",
      value: clone.GitUrl
      name: "Git Status",
      value: "Git Status",
      href: "{+OrionHome}/git/git-status.html#" + item.Git.StatusLocation
will result in rendering the additional section on the project page:
initProject (params, projectMetadata)
optional if implemented users will able to add projects of given type. The function should initialize project in the workspace (including adding project.json to it) and return the project description containing at least ContentLocation
params contains an object of parameters collected from the user based on description in addParamethers attribute. If the list of parameters is not complete rejecting the returned deferred with additional addParamethers attribute will invoke asking user for additional parameters. Afterwords all collected parameters will be resend, so there is no need to remember previously send params.
projectMetadata contains an object with some extra potential project metadata, in particular this object contains WorkspaceLocation.
initDependency (dependency, params, projectMetadata)
getDependencyDescription (item)
paramsToDependencyDescription (params)