From 2284fd41b9b17374ca06406939352ec2fa51083a Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Fri, 3 Jul 2015 16:41:42 +0900 Subject: [PATCH 01/86] add agreement --- src/browser/main/controllers/AppController.js | 4 +- .../directives/SideNavController.js | 3 + .../modals/AgreementModalController.js | 15 + .../controllers/modals/PPModalController.js | 11 + .../states/AuthRegisterController.js | 23 +- src/browser/main/index.html | 4 +- src/browser/main/services/Modal.js | 24 ++ src/browser/main/styles/app.css | 9 + src/browser/main/styles/app.styl | 4 + .../main/styles/directives/side-nav.styl | 4 + .../main/tpls/directives/side-nav.tpl.html | 5 + src/browser/main/tpls/modals/pp.html | 121 ++++++++ src/browser/main/tpls/modals/regulation.html | 264 ++++++++++++++++++ 13 files changed, 479 insertions(+), 12 deletions(-) create mode 100644 src/browser/main/controllers/modals/AgreementModalController.js create mode 100644 src/browser/main/controllers/modals/PPModalController.js create mode 100644 src/browser/main/tpls/modals/pp.html create mode 100644 src/browser/main/tpls/modals/regulation.html diff --git a/src/browser/main/controllers/AppController.js b/src/browser/main/controllers/AppController.js index ab682812..1f17a16e 100644 --- a/src/browser/main/controllers/AppController.js +++ b/src/browser/main/controllers/AppController.js @@ -1,3 +1,5 @@ /* global angular */ angular.module('codexen') - .controller('AppController', function ($scope) {}) + .controller('AppController', function ($scope) { + + }) diff --git a/src/browser/main/controllers/directives/SideNavController.js b/src/browser/main/controllers/directives/SideNavController.js index 23cf4bd7..9ddeb479 100644 --- a/src/browser/main/controllers/directives/SideNavController.js +++ b/src/browser/main/controllers/directives/SideNavController.js @@ -5,6 +5,9 @@ angular.module('codexen') vm.isAuthenticated = $auth.isAuthenticated() + vm.showPP = Modal.showPP + vm.showRegulation = Modal.showRegulation + var reloadUser = function () { if (vm.isAuthenticated) { User.me().success(function (data) { diff --git a/src/browser/main/controllers/modals/AgreementModalController.js b/src/browser/main/controllers/modals/AgreementModalController.js new file mode 100644 index 00000000..233d51e7 --- /dev/null +++ b/src/browser/main/controllers/modals/AgreementModalController.js @@ -0,0 +1,15 @@ +/* global angular */ +angular.module('codexen') + .controller('AgreementModalController', function ($modalInstance) { + var vm = this + + vm.isAgreement = true + + vm.submit = function () { + $modalInstance.close() + } + + vm.cancel = function () { + $modalInstance.dismiss('cancel') + } + }) diff --git a/src/browser/main/controllers/modals/PPModalController.js b/src/browser/main/controllers/modals/PPModalController.js new file mode 100644 index 00000000..77a89b79 --- /dev/null +++ b/src/browser/main/controllers/modals/PPModalController.js @@ -0,0 +1,11 @@ +/* global angular */ +angular.module('codexen') + .controller('PPModalController', function ($modalInstance) { + var vm = this + + vm.isAgreement = false + + vm.cancel = function () { + $modalInstance.dismiss('cancel') + } + }) diff --git a/src/browser/main/controllers/states/AuthRegisterController.js b/src/browser/main/controllers/states/AuthRegisterController.js index ec2ebed1..72ff7a33 100644 --- a/src/browser/main/controllers/states/AuthRegisterController.js +++ b/src/browser/main/controllers/states/AuthRegisterController.js @@ -1,20 +1,23 @@ /* global angular */ angular.module('codexen') - .controller('AuthRegisterController', function ($auth, $log, $state, $rootScope) { + .controller('AuthRegisterController', function ($auth, $log, $state, $rootScope, Modal) { var vm = this vm.isEmpty = function (obj) { for (var i in obj) if (obj.hasOwnProperty(i)) return false return true } vm.signup = function () { - $auth.signup({ - email: vm.email, - password: vm.password, - name: vm.name, - profileName: vm.profileName - }).then(function (data) { - $rootScope.$broadcast('userSignIn') - $state.go('home') - }) + Modal.showAgreement() + .then(function () { + $auth.signup({ + email: vm.email, + password: vm.password, + name: vm.name, + profileName: vm.profileName + }).then(function (data) { + $rootScope.$broadcast('userSignIn') + $state.go('home') + }) + }) } }) diff --git a/src/browser/main/index.html b/src/browser/main/index.html index 90e036e9..0b595520 100644 --- a/src/browser/main/index.html +++ b/src/browser/main/index.html @@ -69,6 +69,7 @@ + @@ -76,13 +77,14 @@ + + - diff --git a/src/browser/main/services/Modal.js b/src/browser/main/services/Modal.js index 380b5075..5a66736b 100644 --- a/src/browser/main/services/Modal.js +++ b/src/browser/main/services/Modal.js @@ -1,6 +1,27 @@ /* global angular */ angular.module('codexen') .factory('Modal', function ($modal, $rootScope, $auth) { + var showAgreement = function () { + return $modal.open({ + templateUrl: 'tpls/modals/regulation.html', + controller: 'AgreementModalController as vm' + }).result + } + + var showRegulation = function () { + return $modal.open({ + templateUrl: 'tpls/modals/regulation.html', + controller: 'PPModalController as vm' + }) + } + + var showPP = function () { + return $modal.open({ + templateUrl: 'tpls/modals/pp.html', + controller: 'PPModalController as vm' + }) + } + var signOut = function () { return $modal.open({ templateUrl: 'tpls/modals/sign-out-modal.html', @@ -111,6 +132,9 @@ angular.module('codexen') } return { + showAgreement: showAgreement, + showRegulation: showRegulation, + showPP: showPP, signOut: signOut, newRecipe: newRecipe, editRecipe: editRecipe, diff --git a/src/browser/main/styles/app.css b/src/browser/main/styles/app.css index 7288235e..100c7f1a 100644 --- a/src/browser/main/styles/app.css +++ b/src/browser/main/styles/app.css @@ -80,6 +80,11 @@ #side-view ul.nav.nav-pills .nav-pills > li.active > a:focus { background-color: #004b5f; } +.botlink { + position: absolute; + bottom: 0; + text-align: center; +} /* * ui-select * http://github.com/angular-ui/ui-select @@ -541,3 +546,7 @@ body > .ui-select-bootstrap.open { .marked table > tbody >tr:nth-child(even) { background-color: #003644; } +.short { + height: 500px; + overflow-y: auto; +} diff --git a/src/browser/main/styles/app.styl b/src/browser/main/styles/app.styl index 09f953ca..19ec8112 100644 --- a/src/browser/main/styles/app.styl +++ b/src/browser/main/styles/app.styl @@ -99,3 +99,7 @@ background-color $baseBackgroundColor &:nth-child(even) background-color lighten($baseBackgroundColor, 3%) + +.short + height 500px + overflow-y auto diff --git a/src/browser/main/styles/directives/side-nav.styl b/src/browser/main/styles/directives/side-nav.styl index f6624cf7..272cd26c 100644 --- a/src/browser/main/styles/directives/side-nav.styl +++ b/src/browser/main/styles/directives/side-nav.styl @@ -32,3 +32,7 @@ li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus{ background-color: $backgroundColorSelected } +.botlink + position absolute + bottom 0 + text-align center diff --git a/src/browser/main/tpls/directives/side-nav.tpl.html b/src/browser/main/tpls/directives/side-nav.tpl.html index 4d98b1d3..c2e35b49 100644 --- a/src/browser/main/tpls/directives/side-nav.tpl.html +++ b/src/browser/main/tpls/directives/side-nav.tpl.html @@ -43,3 +43,8 @@ Recipes + + diff --git a/src/browser/main/tpls/modals/pp.html b/src/browser/main/tpls/modals/pp.html new file mode 100644 index 00000000..f4942dc8 --- /dev/null +++ b/src/browser/main/tpls/modals/pp.html @@ -0,0 +1,121 @@ +
+ + + + + +
diff --git a/src/browser/main/tpls/modals/regulation.html b/src/browser/main/tpls/modals/regulation.html new file mode 100644 index 00000000..118ec305 --- /dev/null +++ b/src/browser/main/tpls/modals/regulation.html @@ -0,0 +1,264 @@ +
+ + + + + +
From 3b907627f713024a711f02defe478f94a0291227 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Fri, 3 Jul 2015 18:35:10 +0900 Subject: [PATCH 02/86] fix links --- .../main/controllers/modals/AgreementModalController.js | 4 +++- src/browser/main/controllers/modals/PPModalController.js | 4 +++- src/browser/main/tpls/modals/pp.html | 2 +- src/browser/main/tpls/modals/regulation.html | 2 +- src/browser/main/tpls/states/home.tpl.html | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/browser/main/controllers/modals/AgreementModalController.js b/src/browser/main/controllers/modals/AgreementModalController.js index 233d51e7..e5a077a6 100644 --- a/src/browser/main/controllers/modals/AgreementModalController.js +++ b/src/browser/main/controllers/modals/AgreementModalController.js @@ -1,10 +1,12 @@ /* global angular */ angular.module('codexen') - .controller('AgreementModalController', function ($modalInstance) { + .controller('AgreementModalController', function ($modalInstance, Modal) { var vm = this vm.isAgreement = true + vm.showPP = Modal.showPP + vm.submit = function () { $modalInstance.close() } diff --git a/src/browser/main/controllers/modals/PPModalController.js b/src/browser/main/controllers/modals/PPModalController.js index 77a89b79..5b3bd9e6 100644 --- a/src/browser/main/controllers/modals/PPModalController.js +++ b/src/browser/main/controllers/modals/PPModalController.js @@ -1,10 +1,12 @@ /* global angular */ angular.module('codexen') - .controller('PPModalController', function ($modalInstance) { + .controller('PPModalController', function ($modalInstance, Modal) { var vm = this vm.isAgreement = false + vm.showPP = Modal.showPP + vm.cancel = function () { $modalInstance.dismiss('cancel') } diff --git a/src/browser/main/tpls/modals/pp.html b/src/browser/main/tpls/modals/pp.html index f4942dc8..52087b42 100644 --- a/src/browser/main/tpls/modals/pp.html +++ b/src/browser/main/tpls/modals/pp.html @@ -111,7 +111,7 @@ diff --git a/src/browser/main/tpls/modals/regulation.html b/src/browser/main/tpls/modals/regulation.html index 118ec305..193ccbc9 100644 --- a/src/browser/main/tpls/modals/regulation.html +++ b/src/browser/main/tpls/modals/regulation.html @@ -248,7 +248,7 @@

第16条(個人情報の保護)

-

 当社は、プライバシー・ポリシー(リンク)に従って、ユーザーの個人情報を適切に取り扱います。

+

 当社は、プライバシー・ポリシー(リンク)に従って、ユーザーの個人情報を適切に取り扱います。

以上

diff --git a/src/browser/main/tpls/states/home.tpl.html b/src/browser/main/tpls/states/home.tpl.html index 343dacf2..45a54b27 100644 --- a/src/browser/main/tpls/states/home.tpl.html +++ b/src/browser/main/tpls/states/home.tpl.html @@ -1,5 +1,5 @@
-

Codexen App v0.1.1

+

Codexen App v0.1.2

About CodeXen

From 63af2fd8b11dd0ae39e5051c3062d17df2a97d75 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 22 Aug 2015 03:33:32 +0900 Subject: [PATCH 03/86] fix submodule setting --- browser/ace | 1 + 1 file changed, 1 insertion(+) create mode 160000 browser/ace diff --git a/browser/ace b/browser/ace new file mode 160000 index 00000000..0982db48 --- /dev/null +++ b/browser/ace @@ -0,0 +1 @@ +Subproject commit 0982db4853e3c967756b83b70638b9761d7f801d From 8ab96cf2fb71768a3a6262c2993aed76d9280f70 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 22 Aug 2015 03:36:04 +0900 Subject: [PATCH 04/86] fix version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5e1b80a3..78fd6a7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "boost", - "version": "0.2.1.1", + "version": "0.2.2", "description": "Boost App", "main": "main.js", "scripts": { From 19930a247258add15c57d917916055e9ad67c0a6 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sun, 23 Aug 2015 03:49:19 +0900 Subject: [PATCH 05/86] fix minor bug --- browser/main/Components/PlanetHeader.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/browser/main/Components/PlanetHeader.jsx b/browser/main/Components/PlanetHeader.jsx index 101b2a3b..f5880407 100644 --- a/browser/main/Components/PlanetHeader.jsx +++ b/browser/main/Components/PlanetHeader.jsx @@ -32,6 +32,7 @@ module.exports = React.createClass({ if (e.keyCode === 38 || e.keyCode === 40) { var search = React.findDOMNode(this.refs.search) search.blur() + e.preventDefault() } if (e.keyCode !== 27 && (e.keyCode !== 13 || !e.metaKey)) { e.stopPropagation() From b93990d10b21a308f2c914dd6cd86cf4fdff452b Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Mon, 24 Aug 2015 06:23:41 +0900 Subject: [PATCH 06/86] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 01fbd22d..758add02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "boost", - "version": "0.2.3", + "version": "0.2.4", "description": "Boost App", "main": "main.js", "scripts": { From 4bda84d69c7a45583a0ca4c44f8844f09fac1a8d Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Mon, 24 Aug 2015 17:42:43 +0900 Subject: [PATCH 07/86] cleanup old files --- src/browser/main/controllers/AppController.js | 5 - .../directives/SideNavController.js | 34 -- .../modals/AgreementModalController.js | 17 - .../controllers/modals/PPModalController.js | 13 - .../states/AuthRegisterController.js | 23 - src/browser/main/index.html | 92 --- src/browser/main/services/Modal.js | 148 ----- src/browser/main/styles/app.css | 552 ------------------ src/browser/main/styles/app.styl | 105 ---- .../main/styles/directives/side-nav.styl | 38 -- .../main/tpls/directives/side-nav.tpl.html | 50 -- src/browser/main/tpls/modals/pp.html | 121 ---- src/browser/main/tpls/modals/regulation.html | 264 --------- src/browser/main/tpls/states/home.tpl.html | 48 -- 14 files changed, 1510 deletions(-) delete mode 100644 src/browser/main/controllers/AppController.js delete mode 100644 src/browser/main/controllers/directives/SideNavController.js delete mode 100644 src/browser/main/controllers/modals/AgreementModalController.js delete mode 100644 src/browser/main/controllers/modals/PPModalController.js delete mode 100644 src/browser/main/controllers/states/AuthRegisterController.js delete mode 100644 src/browser/main/index.html delete mode 100644 src/browser/main/services/Modal.js delete mode 100644 src/browser/main/styles/app.css delete mode 100644 src/browser/main/styles/app.styl delete mode 100644 src/browser/main/styles/directives/side-nav.styl delete mode 100644 src/browser/main/tpls/directives/side-nav.tpl.html delete mode 100644 src/browser/main/tpls/modals/pp.html delete mode 100644 src/browser/main/tpls/modals/regulation.html delete mode 100644 src/browser/main/tpls/states/home.tpl.html diff --git a/src/browser/main/controllers/AppController.js b/src/browser/main/controllers/AppController.js deleted file mode 100644 index 1f17a16e..00000000 --- a/src/browser/main/controllers/AppController.js +++ /dev/null @@ -1,5 +0,0 @@ -/* global angular */ -angular.module('codexen') - .controller('AppController', function ($scope) { - - }) diff --git a/src/browser/main/controllers/directives/SideNavController.js b/src/browser/main/controllers/directives/SideNavController.js deleted file mode 100644 index 9ddeb479..00000000 --- a/src/browser/main/controllers/directives/SideNavController.js +++ /dev/null @@ -1,34 +0,0 @@ -/* global angular */ -angular.module('codexen') - .controller('SideNavController', function ($auth, User, $rootScope, $scope, Modal) { - var vm = this - - vm.isAuthenticated = $auth.isAuthenticated() - - vm.showPP = Modal.showPP - vm.showRegulation = Modal.showRegulation - - var reloadUser = function () { - if (vm.isAuthenticated) { - User.me().success(function (data) { - console.log('currentUser', data) - vm.currentUser = data - }) - } - } - reloadUser() - - vm.signOut = function () { - Modal.signOut() - } - - $scope.$on('userSignIn', function () { - vm.isAuthenticated = true - reloadUser() - }) - - $scope.$on('userSignOut', function () { - vm.isAuthenticated = false - vm.currentUser = null - }) - }) diff --git a/src/browser/main/controllers/modals/AgreementModalController.js b/src/browser/main/controllers/modals/AgreementModalController.js deleted file mode 100644 index e5a077a6..00000000 --- a/src/browser/main/controllers/modals/AgreementModalController.js +++ /dev/null @@ -1,17 +0,0 @@ -/* global angular */ -angular.module('codexen') - .controller('AgreementModalController', function ($modalInstance, Modal) { - var vm = this - - vm.isAgreement = true - - vm.showPP = Modal.showPP - - vm.submit = function () { - $modalInstance.close() - } - - vm.cancel = function () { - $modalInstance.dismiss('cancel') - } - }) diff --git a/src/browser/main/controllers/modals/PPModalController.js b/src/browser/main/controllers/modals/PPModalController.js deleted file mode 100644 index 5b3bd9e6..00000000 --- a/src/browser/main/controllers/modals/PPModalController.js +++ /dev/null @@ -1,13 +0,0 @@ -/* global angular */ -angular.module('codexen') - .controller('PPModalController', function ($modalInstance, Modal) { - var vm = this - - vm.isAgreement = false - - vm.showPP = Modal.showPP - - vm.cancel = function () { - $modalInstance.dismiss('cancel') - } - }) diff --git a/src/browser/main/controllers/states/AuthRegisterController.js b/src/browser/main/controllers/states/AuthRegisterController.js deleted file mode 100644 index 72ff7a33..00000000 --- a/src/browser/main/controllers/states/AuthRegisterController.js +++ /dev/null @@ -1,23 +0,0 @@ -/* global angular */ -angular.module('codexen') - .controller('AuthRegisterController', function ($auth, $log, $state, $rootScope, Modal) { - var vm = this - vm.isEmpty = function (obj) { - for (var i in obj) if (obj.hasOwnProperty(i)) return false - return true - } - vm.signup = function () { - Modal.showAgreement() - .then(function () { - $auth.signup({ - email: vm.email, - password: vm.password, - name: vm.name, - profileName: vm.profileName - }).then(function (data) { - $rootScope.$broadcast('userSignIn') - $state.go('home') - }) - }) - } - }) diff --git a/src/browser/main/index.html b/src/browser/main/index.html deleted file mode 100644 index 0b595520..00000000 --- a/src/browser/main/index.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - CodeXen App - - - - - - - - Codexen! - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/browser/main/services/Modal.js b/src/browser/main/services/Modal.js deleted file mode 100644 index 5a66736b..00000000 --- a/src/browser/main/services/Modal.js +++ /dev/null @@ -1,148 +0,0 @@ -/* global angular */ -angular.module('codexen') - .factory('Modal', function ($modal, $rootScope, $auth) { - var showAgreement = function () { - return $modal.open({ - templateUrl: 'tpls/modals/regulation.html', - controller: 'AgreementModalController as vm' - }).result - } - - var showRegulation = function () { - return $modal.open({ - templateUrl: 'tpls/modals/regulation.html', - controller: 'PPModalController as vm' - }) - } - - var showPP = function () { - return $modal.open({ - templateUrl: 'tpls/modals/pp.html', - controller: 'PPModalController as vm' - }) - } - - var signOut = function () { - return $modal.open({ - templateUrl: 'tpls/modals/sign-out-modal.html', - controller: 'SignOutModalController as vm' - }).result.then(function () { - $auth.logout() - .then(function () { - console.log('Sign Out') - $rootScope.$broadcast('userSignOut') - }) - }) - } - - /* Recipe */ - var newRecipe = function () { - return $modal.open({ - templateUrl: 'tpls/modals/new-recipe-modal.html', - controller: 'NewRecipeModalController as vm' - }).result.then(function (recipe) { - $rootScope.$broadcast('recipeUpdated', recipe) - }) - } - - var editRecipe = function (recipe) { - return $modal.open({ - resolve: { - recipe: function () { - return recipe - } - }, - templateUrl: 'tpls/modals/edit-recipe-modal.html', - controller: 'EditRecipeModalController as vm' - }).result.then(function (recipe) { - $rootScope.$broadcast('recipeUpdated', recipe) - }) - } - - var expandRecipe = function (recipe) { - return $modal.open({ - size: 'lg', - resolve: { - recipe: function () { - return recipe - } - }, - templateUrl: 'tpls/modals/expand-recipe-modal.html', - controller: 'ExpandRecipeModalController as vm' - }) - } - - var deleteRecipe = function (recipe) { - return $modal.open({ - resolve: { - recipe: function () { - return recipe - } - }, - templateUrl: 'tpls/modals/delete-recipe-modal.html', - controller: 'DeleteRecipeModalController as vm' - }).result.then(function (recipe) { - $rootScope.$broadcast('recipeDeleted', recipe) - }) - } - - /* Snippet */ - var newSnippet = function () { - return $modal.open({ - templateUrl: 'tpls/modals/new-snippet-modal.tpl.html', - controller: 'NewSnippetModalController as vm' - }).result.then(function (snippet) { - $rootScope.$broadcast('snippetUpdated', snippet) - }) - } - - var editSnippet = function (snippet) { - return $modal.open({ - resolve: { - snippet: function () { - return snippet - } - }, - templateUrl: 'tpls/modals/edit-snippet-modal.tpl.html', - controller: 'EditSnippetModalController as vm' - }).result.then(function (snippet) { - $rootScope.$broadcast('snippetUpdated', snippet) - }) - } - - var deleteSnippet = function (snippet) { - return $modal.open({ - resolve: { - snippet: function () { - return snippet - } - }, - templateUrl: 'tpls/modals/delete-snippet-modal.tpl.html', - controller: 'DeleteSnippetModalController as vm' - }).result.then(function (snippet) { - $rootScope.$broadcast('snippetDeleted', snippet) - }) - } - - var selectSnippet = function (snippet) { - return $modal.open({ - templateUrl: 'tpls/modals/select-snippet-modal.html', - controller: 'SelectSnippetModalController as vm' - }).result - } - - return { - showAgreement: showAgreement, - showRegulation: showRegulation, - showPP: showPP, - signOut: signOut, - newRecipe: newRecipe, - editRecipe: editRecipe, - deleteRecipe: deleteRecipe, - expandRecipe: expandRecipe, - newSnippet: newSnippet, - editSnippet: editSnippet, - deleteSnippet: deleteSnippet, - selectSnippet: selectSnippet - } - }) diff --git a/src/browser/main/styles/app.css b/src/browser/main/styles/app.css deleted file mode 100644 index 100c7f1a..00000000 --- a/src/browser/main/styles/app.css +++ /dev/null @@ -1,552 +0,0 @@ -.expand-recipe-modal .expand-editor .editor-pane { - height: 500px; -} -.expand-recipe-modal .expand-editor .editor-pane .ace_editor { - height: 500px; -} -.expand-recipe-modal .expand-editor .preview-pane { - height: 500px; - overflow-y: auto; -} -.new-snippet-modal .ace_editor { - height: 200px; -} -.select-snippet-modal .snippet-list { - list-style: none; - padding: 0; -} -.select-snippet-modal .snippet-list li { - padding: 10px; - border: solid 1px #001a20; - background-color: #003b4a; - border-radius: 5px; - margin-bottom: 5px; - cursor: pointer; -} -.select-snippet-modal .snippet-list li:hover { - background-color: #004b5f; -} -.select-snippet-modal .snippet-list li .ace_editor { - height: 150px; -} -.select-snippet-modal .snippet-list li .call-sign { - color: #d5dfe2; -} -#side-view .nav-control-group { - margin: auto 10px; -} -#side-view .new-block { - margin: 20px auto; -} -#side-view .new-block button { - padding: 10px inherit; -} -#side-view .new-block button:nth-child(1) { - width: 147px; - padding-left: 15px; - text-align: left; -} -#side-view .new-block button:nth-child(2) { - width: 33px; -} -#side-view .new-block .success-menu { - background-color: #167b59; -} -#side-view .new-block .success-menu a { - padding: 5px 15px; - color: #fff; -} -#side-view .new-block .success-menu a.hover, -#side-view .new-block .success-menu a:hover { - background-color: #22bd89; -} -#side-view .new-block .success-menu a.focus, -#side-view .new-block .success-menu a:focus { - background-color: #20b482; -} -#side-view ul.nav.nav-pills { - margin-top: 10px; -} -#side-view ul.nav.nav-pills li a { - padding: 12px 15px; - margin-bottom: 7px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - -webkit-transition: 0.2s; - transition: 0.2s; -} -#side-view ul.nav.nav-pills li.active > a, -#side-view ul.nav.nav-pills .nav-pills > li.active > a:hover, -#side-view ul.nav.nav-pills .nav-pills > li.active > a:focus { - background-color: #004b5f; -} -.botlink { - position: absolute; - bottom: 0; - text-align: center; -} -/* - * ui-select - * http://github.com/angular-ui/ui-select - * Version: 0.11.2 - 2015-03-17T04:08:46.478Z - * License: MIT - */ -.ui-select-highlight { - font-weight: bold; -} -.ui-select-offscreen { - clip: rect(0 0 0 0) !important; - width: 1px !important; - height: 1px !important; - border: 0 !important; - margin: 0 !important; - padding: 0 !important; - overflow: hidden !important; - position: absolute !important; - outline: 0 !important; - left: 0px !important; - top: 0px !important; -} -.ng-dirty.ng-invalid > a.select2-choice { - border-color: #d44950; -} -.select2-result-single { - padding-left: 0; -} -.select2-locked > .select2-search-choice-close { - display: none; -} -.select-locked > .ui-select-match-close { - display: none; -} -body > .select2-container.open { - z-index: 9999; -} -.selectize-input.selectize-focus { - border-color: #007fbb !important; -} -.selectize-control > .selectize-input > input { - width: 100%; -} -.selectize-control > .selectize-dropdown { - width: 100%; -} -.ng-dirty.ng-invalid > div.selectize-input { - border-color: #d44950; -} -.btn-default-focus { - color: #333; - background-color: #ebebeb; - border-color: #adadad; - text-decoration: none; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(102,175,233,0.6); -} -.ui-select-bootstrap .ui-select-toggle { - position: relative; - border-radius: $input-border-radius; -} -.ui-select-bootstrap .ui-select-toggle .ui-select-placeholder { - color: #99b2b8; -} -.ui-select-bootstrap .ui-select-toggle > .caret { - position: absolute; - height: 10px; - top: 50%; - right: 10px; - margin-top: -2px; -} -.input-group > .ui-select-bootstrap.dropdown { -/* Instead of relative */ - position: static; -} -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control { - border-radius: $input-border-radius; - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.ui-select-bootstrap > .ui-select-match > .btn { -/* Instead of center because of .btn */ - text-align: left !important; - padding-right: 25px; - border-radius: $input-border-radius; - border: solid 1px #001a20; -} -.ui-select-bootstrap > .ui-select-match > .caret { - position: absolute; - top: 45%; - right: 15px; -} -.ui-select-bootstrap > .ui-select-choices { - width: 100%; - height: auto; - max-height: 200px; - overflow-x: hidden; - margin-top: -1px; -} -body > .ui-select-bootstrap.open { - z-index: 1000; -} -.ui-select-multiple.ui-select-bootstrap { - height: auto; - padding: 3px 3px 0 10px; -} -.ui-select-multiple.ui-select-bootstrap.open { - border-color: #52dcff; - outline: 0; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(82,220,255,0.6); -} -.ui-select-multiple.ui-select-bootstrap input.ui-select-search { - background-color: transparent !important; - border: none; - outline: none; - height: 1.666666em; - margin-bottom: 3px; -} -.ui-select-multiple.ui-select-bootstrap .ui-select-match .close { - font-size: 1.6em; - line-height: 0.75; -} -.ui-select-multiple.ui-select-bootstrap .ui-select-match-item { - outline: 0; - margin: 0 3px 3px 0; -} -.ui-select-multiple .ui-select-match-item { - position: relative; -} -.ui-select-multiple .ui-select-match-item.dropping-before:before { - content: ""; - position: absolute; - top: 0; - right: 100%; - height: 100%; - margin-right: 2px; - border-left: 1px solid #428bca; -} -.ui-select-multiple .ui-select-match-item.dropping-after:after { - content: ""; - position: absolute; - top: 0; - left: 100%; - height: 100%; - margin-left: 2px; - border-right: 1px solid #428bca; -} -.ui-select-bootstrap .ui-select-choices-row>a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: 400; - line-height: 1.42857143; - color: #99b2b8; - white-space: nowrap; -} -.ui-select-bootstrap .ui-select-choices-row>a:hover, -.ui-select-bootstrap .ui-select-choices-row>a:focus { - text-decoration: none; - color: #fff; - background-color: #004b5f; -} -.ui-select-bootstrap .ui-select-choices-row.active>a { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #004b5f; -} -.ui-select-bootstrap .ui-select-choices-row.disabled>a, -.ui-select-bootstrap .ui-select-choices-row.active.disabled>a { - color: #777; - cursor: not-allowed; - background-color: #fff; -} -.ui-select-match.ng-hide-add, -.ui-select-search.ng-hide-add { - display: none !important; -} -.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match { - border-color: #d44950; -} -.auth-state .panel { - margin-top: 50px; -} -.auth-state h1 { - margin: 15px 0; -} -.auth-state .auth-control { - margin: 10px 0; -} -.home-state { - padding: 10px; -} -.home-state p { - margin: 5px auto 15px; -} -.home-state ol { - margin: 35px auto; -} -.home-state li { - margin-bottom: 25px; -} -.settings-state .panel { - margin-top: 15px; -} -.settings-state h1 { - margin: 30px 0; -} -.settings-state .section h4 { - margin-bottom: 15px; -} -.snippets-list-state { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} -.snippets-list-state .left-pane { - border-right: 1px solid #001a20; - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 275px; - overflow: hidden; -} -.snippets-list-state .left-pane .snippet-search { - position: absolute; - top: 0; - height: 50px; - left: 0; - right: 0; - border-right: 1px solid #001a20; - padding: 7px 5px; -} -.snippets-list-state .left-pane .snippet-list { - position: absolute; - top: 50px; - bottom: 0; - left: 0; - right: 0; - overflow-x: hidden; - overflow-y: auto; - list-style: none; - padding: 0; -} -.snippets-list-state .left-pane .snippet-list li { - cursor: pointer; - padding: 5px; - border-right: 1px solid #001a20; - border-bottom: 1px solid #001a20; -} -.snippets-list-state .left-pane .snippet-list li:nth-child(even) { - background-color: #002b36; -} -.snippets-list-state .left-pane .snippet-list li:nth-child(odd) { - background-color: #00323f; -} -.snippets-list-state .left-pane .snippet-list li h4 { - margin: 0; -} -.snippets-list-state .left-pane .snippet-list li:hover { - background-color: #004b5f; -} -.snippets-list-state .left-pane .snippet-list li p { - margin: 0; -} -.snippets-list-state .left-pane .snippet-list li p.call-sign { - font-size: 0.8em; -} -.snippets-list-state .left-pane .snippet-list li p.created-at { - font-size: 0.8em; - opacity: 0.8; -} -.snippets-list-state .left-pane .snippet-list li.active { - color: #fff; - background-color: #088cff; -} -.snippets-list-state .left-pane .snippet-list li.active a { - color: #fff; -} -.snippets-list-state .right-pane { - position: absolute; - top: 0; - bottom: 0; - left: 275px; - right: 0; - overflow-x: hidden; - overflow-y: auto; - background-color: #00323f; -} -.snippets-detail-state { - position: absolute; - top: 0; - width: 100%; - bottom: 0; - overflow: hidden; -} -.snippets-detail-state .detail-header { - position: absolute; - top: 0; - width: 100%; - background-color: #003d4d; - padding: 5px 10px; - height: 50px; - border-bottom: solid 1px #001a20; -} -.snippets-detail-state .detail-header .detail-header-title { - color: #d5dfe2; - line-height: 40px; - font-size: 1.2em; -} -.snippets-detail-state .detail-header .detail-header-title small { - font-size: 0.6em; - color: #99b2b8; -} -.snippets-detail-state .detail-header .detail-header-control { - padding: 3px; -} -.snippets-detail-state .detail-body { - position: absolute; - top: 50px; - width: 100%; - bottom: 0; - padding: 5px 10px; - overflow-y: auto; -} -.snippets-detail-state .detail-body .ace_editor { - min-height: 300px; - border: solid 1px $border-color; - border-radius: 5px; - margin-bottom: 5px; -} -.tags { - word-break: break-all; -} -.tags a { - margin: 0 2px; -} -#side-view { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 200px; - background-color: #002b36; - border-right: solid 2px #004b5f; - box-sizing: border-box; - padding: 10px 0 10px 10px; -} -#main-view { - position: absolute; - top: 0; - bottom: 0; - left: 200px; - right: 0; - overflow-x: hidden; - overflow-y: auto; - background-color: $bgDarker; -} -.marked h1, -.marked h2, -.marked h3, -.marked h4, -.marked h5 { - margin: 0.75em 0; -} -.marked h1:nth-child(1), -.marked h2:nth-child(1), -.marked h3:nth-child(1), -.marked h4:nth-child(1), -.marked h5:nth-child(1) { - margin-top: 0; -} -.marked code { - background-color: #003644; - color: #fff; - border: 1px solid #001a20; - border-radius: 5px; - box-shadow: 0 1px 1px rgba(0,0,0,0.05); - padding: 5px; - line-height: 200%; -} -.marked pre { - margin-bottom: 10px; - background-color: #003644; - color: #fff; - border: 1px solid #001a20; - border-radius: 5px; - box-shadow: 0 1px 1px rgba(0,0,0,0.05); - padding: 5px; -} -.marked pre >code { - background-color: transparent; - color: inherit; - border: none; - border-radius: 0; - box-shadow: none; - padding: 0; - line-height: inherit; -} -.marked blockquote { - font-size: 1em; - border-left: 5px solid #6494ed; -} -.marked a { - text-decoration: underline; - color: #6494ed; -} -.marked table { - width: 100%; - max-width: 100%; - margin-bottom: $line-height-computed; - border: 1px solid #001a20; - margin-bottom: 10px; -} -.marked table > thead > tr > th, -.marked table > tbody > tr > th, -.marked table > tfoot > tr > th, -.marked table > thead > tr > td, -.marked table > tbody > tr > td, -.marked table > tfoot > tr > td { - padding: 10px; - line-height: $line-height-base; - vertical-align: top; - border-top: 1px solid #001a20; - border-right: 1px solid #001a20; -} -.marked table > thead > tr > th:nth-last-child(1), -.marked table > tbody > tr > th:nth-last-child(1), -.marked table > tfoot > tr > th:nth-last-child(1), -.marked table > thead > tr > td:nth-last-child(1), -.marked table > tbody > tr > td:nth-last-child(1), -.marked table > tfoot > tr > td:nth-last-child(1) { - border-right: none; -} -.marked table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #001a20; -} -.marked table > caption + thead, -.marked table > colgroup + thead, -.marked table > thead:first-child { - background-color: #004b5f; -} -.marked table > caption + thead > tr:first-child > th, -.marked table > colgroup + thead > tr:first-child > th, -.marked table > thead:first-child > tr:first-child > th, -.marked table > caption + thead > tr:first-child > td, -.marked table > colgroup + thead > tr:first-child > td, -.marked table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.marked table > tbody >tr:nth-child(odd) { - background-color: #002b36; -} -.marked table > tbody >tr:nth-child(even) { - background-color: #003644; -} -.short { - height: 500px; - overflow-y: auto; -} diff --git a/src/browser/main/styles/app.styl b/src/browser/main/styles/app.styl deleted file mode 100644 index 19ec8112..00000000 --- a/src/browser/main/styles/app.styl +++ /dev/null @@ -1,105 +0,0 @@ -@import '../../shared/styles/_vars' -@import '../../shared/styles/mixins/*' - -@import 'modals/*' -@import 'directives/*' -@import 'states/*' - -#side-view - position:absolute - top: 0 - bottom: 0 - left: 0 - width: 200px - background-color: $baseBackgroundColor - border-right solid 2px $backgroundColorSelected - box-sizing: border-box - padding: 10px 0 10px 10px - -#main-view - position:absolute - top: 0 - bottom: 0 - left: 200px - right: 0 - overflow-x: hidden - overflow-y: auto - background-color $bgDarker - -.marked - h1, h2, h3, h4, h5 - margin 0.75em 0 - &:nth-child(1) - margin-top 0 - code - background-color lighten($baseBackgroundColor, 3%) - color $textColorSelected - border 1px solid $baseBorderColor - border-radius 5px - box-shadow 0 1px 1px rgba(0, 0, 0, .05) - padding 5px - line-height 200% - pre - margin-bottom 10px - background-color lighten($baseBackgroundColor, 3%) - color $textColorSelected - border 1px solid $baseBorderColor - border-radius 5px - box-shadow 0 1px 1px rgba(0, 0, 0, .05) - padding 5px - >code - background-color transparent - color inherit - border none - border-radius 0 - box-shadow none - padding 0 - line-height inherit - blockquote - font-size 1em - border-left 5px solid $textColorInfo - a - text-decoration underline - color $textColorInfo - table - width 100% - max-width 100% - margin-bottom $line-height-computed - border 1px solid $table-border-color - margin-bottom 10px - - // Cells - > thead, - > tbody, - > tfoot - > tr - > th, - > td - padding 10px - line-height $line-height-base - vertical-align top - border-top 1px solid $table-border-color - border-right 1px solid $table-border-color - &:nth-last-child(1) - border-right none - > thead > tr > th - vertical-align bottom - border-bottom 2px solid $table-border-color - > caption + thead, - > colgroup + thead, - > thead:first-child - background-color $backgroundColorSelected - > tr:first-child - > th, - > td - border-top 0 - > tbody - >tr - &:nth-child(odd) - background-color $baseBackgroundColor - &:nth-child(even) - background-color lighten($baseBackgroundColor, 3%) - -.short - height 500px - overflow-y auto diff --git a/src/browser/main/styles/directives/side-nav.styl b/src/browser/main/styles/directives/side-nav.styl deleted file mode 100644 index 272cd26c..00000000 --- a/src/browser/main/styles/directives/side-nav.styl +++ /dev/null @@ -1,38 +0,0 @@ -#side-view - .nav-control-group - margin auto 10px - .new-block - margin 20px auto - button - padding 10px inherit - button:nth-child(1) - width 147px - padding-left 15px - text-align left - button:nth-child(2) - width 33px - .success-menu - background-color darken($brand-success, 35%) - a - padding 5px 15px - color $textColorSelected - &.hover, &:hover - background-color $brand-success - &.focus, &:focus - background-color darken($brand-success, 5%) - - ul.nav.nav-pills - margin-top 10px - li a - padding 12px 15px - margin-bottom 7px - border-top-right-radius 0 - border-bottom-right-radius 0 - transition 0.2s - li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus{ - background-color: $backgroundColorSelected - } -.botlink - position absolute - bottom 0 - text-align center diff --git a/src/browser/main/tpls/directives/side-nav.tpl.html b/src/browser/main/tpls/directives/side-nav.tpl.html deleted file mode 100644 index c2e35b49..00000000 --- a/src/browser/main/tpls/directives/side-nav.tpl.html +++ /dev/null @@ -1,50 +0,0 @@ -
-
- - - - - - - -
-
- Guest - - - - - - -
-
- -
-
- - - -
-
- - - - diff --git a/src/browser/main/tpls/modals/pp.html b/src/browser/main/tpls/modals/pp.html deleted file mode 100644 index 52087b42..00000000 --- a/src/browser/main/tpls/modals/pp.html +++ /dev/null @@ -1,121 +0,0 @@ -
- - - - - -
diff --git a/src/browser/main/tpls/modals/regulation.html b/src/browser/main/tpls/modals/regulation.html deleted file mode 100644 index 193ccbc9..00000000 --- a/src/browser/main/tpls/modals/regulation.html +++ /dev/null @@ -1,264 +0,0 @@ -
- - - - - -
diff --git a/src/browser/main/tpls/states/home.tpl.html b/src/browser/main/tpls/states/home.tpl.html deleted file mode 100644 index 45a54b27..00000000 --- a/src/browser/main/tpls/states/home.tpl.html +++ /dev/null @@ -1,48 +0,0 @@ -
-

Codexen App v0.1.2

- -

About CodeXen

- -

- CodeXen is short code storage tool make coding more stressless. If you use CodeXen, then you will be disentangled from troublesome organizing a large number of snippets and googling same code many times. -

- -
    -
  1. -

    - Post your code -

    -

    - Post your commonly used code with description,category,and tags. -

    -
  2. -
  3. -

    - Save on cloud -

    -

    - From short snippet to long complex code,CodeXen saves any code simply. -

    -
  4. -
  5. -

    - Use code like a magic -

    -

    - CodeXen call code you posted whereever you are.Type [shift+control+tab] simultaneously. -

    -
  6. -
  7. -

    - Code Elegantly -

    -

    - That's all! - You must be loved with CodeXen. Enjoy coding;) -

    -
  8. -
-

- © 2015 MAISIN&CO.,Inc. -

-
From 1e7415b692b33c773dc43ec8fb00b85ea06a66c4 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sun, 6 Sep 2015 19:48:44 +0900 Subject: [PATCH 08/86] fix version 0.2.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4ff615c1..2222ffb8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "boost", - "version": "0.2.10", + "version": "0.2.11", "description": "Boost App", "main": "main.js", "scripts": { From 9758f5baa8b4f6b9327a18f823ca813d06358097 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Mon, 2 Nov 2015 16:13:31 +0900 Subject: [PATCH 09/86] release version 0.4.0-alpha.7 --- main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.js b/main.js index 0512751b..9a5a3e9f 100644 --- a/main.js +++ b/main.js @@ -45,7 +45,7 @@ app.on('ready', function () { appQuit = true }) console.log('Version ' + version) - updater.setFeedUrl('http://orbital.b00st.io/rokt33r/boost-dev/latest?version=' + version) + updater.setFeedUrl('http://orbital.b00st.io/rokt33r/boost-app/latest?version=' + version) updater.checkForUpdates() // menu start var template = require('./atom-lib/menu-template') From 59d3c6c94f97fb6d02e24e2257e2cee85330ffc6 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Thu, 5 Nov 2015 10:33:14 +0900 Subject: [PATCH 10/86] 0.4.0-beta.1 --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 13a197d2..85e93092 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "boost", - "version": "0.4.0-beta", + "version": "0.4.0-beta.1", "description": "Boost App", "main": "main.js", "scripts": { @@ -38,6 +38,7 @@ "homepage": "https://github.com/Rokt33r/codexen-app#readme", "dependencies": { "devicon": "^2.0.0", + "electron-packager": "^5.1.1", "font-awesome": "^4.3.0", "fs-jetpack": "^0.7.0", "lodash": "^3.10.1", From 09482ebcf304e703c75e39f6b4a1993aea2eb451 Mon Sep 17 00:00:00 2001 From: Dick Choi Date: Tue, 17 Nov 2015 05:36:08 +0900 Subject: [PATCH 11/86] fix wrong dependency --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 32ec18ae..95f50f69 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "homepage": "https://github.com/Rokt33r/codexen-app#readme", "dependencies": { "devicon": "^2.0.0", - "electron-packager": "^5.1.1", "font-awesome": "^4.3.0", "fs-jetpack": "^0.7.0", "lodash": "^3.10.1", From ee78c0d33bd9ca21538d90d6eadf62ec1ccbd8d6 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Wed, 18 Nov 2015 18:39:27 +0900 Subject: [PATCH 12/86] =?UTF-8?q?hotfix:=20Edited=20alert=E3=81=8C?= =?UTF-8?q?=E5=A4=89=E3=81=AA=E6=99=82=E3=81=AB=E5=87=BA=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- browser/main/HomePage/ArticleDetail.js | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/browser/main/HomePage/ArticleDetail.js b/browser/main/HomePage/ArticleDetail.js index 12fbe9a2..45b094ed 100644 --- a/browser/main/HomePage/ArticleDetail.js +++ b/browser/main/HomePage/ArticleDetail.js @@ -378,6 +378,11 @@ export default class ArticleDetail extends React.Component { } handleContentChange (e, value) { + let { status } = this.props + if (status.mode === IDLE_MODE) { + return + } + let { article } = this.state article.content = value let _isContentChanged = article.content !== this.props.activeArticle.content diff --git a/package.json b/package.json index 95f50f69..12b0288b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "boost", - "version": "0.4.1-beta", + "version": "0.4.1-beta.1", "description": "Boost App", "main": "main.js", "scripts": { From 8f83124a0daf5ab5728e2df84ea69d53007f937e Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 05:54:15 +0900 Subject: [PATCH 13/86] hidden code --- atom-lib/menu-template.js | 7 ------- package.json | 2 +- webpack.config.production.js | 12 ++++++------ 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/atom-lib/menu-template.js b/atom-lib/menu-template.js index fa396f42..bc80da39 100644 --- a/atom-lib/menu-template.js +++ b/atom-lib/menu-template.js @@ -89,13 +89,6 @@ module.exports = [ click: function () { BrowserWindow.getFocusedWindow().reload() } - }, - { - label: 'Toggle DevTools', - accelerator: 'Alt+Command+I', - click: function () { - BrowserWindow.getFocusedWindow().toggleDevTools() - } } ] }, diff --git a/package.json b/package.json index 12b0288b..17345573 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "start": "BOOST_ENV=development electron ./main.js", "webpack": "webpack-dev-server --hot --inline --config webpack.config.js", "compile": "NODE_ENV=production webpack --config webpack.config.production.js", - "build": "electron-packager ./ Boost --app-version=$npm_package_version $npm_package_config_platform $npm_package_config_version $npm_package_config_ignore --overwrite", + "build": "electron-packager ./ Boost --app-version=$npm_package_version $npm_package_config_platform $npm_package_config_version $npm_package_config_ignore --overwrite --asar", "codesign": "codesign --verbose --deep --force --sign \"MAISIN solutions Inc.\" Boost-darwin-x64/Boost.app" }, "config": { diff --git a/webpack.config.production.js b/webpack.config.production.js index 8eda4cc5..0e496776 100644 --- a/webpack.config.production.js +++ b/webpack.config.production.js @@ -8,7 +8,7 @@ module.exports = { output: { path: 'compiled', filename: '[name].js', - sourceMapFilename: '[name].map', + // sourceMapFilename: '[name].map', libraryTarget: 'commonjs2' }, module: { @@ -31,12 +31,12 @@ module.exports = { 'process.env': { 'NODE_ENV': JSON.stringify('production') } + }), + new webpack.optimize.UglifyJsPlugin({ + compressor: { + warnings: false + } }) - // new webpack.optimize.UglifyJsPlugin({ - // compressor: { - // warnings: false - // } - // }) ], externals: [ 'socket.io-client', From 666bc18e91b7b3733195b873bddeafe8b6681cd9 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 05:56:29 +0900 Subject: [PATCH 14/86] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 17345573..37d485ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "boost", - "version": "0.4.1-beta.1", + "version": "0.4.1-beta.2", "description": "Boost App", "main": "main.js", "scripts": { From 84e0728ff38c78f89b5b50770f327c334975601a Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 06:03:32 +0900 Subject: [PATCH 15/86] no source map --- browser/main/HomePage/untitled | 0 webpack.config.production.js | 1 - 2 files changed, 1 deletion(-) delete mode 100644 browser/main/HomePage/untitled diff --git a/browser/main/HomePage/untitled b/browser/main/HomePage/untitled deleted file mode 100644 index e69de29b..00000000 diff --git a/webpack.config.production.js b/webpack.config.production.js index 0e496776..2a565752 100644 --- a/webpack.config.production.js +++ b/webpack.config.production.js @@ -1,6 +1,5 @@ var webpack = require('webpack') module.exports = { - devtool: 'source-map', entry: { main: './browser/main/index.js', finder: './browser/finder/index.js' From ac4ceccb4f9c909cda2cadc6ec9ff8686b54e4aa Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 06:35:27 +0900 Subject: [PATCH 16/86] show devtool only devmode --- browser/main/HomePage.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/browser/main/HomePage.js b/browser/main/HomePage.js index c40b4dfb..422e5717 100644 --- a/browser/main/HomePage.js +++ b/browser/main/HomePage.js @@ -28,6 +28,13 @@ class HomePage extends React.Component { } handleKeyDown (e) { + if (process.env.BOOST_ENV === 'development' && e.keyCode === 73 && e.metaKey && e.altKey) { + e.preventDefault() + e.stopPropagation() + require('remote').require('browser-window').getFocusedWindow().toggleDevTools() + return + } + if (isModalOpen()) { if (e.keyCode === 27) closeModal() return @@ -226,12 +233,8 @@ function remap (state) { } // switching CREATE_MODE - // restrict - // 1. team have one folder at least - // or Change IDLE MODE if (status.mode === CREATE_MODE) { let newArticle = _.findWhere(articles, {status: 'NEW'}) - console.log('targetFolders') let FolderKey = targetFolders.length > 0 ? targetFolders[0].key : folders[0].key @@ -250,8 +253,6 @@ function remap (state) { articles.unshift(newArticle) } activeArticle = newArticle - } else if (status.mode === CREATE_MODE) { - status.mode = IDLE_MODE } return { From 1c9cb4516cab328f14e39d41f2b2211c037a4c9b Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 06:36:50 +0900 Subject: [PATCH 17/86] =?UTF-8?q?=E5=88=9D=E6=9C=9F=E8=A8=98=E4=BA=8B?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=BF=AE=E6=AD=A3cmd=20->=20ctrl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/dataStore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dataStore.js b/lib/dataStore.js index f05be868..a09c74a4 100644 --- a/lib/dataStore.js +++ b/lib/dataStore.js @@ -1,6 +1,6 @@ import keygen from 'boost/keygen' -let defaultContent = 'Boost is a brand new note App for programmers.\n\n> 下に日本語版があります。\n\n# \u25CEfeature\n\nBoost has some preponderant functions for efficient engineer\'s task.See some part of it.\n\n1. classify information by\u300CFolders\u300D\n2. deal with great variety of syntax\n3. Finder function\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n# 1. classify information by \u300CFolders\u300D- access the information you needed easily.\n\n\u300CFolders\u300D which on the left side bar. Press plus button now. flexible way of classification.\n- Create Folder every language or flamework\n- Make Folder for your own casual memos\n\n# 2. Deal with a great variety of syntax \u2013 instead of your brain\nSave handy all information related with programming\n- Use markdown and gather api specification\n- Well using module and snippet\n\nSave them on Boost, you don\'t need to rewrite or re-search same code again.\n\n# 3. Load Finder function \u2013 now you don\'t need to spell command by hand typing.\n\n**Shift +cmd+tab** press buttons at same time.\nThen, the window will show up for search Boost contents that instant.\n\nUsing cursor key to chose, press enter, cmd+v to paste and\u2026 please check it out by your own eye.\n\n- Such command spl or linux which programmers often use but troublesome to hand type\n\n- (Phrases commonly used for e-mail or customer support)\n\nWe support preponderant efficiency\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n## \u25CEfor more information\nFrequently updated with this blog ( http:\/\/blog-jp.b00st.io )\n\nHave wonderful programmer life!\n\n## Hack your memory**\n\n\n\n# 日本語版\n\n**Boost**は全く新しいエンジニアライクのノートアプリです。\n\n# ◎特徴\nBoostはエンジニアの仕事を圧倒的に効率化するいくつかの機能を備えています。\nその一部をご紹介します。\n1. Folderで情報を分類\n2. 豊富なsyantaxに対応\n3. Finder機能\n4. チーム機能(リアルタイム搭載)\n\n* * * *\n\n# 1. Folderで情報を分類、欲しい情報にすぐアクセス。\n左側のバーに存在する「Folders」。\n今すぐプラスボタンを押しましょう。\n分類の仕方も自由自在です。\n- 言語やフレームワークごとにFolderを作成\n- 自分用のカジュアルなメモをまとめる場としてFolderを作成\n\n\n# 2. 豊富なsyntaxに対応、自分の脳の代わりに。\nプログラミングに関する情報を全て、手軽に保存しましょう。\n- mdで、apiの仕様をまとめる\n- よく使うモジュールやスニペット\n\nBoostに保存しておくことで、何度も同じコードを書いたり調べたりする必要がなくなります。\n\n# 3. Finder機能を搭載、もうコマンドを手打ちする必要はありません。\n**「shift+cmd+tab」** を同時に押してみてください。\nここでは、一瞬でBoostの中身を検索するウィンドウを表示させることができます。\n\n矢印キーで選択、Enterを押し、cmd+vでペーストすると…続きはご自身の目でお確かめください。\n- sqlやlinux等の、よく使うが手打ちが面倒なコマンド\n- (メールやカスタマーサポート等でよく使うフレーズ)\n\n私たちは、圧倒的な効率性を支援します。\n\* * * *\n\n\n## ◎詳しくは\nこちらのブログ( http://blog-jp.b00st.io )にて随時更新しています。\n\nそれでは素晴らしいエンジニアライフを!\n\n## Hack your memory**' +let defaultContent = 'Boost is a brand new note App for programmers.\n\n> 下に日本語版があります。\n\n# \u25CEfeature\n\nBoost has some preponderant functions for efficient engineer\'s task.See some part of it.\n\n1. classify information by\u300CFolders\u300D\n2. deal with great variety of syntax\n3. Finder function\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n# 1. classify information by \u300CFolders\u300D- access the information you needed easily.\n\n\u300CFolders\u300D which on the left side bar. Press plus button now. flexible way of classification.\n- Create Folder every language or flamework\n- Make Folder for your own casual memos\n\n# 2. Deal with a great variety of syntax \u2013 instead of your brain\nSave handy all information related with programming\n- Use markdown and gather api specification\n- Well using module and snippet\n\nSave them on Boost, you don\'t need to rewrite or re-search same code again.\n\n# 3. Load Finder function \u2013 now you don\'t need to spell command by hand typing.\n\n**Shift +ctrl+tab** press buttons at same time.\nThen, the window will show up for search Boost contents that instant.\n\nUsing cursor key to chose, press enter, cmd+v to paste and\u2026 please check it out by your own eye.\n\n- Such command spl or linux which programmers often use but troublesome to hand type\n\n- (Phrases commonly used for e-mail or customer support)\n\nWe support preponderant efficiency\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n## \u25CEfor more information\nFrequently updated with this blog ( http:\/\/blog-jp.b00st.io )\n\nHave wonderful programmer life!\n\n## Hack your memory**\n\n\n\n# 日本語版\n\n**Boost**は全く新しいエンジニアライクのノートアプリです。\n\n# ◎特徴\nBoostはエンジニアの仕事を圧倒的に効率化するいくつかの機能を備えています。\nその一部をご紹介します。\n1. Folderで情報を分類\n2. 豊富なsyantaxに対応\n3. Finder機能\n4. チーム機能(リアルタイム搭載)\n\n* * * *\n\n# 1. Folderで情報を分類、欲しい情報にすぐアクセス。\n左側のバーに存在する「Folders」。\n今すぐプラスボタンを押しましょう。\n分類の仕方も自由自在です。\n- 言語やフレームワークごとにFolderを作成\n- 自分用のカジュアルなメモをまとめる場としてFolderを作成\n\n\n# 2. 豊富なsyntaxに対応、自分の脳の代わりに。\nプログラミングに関する情報を全て、手軽に保存しましょう。\n- mdで、apiの仕様をまとめる\n- よく使うモジュールやスニペット\n\nBoostに保存しておくことで、何度も同じコードを書いたり調べたりする必要がなくなります。\n\n# 3. Finder機能を搭載、もうコマンドを手打ちする必要はありません。\n**「shift+ctrl+tab」** を同時に押してみてください。\nここでは、一瞬でBoostの中身を検索するウィンドウを表示させることができます。\n\n矢印キーで選択、Enterを押し、cmd+vでペーストすると…続きはご自身の目でお確かめください。\n- sqlやlinux等の、よく使うが手打ちが面倒なコマンド\n- (メールやカスタマーサポート等でよく使うフレーズ)\n\n私たちは、圧倒的な効率性を支援します。\n\* * * *\n\n\n## ◎詳しくは\nこちらのブログ( http://blog-jp.b00st.io )にて随時更新しています。\n\nそれでは素晴らしいエンジニアライフを!\n\n## Hack your memory**' export function init () { console.log('initialize data store') From 263cb581c476cc88b0cafdc0b42e81184f697ad3 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 06:37:23 +0900 Subject: [PATCH 18/86] =?UTF-8?q?=E9=96=8B=E7=99=BA=E4=B8=AD=E3=81=AE?= =?UTF-8?q?=E3=82=82=E3=81=AE=E3=81=AF=E3=83=87=E3=83=BC=E3=82=BF=E3=82=92?= =?UTF-8?q?=E9=80=81=E3=82=89=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/activityRecord.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/activityRecord.js b/lib/activityRecord.js index 71e61a82..b79e2447 100644 --- a/lib/activityRecord.js +++ b/lib/activityRecord.js @@ -47,6 +47,10 @@ Post all records(except today) and remove all posted records */ export function postRecords (data) { + if (process.env.BOOST_ENV === 'development') { + console.log('post failed - on development') + return + } let records = getAllRecords() records = records.filter(record => { return !isSameDate(new Date(), record.date) From 3b34698e8b1b7941edb11d9c432a90a0b3145d10 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 16:03:20 +0900 Subject: [PATCH 19/86] =?UTF-8?q?Default=E6=96=87=E6=9B=B8=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/dataStore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dataStore.js b/lib/dataStore.js index a09c74a4..3b8c772a 100644 --- a/lib/dataStore.js +++ b/lib/dataStore.js @@ -1,6 +1,6 @@ import keygen from 'boost/keygen' -let defaultContent = 'Boost is a brand new note App for programmers.\n\n> 下に日本語版があります。\n\n# \u25CEfeature\n\nBoost has some preponderant functions for efficient engineer\'s task.See some part of it.\n\n1. classify information by\u300CFolders\u300D\n2. deal with great variety of syntax\n3. Finder function\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n# 1. classify information by \u300CFolders\u300D- access the information you needed easily.\n\n\u300CFolders\u300D which on the left side bar. Press plus button now. flexible way of classification.\n- Create Folder every language or flamework\n- Make Folder for your own casual memos\n\n# 2. Deal with a great variety of syntax \u2013 instead of your brain\nSave handy all information related with programming\n- Use markdown and gather api specification\n- Well using module and snippet\n\nSave them on Boost, you don\'t need to rewrite or re-search same code again.\n\n# 3. Load Finder function \u2013 now you don\'t need to spell command by hand typing.\n\n**Shift +ctrl+tab** press buttons at same time.\nThen, the window will show up for search Boost contents that instant.\n\nUsing cursor key to chose, press enter, cmd+v to paste and\u2026 please check it out by your own eye.\n\n- Such command spl or linux which programmers often use but troublesome to hand type\n\n- (Phrases commonly used for e-mail or customer support)\n\nWe support preponderant efficiency\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n## \u25CEfor more information\nFrequently updated with this blog ( http:\/\/blog-jp.b00st.io )\n\nHave wonderful programmer life!\n\n## Hack your memory**\n\n\n\n# 日本語版\n\n**Boost**は全く新しいエンジニアライクのノートアプリです。\n\n# ◎特徴\nBoostはエンジニアの仕事を圧倒的に効率化するいくつかの機能を備えています。\nその一部をご紹介します。\n1. Folderで情報を分類\n2. 豊富なsyantaxに対応\n3. Finder機能\n4. チーム機能(リアルタイム搭載)\n\n* * * *\n\n# 1. Folderで情報を分類、欲しい情報にすぐアクセス。\n左側のバーに存在する「Folders」。\n今すぐプラスボタンを押しましょう。\n分類の仕方も自由自在です。\n- 言語やフレームワークごとにFolderを作成\n- 自分用のカジュアルなメモをまとめる場としてFolderを作成\n\n\n# 2. 豊富なsyntaxに対応、自分の脳の代わりに。\nプログラミングに関する情報を全て、手軽に保存しましょう。\n- mdで、apiの仕様をまとめる\n- よく使うモジュールやスニペット\n\nBoostに保存しておくことで、何度も同じコードを書いたり調べたりする必要がなくなります。\n\n# 3. Finder機能を搭載、もうコマンドを手打ちする必要はありません。\n**「shift+ctrl+tab」** を同時に押してみてください。\nここでは、一瞬でBoostの中身を検索するウィンドウを表示させることができます。\n\n矢印キーで選択、Enterを押し、cmd+vでペーストすると…続きはご自身の目でお確かめください。\n- sqlやlinux等の、よく使うが手打ちが面倒なコマンド\n- (メールやカスタマーサポート等でよく使うフレーズ)\n\n私たちは、圧倒的な効率性を支援します。\n\* * * *\n\n\n## ◎詳しくは\nこちらのブログ( http://blog-jp.b00st.io )にて随時更新しています。\n\nそれでは素晴らしいエンジニアライフを!\n\n## Hack your memory**' +let defaultContent = 'Boost is a brand new note App for programmers.\n\n> 下に日本語版があります。\n\n# \u25CEfeature\n\nBoost has some preponderant functions for efficient engineer\'s task.See some part of it.\n\n1. classify information by\u300CFolders\u300D\n2. deal with great variety of syntax\n3. Finder function\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n# 1. classify information by \u300CFolders\u300D- access the information you needed easily.\n\n\u300CFolders\u300D which on the left side bar. Press plus button now. flexible way of classification.\n- Create Folder every language or flamework\n- Make Folder for your own casual memos\n\n# 2. Deal with a great variety of syntax \u2013 instead of your brain\nSave handy all information related with programming\n- Use markdown and gather api specification\n- Well using module and snippet\n\nSave them on Boost, you don\'t need to rewrite or re-search same code again.\n\n# 3. Load Finder function \u2013 now you don\'t need to spell command by hand typing.\n\n**Shift +ctrl+tab** press buttons at same time.\nThen, the window will show up for search Boost contents that instant.\n\nUsing cursor key to chose, press enter, cmd+v to paste and\u2026 please check it out by your own eye.\n\n- Such command spl or linux which programmers often use but troublesome to hand type\n\n- (Phrases commonly used for e-mail or customer support)\n\nWe support preponderant efficiency\n\n\uFF0A\u3000\uFF0A\u3000\uFF0A\u3000\uFF0A\n\n## \u25CEfor more information\nFrequently updated with this blog ( http:\/\/blog-jp.b00st.io )\n\nHave wonderful programmer life!\n\n## Hack your memory**\n\n\n\n# 日本語版\n\n**Boost**は全く新しいエンジニアライクのノートアプリです。\n\n# ◎特徴\nBoostはエンジニアの仕事を圧倒的に効率化するいくつかの機能を備えています。\nその一部をご紹介します。\n1. Folderで情報を分類\n2. 豊富なsyantaxに対応\n3. Finder機能\n\n\n* * * *\n\n# 1. Folderで情報を分類、欲しい情報にすぐアクセス。\n左側のバーに存在する「Folders」。\n今すぐプラスボタンを押しましょう。\n分類の仕方も自由自在です。\n- 言語やフレームワークごとにFolderを作成\n- 自分用のカジュアルなメモをまとめる場としてFolderを作成\n\n\n# 2. 豊富なsyntaxに対応、自分の脳の代わりに。\nプログラミングに関する情報を全て、手軽に保存しましょう。\n- mdで、apiの仕様をまとめる\n- よく使うモジュールやスニペット\n\nBoostに保存しておくことで、何度も同じコードを書いたり調べたりする必要がなくなります。\n\n# 3. Finder機能を搭載、もうコマンドを手打ちする必要はありません。\n**「shift+ctrl+tab」** を同時に押してみてください。\nここでは、一瞬でBoostの中身を検索するウィンドウを表示させることができます。\n\n矢印キーで選択、Enterを押し、cmd+vでペーストすると…続きはご自身の目でお確かめください。\n- sqlやlinux等の、よく使うが手打ちが面倒なコマンド\n- (メールやカスタマーサポート等でよく使うフレーズ)\n\n私たちは、圧倒的な効率性を支援します。\n\* * * *\n\n\n## ◎詳しくは\nこちらのブログ( http://blog-jp.b00st.io )にて随時更新しています。\n\nそれでは素晴らしいエンジニアライフを!\n\n## Hack your memory**' export function init () { console.log('initialize data store') From 7d9894bef786b49e1b7c615b0e2c2b5453c88962 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 21 Nov 2015 22:07:59 +0900 Subject: [PATCH 20/86] cleanup notification code --- browser/finder/index.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/browser/finder/index.js b/browser/finder/index.js index 8ef40501..5c0b699d 100644 --- a/browser/finder/index.js +++ b/browser/finder/index.js @@ -14,10 +14,8 @@ import remote from 'remote' var hideFinder = remote.getGlobal('hideFinder') import clipboard from 'clipboard' -var notifier = require('node-notifier') -var path = require('path') -function getIconPath () { - return path.resolve(global.__dirname, '../../resources/favicon-230x230.png') +function notify (...args) { + return new window.Notification(...args) } require('../styles/finder/index.styl') @@ -66,10 +64,8 @@ class FinderMain extends React.Component { clipboard.writeText(activeArticle.content) activityRecord.emit('FINDER_COPY') - notifier.notify({ - icon: getIconPath(), - 'title': 'Saved to Clipboard!', - 'message': 'Paste it wherever you want!' + notify('Saved to Clipboard!', { + body: 'Paste it wherever you want!' }) hideFinder() } From 954b3e9fc542bb152bc1be321453d5a94b9f063e Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sun, 22 Nov 2015 15:03:48 +0900 Subject: [PATCH 21/86] =?UTF-8?q?fix:=20=E6=96=B0=E3=81=97=E3=81=84?= =?UTF-8?q?=E8=A8=98=E4=BA=8B=E3=82=92=E6=9B=B8=E3=81=8F=E6=99=82=E3=81=AB?= =?UTF-8?q?=E7=99=BA=E7=94=9F=E3=81=99=E3=82=8B=E3=83=90=E3=82=B0=E4=B8=80?= =?UTF-8?q?=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- browser/main/HomePage.js | 30 ------------- browser/main/HomePage/ArticleDetail.js | 17 ++++---- browser/main/HomePage/ArticleNavigator.js | 27 ++++++++++-- lib/actions.js | 15 +++++-- lib/components/modal/EditedAlert.js | 3 +- lib/reducer.js | 51 +++++++++++++++++++---- package.json | 2 +- 7 files changed, 89 insertions(+), 56 deletions(-) diff --git a/browser/main/HomePage.js b/browser/main/HomePage.js index 422e5717..780f8b52 100644 --- a/browser/main/HomePage.js +++ b/browser/main/HomePage.js @@ -225,36 +225,6 @@ function remap (state) { let activeArticle = _.findWhere(articles, {key: status.articleKey}) if (activeArticle == null) activeArticle = articles[0] - // remove Unsaved new article if user is not CREATE_MODE - if (status.mode !== CREATE_MODE) { - let targetIndex = _.findIndex(articles, article => article.status === NEW) - - if (targetIndex >= 0) articles.splice(targetIndex, 1) - } - - // switching CREATE_MODE - if (status.mode === CREATE_MODE) { - let newArticle = _.findWhere(articles, {status: 'NEW'}) - let FolderKey = targetFolders.length > 0 - ? targetFolders[0].key - : folders[0].key - - if (newArticle == null) { - newArticle = { - id: null, - key: keygen(), - title: '', - content: '', - mode: 'markdown', - tags: [], - FolderKey: FolderKey, - status: NEW - } - articles.unshift(newArticle) - } - activeArticle = newArticle - } - return { folders, status, diff --git a/browser/main/HomePage/ArticleDetail.js b/browser/main/HomePage/ArticleDetail.js index 45b094ed..de3ffd54 100644 --- a/browser/main/HomePage/ArticleDetail.js +++ b/browser/main/HomePage/ArticleDetail.js @@ -7,7 +7,6 @@ import MarkdownPreview from 'boost/components/MarkdownPreview' import CodeEditor from 'boost/components/CodeEditor' import { IDLE_MODE, - CREATE_MODE, EDIT_MODE, switchMode, switchArticle, @@ -15,6 +14,7 @@ import { clearSearch, lockStatus, unlockStatus, + clearNewArticle, updateArticle, destroyArticle, NEW @@ -114,7 +114,7 @@ export default class ArticleDetail extends React.Component { componentDidUpdate (prevProps) { let isModeChanged = prevProps.status.mode !== this.props.status.mode - if (isModeChanged && this.props.status.mode !== IDLE_MODE) { + if (isModeChanged && this.props.status.mode === EDIT_MODE) { ReactDOM.findDOMNode(this.refs.title).focus() } } @@ -124,6 +124,7 @@ export default class ArticleDetail extends React.Component { let isArticleChanged = nextProps.activeArticle != null && (nextProps.activeArticle.key !== this.state.article.key) let isModeChanged = nextProps.status.mode !== this.props.status.mode + // Reset article input if (isArticleChanged || (isModeChanged && nextProps.status.mode !== IDLE_MODE)) { Object.assign(nextState, { @@ -248,12 +249,15 @@ export default class ArticleDetail extends React.Component { let { activeArticle, dispatch } = this.props dispatch(unlockStatus()) - if (activeArticle.status === NEW) dispatch(switchArticle(null)) + if (activeArticle.status === NEW) { + dispatch(clearNewArticle()) + dispatch(switchArticle(null)) + } dispatch(switchMode(IDLE_MODE)) } handleSaveButtonClick (e) { - let { dispatch, folders, filters } = this.props + let { dispatch, folders, status } = this.props let article = this.state.article let newArticle = Object.assign({}, article) @@ -277,7 +281,7 @@ export default class ArticleDetail extends React.Component { // Searchを初期化し、更新先のFolder filterをかける // かかれていない時に // Searchを初期化する - if (filters.folder.length !== 0) dispatch(switchFolder(folder.name)) + if (status.targetFolders.length > 0) dispatch(switchFolder(folder.name)) else dispatch(clearSearch()) dispatch(switchArticle(newArticle.key)) } @@ -319,8 +323,6 @@ export default class ArticleDetail extends React.Component { let article = this.state.article article.tags = tags - this.setState({article: article}) - let _isTagChanged = _.difference(article.tags, this.props.activeArticle.tags).length > 0 || _.difference(this.props.activeArticle.tags, article.tags).length > 0 let { isTitleChanged, isContentChanged, isArticleEdited, isModeChanged } = this.state @@ -500,7 +502,6 @@ export default class ArticleDetail extends React.Component { if (activeArticle == null) return this.renderEmpty() switch (status.mode) { - case CREATE_MODE: case EDIT_MODE: return this.renderEdit() case IDLE_MODE: diff --git a/browser/main/HomePage/ArticleNavigator.js b/browser/main/HomePage/ArticleNavigator.js index d4c21131..49063bb4 100644 --- a/browser/main/HomePage/ArticleNavigator.js +++ b/browser/main/HomePage/ArticleNavigator.js @@ -1,10 +1,11 @@ import React, { PropTypes } from 'react' import { findWhere } from 'lodash' -import { setSearchFilter, switchFolder, switchMode, CREATE_MODE } from 'boost/actions' +import { setSearchFilter, switchFolder, switchMode, switchArticle, updateArticle, EDIT_MODE } from 'boost/actions' import { openModal } from 'boost/modal' import FolderMark from 'boost/components/FolderMark' import Preferences from 'boost/components/modal/Preferences' import CreateNewFolder from 'boost/components/modal/CreateNewFolder' +import keygen from 'boost/keygen' import remote from 'remote' let userName = remote.getGlobal('process').env.USER @@ -65,9 +66,27 @@ export default class ArticleNavigator extends React.Component { } handleNewPostButtonClick (e) { - let { dispatch } = this.props + let { dispatch, folders, status } = this.props + let { targetFolders } = status - dispatch(switchMode(CREATE_MODE)) + let FolderKey = targetFolders.length > 0 + ? targetFolders[0].key + : folders[0].key + + let newArticle = { + id: null, + key: keygen(), + title: '', + content: '', + mode: 'markdown', + tags: [], + FolderKey: FolderKey, + status: 'NEW' + } + + dispatch(updateArticle(newArticle)) + dispatch(switchArticle(newArticle.key, true)) + dispatch(switchMode(EDIT_MODE)) } handleNewFolderButton (e) { @@ -94,7 +113,7 @@ export default class ArticleNavigator extends React.Component { let folderElememts = folders.map((folder, index) => { let isActive = findWhere(targetFolders, {key: folder.key}) - let articleCount = allArticles.filter(article => article.FolderKey === folder.key).length + let articleCount = allArticles.filter(article => article.FolderKey === folder.key && article.status !== 'NEW').length return (