Parent Directory | Revision Log
r3584@llin (orig r703): dpavlin | 2008-12-03 22:24:09 +0100 rename r3585@llin (orig r704): dpavlin | 2008-12-03 22:26:29 +0100 document bin/log.sh r3586@llin (orig r705): dpavlin | 2008-12-03 22:36:12 +0100 fix paths for created class r3587@llin (orig r706): dpavlin | 2008-12-03 22:52:49 +0100 http://upload.wikimedia.org/wikipedia/commons/0/05/WikEd_fix_html.png r3588@llin (orig r707): dpavlin | 2008-12-03 23:20:46 +0100 last point for 0.24 and forward r3589@llin (orig r708): dpavlin | 2008-12-03 23:23:26 +0100 dump html content in textarea r3590@llin (orig r709): dpavlin | 2008-12-03 23:24:19 +0100 Cleanup all attributes from html r3591@llin (orig r710): dpavlin | 2008-12-04 14:26:57 +0100 added cookie killer described on my blog at https://blog.rot13.org/2006/11/clean_all_http_cookies_and_kill_session.html r3592@llin (orig r711): dpavlin | 2008-12-04 17:02:09 +0100 add created classes to svk by default r3593@llin (orig r712): dpavlin | 2008-12-04 17:02:57 +0100 convert form to post, so we don't have double action on next submit (one from get, one from post) r3594@llin (orig r713): dpavlin | 2008-12-04 17:17:48 +0100 add SlideShare favourites url r3595@llin (orig r714): dpavlin | 2008-12-04 17:28:31 +0100 fix dependency display r3596@llin (orig r715): dpavlin | 2008-12-04 18:33:39 +0100 hide _private attributes r3597@llin (orig r716): dpavlin | 2008-12-04 18:35:12 +0100 separate results_as_data from as_markup to make data reusable r3598@llin (orig r717): dpavlin | 2008-12-04 18:55:27 +0100 Split run to own line r3599@llin (orig r718): dpavlin | 2008-12-04 19:33:25 +0100 use_ok correct test r3600@llin (orig r719): dpavlin | 2008-12-04 19:39:37 +0100 wrap File::Slurp into Frey::File r3601@llin (orig r720): dpavlin | 2008-12-04 21:20:45 +0100 move checkbox to Frey::Web, fix multiple file commit r3602@llin (orig r721): dpavlin | 2008-12-04 23:31:06 +0100 fix Frey::File r3603@llin (orig r722): dpavlin | 2008-12-04 23:37:26 +0100 concepts r3604@llin (orig r723): dpavlin | 2008-12-05 00:09:52 +0100 mode pod r3605@llin (orig r724): dpavlin | 2008-12-05 18:25:05 +0100 display pod table of content r3606@llin (orig r725): dpavlin | 2008-12-05 18:33:01 +0100 fix warnings and take title for icon if it's not specified r3607@llin (orig r726): dpavlin | 2008-12-05 18:34:10 +0100 Fix output wrapping r3608@llin (orig r727): dpavlin | 2008-12-05 18:34:43 +0100 sort methods and attributes r3609@llin (orig r728): dpavlin | 2008-12-06 01:19:32 +0100 support check of single file r3610@llin (orig r729): dpavlin | 2008-12-06 01:20:20 +0100 more documentation, unfinished r3611@llin (orig r730): dpavlin | 2008-12-06 01:21:36 +0100 version bump [0.24] r3612@llin (orig r731): dpavlin | 2008-12-06 01:25:19 +0100 implement CSS2 form layout and support for undef (action support is still broken) r3613@llin (orig r732): dpavlin | 2008-12-06 01:26:12 +0100 simple two step action as still non-working prototype r3614@llin (orig r733): dpavlin | 2008-12-06 01:43:29 +0100 change yaml dump format, cleanup r3615@llin (orig r734): dpavlin | 2008-12-06 01:57:49 +0100 turn short lists to radio boxes r3616@llin (orig r735): dpavlin | 2008-12-06 13:22:36 +0100 css for documentation, always re-create introspect yaml r3617@llin (orig r736): dpavlin | 2008-12-06 15:34:41 +0100 put documentation in own line r3618@llin (orig r737): dpavlin | 2008-12-06 15:35:15 +0100 make commit form transparent so we can see diff behind it
1 | package Frey::Class::Rename; |
2 | use Moose; |
3 | |
4 | extends 'Frey'; |
5 | with 'Frey::Web'; |
6 | #with 'Frey::Storage'; |
7 | |
8 | use Moose::Util::TypeConstraints; |
9 | |
10 | use lib 'lib'; # :Write in vim needs it |
11 | use Frey::Shell::Grep; |
12 | |
13 | sub action_order { qw/find change/ } |
14 | enum 'action_order' => action_order; |
15 | |
16 | has action => ( |
17 | is => 'rw', |
18 | isa => 'action_order', |
19 | required => 1, |
20 | default => 'find', # FIXME first step, should be optional |
21 | ); |
22 | |
23 | =head2 as_markup |
24 | |
25 | Simpliest possible dispatch example |
26 | |
27 | =cut |
28 | |
29 | sub as_markup { |
30 | my ($self) = @_; |
31 | my $to = $self->action; |
32 | $self->$to; |
33 | } |
34 | |
35 | # step 1 find |
36 | |
37 | has from => ( |
38 | is => 'rw', |
39 | isa => 'Str', |
40 | required => 1, |
41 | default => 'Frey::HTML', |
42 | ); |
43 | |
44 | has to => ( |
45 | is => 'rw', |
46 | isa => 'Str', |
47 | required => 1, |
48 | default => 'Frey::HTML::Tree', |
49 | ); |
50 | |
51 | |
52 | sub find { |
53 | my ($self) = @_; |
54 | |
55 | $self->add_css(qq| |
56 | span.modify { |
57 | display: inline; |
58 | backgrund: #ffc; |
59 | } |
60 | |); |
61 | |
62 | my $len = length( $self->to ); |
63 | my $to = $self->to; |
64 | |
65 | my $change_number = 1; |
66 | |
67 | sub strip { |
68 | my $t = shift; |
69 | $t =~ s{^\s+}{}gs; |
70 | $t =~ s{>\s+<}{><}gs; |
71 | $t =~ s{\s+$}{}gs; |
72 | return $t; |
73 | } |
74 | |
75 | my $grep = Frey::Shell::Grep->new( |
76 | pattern => $self->from, |
77 | )->as_markup( |
78 | dd => sub { |
79 | my ( $patt, $path, $line, $text ) = @_; |
80 | $text =~ s{(\Q$patt\E)}{ |
81 | my $nr = $change_number++; |
82 | strip(qq| |
83 | <span class="modify"> |
84 | <input type="hidden" name="change_path" value="$path"> |
85 | <input type="hidden" name="change_line" value="$line"> |
86 | <input type="text" name="change_modification" value="$to" size=$len> |
87 | <input type="checkbox" name="change_selected" value=$nr checked> |
88 | </span> |
89 | |) |
90 | }egs; |
91 | qq|<dd><a target="editor" href="/editor+$path+$line">$line</a> <code>$text</code>|; |
92 | }, |
93 | ); |
94 | |
95 | $self->title( $self->from . ' => ' . $self->to ); |
96 | |
97 | my $preserve; |
98 | |
99 | $self->step('modify'); |
100 | $preserve .= qq|<input type="hidden" name="$_" value="| . $self->$_ . qq|">| foreach ( qw/step action_on from to/ ); |
101 | |
102 | return qq| |
103 | <form class="modify" method="post"> |
104 | $preserve |
105 | $grep |
106 | <input type="submit" name="action" |
107 | </form> |
108 | |; |
109 | } |
110 | |
111 | # step 2 modify |
112 | |
113 | has change_selected => ( |
114 | is => 'rw', |
115 | isa => 'ArrayRef[Str]', |
116 | default => sub {}, |
117 | ); |
118 | |
119 | has change_path => ( |
120 | is => 'rw', |
121 | isa => 'ArrayRef[Str]', |
122 | default => sub {}, |
123 | ); |
124 | |
125 | has change_line => ( |
126 | is => 'rw', |
127 | isa => 'ArrayRef[Str]', |
128 | default => sub {}, |
129 | ); |
130 | |
131 | has change_modification => ( |
132 | is => 'rw', |
133 | isa => 'ArrayRef[Str]', |
134 | default => sub {}, |
135 | ); |
136 | |
137 | sub modify { |
138 | my ($self) = @_; |
139 | |
140 | my $dump; |
141 | $dump->{$_} = $self->$_ foreach ( qw/change_selected change_path change_line change_modification/ ); |
142 | |
143 | return $self->html_dump( $dump ); |
144 | } |
145 | |
146 | 1; |
ViewVC Help | |
Powered by ViewVC 1.1.26 |