diff --git a/browser/main/Components/BlueprintForm.jsx b/browser/main/Components/BlueprintForm.jsx
index 34c643eb..1c1fe04e 100644
--- a/browser/main/Components/BlueprintForm.jsx
+++ b/browser/main/Components/BlueprintForm.jsx
@@ -132,7 +132,7 @@ var BlueprintForm = React.createClass({
-
+
diff --git a/browser/main/Components/LaunchModal.jsx b/browser/main/Components/LaunchModal.jsx
index ceddafa5..7d7ff9d4 100644
--- a/browser/main/Components/LaunchModal.jsx
+++ b/browser/main/Components/LaunchModal.jsx
@@ -9,7 +9,6 @@ var BlueprintForm = require('./BlueprintForm')
var LaunchModal = React.createClass({
mixins: [Catalyst.LinkedStateMixin, ReactRouter.State],
propTypes: {
- submit: React.PropTypes.func,
close: React.PropTypes.func
},
getInitialState: function () {
@@ -39,13 +38,6 @@ var LaunchModal = React.createClass({
selectBlueprintTab: function () {
this.setState({currentTab: 'blueprint'})
},
- submit: function () {
- if (this.state.currentTab === 'snippet') {
- console.log(this.state.snippet)
- } else {
- console.log(this.state.blueprint)
- }
- },
handleKeyDown: function (e) {
if (e.keyCode === 37 && e.metaKey) {
this.selectSnippetTab()
diff --git a/browser/main/Components/PlanetHeader.jsx b/browser/main/Components/PlanetHeader.jsx
index 4150352f..42feb97d 100644
--- a/browser/main/Components/PlanetHeader.jsx
+++ b/browser/main/Components/PlanetHeader.jsx
@@ -2,8 +2,8 @@ var React = require('react/addons')
var PlanetHeader = React.createClass({
propTypes: {
+ openSettingModal: React.PropTypes.func,
currentPlanet: React.PropTypes.object,
- currentUser: React.PropTypes.object,
onSearchChange: React.PropTypes.func,
search: React.PropTypes.string
},
@@ -27,7 +27,7 @@ var PlanetHeader = React.createClass({
{currentUserName}
{currentPlanetName}
-
diff --git a/browser/main/Components/PlanetNavigator.jsx b/browser/main/Components/PlanetNavigator.jsx
index 29eb3601..f7e2132b 100644
--- a/browser/main/Components/PlanetNavigator.jsx
+++ b/browser/main/Components/PlanetNavigator.jsx
@@ -6,9 +6,6 @@ var PlanetNavigator = React.createClass({
name: React.PropTypes.string,
Users: React.PropTypes.array
}),
- currentUser: React.PropTypes.shape({
- name: React.PropTypes.string
- }),
openLaunchModal: React.PropTypes.func,
openAddUserModal: React.PropTypes.func
},
diff --git a/browser/main/Components/PlanetSettingModal.jsx b/browser/main/Components/PlanetSettingModal.jsx
new file mode 100644
index 00000000..20e77b26
--- /dev/null
+++ b/browser/main/Components/PlanetSettingModal.jsx
@@ -0,0 +1,106 @@
+var React = require('react/addons')
+var Select = require('react-select')
+var Catalyst = require('../Mixins/Catalyst')
+
+module.exports = React.createClass({
+ mixins: [Catalyst.LinkedStateMixin],
+ propTypes: {
+ close: React.PropTypes.func,
+ currentPlanet: React.PropTypes.object
+ },
+ getInitialState: function () {
+ return {
+ currentTab: 'planetProfile',
+ planetName: this.props.currentPlanet.name,
+ isDeletePlanetChecked: false
+ }
+ },
+ activePlanetProfile: function () {
+ this.setState({currentTab: 'planetProfile'})
+
+ },
+ activeManageMember: function () {
+ this.setState({currentTab: 'manageMember'})
+ },
+ doubleCheckDeletePlanet: function () {
+ if (this.state.isDeletePlanetChecked) {
+ console.log('delete it')
+ return
+ }
+ this.setState({isDeletePlanetChecked: true})
+ React.findDOMNode(this.refs.deleteCancelButton).focus()
+ },
+ cancelDeletePlanet: function () {
+ this.setState({isDeletePlanetChecked: false})
+ },
+ interceptClick: function (e) {
+ e.stopPropagation()
+ },
+ render: function () {
+ var content
+ if (this.state.currentTab === 'planetProfile') {
+ content = (
+
+
+
+
+ Save
+
+
+
+
+
+
Are you sure to delete this planet?
+
Cancel
+
+
{!this.state.isDeletePlanetChecked ? 'Delete Planet' : 'Confirm'}
+
+
+
+ )
+ } else {
+ var members = this.props.currentPlanet.Users.map(function (user) {
+ return (
+
+
+ {user.name}
+
+ {this.props.currentPlanet.OwnerId !== user.id ? Delete : Owner}
+
+
+ )
+ }.bind(this))
+
+ content = (
+
+
+
+
Invite user
+
+
+ Invite
+
+
+
+ )
+ }
+
+ return (
+
+
+
Planet setting
+
+
+
+
+ {content}
+
+
+ )
+ }
+})
diff --git a/browser/main/Components/SnippetForm.jsx b/browser/main/Components/SnippetForm.jsx
index 7f16396d..384e0026 100644
--- a/browser/main/Components/SnippetForm.jsx
+++ b/browser/main/Components/SnippetForm.jsx
@@ -121,7 +121,7 @@ var SnippetForm = React.createClass({
- Cancle
+ Cancel
{this.props.snippet == null ? 'Launch' : 'Relaunch'}
diff --git a/browser/main/Containers/PlanetContainer.jsx b/browser/main/Containers/PlanetContainer.jsx
index 7128cb28..0f8f87d7 100644
--- a/browser/main/Containers/PlanetContainer.jsx
+++ b/browser/main/Containers/PlanetContainer.jsx
@@ -12,6 +12,7 @@ var SnippetDeleteModal = require('../Components/SnippetDeleteModal')
var BlueprintEditModal = require('../Components/BlueprintEditModal')
var BlueprintDeleteModal = require('../Components/BlueprintDeleteModal')
var PlanetAddUserModal = require('../Components/PlanetAddUserModal')
+var PlanetSettingModal = require('../Components/PlanetSettingModal')
var PlanetActions = require('../Actions/PlanetActions')
@@ -248,9 +249,6 @@ module.exports = React.createClass({
closeAddUserModal: function () {
this.setState({isAddUserModalOpen: false})
},
- submitAddUserModal: function () {
- this.setState({isAddUserModalOpen: false})
- },
openEditModal: function () {
if (this.refs.detail.props.article == null) {return}
this.setState({isEditModalOpen: true})
@@ -271,6 +269,12 @@ module.exports = React.createClass({
submitDeleteModal: function () {
this.setState({isDeleteModalOpen: false})
},
+ openSettingModal: function () {
+ this.setState({isSettingModalOpen: true})
+ },
+ closeSettingModal: function () {
+ this.setState({isSettingModalOpen: false})
+ },
focus: function () {
React.findDOMNode(this).focus()
},
@@ -407,7 +411,7 @@ module.exports = React.createClass({
return (
-
+
@@ -419,12 +423,17 @@ module.exports = React.createClass({
-
+
-
+
+
+
-
+
+
+
diff --git a/browser/styles/mixins/btnStyle.styl b/browser/styles/mixins/btnStyle.styl
new file mode 100644
index 00000000..8c594e37
--- /dev/null
+++ b/browser/styles/mixins/btnStyle.styl
@@ -0,0 +1,25 @@
+btnDefault()
+ border-style solid
+ border-width 1px
+ border-color brandBorderColor
+ background-color transparent
+ color brandColor
+ &:hover, &.hover, &:focus, &.focus
+ border-color darken(brandBorderColor, 30%)
+ color darken(brandColor, 30%)
+ &:active, &.active
+ background-color brandColor
+ color white
+
+btnPrimary()
+ border-style solid
+ border-width 1px
+ border-color brandBorderColor
+ background-color transparent
+ color brandColor
+ &:hover, &.hover, &:focus, &.focus
+ border-color darken(brandBorderColor, 30%)
+ color darken(brandColor, 30%)
+ &:active, &.active
+ background-color brandColor
+ color white
diff --git a/browser/styles/shared/modal.styl b/browser/styles/shared/modal.styl
index 60d2cd53..ac71c8a6 100644
--- a/browser/styles/shared/modal.styl
+++ b/browser/styles/shared/modal.styl
@@ -105,15 +105,116 @@
box-sizing border-box
width 55px
height 55px
- border-style solid
- border-width 1px
circle()
- border-color brandBorderColor
- background-color transparent
- color brandColor
- &:hover, &.hover, &:focus, &.focus
- border-color darken(brandBorderColor, 30%)
- color darken(brandColor, 30%)
- &:active, &.active
- background-color brandColor
- color white
+ btnPrimary()
+ .PlanetSettingModal.modal
+ width 720px
+ height 500px
+ .settingNav
+ absolute top bottom left
+ width 200px
+ box-sizing border-box
+ padding 10px
+ border-right solid 1px borderColor
+ h1
+ margin 40px 15px
+ font-size 1.5em
+ color brandColor
+ nav
+ button
+ font-size 1em
+ display block
+ box-sizing border-box
+ padding 15px 15px
+ margin 10px 0
+ border none
+ border-radius 10px
+ width 100%
+ text-align left
+ background-color transparent
+ color textColor
+ cursor pointer
+ transition 0.1s
+ &:hover, &.hover
+ background-color hoverBackgroundColor
+ &:active, &.active
+ color brandColor
+
+ .settingBody
+ absolute top bottom right
+ left 200px
+ padding 15px
+ .planetProfile
+ height 500px
+ padding-top 50px
+ .planetProfileForm
+ height 275px
+ box-sizing border-box
+ border-bottom solid 1px borderColor
+ .planetDeleteForm
+ height 225px
+ .planetDeleteControl
+ margin-top 15px
+ clearfix()
+ .toggle
+ float left
+ transition width 0.3s, color 0.1s, border-color 0.1s
+ overflow hidden
+ white-space nowrap
+ width 345px
+ height 44px
+ &.hide
+ width 0
+ .planetDeleteLabel
+ display inline-block
+ line-height 44px
+ .cancelButton
+ display inline-block
+ margin-left 15px
+ margin-right 0
+ .deleteButton
+ float left
+ .manageMember
+ height 500px
+ box-sizing border-box
+ padding-top 50px
+ .userList
+ height 275px
+ box-sizing border-box
+ border-bottom solid 1px borderColor
+ li
+ clearfix()
+ margin-bottom 10px
+ img.userPhoto
+ float left
+ width 44px
+ height 44px
+ circle()
+ .userName
+ float left
+ height 44px
+ font-size 1.3em
+ line-height 44px
+ margin-left 15px
+ .userControl
+ float right
+ height 44px
+ .ownerLabel
+ height 44px
+ padding 0 15px
+ line-height 44px
+ .addUserForm
+ height 225px
+ .addUserLabel
+ margin-top 15px
+ font-size 1.3em
+ .addUserControl
+ clearfix()
+ margin-top 15px
+ .addUserSelect
+ float left
+ height 44px
+ width 350px
+ margin-top 5px
+ .addUserSubmit
+ float right