JMS Plugins
A set of plugins for JMS.
Notes
A custom element intended for use on overview pages. It's a way for
adding notes to any document. You would typically use it in layout.table.actions
like this:
{
"actions": [{
"value": "it => '<jms-e-notes data-id=' + it.id + '></jms-e-notes>'"
}]
}
or you can use the note-view
element in a single instance:
{
"instance": {
"segments": [
{
"components": [{
"selector": "note-view"
}]
}
]
}
}
Setup
- Install the plugin
npm i --save @jmsp/notes
- Import the
JMSPNotesModule
in theModuleInstanceModule
in your JMS project.
Quick Edit
Adds the capability for editing documents through a dialog.
Help FlyOut
A popup for help articles. It's module based and changes dynamically based on what module the user is currently on.
Setup
- Install the plugin
npm i --save @jmsp/help
- Import the
JMSPHelpModule
in theDashboardModule
in your JMS project. You can useJMSPHelpModule.forRoot()
to configure height, width as well as top and left position. - Add
<jmsp-help-toggle></jmsp-help-toggle>
somewhere in your project (it's mainly intended to go in the layout navigation). - In order to be able to add articles through JMS you will need to install the projects module
npm i --save @jaspero/jmsp-modules
insetup
as well and addHELP_PLUGIN_MODULE
tomodules.ts
. - Add translations. This is the english version:
"HELP_PLUGIN": { "TITLE": "Help", "NO_MODULE_ARTICLES": "There aren't any articles available for this module.", "GENERAL_ARTICLES": "General", "READ_MORE": "Read More", "INSTANCE": { "GENERAL": "General", "CONTENT": "Content" }, "TABLE": { "TITLE": "Title", "MODULE": "Module", "EXCERPT": "Excerpt" }, "DEFINITIONS": { "TITLE": "Title", "EXCERPT": "Excerpt", "SHORT_DESCRIPTION": "Short Description", "CONTENT": "Content", "MODULE": "Module" } }
You can find an example implementation here.
GitHub Issues
A set of components for working with github issues.
File Manager
A module for managing storage
Setup
- Install the plugin
npm i --save @jaspero/jmsp-file-manager
- ...
- Add translations. This is the english version:
{ "STORAGE_PLUGIN": { "DELETE_FILE": { "DESCRIPTION": "File '{{name}}' will be deleted!", "CONFIRM": "Delete" } } }
Development
Creating a plugin
- Run
ng g library [plugin-name] --prefix=jmsp
- Add
@jaspero/jmsp-
prefix in the projectspackage.json
- Add a
release
property. Example fromnotes
plugin (remember to replace all references of "notes")."release": { "pkgRoot": "../../dist/@jaspero/jmsp-notes", "branch": "master", "verifyConditions": [ "@semantic-release/changelog", "@semantic-release/npm", "@semantic-release/git" ], "prepare": [ "@semantic-release/changelog", "@semantic-release/npm", "@semantic-release/git" ], "publish": [ "@semantic-release/npm", [ "@semantic-release/github", { "assets": [ "dist/@jaspero/jmsp-notes" ] } ] ], "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator" ] }
- Create
ng-package.prod.json
. Example from notes plugin (remember to replace all references of "notes").{ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", "dest": "../../dist/@jaspero/jmsp-notes", "lib": { "entryFile": "src/public-api.ts" } }
- In
angular.json
extend thearchitect.configurations.production
withng-package.prod.json
"configurations": { "production": { "tsConfig": "projects/notes/tsconfig.lib.prod.json", "project": "projects/notes/ng-package.prod.json" } }
- Add build scripts for the library in to the root
package.json
- Build the library and publish an initial version manually. This is required because since it's a scoped
package it needs to be explicitly flagged as public. You can do this by running
npm publish --access public
indist/@jaspero/[package-name]
.
License
MIT © Jaspero Ltd