Skip to content

Commit

Permalink
enhancement: user routes
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolaslabbe committed Dec 2, 2016
1 parent 77d5c46 commit 24ac7ab
Show file tree
Hide file tree
Showing 13 changed files with 27 additions and 75 deletions.
4 changes: 2 additions & 2 deletions src/cli/cms/data/regex.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ export function getWorkflowFromOperationsUrl(str){
let regUrl = /\/abe\/operations\/(.*?)\/(.*?)\//
var workflow = 'draft'
var match = str.match(regUrl)
if (match != null && match[1] != null) {
workflow = match[1]
if (match != null && match[2] != null) {
workflow = match[2]
}
var postUrl = str.replace(regUrl, '')
return {
Expand Down
4 changes: 2 additions & 2 deletions src/cli/cms/editor/handlebars/listPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export default function listPage(file, index, text) {


if(file.publish != null) {
res += `<a href="/abe/operations/publish/unpublish${file.abe_meta.link}"
res += `<a href="/abe/operations/unpublish${file.abe_meta.link}"
title="${text.unpublish}"
class="icon" data-unpublish="true" data-text="${text.confirmUnpublish} ${file.abe_meta.link}"
title="unpublish">
Expand All @@ -76,7 +76,7 @@ export default function listPage(file, index, text) {
}


res += `<a href="/abe/operations/${file.abe_meta.status}/delete${file.abe_meta.link}"
res += `<a href="/abe/operations/delete/${file.abe_meta.status}${file.abe_meta.link}"
title="${text.delete}"
class="icon"
data-delete="true"
Expand Down
2 changes: 1 addition & 1 deletion src/cli/cms/editor/handlebars/printInput.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export default function printInput (params, root) {
}

var disabled = ''
if (!User.utils.isUserAllowedOnRoute(userWorkflow, `/abe/operations/${params.status}/edit`)) {
if (!User.utils.isUserAllowedOnRoute(userWorkflow, `/abe/operations/edit/${params.status}`)) {
disabled = 'disabled="disabled"'
}
if (params.tab == 'slug') {
Expand Down
22 changes: 1 addition & 21 deletions src/cli/cms/operations/post.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ export function unpublish(filePath) {
return p
}

export function edit(filePath, json, workflow) {
export function submit(filePath, json, workflow) {
var p
if (workflow === 'publish') {
p = cmsOperations.post.publish(
Expand All @@ -144,26 +144,6 @@ export function edit(filePath, json, workflow) {
return p
}

export function submit(filePath, json, workflow) {
var submitToWorkflow = 'draft'
var found = false
Array.prototype.forEach.call(config.users.workflow, (flow) => {
if (found) {
found = false
submitToWorkflow = flow
}
if (workflow === flow) {
found = true
}
})

return cmsOperations.post.edit(
filePath,
json,
submitToWorkflow
)
}

export function reject(filePath, json, workflow) {
abeExtend.hooks.instance.trigger('beforeReject', filePath)

Expand Down
6 changes: 3 additions & 3 deletions src/cli/users/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ export function getUserWorkflow(status, role) {
type = (type != null) ? type : flow
return {
status: flow,
url: `/abe/operations/${type}/${action}`
url: `/abe/operations/${action}/${type}`
}
}

Expand All @@ -254,7 +254,7 @@ export function getUserWorkflow(status, role) {
Array.prototype.forEach.call(config.users.workflow, (flow) => {

if (found != null) {
flows.push(addFlow(flow, found, 'submit'))
flows.push(addFlow(flow, flow, 'submit'))
found = null
}

Expand All @@ -271,7 +271,7 @@ export function getUserWorkflow(status, role) {
}
})
if (found != null) {
flows.push(addFlow('save', 'publish', 'edit'))
flows.push(addFlow('save', 'publish', 'submit'))
}
}else {
flows = [addFlow('draft', 'draft', 'submit'), addFlow('publish', 'publish', 'submit')]
Expand Down
12 changes: 5 additions & 7 deletions src/server/controllers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,16 @@ router.get('/abe/list-hooks*', getListHooks)

var workflows = config.users.workflow
Array.prototype.forEach.call(workflows, (workflow) => {
router.get(`/abe/operations/${workflow}/delete*`, operations.getDelete)
router.get(`/abe/operations/delete/${workflow}*`, operations.getDelete)

if (workflow != 'draft' && workflow != 'publish') {
router.post(`/abe/operations/${workflow}/reject*`, operations.postReject)
router.post(`/abe/operations/reject/${workflow}*`, operations.postReject)
}else if (workflow == 'publish') {
router.get(`/abe/operations/publish/unpublish*`, operations.getUnpublish)
router.get(`/abe/operations/unpublish*`, operations.getUnpublish)
}

if (workflow != 'publish') {
router.post(`/abe/operations/${workflow}/submit*`, operations.postSubmit)
}
router.post(`/abe/operations/${workflow}/edit*`, operations.postEdit)
router.post(`/abe/operations/submit/${workflow}*`, operations.postSubmit)
router.post(`/abe/operations/edit/${workflow}*`, operations.postEdit)
})

var routes = abeExtend.plugins.instance.getRoutes()
Expand Down
4 changes: 2 additions & 2 deletions src/server/routes/get-list-url.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ var route = function(router, req, res, next) {
var workflowUrl = {}
Array.prototype.forEach.call(config.users.workflow, (flow) => {
workflowUrl[flow] = [
{url: `/abe/operations/${flow}/edit`, action: 'edit', workflow: flow},
{url: `/abe/operations/${flow}/delete`, action: 'delete', workflow: flow}
{url: `/abe/operations/edit/${flow}`, action: 'edit', workflow: flow},
{url: `/abe/operations/delete/${flow}`, action: 'delete', workflow: flow}
]
})
var template = Handlebars.compile(html, {noEscape: true})
Expand Down
8 changes: 4 additions & 4 deletions src/server/routes/get-list-workflow.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ var route = function(router, req, res, next) {
var workflowUrl = {}
Array.prototype.forEach.call(config.users.workflow, (flow) => {
workflowUrl[flow] = [
{url: `/abe/operations/${flow}/edit`, action: 'edit', workflow: flow},
{url: `/abe/operations/${flow}/delete`, action: 'delete', workflow: flow}
{url: `/abe/operations/edit/${flow}`, action: 'edit', workflow: flow},
{url: `/abe/operations/delete/${flow}`, action: 'delete', workflow: flow}
]
if (flow != 'publish') {
workflowUrl[flow].push({url: `/abe/operations/${flow}/reject`, action: 'reject', workflow: flow})
workflowUrl[flow].push({url: `/abe/operations/${flow}/submit`, action: 'submit', workflow: flow})
workflowUrl[flow].push({url: `/abe/operations/reject/${flow}`, action: 'reject', workflow: flow})
workflowUrl[flow].push({url: `/abe/operations/submit/${flow}`, action: 'submit', workflow: flow})
}
})
var template = Handlebars.compile(html, {noEscape: true})
Expand Down
2 changes: 1 addition & 1 deletion src/server/routes/operations/get/unpublish.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ var route = function(req, res, next){
abeExtend.hooks.instance.trigger('beforeRoute', req, res, next)
if(typeof res._header !== 'undefined' && res._header !== null) return

var operation = cmsData.regex.getWorkflowFromOperationsUrl(req.originalUrl)
var operation = req.originalUrl.replace(/\/abe\/operations\/unpublish\//, '')

cmsOperations.post.unpublish(operation.postUrl)

Expand Down
2 changes: 1 addition & 1 deletion src/server/routes/operations/post/edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ var route = function(req, res, next){

var operation = cmsData.regex.getWorkflowFromOperationsUrl(req.originalUrl)

var p = cmsOperations.post.edit(
var p = cmsOperations.post.submit(
operation.postUrl,
req.body.json,
operation.workflow
Expand Down
1 change: 1 addition & 0 deletions src/server/routes/post-list-url-save.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ var route = function(req, res) {
}
})

config.users.routes = json.users.routes
config.save(json)

res.set('Content-Type', 'application/json')
Expand Down
6 changes: 3 additions & 3 deletions src/server/views/list-workflow.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
<div class="workflow-box">
{{#ifCond @key 'draft'}}
{{else}}
{{#isAuthorized (concat '/abe/operations/' @key '/reject') ../workflow}}
{{#isAuthorized (concat '/abe/operations/reject/' @key) ../workflow}}
<span class="glyphicon glyphicon-arrow-left icon-allowed icon-reject"
title="{{@key}} - reject" aria-hidden="true"></span>
{{else}}
Expand All @@ -70,14 +70,14 @@
{{/each}}

{{#ifCond @key 'publish'}}
{{#isAuthorized '/abe/operations/publish/unpublish' ../workflow}}
{{#isAuthorized '/abe/operations/unpublish' ../workflow}}
<div class="workflow-actif">unpublish</div>
{{else}}
<div class="workflow-inactif">unpublish</div>
{{/isAuthorized}}
{{else}}

{{#isAuthorized (concat '/abe/operations/' @key '/submit') ../workflow}}
{{#isAuthorized (concat '/abe/operations/submit/' @key) ../workflow}}
<span class="glyphicon glyphicon-arrow-right icon-allowed icon-submit"
title="{{@key}} - submit" aria-hidden="true"></span>
{{else}}
Expand Down
29 changes: 1 addition & 28 deletions test/cms/operations/post.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,33 +149,6 @@ describe('cmsOperations', function() {
*
*/
it('cmsOperations.post.submit()', function(done) {
// stub
var s = sinon.sandbox.create();
s.stub(cmsOperations.post, 'edit', function (filePath, json, rejectToWorkflow) {
return Promise.resolve({
success: 1,
json: this.fixture.jsonArticle
});
}.bind(this));

// test
var json = JSON.parse(JSON.stringify(this.fixture.jsonArticle))
json.abe_meta.status = 'publish'
cmsOperations.post.submit('article-2.html', json)
.then(function(resSave) {
chai.expect(resSave.json.abe_meta).to.not.be.undefined;

// unstub
cmsOperations.post.edit.restore()
done()
}.bind(this));
});

/**
* cmsOperations.post.edit
*
*/
it('cmsOperations.post.edit()', function(done) {
// stub
var s = sinon.sandbox.create();
s.stub(cmsOperations.post, 'draft', function (filePath, json, rejectToWorkflow) {
Expand All @@ -188,7 +161,7 @@ describe('cmsOperations', function() {
// test
var json = JSON.parse(JSON.stringify(this.fixture.jsonArticle))
json.abe_meta.status = 'publish'
cmsOperations.post.edit('article-2.html', json)
cmsOperations.post.submit('article-2.html', json)
.then(function(resSave) {
chai.expect(resSave.json.abe_meta).to.not.be.undefined;

Expand Down

0 comments on commit 24ac7ab

Please sign in to comment.