Superdesk Client
Installation
For installation instructions, please refer to the README file at: https://github.com/superdesk/superdesk/
Running end-to-end tests
npm run install
- Install dependencies.
npm run build && npm run start-client-server
- Build and serve the bundle. Alternatively npm run server
can be used serve the bundle in watch mode.
npm run start-test-server
npm run e2e-compile
OR npm run e2e-compile-watch
- compiles tests from TypeScript to JavaScript.
npm run protractor
- starts the browser and runs the tests.
Contributing
Before considering contributions to the Superdesk client, please make sure to read our contribution guidelines.
Build configuration
To configure the build, the superdesk.config.js
file must export a function that returns the configuration object. The configuration object can contain the keys described belowed. Dot-notation is used to illustrate the depth and group of a certain key. We use a function instead of a simple JSON object to allow the convenience of using grunt flags, as well as give access to environment variables for more diverse configurations.
Server
-
server.url
- superdesk rest api server url -
server.ws
- superdesk websocket server url
Services
-
iframely.key
- iframely api key -
google.key
- google api key -
raven.dsn
- sentry api key -
analytics.ga
- google analytics id -
analytics.piwik.url
- piwik analytics url -
analytics.piwik.id
- piwik application id
Features
-
features.preview
:false
- enables print preview in authoring -
features.hideLiveSuggestions
:true
- disables live suggestions panel in authoring -
features.alchemy
:false
- allow alchemy widget for keywords -
features.elasticHighlight
:false
- allow highlighting of search terms by elasticsearch -
features.swimlane
:null
- enables switch view button in monitoring view, which allows to switch between list view or swimlane view. Example:features: {swimlane: {defaultNumberOfColumns: 4}}
will enable switch view button and displays 4 columns when turned ON, set null or keep undefined to disable -
features.confirmMediaOnUpdate
:true
- Display the user confirmation dialog in the updated story to use the media from the original story. -
features.nestedItemsInOutputStage
:false
- Display only latest version of published item in output stages. -
features.showCharacterLimit
:number
- a character limit in the preformatted text field. The number defines the placement of the limiter and is based on the number of characters on one line.
Workspace
-
workspace.content
:false
- enable content view in workspace (obsolete) -
workspace.ingest
:false
- enable ingest view in workspace (obsolete)
Editor
-
editor.toolbar
:object|false
- editor toolbar configuration, set tofalse
to disable toolbar -
editor.embeds
:true
- enable embedding in article body -
editor.vidible
:false
- enables Vidible as embed provider
Date & Time
-
defaultTimezone
:'Europe/London'
- default timezone for date time pickers -
view.dateformat
:'MM/DD/YYYY'
- presented date format for datepickers -
view.timeformat
:'HH:mm'
- presented time format for timepickers -
shortTimeFormat
:'hh:mm'
- format for current day in item list -
shortWeekFormat
:'dddd, hh:mm'
- format for current week in item list -
shortDateFormat
:'MM/DD'
- format for other days in item list -
longDateFormat
:'LLL'
- format with full date and time
Authoring
-
previewSubjectFilterKey
:null
- full preview in authoring displays only matching subjects
UI
-
ui.italicAbstract
:true
- render abstract using italics -
ui.sendAndPublish
:true
- display the send and publish button.
List
You can configure what will be displayed in list views, there are 3 areas in list which you can configure:
-
priority
- second box, you can use therepriority
andurgency
, in case you use alsosecondLine
both -
firstLine
- main area - defaults are:wordcount
slugline
headline
versioncreated
-
secondLine
- optional second line - defaults are:profile
-
state
- workflow state -
scheduledDateTime
- scheduled date and time where date and time format are taken from view.dateformat and view.timeformat respectively -
embargo
- flag if item is embargoed -
update
- flag if item is an update takekey
-
takepackage
- link to other takes signal
broadcast
-
flags
- flags for "not for publication", "sms" -
updated
- flag if an item was updated -
category
- anpa category -
provider
- ingest provider info -
expiry
- expiry of spiked items -
desk
- where an item was fetched for ingested, where an item is for others
-
singleLine
- optional single line which contains elements to be displayed when singleLineView is enabled. -
narrowView
- optional narrow view of 'firstLine' when authoring and preview panes are both open. This is active when singleline:view user preference is also active. -
singleLineView
- optional config to have thinner rows with elements in singleLine displayed. -
relatedItems
- configure the fields to be displayed on the related items field inside the authoring. Defaults are:-
firstLine
:slugline
headline
versioncreated
-
secondLine
state
desk
-
Profile
You can disable certain content profile fields. Set value to false
in order to disable it. Fields are:
-
defaults
- Article defaults -
located
- Dateline located -
phone
- Phone number -
jid
- Jabber ID -
place
- Default place -
category
- Preferred categories -
desks
- Preferred desks
Search
You can override default search repos (all set true
by default).
-
defaultSearch
ingest
archive
published
archived
Miscellaneous
-
defaultRoute
- sets the route that the app will go to upon logging in (home route). -
langOverride
- allows to override some labels in the UI (breaking, not recommended). It should be an object containing keys for language identifier and values as objects mapping labels to their translation. Example value:{'en': {'Category':'Service'}}
would display Service in place of Category for the english (en) version. -
validatorMediaMetadata
:object
- describes a fields that are required for media items (images/video). If the field is present in the object then it is displayed. -
infoRemovedFields
:object
- contains fields that should be removed from metadata editing -
profileLanguages
- list of languages available in user profile