@researchdatabox/sails-hook-redbox-omero
Version:
A Sails hook to add functionality to redbox that provisions OMERO
127 lines (76 loc) • 2.49 kB
Markdown
## A Sails Hook Redbox OMERO
In this example template you will find the barebones requirements for a Hook
This Project is divided between folders
## api
Main API of your Hook can be stored in controllers and services
- controllers
- services
## config & form-config
This configurations are redbox-portal dependent. They will allow redbox to be available as a record
If you require to have a form in your portal
- `config/recordtype`
- `config/workflow`
- `form-config/template-1.0-draft`
## index
Main entry point for the hook
### initialize
Init code before it gets hooked.
### routes
Controller routes exposed to the sails front-end
```javascript
'get /your/route' : YourController.method
```
### configure
Add configuration and services to your sails app
```javascript
sails.services['YourService'] = function() { };
sails.config = _.merge(sails.config, {object});
```
## test
First run `npm install`
Test your sails hook with mocha by running `npm test` before adding the hook to your redbox-portal.
It may cause your application to not lift.
```sh
$ npm test
> @uts-eresearch/sails-hook-redbox-template@1.0.0 test /Users/moises/source/code.research/sails-hook-redbox-template
> NODE_ENV=test node_modules/.bin/mocha
Basic tests ::
✓ should have a service
✓ should have a form
✓ should have a route
✓ sails does not crash
4 passing (864ms)
```
For more information on testing your hook go to : https://sailsjs.com/documentation/concepts/testing
### Angular
Install Angular 1.7.4
```bash
npm install -g "@angular/cli@1.7.4"
```
To build your angular app:
In redbox-portal/angular
- Go to app/gitlab
Compile:
- To compile `ng build --app=gitlab`
Develop:
- To develop `ng build --app=gitlab --watch`
#### Development in redbox-portal
There are several ways to code against the redbox-portal. One of it is to link the code via `npm link`
*npm link this hook*
```bash
cd /into/where/hook/is/
npm link
```
npm link into redbox-portal
```bash
cd /into/redbox-portal/
npm link sails-hook-redbox-omero
```
If you are using vagrant, place the code inside of the same machine/docker. You can share it via the VagrantFile using sync_folder
```yml
config.vm.synced_folder "/Users/moises/source/qcif/sails-hook-redbox-omero", "/opt/hooks/sails-hook-redbox-omero", id: "omero"
```
Copy changes from hook to portal
```bash
cp -r /opt/hooks/sails-hook-redbox-gitlab/app/omero/dist/* ./.tmp/public/angular/omero
```