summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-10-01 13:37:10 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-10-01 13:37:10 +0200
commitf400621f44c2aac0b1bb4204e95e4c35a8a35f8f (patch)
tree91455d2056c097b14af8e62605e178e83e341369
parenta7bf7ced369a046b487ab1cd8b3819acc5ebdafe (diff)
Fix problem when deleting default category
This is not allowed! See https://github.com/marienfressinaud/FreshRSS/issues/646
-rw-r--r--app/Controllers/categoryController.php4
-rw-r--r--app/Controllers/subscriptionController.php1
-rw-r--r--app/views/subscription/index.phtml12
3 files changed, 14 insertions, 3 deletions
diff --git a/app/Controllers/categoryController.php b/app/Controllers/categoryController.php
index 2c99751a4..c79f37fa4 100644
--- a/app/Controllers/categoryController.php
+++ b/app/Controllers/categoryController.php
@@ -123,6 +123,10 @@ class FreshRSS_category_Controller extends Minz_ActionController {
Minz_Request::bad(_t('category_no_id'), $url_redirect);
}
+ if ($id === $default_category->id()) {
+ Minz_Request::bad(_t('category_not_delete_default'), $url_redirect);
+ }
+
if ($feedDAO->changeCategory($id, $default_category->id()) === false) {
Minz_Request::bad(_t('error_occurred'), $url_redirect);
}
diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php
index 83f803edb..aabae7b8f 100644
--- a/app/Controllers/subscriptionController.php
+++ b/app/Controllers/subscriptionController.php
@@ -19,6 +19,7 @@ class FreshRSS_subscription_Controller extends Minz_ActionController {
$catDAO = new FreshRSS_CategoryDAO();
+ $catDAO->checkDefault();
$this->view->categories = $catDAO->listCategories(false);
$this->view->default_category = $catDAO->getDefault();
}
diff --git a/app/views/subscription/index.phtml b/app/views/subscription/index.phtml
index bce9eacf1..2d55890f7 100644
--- a/app/views/subscription/index.phtml
+++ b/app/views/subscription/index.phtml
@@ -82,9 +82,14 @@
<li class="item"><a href="<?php echo _url('index', 'index', 'get', 'c_' . $cat->id()); ?>"><?php echo _t('filter'); ?></a></li>
- <li class="separator"></li>
+ <?php
+ $no_feed = empty($feeds);
+ $is_default = ($cat->id() === $this->default_category->id());
- <?php if (!empty($feeds)) { ?>
+ if (!$no_feed || !$is_default) {
+ ?>
+ <li class="separator"></li>
+ <?php } if (!$no_feed) { ?>
<li class="item">
<button class="as-link confirm"
data-str-confirm="<?php echo _t('confirm_action_feed_cat'); ?>"
@@ -93,7 +98,7 @@
formaction="<?php echo _url('category', 'empty', 'id', $cat->id()); ?>">
<?php echo _t('ask_empty'); ?></button>
</li>
- <?php } ?>
+ <?php } if (!$is_default) { ?>
<li class="item">
<button class="as-link confirm"
data-str-confirm="<?php echo _t('confirm_action_feed_cat'); ?>"
@@ -102,6 +107,7 @@
formaction="<?php echo _url('category', 'delete', 'id', $cat->id()); ?>">
<?php echo _t('delete'); ?></button>
</li>
+ <?php } ?>
</ul>
</div>
</form>