summaryrefslogtreecommitdiffstats
path: root/modules-available/news
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/news')
-rw-r--r--modules-available/news/config.json3
-rw-r--r--modules-available/news/page.inc.php61
-rw-r--r--modules-available/news/permissions/permissions.json6
-rw-r--r--modules-available/news/style.css4
-rw-r--r--modules-available/news/templates/page-news.html65
5 files changed, 93 insertions, 46 deletions
diff --git a/modules-available/news/config.json b/modules-available/news/config.json
index 706412d0..e076ea5c 100644
--- a/modules-available/news/config.json
+++ b/modules-available/news/config.json
@@ -1,3 +1,4 @@
{
- "category":"main.content"
+ "category":"main.content",
+ "dependencies": [ "js_stupidtable" ]
}
diff --git a/modules-available/news/page.inc.php b/modules-available/news/page.inc.php
index ee377dc4..5ad79b0e 100644
--- a/modules-available/news/page.inc.php
+++ b/modules-available/news/page.inc.php
@@ -31,12 +31,10 @@ class Page_News extends Page
// load user, we will need it later
User::load();
-
- // only admins should be able to edit news
- if (!User::hasPermission('superadmin')) {
- Message::addError('main.no-permission');
- Util::redirect('?do=Main');
- }
+ if (!User::isLoggedIn()) {
+ Message::addError('main.no-permission');
+ Util::redirect('?do=Main');
+ }
// check which action we need to do
$action = Request::any('action', 'show');
@@ -66,26 +64,41 @@ class Page_News extends Page
$pageType = Request::post('news-type');
if ($pageType == 'news') {
- if (!$this->saveNews()) {
- // re-set the fields we got
- Request::post('news-title') ? $this->newsTitle = Request::post('news-title') : $this->newsTitle = false;
- Request::post('news-content') ? $this->newsContent = Request::post('news-content') : $this->newsContent = false;
- } else {
- Message::addSuccess('news-save-success');
- $lastId = Database::lastInsertId();
- Util::redirect("?do=News&newsid=$lastId");
- }
+ if (User::hasPermission("news.save")) {
+ if (!$this->saveNews()) {
+ // re-set the fields we got
+ Request::post('news-title') ? $this->newsTitle = Request::post('news-title') : $this->newsTitle = false;
+ Request::post('news-content') ? $this->newsContent = Request::post('news-content') : $this->newsContent = false;
+ } else {
+ Message::addSuccess('news-save-success');
+ $lastId = Database::lastInsertId();
+ Util::redirect("?do=News&newsid=$lastId");
+ }
+ }
} elseif ($pageType == 'help') {
- if ($this->saveHelp()) {
- Message::addSuccess('help-save-success');
- $lastId = Database::lastInsertId();
- Util::redirect("?do=News&newsid=$lastId");
- }
+ if (User::hasPermission("help.save")) {
+ if ($this->saveHelp()) {
+ Message::addSuccess('help-save-success');
+ $lastId = Database::lastInsertId();
+ Util::redirect("?do=News&newsid=$lastId");
+ }
+ }
}
} elseif ($action === 'delete') {
// delete it
- $this->delNews(Request::post('newsid'));
- Util::redirect('?do=News&editHelp='.Request::any('editHelp'));
+ $pageType = Request::post('news-type');
+
+ if ($pageType == 'news') {
+ if(User::hasPermission("news.delete")) {
+ $this->delNews(Request::post('newsid'));
+ Util::redirect('?do=News&editHelp='.Request::any('editHelp'));
+ }
+ } elseif ($pageType == 'help') {
+ if(User::hasPermission("help.delete")) {
+ $this->delNews(Request::post('newsid'));
+ Util::redirect('?do=News&editHelp='.Request::any('editHelp'));
+ }
+ }
} else {
// unknown action, redirect user
Message::addError('invalid-action', $action);
@@ -134,6 +147,10 @@ class Page_News extends Page
'editHelp' => $this->editHelp,
'list' => $lines,
'listHelp' => $linesHelp,
+ 'allowedNewsSave' => User::hasPermission("news.save"),
+ 'allowedNewsDelete' => User::hasPermission("news.delete"),
+ 'allowedHelpSave' => User::hasPermission("help.save"),
+ 'allowedHelpDelete' => User::hasPermission("help.delete"),
'hasSummernote' => $this->hasSummernote, ));
}
/**
diff --git a/modules-available/news/permissions/permissions.json b/modules-available/news/permissions/permissions.json
new file mode 100644
index 00000000..90d07aef
--- /dev/null
+++ b/modules-available/news/permissions/permissions.json
@@ -0,0 +1,6 @@
+{
+ "news.save": "Save new news.",
+ "news.delete": "Delete old news.",
+ "help.save": "Save new help texts.",
+ "help.delete": "Delete old help texts"
+} \ No newline at end of file
diff --git a/modules-available/news/style.css b/modules-available/news/style.css
index c11567ec..fc4bccab 100644
--- a/modules-available/news/style.css
+++ b/modules-available/news/style.css
@@ -4,3 +4,7 @@
background: none;
border: none;
}
+
+.bottom-margin-50 {
+ margin-bottom: 50px;
+}
diff --git a/modules-available/news/templates/page-news.html b/modules-available/news/templates/page-news.html
index 192635ea..6293b62d 100644
--- a/modules-available/news/templates/page-news.html
+++ b/modules-available/news/templates/page-news.html
@@ -1,5 +1,5 @@
-
<h1>{{lang_vmChooser_title}}</h1>
+
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="{{^editHelp}}active{{/editHelp}}"><a href="#news" role="tab" data-toggle="tab">{{lang_editNews}}</a></li>
<li role="presentation" class="{{#editHelp}}active{{/editHelp}}" ><a href="#help" role="tab" data-toggle="tab">{{lang_editHelp}}</a></li>
@@ -17,9 +17,16 @@
<label for="news-content-id">{{lang_content}}</label>
<textarea name="news-content" id ="news-content-id" class="form-control summernote" rows="5" cols="30" placeholder="">{{latestContent}}</textarea>
</div>
- <p>{{lang_latestUpdate}}: {{latestDate}}</p>
- <button class="btn btn-primary btn-sm sn-btn" name="news-type" value="news" type="submit">{{lang_save}}</button>
- <input type="hidden" name="token" value="{{token}}">
+ <div class="row">
+ <div class="text-left col-md-6">
+ <p>{{lang_latestUpdate}}: {{latestDate}}</p>
+ </div>
+ <div class="text-right col-md-6">
+ <button {{^allowedNewsSave}}disabled{{/allowedNewsSave}} class="btn btn-primary sn-btn" name="news-type" value="news" type="submit"><span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}}</button>
+ <input type="hidden" name="token" value="{{token}}">
+ </div>
+ </div>
+
</form>
<br/>
<div class="panel panel-default">
@@ -29,24 +36,28 @@
<div class="panel-body">
<div class="table-responsive">
<form method="post" action="?do=News&amp;action=delete">
- <table class="table table-stripped table-condensed">
+ <table class="table table-stripped table-condensed stupidtable">
<thead>
<tr>
- <th>{{lang_date}}</th>
- <th>{{lang_title}}</th>
- <th>{{lang_content}}</th>
- <th></th>
+ <th data-sort="int">{{lang_date}}</th>
+ <th data-sort="string">{{lang_title}}</th>
+ <th data-sort="string">{{lang_content}}</th>
+ <th class="text-center">{{lang_show}}</th>
+ <th class="text-center">{{lang_delete}}</th>
</tr>
</thead>
<tbody>
{{#list}}
<tr {{#active}}class="active"{{/active}}>
- <td class="text-left text-nowrap">{{date}}</td>
+ <td class="text-left text-nowrap" data-sort-value={{dateline}}>{{date}}</td>
<td><table class="slx-ellipsis"><tr><td>{{title}}</td></tr></table></td>
<td><table class="slx-ellipsis"><tr><td>{{content}}</td></tr></table></td>
- <td class="text-nowrap">
- <a class="btn btn-primary btn-xs" href="?do=news&amp;newsid={{newsid}}&amp;action=show"><span class="glyphicon glyphicon-share-alt"></span> {{lang_show}}</a>
- <button class="btn btn-danger btn-xs" type="submit" name="newsid" value="{{newsid}}"><span class="glyphicon glyphicon-remove"></span> {{lang_delete}}</button>
+ <td class="text-center">
+ <a class="btn btn-primary btn-xs" href="?do=news&amp;newsid={{newsid}}&amp;action=show"><span class="glyphicon glyphicon-share-alt"></span></a>
+ </td>
+ <td class="text-center">
+ <input type="hidden" name="news-type" value="news">
+ <button {{^allowedNewsDelete}}disabled{{/allowedNewsDelete}} class="btn btn-danger btn-xs" type="submit" name="newsid" value="{{newsid}}"><span class="glyphicon glyphicon-trash"></span></button>
</td>
</tr>
{{/list}}
@@ -61,12 +72,16 @@
<div role="tabpanel" class="tab-pane {{#editHelp}}active{{/editHelp}}" id="help">
<form action="?do=News&amp;action=save" method="post">
<div class="form-group">
+ <br/>
<label for="news-content-id">{{lang_content}}</label>
<textarea name="help-content" id="help-content-id" class="form-control summernote" style="min-height:400px" placeholder="">{{latestHelp}}</textarea>
</div>
- <button class="btn btn-primary btn-sm sn-btn" name="news-type" value="help" type="submit">{{lang_save}}</button>
- <input type="hidden" name="token" value="{{token}}">
+ <div class="text-right">
+ <button {{^allowedHelpSave}}disabled{{/allowedHelpSave}} class="btn btn-primary sn-btn" name="news-type" value="help" type="submit"><span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}}</button>
+ <input type="hidden" name="token" value="{{token}}">
+ </div>
</form>
+ <br/>
<div class="panel panel-default">
<div class="panel-heading">
{{lang_oldHelp}}
@@ -74,22 +89,26 @@
<div class="panel-body">
<div class="table-responsive">
<form method="post" action="?do=News&amp;action=delete&editHelp=true">
- <table class="table table-stripped table-condensed">
+ <table class="table table-stripped table-condensed stupidtable">
<thead>
<tr>
- <th>{{lang_date}}</th>
- <th>{{lang_content}}</th>
- <th></th>
+ <th data-sort="int">{{lang_date}}</th>
+ <th data-sort="string">{{lang_content}}</th>
+ <th class="text-center">{{lang_show}}</th>
+ <th class="text-center">{{lang_delete}}</th>
</tr>
</thead>
<tbody>
{{#listHelp}}
<tr {{#active}}class="active"{{/active}}>
- <td class="text-left text-nowrap">{{date}}</td>
+ <td class="text-left text-nowrap" data-sort-value={{dateline}}>{{date}}</td>
<td><table class="slx-ellipsis"><tr><td>{{content}}</td></tr></table></td>
- <td class="text-nowrap">
- <a class="btn btn-primary btn-xs" href="?do=news&amp;newsid={{newsid}}&amp;action=show"><span class="glyphicon glyphicon-share-alt"></span> {{lang_show}}</a>
- <button class="btn btn-danger btn-xs" type="submit" name="newsid" value="{{newsid}}"><span class="glyphicon glyphicon-remove"></span> {{lang_delete}}</button>
+ <td class="text-center">
+ <a class="btn btn-primary btn-xs" href="?do=news&amp;newsid={{newsid}}&amp;action=show"><span class="glyphicon glyphicon-share-alt"></span></a>
+ </td>
+ <td class="text-center">
+ <input type="hidden" name="news-type" value="help">
+ <button {{^allowedHelpDelete}}disabled{{/allowedHelpDelete}} class="btn btn-danger btn-xs" type="submit" name="newsid" value="{{newsid}}"><span class="glyphicon glyphicon-trash"></span></button>
</td>
</tr>
{{/listHelp}}