233 lines
5.7 KiB
JavaScript
233 lines
5.7 KiB
JavaScript
import {ReduxModule} from '../../../abstract/reduxModule'
|
|
|
|
class ThemeForm extends ReduxModule {
|
|
|
|
getNamespace () {
|
|
return '[Theme form]'
|
|
}
|
|
|
|
getInitialState () {
|
|
return {}
|
|
}
|
|
}
|
|
|
|
export default ThemeForm
|
|
|
|
/*export class ThemeForm extends abstractModule {
|
|
constructor () {
|
|
super();
|
|
this.initNamespace('THEMES_');
|
|
}
|
|
|
|
initInitialState () {
|
|
const rgbaString = 'rgba(0, 0, 0, 1)';
|
|
const string = '';
|
|
const int = 0;
|
|
const boolean = false;
|
|
const languageCode = 'en';
|
|
const File = new File;
|
|
|
|
const FontOptions = {
|
|
family: string,
|
|
size: int,
|
|
style: {
|
|
bold: boolean,
|
|
italic: boolean,
|
|
underline: boolean
|
|
}
|
|
};
|
|
|
|
// sample of structure for backend
|
|
const BackendThemeOptions = {
|
|
type: 'enhanced' || 'plain',
|
|
summary: string,
|
|
conclusion: string,
|
|
header: {
|
|
imageUrl: string,
|
|
logoLink: string || '',
|
|
title: 'Newsletter' // only for enhanced
|
|
},
|
|
fonts: {
|
|
header: FontOptions,
|
|
tableOfContents: FontOptions,
|
|
feeTitle: FontOptions,
|
|
articleHeadline: FontOptions,
|
|
source: FontOptions,
|
|
author: FontOptions,
|
|
date: FontOptions,
|
|
articleContent: FontOptions
|
|
},
|
|
content: {
|
|
highlightKeywords: {
|
|
bold: boolean,
|
|
color: rgbaString
|
|
},
|
|
showInfo: {
|
|
sourceCountry: boolean,
|
|
articleSentiment: boolean,
|
|
articleCount: boolean,
|
|
images: boolean,
|
|
sharingOptions: boolean,
|
|
sectionDivider: boolean,
|
|
userComments: 'no' || 'with_author_date' || 'without_author_date',
|
|
tableOfContents: {
|
|
visible: boolean,
|
|
headline: 'no' || 'headline' || 'headline_source_date' || 'source_headline_date'
|
|
}
|
|
},
|
|
language: languageCode,
|
|
extract: 'start' || 'context' || 'no'
|
|
},
|
|
colors: {
|
|
background: {
|
|
header: rgbaString,
|
|
emailBody: rgbaString,
|
|
accent: rgbaString
|
|
},
|
|
text: {
|
|
header: rgbaString,
|
|
articleHeadline: rgbaString,
|
|
articleContent: rgbaString,
|
|
author: rgbaString,
|
|
publishDate: rgbaString,
|
|
source: rgbaString
|
|
}
|
|
}
|
|
};
|
|
|
|
this.initialState = fromJS({
|
|
name: string,
|
|
template: string,
|
|
options: {
|
|
type: 'enhanced' || 'plain',
|
|
summary: {
|
|
value: string,
|
|
isEdit: boolean
|
|
},
|
|
conclusion: {
|
|
value: string,
|
|
isEdit: boolean
|
|
},
|
|
header: {
|
|
imageUrl: {
|
|
file: File,
|
|
url: string
|
|
},
|
|
logoLink: string,
|
|
title: {
|
|
value: string,
|
|
isEdit: boolean
|
|
}
|
|
},
|
|
fonts: {
|
|
header: FontOptions,
|
|
tableOfContents: FontOptions,
|
|
feeTitle: FontOptions,
|
|
articleHeadline: FontOptions,
|
|
source: FontOptions,
|
|
author: FontOptions,
|
|
date: FontOptions,
|
|
articleContent: FontOptions
|
|
},
|
|
content: {
|
|
language: languageCode,
|
|
extract: {
|
|
value: 'start',
|
|
entities: [{
|
|
value: 'start',
|
|
label: 'Start of text extract'
|
|
}, {
|
|
value: 'context',
|
|
label: 'Contextual extract'
|
|
}, {
|
|
value: 'no',
|
|
label: 'No article extract'
|
|
}]
|
|
},
|
|
highlightKeywords: {
|
|
bold: boolean,
|
|
color: rgbaString,
|
|
colorPresets: [rgbaString]
|
|
},
|
|
showInfo: {
|
|
sourceCountry: boolean,
|
|
articleSentiment: boolean,
|
|
articleCount: boolean,
|
|
images: boolean,
|
|
sharingOptions: boolean,
|
|
sectionDivider: boolean,
|
|
userComments: {
|
|
value: 'no',
|
|
entities: [{
|
|
value: 'no',
|
|
label: 'No User Comments'
|
|
}, {
|
|
value: 'with_author_date',
|
|
label: 'User Comments with Author/Date'
|
|
}, {
|
|
value: 'without_author_date',
|
|
label: 'User Comments without Author/Date'
|
|
}]
|
|
},
|
|
tableOfContents: {
|
|
types: {
|
|
value: 'simple',
|
|
entities: [{
|
|
value: 'simple',
|
|
label: 'Table of contents'
|
|
}, {
|
|
value: 'headlines',
|
|
label: 'Table of contents with headlines'
|
|
}, {
|
|
value: 'no',
|
|
label: 'No table of contents'
|
|
}]
|
|
},
|
|
headlines: {
|
|
value: null,
|
|
entities: [{
|
|
value: 'headline',
|
|
label: 'Headline only'
|
|
}, {
|
|
value: 'headline_source_date',
|
|
label: 'Headline | Source | Date'
|
|
}, {
|
|
value: 'source_headline_date',
|
|
label: 'Source | Headline | Date'
|
|
}]
|
|
}
|
|
}
|
|
|
|
}
|
|
},
|
|
colors: {
|
|
background: {
|
|
header: rgbaString,
|
|
emailBody: rgbaString,
|
|
accent: rgbaString
|
|
},
|
|
text: {
|
|
header: rgbaString,
|
|
articleHeadline: rgbaString,
|
|
articleContent: rgbaString,
|
|
author: rgbaString,
|
|
publishDate: rgbaString,
|
|
source: rgbaString
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
initActions () {
|
|
this.actions = {
|
|
};
|
|
}
|
|
}
|
|
|
|
const themeForm = new ThemeForm();
|
|
themeForm.init();
|
|
|
|
export default themeForm.reducers;
|
|
*/
|