diff --git a/browser/main/Components/PlanetArticleDetail.jsx b/browser/main/Components/PlanetArticleDetail.jsx index 9d7bb7d6..8d240a66 100644 --- a/browser/main/Components/PlanetArticleDetail.jsx +++ b/browser/main/Components/PlanetArticleDetail.jsx @@ -11,7 +11,8 @@ var PlanetArticleDetail = React.createClass({ propTypes: { article: React.PropTypes.object, onOpenEditModal: React.PropTypes.func, - onOpenDeleteModal: React.PropTypes.func + onOpenDeleteModal: React.PropTypes.func, + showOnlyWithTag: React.PropTypes.func }, getInitialState: function () { return { @@ -29,9 +30,9 @@ var PlanetArticleDetail = React.createClass({ } var tags = article.Tags.length > 0 ? article.Tags.map(function (tag) { return ( - #{tag.name} + #{tag.name} ) - }) : ( + }.bind(this)) : ( Not tagged yet ) if (article.type === 'snippet') { diff --git a/browser/main/Components/PlanetArticleList.jsx b/browser/main/Components/PlanetArticleList.jsx index 6ace43b5..4aaa8cda 100644 --- a/browser/main/Components/PlanetArticleList.jsx +++ b/browser/main/Components/PlanetArticleList.jsx @@ -8,7 +8,8 @@ var Markdown = require('../Mixins/Markdown') var PlanetArticleList = React.createClass({ mixins: [ReactRouter.Navigation, ReactRouter.State, ForceUpdate(60000), Markdown], propTypes: { - articles: React.PropTypes.array + articles: React.PropTypes.array, + showOnlyWithTag: React.PropTypes.func }, handleKeyDown: function (e) { e.preventDefault() @@ -17,9 +18,9 @@ var PlanetArticleList = React.createClass({ var articles = this.props.articles.map(function (article) { var tags = article.Tags.length > 0 ? article.Tags.map(function (tag) { return ( - #{tag.name} + #{tag.name} ) - }) : ( + }.bind(this)) : ( Not tagged yet ) var params = this.getParams() diff --git a/browser/main/Containers/PlanetContainer.jsx b/browser/main/Containers/PlanetContainer.jsx index fd4a0026..f6e66ee1 100644 --- a/browser/main/Containers/PlanetContainer.jsx +++ b/browser/main/Containers/PlanetContainer.jsx @@ -63,7 +63,7 @@ function blueprintFilter (articles) { function tagFilter (keyword, articles) { return articles.filter(function (article) { return article.Tags.some(function (tag) { - return tag.name.match(new RegExp(keyword, 'i')) + return tag.name.match(new RegExp('^' + keyword, 'i')) }) }) } @@ -336,6 +336,11 @@ module.exports = React.createClass({ showOnlyBlueprints: function () { this.setState({search: '$b'}) }, + showOnlyWithTag: function (tag) { + return function () { + this.setState({search: '#' + tag}) + }.bind(this) + }, openLaunchModal: function () { this.setState({isLaunchModalOpen: true}) }, @@ -547,9 +552,9 @@ module.exports = React.createClass({ showAll={this.showAll} showOnlySnippets={this.showOnlySnippets} showOnlyBlueprints={this.showOnlyBlueprints} currentPlanet={this.state.currentPlanet}/> - + - + ) } diff --git a/browser/styles/main/containers/PlanetContainer.styl b/browser/styles/main/containers/PlanetContainer.styl index d25745fc..b30c98d3 100644 --- a/browser/styles/main/containers/PlanetContainer.styl +++ b/browser/styles/main/containers/PlanetContainer.styl @@ -7,6 +7,8 @@ overflow-x: auto; a margin 0 2px + text-decoration underline + cursor pointer &.noTag color inactiveTextColor font-size 0.8em