App-Office-CMS

 view release on metacpan or  search on metacpan

lib/App/Office/CMS/Controller/Page.pm  view on Meta::CPAN

package App::Office::CMS::Controller::Page;

use parent 'App::Office::CMS::Controller';
use strict;
use warnings;

use JSON::XS;

use Try::Tiny;

# We don't use Moo because we isa CGI::Application.

our $VERSION = '0.93';

# -----------------------------------------------

sub add_child
{
	my($self) = @_;

	$self -> log(debug => 'add_child()');

	# These keys are used in the return statement,
	# but should only be displayed in case of error.

	my($page) =
	{
		curent_page => 'N/A',
		homepage    => 'No',
		page_name   => 'N/A',
	};
	my($target_div) = 'update_page_message_div';

	my($result);

	try
	{
		my($asset);
		my($message);

		($message, $page, $asset) = $self -> process_page_form('add');

		if ($message)
		{
			$result = $self -> build_error_result($page, $message, $target_div);
		}
		else
		{
			# Success.

			$message = $self -> param('db') -> page -> add_child($page, $asset);
			$result  = $self -> build_success_result('add_child', $page, $message, $target_div);
		}
	}
	catch
	{
		$result = $self -> build_error_result($page, $_, $target_div);
	};

	# update_page_message_div is on screen (under the Edit Pages tab),
	# because we're displaying a page using page.tx.

	return JSON::XS -> new -> utf8 -> encode({results => $result});

} # End of add_child.

# -----------------------------------------------

sub add_sibling_above



( run in 0.508 second using v1.01-cache-2.11-cpan-39bf76dae61 )