Skip to content

superdesk/superdesk-client-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Superdesk Client

CI Code Climate

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 to false to disable toolbar
  • editor.embeds: true - enable embedding in article body
  • editor.vidible: false - enables Vidible as embed provider
Date & Time
  • 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 there priority and urgency, in case you use also secondLine 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