summaryrefslogtreecommitdiff
path: root/lib/Bookmarks/C/Main.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bookmarks/C/Main.pm')
-rw-r--r--lib/Bookmarks/C/Main.pm82
1 files changed, 70 insertions, 12 deletions
diff --git a/lib/Bookmarks/C/Main.pm b/lib/Bookmarks/C/Main.pm
index 2cab5ee..b6170c0 100644
--- a/lib/Bookmarks/C/Main.pm
+++ b/lib/Bookmarks/C/Main.pm
@@ -3,7 +3,6 @@ package Bookmarks::C::Main;
use strict;
use base 'Catalyst::Base';
use Bookmarks::Utils;
-use YAML;
=head1 NAME
@@ -25,6 +24,12 @@ Catalyst component.
=cut
+sub auto : Private {
+ my ( $self, $c ) = @_;
+ $c->stash->{href}=Bookmarks::C::Main::LinkHelper->new($c);
+ return 1;
+}
+
sub tags : Global {
my ( $self, $c ) = @_;
$c->stash->{template}='tags';
@@ -54,9 +59,10 @@ sub icon : Global {
my ( $self, $c ) = @_;
my $link=Bookmarks::M::DB::Links->retrieve($c->req->param('link'));
- if ($link->get_icon()) {
+ my $icon=$link->get_icon();
+ if ($icon) {
$c->res->content_type('image/x-icon');
- $c->res->body($link->get_icon());
+ $c->res->body($icon);
}
else {
$c->res->status(404);
@@ -64,12 +70,6 @@ sub icon : Global {
}
}
-sub favicon : Path('favicon.ico') {
- my ( $self, $c ) = @_;
- $c->res->status(404);
- $c->res->body('nonce');
-}
-
sub jump : Global {
my ( $self, $c ) = @_;
@@ -91,9 +91,6 @@ sub add : Global {
}
my @tags=split /[ +]/,($c->req->param('tag')||'');
- print {*STDERR} Dump(\%pre_link);
- print {*STDERR} Dump($c->req);
-
# GET: prepare the form from the URL params
if ($c->req->method eq 'GET') {
$c->stash->{link}=\%pre_link;
@@ -151,4 +148,65 @@ it under the same terms as perl itself.
=cut
+package Bookmarks::C::Main::LinkHelper;
+use YAML;
+use URI;
+
+sub new {
+ my ($class,$c)=@_;
+ return bless {c=>$c,base=>$c->req->base()},$class;
+}
+
+sub tag_info {
+ my ($self, $tag)=@_;
+ return URI->new(
+ $self->{base} . 'tag-info/' . $tag->name()
+ )->as_string();
+}
+
+sub remove_tag {
+ my ($self, $tagset, $tag)=@_;
+ my @tags=grep {$_ ne $tag} $tagset->tags();
+ return URI->new(
+ $self->{base} . 'tag/'
+ . (join '+',map {$_->name()} @tags)
+ )->as_string();
+}
+
+sub add_tag {
+ my ($self, $tagset, $tag)=@_;
+ return URI->new(
+ $self->{base} . 'tag/'
+ . (join '+',map {$_->name()} ($tagset->tags(),$tag))
+ )->as_string();
+}
+
+sub to_tag {
+ my ($self, $tag)=@_;
+ return URI->new(
+ $self->{base} . 'tag/' . $tag->name()
+ )->as_string();
+}
+
+sub link_icon {
+ my ($self, $link)=@_;
+ my $uri=URI->new($self->{base} . 'icon');
+ $uri->query_form(link=>$link->pk());
+ return $uri->as_string();
+}
+
+sub link {
+ my ($self, $link)=@_;
+ my $uri=URI->new($self->{base} . 'jump');
+ $uri->query_form(link=>$link->pk());
+ return $uri->as_string();
+}
+
+sub add_action {
+ my ($self)=@_;
+ return URI->new(
+ $self->{base} . 'add'
+ )->as_string();
+}
+
1;