From 2fcd539c26d698fb3f3f794f78cc01ba6849e8c0 Mon Sep 17 00:00:00 2001 From: develas Date: Sun, 17 Jul 2016 23:12:41 +0300 Subject: [PATCH 1/3] 404 and 500 pages --- common.blocks/error-board/404_error.jpg | Bin 0 -> 7807 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 common.blocks/error-board/404_error.jpg diff --git a/common.blocks/error-board/404_error.jpg b/common.blocks/error-board/404_error.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1e9cde367b6d50fe41f3b39c1539258738141dd0 GIT binary patch literal 7807 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 Date: Tue, 19 Jul 2016 23:36:58 +0300 Subject: [PATCH 2/3] fixed errors --- common.blocks/error-board/404_error.jpg | Bin 7807 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 common.blocks/error-board/404_error.jpg diff --git a/common.blocks/error-board/404_error.jpg b/common.blocks/error-board/404_error.jpg deleted file mode 100644 index 1e9cde367b6d50fe41f3b39c1539258738141dd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7807 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 Date: Sun, 7 Aug 2016 16:29:29 +0300 Subject: [PATCH 3/3] comment preview task --- common.blocks/comments/comments.bemtree.js | 22 +++++-- common.blocks/comments/comments.css | 5 ++ common.blocks/comments/comments.deps.js | 2 +- .../forum-form/forum-form.bemhtml.js | 4 ++ .../forum-form/forum-form.bemtree.js | 61 +++++++++++++++++++ common.blocks/forum-form/forum-form.css | 31 ++++++++++ common.blocks/forum-form/forum-form.deps.js | 28 +++++++++ .../forum-form/forum-form.i18n/en.js | 6 ++ .../forum-form/forum-form.i18n/ru.js | 6 ++ common.blocks/forum-form/forum-form.js | 35 +++++++++++ common.blocks/icon/_size/icon_size_24.css | 4 ++ .../icon/_view/icon_view_markdown.css | 3 + .../icon/_view/icon_view_preview.css | 3 + server/controllers/gh.js | 7 +++ server/router.js | 1 + 15 files changed, 211 insertions(+), 7 deletions(-) create mode 100644 common.blocks/forum-form/forum-form.bemhtml.js create mode 100644 common.blocks/forum-form/forum-form.bemtree.js create mode 100644 common.blocks/forum-form/forum-form.css create mode 100644 common.blocks/forum-form/forum-form.deps.js create mode 100644 common.blocks/forum-form/forum-form.i18n/en.js create mode 100644 common.blocks/forum-form/forum-form.i18n/ru.js create mode 100644 common.blocks/forum-form/forum-form.js create mode 100644 common.blocks/icon/_size/icon_size_24.css create mode 100644 common.blocks/icon/_view/icon_view_markdown.css create mode 100644 common.blocks/icon/_view/icon_view_preview.css diff --git a/common.blocks/comments/comments.bemtree.js b/common.blocks/comments/comments.bemtree.js index cd723ef..cba7480 100644 --- a/common.blocks/comments/comments.bemtree.js +++ b/common.blocks/comments/comments.bemtree.js @@ -1,8 +1,18 @@ block('comments').content()(function() { - return this.data.comments.map(function(comment) { - return { - block: 'comment', - comment: comment - }; - }); + var comments = this.data.comments; + + return [ + comments.map(function(comment) { + return { + block: 'comment', + comment: comment + }; + }), + { + elem: 'add-form', + content: { + block: 'forum-form' + } + } + ] }); diff --git a/common.blocks/comments/comments.css b/common.blocks/comments/comments.css index de2f5d3..5a70779 100644 --- a/common.blocks/comments/comments.css +++ b/common.blocks/comments/comments.css @@ -21,3 +21,8 @@ background-color: #e1e1e1; } + +.comments__add-form { + padding: 30px 0; + background-color: #fff; +} diff --git a/common.blocks/comments/comments.deps.js b/common.blocks/comments/comments.deps.js index 72b60cd..ec1dd6d 100644 --- a/common.blocks/comments/comments.deps.js +++ b/common.blocks/comments/comments.deps.js @@ -1,3 +1,3 @@ ({ - shouldDeps: 'comment' + shouldDeps: ['comment', 'forum-form'] }) diff --git a/common.blocks/forum-form/forum-form.bemhtml.js b/common.blocks/forum-form/forum-form.bemhtml.js new file mode 100644 index 0000000..283b6f6 --- /dev/null +++ b/common.blocks/forum-form/forum-form.bemhtml.js @@ -0,0 +1,4 @@ +block('forum-form')( + tag()('form'), + js()(true) +); diff --git a/common.blocks/forum-form/forum-form.bemtree.js b/common.blocks/forum-form/forum-form.bemtree.js new file mode 100644 index 0000000..427899e --- /dev/null +++ b/common.blocks/forum-form/forum-form.bemtree.js @@ -0,0 +1,61 @@ +block('forum-form').content()(function() { + var i18n = this.require('i18n'); + + return [ + { + elem: 'forum-create', + content: [ + { + elem: 'header', + content: { + block: 'radio-group', + mods: { theme: 'islands', size: 'm', type: 'button' }, + name: 'radio-button', + val: 1, + options: [ + { + val: 1, + icon: { + block: 'icon', + mods: { view: 'markdown', size: '24' } + } + }, + { + val: 2, + disabled: true, + icon: { + block: 'icon', + mods: { view: 'preview', size: '24' } + } + } + ] + } + }, + { + elem: 'body', + content: [ + { + block: 'textarea', + name: 'body', + mods: { theme: 'islands', size: 'l', width: 'available' }, + mix: [{ block: 'forum-form', elem: 'view' }, { block: 'forum-form', elem: 'view_visible' }], + placeholder: i18n(this.block, 'leaveMessage') + }, + { + elem: 'preview', + mix: { block: 'forum-form', elem: 'view' } + } + ] + } + ] + }, + { + elem: 'submit', + content: { + block: 'button', + mods: { theme: 'islands', size: 'm', view: 'action' }, + text: i18n(this.block, 'comment') + } + } + ] +}); diff --git a/common.blocks/forum-form/forum-form.css b/common.blocks/forum-form/forum-form.css new file mode 100644 index 0000000..7f5b9ab --- /dev/null +++ b/common.blocks/forum-form/forum-form.css @@ -0,0 +1,31 @@ +.forum-form__forum-create { + margin-left: 120px; +} + +.forum-form .forum-form__view { + display: none; + width: 100%; + min-height: 150px; + margin-top: 10px; + resize: vertical; +} + +.forum-form .forum-form__view_visible { + display: inline-block; +} + +.forum-form__preview { + box-sizing: border-box; + border: 1px solid #e5e5e5; + background-color: #f5f5f5; + padding: 5px 20px; +} + +.forum-form__body { + margin-top: 10px; +} + +.forum-form__submit { + margin-left: 120px; + padding-top: 20px; +} diff --git a/common.blocks/forum-form/forum-form.deps.js b/common.blocks/forum-form/forum-form.deps.js new file mode 100644 index 0000000..594f54a --- /dev/null +++ b/common.blocks/forum-form/forum-form.deps.js @@ -0,0 +1,28 @@ +({ + shouldDeps: [ + { + block: 'icon', + mods: { view: ['markdown', 'preview'], size: '24' } + }, + { + block: 'radio-group', + mods: { + theme: 'islands', + size: 'm', + type: 'button' + } + }, + { + block: 'textarea', + mods: { + theme: 'islands', + size: 'm', + width: 'available' + } + }, + { + block: 'button', + mods: { theme: 'islands', size: 'm', view: 'action' } + } + ] +}) diff --git a/common.blocks/forum-form/forum-form.i18n/en.js b/common.blocks/forum-form/forum-form.i18n/en.js new file mode 100644 index 0000000..89687e9 --- /dev/null +++ b/common.blocks/forum-form/forum-form.i18n/en.js @@ -0,0 +1,6 @@ +module.exports = { + 'forum-form': { + leaveMessage: 'Leave a comment', + comment: 'Comment' + } +}; diff --git a/common.blocks/forum-form/forum-form.i18n/ru.js b/common.blocks/forum-form/forum-form.i18n/ru.js new file mode 100644 index 0000000..cc38cd0 --- /dev/null +++ b/common.blocks/forum-form/forum-form.i18n/ru.js @@ -0,0 +1,6 @@ +module.exports = { + 'forum-form': { + leaveMessage: 'Ответить', + comment: 'Написать' + } +}; diff --git a/common.blocks/forum-form/forum-form.js b/common.blocks/forum-form/forum-form.js new file mode 100644 index 0000000..8a8d995 --- /dev/null +++ b/common.blocks/forum-form/forum-form.js @@ -0,0 +1,35 @@ +modules.define('forum-form', ['i-bem__dom', 'jquery'], + function(provide, BEMDOM, $) { + +provide(BEMDOM.decl(this.name, { + onSetMod: { + js: { + inited: function() { + var textarea = this.findBlockInside('textarea'), + plainTextButton = this.findBlocksInside('button')[0], + previewButton = this.findBlocksInside('button')[1]; + + textarea.bindTo('keyup', function() { + $('.textarea').val() ? previewButton.delMod('disabled') : previewButton.setMod('disabled'); + }); + + previewButton.bindTo('click', function(){ + if( $('.textarea').val() ){ + $.post('/comment-preview', { data : $('.textarea').val() }) + .then(function(data) { + $('.textarea').removeClass('forum-form__view_visible'); + $('.forum-form__preview').addClass('forum-form__view_visible').html(data); + }); + } + }); + + plainTextButton.bindTo('click', function(){ + $('.textarea').addClass('forum-form__view_visible'); + $('.forum-form__preview').removeClass('forum-form__view_visible'); + }); + } + } + } +})); + +}); diff --git a/common.blocks/icon/_size/icon_size_24.css b/common.blocks/icon/_size/icon_size_24.css new file mode 100644 index 0000000..9735370 --- /dev/null +++ b/common.blocks/icon/_size/icon_size_24.css @@ -0,0 +1,4 @@ +.icon_size_24 { + background-size: 24px; + margin: 0 10px; +} diff --git a/common.blocks/icon/_view/icon_view_markdown.css b/common.blocks/icon/_view/icon_view_markdown.css new file mode 100644 index 0000000..9404074 --- /dev/null +++ b/common.blocks/icon/_view/icon_view_markdown.css @@ -0,0 +1,3 @@ +.icon_view_markdown { + background-image: url('data:image/svg+xml,'); +} diff --git a/common.blocks/icon/_view/icon_view_preview.css b/common.blocks/icon/_view/icon_view_preview.css new file mode 100644 index 0000000..ebee133 --- /dev/null +++ b/common.blocks/icon/_view/icon_view_preview.css @@ -0,0 +1,3 @@ +.icon_view_preview { + background-image: url('data:image/svg+xml,'); +} diff --git a/server/controllers/gh.js b/server/controllers/gh.js index 698eff7..9088598 100644 --- a/server/controllers/gh.js +++ b/server/controllers/gh.js @@ -62,6 +62,12 @@ function getComments(req, res) { }); } +function getCommentPreview(req, res) { + var comment = req.body.data; + + res.send(marked(comment)); +} + function get404 (req, res) { makeIssueRequest(issuesRequestUrl).then(function(issues) { var latestIssues = issues.slice(0, 10); @@ -109,5 +115,6 @@ module.exports = { getIssues, getIssue, getComments, + getCommentPreview, get404 }; diff --git a/server/router.js b/server/router.js index 4e4af70..f476291 100644 --- a/server/router.js +++ b/server/router.js @@ -16,6 +16,7 @@ router .get('/:id(\\d+)', keepRetpath, controllers.gh.getIssue) .get('/api/:id(\\d+)/comments', controllers.gh.getComments) + .post('/comment-preview', controllers.gh.getCommentPreview) // Auth routes .get('/auth/github', passportGitHub.authenticate('github', { scope: ['user:email'] }))