Add route and view for edit page

This commit is contained in:
perryharlock
2013-11-27 11:13:19 +00:00
parent 5c10261c56
commit 74dd5b18c9
4 changed files with 108 additions and 0 deletions

1
app.js
View File

@@ -78,6 +78,7 @@ function initApp (config, callback) {
require('./route/new')(app);
require('./route/task/delete')(app);
require('./route/task/run')(app);
require('./route/task/edit')(app);
}
// Error handling

32
route/task/edit.js Normal file
View File

@@ -0,0 +1,32 @@
'use strict';
var _ = require('underscore');
var presentTask = require('../../view/presenter/task');
module.exports = route;
// Route definition
function route (app) {
app.express.get('/:id/edit', function (req, res, next) {
app.webservice.task(req.params.id).get({}, function (err, task) {
if (err) {
return next();
}
res.render('task/edit', {
task: presentTask(task),
isTaskPage: true
});
});
});
app.express.post('/:id/edit', function (req, res, next) {
app.webservice.task(req.params.id).remove(function (err) {
if (err) {
return next();
}
res.redirect('index');
});
});
}

View File

@@ -14,6 +14,7 @@ function presentTask (task) {
task.hrefDelete = '/' + task.id + '/delete';
task.hrefRun = '/' + task.id + '/run';
task.hrefJson = '/' + task.id + '.json';
task.hrefEdit = '/' + task.id + '/edit';
// Enhance the ignored rules
task.ignore = task.ignore.map(function (name) {

74
view/task/edit.html Normal file
View File

@@ -0,0 +1,74 @@
{{#content "title"}}
Add a new URL
{{/content}}
<form role="form" class="col-md-12" action="/new" method="post" data-test="new-url-form">
<div class="legend">
<h1 class="h2 crunch-top">Add a new URL</h1>
</div>
{{#error}}
<div class="col-md-12 clearfix" data-test="error">
<div class="alert alert-danger">
<strong>Oh my gosh!</strong>
<p>{{.}}</p>
</div>
</div>
{{/error}}
<div class="form-group clearfix">
<div class="row">
<div class="col-md-8 col-sm-8 col-xs-10">
<label class="control-label" for="new-task-name">Name</label>
<input class="form-control" id="new-task-name" type="text" placeholder="E.g. My Home Page" name="name" value="{{task.name}}"/>
</div>
</div>
</div>
<div class="form-group clearfix">
<div class="row">
<div class="col-md-8 col-sm-8 col-xs-10">
<label class="control-label" for="new-task-url">URL</label>
<input class="form-control" id="new-task-url" type="url" placeholder="E.g. http://mysite.com/" name="url" value="{{task.url}}"/>
</div>
</div>
</div>
<div class="form-group clearfix">
<div class="row">
<div class="col-md-4 col-sm-4 col-xs-6">
<label class="control-label" for="new-task-standard">Standard</label>
<select data-role="new-task-select" class="form-control" id="new-task-standard" name="standard">
{{#standards}}
<option {{#selected}}selected{{/selected}}>{{title}}</option>
{{/standards}}
</select>
</div>
</div>
</div>
<p class="control-label"><b>Ignore these rules</b> <a target="_blank" href="https://github.com/nature/pa11y/wiki/HTML-CodeSniffer-Rules">(full list of rules here)</a></p>
<div class="standards-lists">
{{#standards}}
<div data-role="standards-list" data-attr="{{title}}" class="form-group">
<p class="control-label rules-list-title ruled"><b>{{title}} Rules</b></p>
<ul class="list-unstyled">
{{#rules}}
<li>
<input class="pull-left" id="{{name}}" type="checkbox" name="ignore[]" value="{{name}}" {{#ignored}}checked{{/ignored}}/>
<label for="{{name}}" title="{{description}}" data-role="rules-tooltip" class="checkbox">
{{name}}
</label>
</li>
{{/rules}}
</ul>
</div>
{{/standards}}
</div>
<button type="submit" class="btn btn-success">Save changes <span class="glyphicon glyphicon-plus"></span></button>
</form>