From a881023f128f0a0903cb46e298115083b4c427f9 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Wed, 2 Mar 2016 07:30:51 +0100 Subject: minor update to the navbar --- src/web/js/components/Navbar.react.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/web/js/components') diff --git a/src/web/js/components/Navbar.react.js b/src/web/js/components/Navbar.react.js index 08716977..a5dedcf9 100644 --- a/src/web/js/components/Navbar.react.js +++ b/src/web/js/components/Navbar.react.js @@ -70,7 +70,7 @@ JarrNavBar = React.createClass({ this.setState({showModal: true, modalType: 'addCategory'}); }, render: function() { - return ( + return ( {this.getModal()} @@ -78,6 +78,7 @@ JarrNavBar = React.createClass({ + + ); }, -- cgit From b32ca6c0f5968f5e9f59847db5012e3ef7f98631 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Wed, 2 Mar 2016 08:25:52 +0100 Subject: Code update. Some problems with CSRF token on Chromium... --- src/web/js/components/MainApp.react.js | 2 +- src/web/js/components/Menu.react.js | 8 +++++--- src/web/js/components/MiddlePanel.react.js | 8 ++------ src/web/js/components/RightPanel.react.js | 30 ++++++++++++++++++++++++------ 4 files changed, 32 insertions(+), 16 deletions(-) (limited to 'src/web/js/components') diff --git a/src/web/js/components/MainApp.react.js b/src/web/js/components/MainApp.react.js index cbdc5833..ffb14589 100644 --- a/src/web/js/components/MainApp.react.js +++ b/src/web/js/components/MainApp.react.js @@ -15,7 +15,7 @@ var MainApp = React.createClass({ + xs={12} sm={4} md={4} lg={4}> diff --git a/src/web/js/components/Menu.react.js b/src/web/js/components/Menu.react.js index 60578f8a..f4ad76d0 100644 --- a/src/web/js/components/Menu.react.js +++ b/src/web/js/components/Menu.react.js @@ -84,13 +84,15 @@ var CategoryGroup = React.createClass({ name: React.PropTypes.string.isRequired, feeds: React.PropTypes.array.isRequired, unread: React.PropTypes.number.isRequired, - folded: React.PropTypes.bool.isRequired, + folded: React.PropTypes.bool, }, getInitialState: function() { - return {folded: this.props.folded}; + return {folded: false}; }, componentWillReceiveProps: function(nextProps) { - this.setState({folded: nextProps.folded}); + if(nextProps.folded != null) { + this.setState({folded: nextProps.folded}); + } }, render: function() { // hidden the no category if empty diff --git a/src/web/js/components/MiddlePanel.react.js b/src/web/js/components/MiddlePanel.react.js index dad33acc..cb5be92d 100644 --- a/src/web/js/components/MiddlePanel.react.js +++ b/src/web/js/components/MiddlePanel.react.js @@ -35,7 +35,7 @@ var TableLine = React.createClass({ icon = ; } var title = ( + onClick={this.openRedirectLink} target="_blank"> {icon} {this.props.feed_title} ); var read = (); icon = ; - var newTab = ( - {icon} - ); var clsses = "list-group-item"; if(this.props.selected) { clsses += " active"; @@ -57,7 +53,7 @@ var TableLine = React.createClass({
{title}
-
{read} {liked} {newTab} {this.props.title}
+
{read} {liked} {this.props.title}
); }, diff --git a/src/web/js/components/RightPanel.react.js b/src/web/js/components/RightPanel.react.js index 39b06f38..6005e954 100644 --- a/src/web/js/components/RightPanel.react.js +++ b/src/web/js/components/RightPanel.react.js @@ -35,6 +35,7 @@ var PanelMixin = { ); } btn_grp = ( + {this.getExtraButton()} {edit_button} {rem_button} ); @@ -169,13 +170,28 @@ var Article = React.createClass({ ], obj_type: 'article', getTitle: function() {return this.props.obj.title;}, + getExtraButton: function() { + if(!this.props.obj.readability_available) { + return null; + } + return (); + }, getBody: function() { return (
{this.getCore()} -
); }, + reloadParsed: function() { + if(this.props.obj.readability_available + && !this.props.obj.readability_parsed) { + RightPanelActions.loadArticle(this.props.obj.id, true, true); + } + }, }); var Feed = React.createClass({ @@ -188,10 +204,13 @@ var Feed = React.createClass({ {'title': 'Feed link', 'type': 'link', 'key': 'link'}, {'title': 'Site link', 'type': 'link', 'key': 'site_link'}, {'title': 'Enabled', 'type': 'bool', 'key': 'enabled'}, + {'title': 'Auto Readability', + 'type': 'bool', 'key': 'readability_auto_parse'}, {'title': 'Filters', 'type': 'ignore', 'key': 'filters'}, {'title': 'Category', 'type': 'ignore', 'key': 'category_id'}, ], getTitle: function() {return this.props.obj.title;}, + getExtraButton: function() {return null;}, getFilterRow: function(i, filter) { return (
@@ -317,8 +336,6 @@ var Feed = React.createClass({
-
Number of articles
-
{this.props.obj.nb_articles}
{this.getErrorFields()} {this.getCategorySelect()} @@ -353,6 +370,7 @@ var Category = React.createClass({ if(this.props.obj.id != 0) {return true;} else {return false;} }, + getExtraButton: function () {return null;}, isRemovable: function() {return this.isEditable();}, obj_type: 'category', fields: [{'title': 'Category name', 'type': 'string', 'key': 'name'}], @@ -423,9 +441,9 @@ var RightPanel = React.createClass({ key={this.state.category.id} />); } - return ( + return ( {breadcrum} {cntnt} -- cgit From 49d7ed4f2bd61504ff77f8dd5e78df2a2ec42f83 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Tue, 22 Mar 2016 13:36:08 +0100 Subject: Removed extra info fo rreadability. --- src/web/js/components/RightPanel.react.js | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'src/web/js/components') diff --git a/src/web/js/components/RightPanel.react.js b/src/web/js/components/RightPanel.react.js index 6005e954..275bcfb3 100644 --- a/src/web/js/components/RightPanel.react.js +++ b/src/web/js/components/RightPanel.react.js @@ -35,7 +35,6 @@ var PanelMixin = { ); } btn_grp = ( - {this.getExtraButton()} {edit_button} {rem_button} ); @@ -170,15 +169,6 @@ var Article = React.createClass({ ], obj_type: 'article', getTitle: function() {return this.props.obj.title;}, - getExtraButton: function() { - if(!this.props.obj.readability_available) { - return null; - } - return (); - }, getBody: function() { return (
{this.getCore()} @@ -204,13 +194,10 @@ var Feed = React.createClass({ {'title': 'Feed link', 'type': 'link', 'key': 'link'}, {'title': 'Site link', 'type': 'link', 'key': 'site_link'}, {'title': 'Enabled', 'type': 'bool', 'key': 'enabled'}, - {'title': 'Auto Readability', - 'type': 'bool', 'key': 'readability_auto_parse'}, {'title': 'Filters', 'type': 'ignore', 'key': 'filters'}, {'title': 'Category', 'type': 'ignore', 'key': 'category_id'}, ], getTitle: function() {return this.props.obj.title;}, - getExtraButton: function() {return null;}, getFilterRow: function(i, filter) { return (
@@ -370,7 +357,6 @@ var Category = React.createClass({ if(this.props.obj.id != 0) {return true;} else {return false;} }, - getExtraButton: function () {return null;}, isRemovable: function() {return this.isEditable();}, obj_type: 'category', fields: [{'title': 'Category name', 'type': 'string', 'key': 'name'}], -- cgit From 3d199ce8955c035a5a1bc4569058e2f84ef9cfe0 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Tue, 22 Mar 2016 14:30:54 +0100 Subject: fixes --- src/web/js/components/Menu.react.js | 17 ++++++++++++++++- src/web/js/components/MiddlePanel.react.js | 8 ++++++-- src/web/js/components/RightPanel.react.js | 11 ++++------- 3 files changed, 26 insertions(+), 10 deletions(-) (limited to 'src/web/js/components') diff --git a/src/web/js/components/Menu.react.js b/src/web/js/components/Menu.react.js index f4ad76d0..4537ee81 100644 --- a/src/web/js/components/Menu.react.js +++ b/src/web/js/components/Menu.react.js @@ -267,7 +267,22 @@ var Menu = React.createClass({ ); }, componentDidMount: function() { - MenuActions.reload(); + var setFilterFunc = null; + var id = null; + if(window.location.search.substring(1)) { + var args = window.location.search.substring(1).split('&'); + args.map(function(arg) { + if (arg.split('=')[0] == 'at' && arg.split('=')[1] == 'c') { + setFilterFunc = MiddlePanelActions.setCategoryFilter; + } else if (arg.split('=')[0] == 'at' && arg.split('=')[1] == 'f') { + setFilterFunc = MiddlePanelActions.setFeedFilter; + + } else if (arg.split('=')[0] == 'ai') { + id = parseInt(arg.split('=')[1]); + } + }); + } + MenuActions.reload(setFilterFunc, id); MenuStore.addChangeListener(this._onChange); }, componentWillUnmount: function() { diff --git a/src/web/js/components/MiddlePanel.react.js b/src/web/js/components/MiddlePanel.react.js index cb5be92d..561802aa 100644 --- a/src/web/js/components/MiddlePanel.react.js +++ b/src/web/js/components/MiddlePanel.react.js @@ -77,7 +77,7 @@ var TableLine = React.createClass({ evnt.stopPropagation(); }, loadArticle: function() { - this.setState({active: true, read: true}, function() { + this.setState({selected: true, read: true}, function() { RightPanelActions.loadArticle( this.props.article_id, this.props.read); }.bind(this)); @@ -228,7 +228,11 @@ var MiddlePanel = React.createClass({ return (
{this.state.articles.map(function(article){ - return (); } btn_grp = ( + {this.getExtraButton()} {edit_button} {rem_button} ); @@ -175,13 +176,7 @@ var Article = React.createClass({
); - }, - reloadParsed: function() { - if(this.props.obj.readability_available - && !this.props.obj.readability_parsed) { - RightPanelActions.loadArticle(this.props.obj.id, true, true); - } - }, + } }); var Feed = React.createClass({ @@ -198,6 +193,7 @@ var Feed = React.createClass({ {'title': 'Category', 'type': 'ignore', 'key': 'category_id'}, ], getTitle: function() {return this.props.obj.title;}, + getExtraButton: function() {return null;}, getFilterRow: function(i, filter) { return (
@@ -357,6 +353,7 @@ var Category = React.createClass({ if(this.props.obj.id != 0) {return true;} else {return false;} }, + getExtraButton: function () {return null;}, isRemovable: function() {return this.isEditable();}, obj_type: 'category', fields: [{'title': 'Category name', 'type': 'string', 'key': 'name'}], -- cgit From 0e42e6d8ce1a056b4426148651b741f345968be2 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Wed, 6 Apr 2016 23:45:06 +0200 Subject: major problems fixed. --- src/web/js/components/MainApp.react.js | 2 +- src/web/js/components/Menu.react.js | 25 +++++++++++++++++++++---- src/web/js/components/MiddlePanel.react.js | 19 ++++++++++--------- 3 files changed, 32 insertions(+), 14 deletions(-) (limited to 'src/web/js/components') diff --git a/src/web/js/components/MainApp.react.js b/src/web/js/components/MainApp.react.js index cbdc5833..ffb14589 100644 --- a/src/web/js/components/MainApp.react.js +++ b/src/web/js/components/MainApp.react.js @@ -15,7 +15,7 @@ var MainApp = React.createClass({ + xs={12} sm={4} md={4} lg={4}> diff --git a/src/web/js/components/Menu.react.js b/src/web/js/components/Menu.react.js index 60578f8a..4537ee81 100644 --- a/src/web/js/components/Menu.react.js +++ b/src/web/js/components/Menu.react.js @@ -84,13 +84,15 @@ var CategoryGroup = React.createClass({ name: React.PropTypes.string.isRequired, feeds: React.PropTypes.array.isRequired, unread: React.PropTypes.number.isRequired, - folded: React.PropTypes.bool.isRequired, + folded: React.PropTypes.bool, }, getInitialState: function() { - return {folded: this.props.folded}; + return {folded: false}; }, componentWillReceiveProps: function(nextProps) { - this.setState({folded: nextProps.folded}); + if(nextProps.folded != null) { + this.setState({folded: nextProps.folded}); + } }, render: function() { // hidden the no category if empty @@ -265,7 +267,22 @@ var Menu = React.createClass({ ); }, componentDidMount: function() { - MenuActions.reload(); + var setFilterFunc = null; + var id = null; + if(window.location.search.substring(1)) { + var args = window.location.search.substring(1).split('&'); + args.map(function(arg) { + if (arg.split('=')[0] == 'at' && arg.split('=')[1] == 'c') { + setFilterFunc = MiddlePanelActions.setCategoryFilter; + } else if (arg.split('=')[0] == 'at' && arg.split('=')[1] == 'f') { + setFilterFunc = MiddlePanelActions.setFeedFilter; + + } else if (arg.split('=')[0] == 'ai') { + id = parseInt(arg.split('=')[1]); + } + }); + } + MenuActions.reload(setFilterFunc, id); MenuStore.addChangeListener(this._onChange); }, componentWillUnmount: function() { diff --git a/src/web/js/components/MiddlePanel.react.js b/src/web/js/components/MiddlePanel.react.js index dad33acc..f6e44777 100644 --- a/src/web/js/components/MiddlePanel.react.js +++ b/src/web/js/components/MiddlePanel.react.js @@ -35,7 +35,8 @@ var TableLine = React.createClass({ icon = ; } var title = ( + onClick={this.openRedirectLink} target="_blank" + title={this.props.feed_title}> {icon} {this.props.feed_title} ); var read = (); icon = ; - var newTab = ( - {icon} - ); var clsses = "list-group-item"; if(this.props.selected) { clsses += " active"; } // FIXME https://github.com/yahoo/react-intl/issues/189 // use FormattedRelative when fixed, will have to upgrade to ReactIntlv2 - return (
+ return (
{title}
-
{read} {liked} {newTab} {this.props.title}
+
{read} {liked} {this.props.title}
); }, @@ -81,7 +78,7 @@ var TableLine = React.createClass({ evnt.stopPropagation(); }, loadArticle: function() { - this.setState({active: true, read: true}, function() { + this.setState({selected: true, read: true}, function() { RightPanelActions.loadArticle( this.props.article_id, this.props.read); }.bind(this)); @@ -232,7 +229,11 @@ var MiddlePanel = React.createClass({ return (
{this.state.articles.map(function(article){ - return (