diff --git a/system/Controllers/ContentApiController.php b/system/Controllers/ContentApiController.php index 490bd8b..8babb9b 100644 --- a/system/Controllers/ContentApiController.php +++ b/system/Controllers/ContentApiController.php @@ -151,6 +151,37 @@ class ContentApiController extends ContentController } } + public function discardArticleChanges(Request $request, Response $response, $args) + { + # get params from call + $this->params = $request->getParams(); + $this->uri = $request->getUri(); + + # set structure + if(!$this->setStructure($draft = true)){ return $response->withJson($this->errors, 404); } + + # set item + if(!$this->setItem()){ return $response->withJson($this->errors, 404); } + + # set redirect url to edit page + $url = $this->uri->getBaseUrl() . '/tm/content/' . $this->settings['editor'] . $this->item->urlRel; + + # remove the unpublished changes + $delete = $this->deleteContentFiles(['txt']); + + if($delete) + { + # update the backend structure + $this->setStructure($draft = true, $cache = false); + + return $response->withJson(['data' => $this->structure, 'errors' => false, 'url' => $url], 200); + } + else + { + return $response->withJson(['data' => $this->structure, 'errors' => $this->errors], 404); + } + } + public function deleteArticle(Request $request, Response $response, $args) { # get params from call diff --git a/system/Routes/Api.php b/system/Routes/Api.php index 712f211..b42fc04 100644 --- a/system/Routes/Api.php +++ b/system/Routes/Api.php @@ -11,6 +11,7 @@ $app->post('/api/v1/article/markdown', ContentApiController::class . ':getArticl $app->post('/api/v1/article/html', ContentApiController::class . ':getArticleHtml')->setName('api.article.html')->add(new RestrictApiAccess($container['router'])); $app->post('/api/v1/article/publish', ContentApiController::class . ':publishArticle')->setName('api.article.publish')->add(new RestrictApiAccess($container['router'])); $app->delete('/api/v1/article/unpublish', ContentApiController::class . ':unpublishArticle')->setName('api.article.unpublish')->add(new RestrictApiAccess($container['router'])); +$app->delete('/api/v1/article/discard', ContentApiController::class . ':discardArticleChanges')->setName('api.article.discard')->add(new RestrictApiAccess($container['router'])); $app->post('/api/v1/article', ContentApiController::class . ':createArticle')->setName('api.article.create')->add(new RestrictApiAccess($container['router'])); $app->put('/api/v1/article', ContentApiController::class . ':updateArticle')->setName('api.article.update')->add(new RestrictApiAccess($container['router'])); $app->delete('/api/v1/article', ContentApiController::class . ':deleteArticle')->setName('api.article.delete')->add(new RestrictApiAccess($container['router'])); diff --git a/system/author/editor/publish-controller.twig b/system/author/editor/publish-controller.twig index 5b86543..d70c87e 100644 --- a/system/author/editor/publish-controller.twig +++ b/system/author/editor/publish-controller.twig @@ -1,6 +1,7 @@