Skip to content
This repository was archived by the owner on Dec 11, 2018. It is now read-only.

Commit 25f04d5

Browse files
committed
More proposal add/edit support
e new file: data/templates/proposals/edit.html
1 parent 850bfa3 commit 25f04d5

File tree

11 files changed

+235
-142
lines changed

11 files changed

+235
-142
lines changed

data/i18n/en.json

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
]
66
},
77
"header-title": "IEG grant review",
8+
"logo-alt": "IEG grant review",
89

910
"nav-credits": "Credits",
1011
"nav-privacy": "Privacy",
1112
"nav-language": "Language:",
1213

1314
"nav-proposals": "Proposals",
1415
"nav-proposals-add": "Add proposal",
16+
"nav-proposals-edit": "edit",
1517
"nav-proposals-queue": "Review queue",
1618
"nav-proposals-search": "Search",
1719
"nav-reports": "Reports",
@@ -87,13 +89,21 @@
8789
"csrf-heading": "Invalid request",
8890
"csrf-message": "The request that was submitted was missing the request forgery protection token. Please return to the form, reload the page and try again.",
8991

90-
"proposals-add-error": "Your submission has errors. Please correct the following errors and submit the form again.",
91-
"proposals-add-title": "Title",
92-
"proposals-add-title-error": "Title is required.",
93-
"proposals-add-url": "URL",
94-
"proposals-add-url-error": "Valid URL required.",
95-
"proposals-add-description": "Description",
96-
"proposals-add-submit": "Add proposal",
92+
"proposals-edit-error": "Your submission has errors. Please correct the following errors and submit the form again.",
93+
"proposals-edit-title": "Title",
94+
"proposals-edit-title-error": "Title is required.",
95+
"proposals-edit-url": "URL",
96+
"proposals-edit-url-error": "Valid URL required.",
97+
"proposals-edit-theme": "Theme",
98+
"proposals-edit-theme-empty": "Please select",
99+
"proposals-edit-theme-error": "Select a theme from the list.",
100+
"proposals-edit-amount": "Amount",
101+
"proposals-edit-amount-error": "Amount must be numeric.",
102+
"proposals-edit-description": "Description",
103+
"proposals-edit-notes": "Notes",
104+
"proposals-edit-submit": "Save proposal",
105+
"proposals-edit-save": "Changes saved.",
106+
"proposals-edit-save-error": "Failed to save changes.",
97107

98108
"queue-th-proposal": "Proposal",
99109
"queue-th-reviews": "Reviews"

data/i18n/qqq.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
"login-error": "Message shown to user when authentication form is submitted with incomplete data",
4444
"login-failed": "Message shown to user when authentication fails",
4545
"login-success": "Message shown to user when authentication succeeds.\n{{Identical|Login successful}}",
46+
"logo-alt": "Alternate text for the application logo",
4647
"logout": "Navigation menu item, links to logout page.\n{{Identical|Log out}}",
4748
"nav-account": "Navigation menu label for list of pages specific to the authenticated user's account.\n{{Identical|My account}}",
4849
"nav-admin": "Navigation menu label for list of administrative pages.\n{{Identical|Admin}}",

data/templates/base.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<span class="icon-bar"></span>
2626
<span class="icon-bar"></span>
2727
</button>
28-
<a class="navbar-brand" href="{{ urlFor( 'home') }}" title="{{ 'header-title'|message }}"><img src="{{ siteUrl( 'images/glasses.png' ) }}" width="46" height="36" alt="{{ 'wikimania'|message }}"></a>
28+
<a class="navbar-brand" href="{{ urlFor( 'home') }}" title="{{ 'header-title'|message }}"><img src="{{ siteUrl( 'images/glasses.png' ) }}" width="46" height="36" alt="{{ 'logo-alt'|message }}"></a>
2929
</div>
3030
<div class="navbar-collapse collapse">
3131
<ul class="nav navbar-nav">
@@ -35,7 +35,7 @@
3535
<ul class="dropdown-menu">
3636
<li><a href="{{ urlFor( 'proposals_queue' ) }}">{{ 'nav-proposals-queue'|message }}</a></li>
3737
<li><a href="{{ urlFor( 'proposals_search' ) }}">{{ 'nav-proposals-search'|message }}</a></li>
38-
<li><a href="{{ urlFor( 'proposals_add' ) }}">{{ 'nav-proposals-add'|message }}</a></li>
38+
<li><a href="{{ urlFor( 'proposals_edit', { 'id': 'new' } ) }}">{{ 'nav-proposals-add'|message }}</a></li>
3939
</ul>
4040
</li>
4141

data/templates/proposals/add.html

Lines changed: 0 additions & 30 deletions
This file was deleted.

data/templates/proposals/edit.html

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{% extends "proposals/base.html" %}
2+
{% import "inc/forms.html" as forms %}
3+
{% set ctx = _context %}
4+
5+
{% block content %}
6+
{% spaceless %}
7+
<ol class="breadcrumb">
8+
<li>{{ 'nav-proposals'|message }}</li>
9+
<li>{{ id }}</li>
10+
<li><a href="{{ urlFor( 'proposals_edit', { 'id': id } ) }}">{{ 'nav-proposals-edit'|message }}</a></li>
11+
</ol>
12+
13+
{% if form.hasErrors %}
14+
<div class="alert alert-danger alert-dismissable">
15+
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
16+
<p class="lead">{{ 'proposals-edit-error'|message }}</p>
17+
</div>
18+
{% endif %}
19+
20+
<form class="form-horizontal" method="post" action="{{ urlFor( 'proposals_edit_post', { 'id': id } ) }}">
21+
<input type="hidden" name="{{ csrf_param }}" value="{{ csrf_token }}" />
22+
<input type="hidden" name="id" value="{{ id }}" />
23+
{{ forms.text( ctx, 'proposals-edit-title', 'title', { 'required':true } ) }}
24+
{{ forms.url( ctx, 'proposals-edit-url', 'url', { 'required':true } ) }}
25+
{{ forms.select( ctx, 'proposals-edit-theme', 'theme', { 'online':'online', 'offline':'offline', 'tool':'tool', 'research':'research' }, { 'required':true } ) }}
26+
{{ forms.number( ctx, 'proposals-edit-amount', 'amount' ) }}
27+
{{ forms.textArea( ctx, 'proposals-edit-description', 'description' ) }}
28+
{{ forms.textArea( ctx, 'proposals-edit-notes', 'notes' ) }}
29+
<input type="submit" class="btn btn-primary" id="submit" name="submit" value="{{ 'proposals-edit-submit'|message }}" />
30+
</form>
31+
{% endspaceless %}
32+
{% endblock content %}
33+

src/App.php

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,10 @@ public function __construct( $deployDir ) {
116116
* Main entry point for all requests.
117117
*/
118118
public function run () {
119-
120119
session_name( '_s' );
121-
session_cache_limiter(false);
120+
session_cache_limiter( false );
122121
session_start();
123-
122+
register_shutdown_function( 'session_write_close' );
124123
$this->slim->run();
125124
}
126125

@@ -376,28 +375,28 @@ function () use ( $slim, $middleware ) {
376375
$page();
377376
} )->name( 'proposals_search' );
378377

379-
$slim->get( 'add', function () use ( $slim ) {
380-
$page = new Controllers\Proposals\Add( $slim );
378+
$slim->get( ':id/edit', function ( $id ) use ( $slim ) {
379+
$page = new Controllers\Proposals\Edit( $slim );
381380
$page->setDao( $slim->proposalsDao );
382-
$page();
383-
} )->name( 'proposals_add' );
381+
$page( $id );
382+
} )->name( 'proposals_edit' );
384383

385-
$slim->post( 'add.post', function () use ( $slim ) {
386-
$page = new Controllers\Proposals\Add( $slim );
384+
$slim->post( ':id/edit/post', function ( $id ) use ( $slim ) {
385+
$page = new Controllers\Proposals\Edit( $slim );
387386
$page->setDao( $slim->proposalsDao );
388-
$page();
389-
} )->name( 'proposals_add_post' );
387+
$page( $id );
388+
} )->name( 'proposals_edit_post' );
390389

391-
$slim->get( ':id', function () use ( $slim ) {
392-
$page = new Controllers\Proposals\Proposal( $slim );
390+
$slim->get( ':id', function ( $id ) use ( $slim ) {
391+
$page = new Controllers\Proposals\Review( $slim );
393392
$page->setDao( $slim->proposalsDao );
394-
$page();
393+
$page( $id );
395394
} )->name( 'proposals_view' );
396395

397-
$slim->post( ':id', function () use ( $slim ) {
398-
$page = new Controllers\Proposals\Proposal( $slim );
396+
$slim->post( ':id', function ( $id ) use ( $slim ) {
397+
$page = new Controllers\Proposals\Review( $slim );
399398
$page->setDao( $slim->proposalsDao );
400-
$page();
399+
$page( $id );
401400
} )->name( 'proposals_view_post' );
402401

403402
} );

src/AuthManager.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ public function logout() {
173173

174174
// destroy local session storage
175175
session_destroy();
176+
// generate new session id
177+
session_regenerate_id(true);
176178
}
177179

178180
} //end AuthManager

src/Controllers/Proposals/Add.php

Lines changed: 0 additions & 81 deletions
This file was deleted.

0 commit comments

Comments
 (0)