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