0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-17 23:44:39 -05:00
ghost/core/client/app/models/setting.js
Aileen Nowak 35ecaee6d3 Slack integration
closes #6584
- Frontend Changes:
	- adds 'Apps' to Navigation Menu
	- adds 'Slack' as nested page to Apps
	- adds `apps.css`
	- adds `slack-integration` model and uses `slack-settings` custom transform to parse JSON file
	- adds validation for `slack` model
	- adds fixtures and `slack/test` API endpoint to Mirage
	- adds acceptance tests for `apps-test` and `slack-test`
	- adds unit tests for `slack-settings` and `slack-integration`
- Backend Changes:
	- adds API endpoint `slack/test` to send Test Notification
	- adds default-values for slack model
	- sends payload to slack:
		- text: the url of the blogpost / test message
		- icon_url: url to ghost logo
		- username: Ghost
	- adds `slack/index.js` to send webhook to slack if
		- a new post is published (if slack webhook url is saved in settings)
		- user clicks on 'Send Test Notification' in UI
	- adds `slack.init()` to `server.index.js` to add event listener
	- adds unit test for `slack/index`
2016-05-08 12:49:15 +02:00

26 lines
817 B
JavaScript

/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import ValidationEngine from 'ghost/mixins/validation-engine';
export default Model.extend(ValidationEngine, {
validationType: 'setting',
title: attr('string'),
description: attr('string'),
logo: attr('string'),
cover: attr('string'),
defaultLang: attr('string'),
postsPerPage: attr('number'),
forceI18n: attr('boolean'),
permalinks: attr('string'),
activeTheme: attr('string'),
availableThemes: attr(),
ghost_head: attr('string'),
ghost_foot: attr('string'),
labs: attr('string'),
navigation: attr('navigation-settings'),
isPrivate: attr('boolean'),
password: attr('string'),
slack: attr('slack-settings')
});