[dw-free] Revamp /update
[commit: http://hg.dwscoalition.org/dw-free/rev/143caca9524b]
http://bugs.dwscoalition.org/show_bug.cgi?id=2524
Temporary(?) option to reset panels back to default settingsn.
Patch by
fu.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2524
Temporary(?) option to reset panels back to default settingsn.
Patch by
Files modified:
- cgi-bin/DW/Controller/Entry.pm
- views/entry/options.tt
- views/entry/options.tt.text
--------------------------------------------------------------------------------
diff -r 0c2da8bf43e8 -r 143caca9524b cgi-bin/DW/Controller/Entry.pm
--- a/cgi-bin/DW/Controller/Entry.pm Mon Oct 31 20:04:45 2011 +0800
+++ b/cgi-bin/DW/Controller/Entry.pm Mon Oct 31 20:05:58 2011 +0800
@@ -1071,6 +1071,21 @@
return DW::Template->render_template( 'entry/options.tt', $vars, { no_sitescheme => 1, status => $status } );
}
+sub _load_visible_panels {
+ my $u = $_[0];
+
+ my $user_panels = $u->entryform_panels;
+
+ my @panels;
+ foreach my $panel_group ( @{$user_panels->{order}} ) {
+ foreach my $panel ( @$panel_group ) {
+ push @panels, $panel if $user_panels->{show}->{$panel};
+ }
+ }
+
+ return \@panels;
+}
+
sub _options {
my ( $ok, $rv ) = controller();
return $rv unless $ok;
@@ -1099,31 +1114,37 @@
$vars->{formdata} = $post;
if ( LJ::check_form_auth( $post->{lj_form_auth} ) ) {
- $u->set_prop( entryform_width => $post->{entry_field_width} );
+ if ( $post->{reset_panels} ) {
+ $vars->{formdata}->remove( "reset_panels" );
+ $u->set_prop( "entryform_panels" => undef );
+ $vars->{formdata}->set( $panel_element_name => @{_load_visible_panels( $u )||[]} );
+ } else {
+ $u->set_prop( entryform_width => $post->{entry_field_width} );
- my %panels;
- my %post_panels = map { $_ => 1 } $post->get_all( $panel_element_name );
- foreach my $panel ( @panel_options ) {
- my $name = $panel->{panel_name};
- $panels{$name} = $post_panels{$name} ? 1 : 0;
+ my %panels;
+ my %post_panels = map { $_ => 1 } $post->get_all( $panel_element_name );
+ foreach my $panel ( @panel_options ) {
+ my $name = $panel->{panel_name};
+ $panels{$name} = $post_panels{$name} ? 1 : 0;
+ }
+ $u->entryform_panels_visibility( \%panels );
+
+
+ my @columns;
+ foreach my $column_index ( 0...2 ) {
+ my @col;
+
+ foreach ( $post->get_all( "column_$column_index" ) ) {
+ my ( $order, $panel ) = m/(\d+):(.+)_component/;
+ $col[$order] = $panel;
+
+ }
+
+ # remove any in-betweens in case we managed to skip a number in the order somehow
+ $columns[$column_index] = [ grep { $_ } @col];
+ }
+ $u->entryform_panels_order( \@columns );
}
- $u->entryform_panels_visibility( \%panels );
-
-
- my @columns;
- foreach my $column_index ( 0...2 ) {
- my @col;
-
- foreach ( $post->get_all( "column_$column_index" ) ) {
- my ( $order, $panel ) = m/(\d+):(.+)_component/;
- $col[$order] = $panel;
-
- }
-
- # remove any in-betweens in case we managed to skip a number in the order somehow
- $columns[$column_index] = [ grep { $_ } @col];
- }
- $u->entryform_panels_order( \@columns );
$u->set_prop( js_animations_minimal => $post->{minimal_animations} );
} else {
@@ -1137,15 +1158,7 @@
minimal_animations => $u->prop( "js_animations_minimal" ) ? 1 : 0,
};
- my $user_panels = $u->entryform_panels;
-
- my @panels;
- foreach my $panel_group ( @{$user_panels->{order}} ) {
- foreach my $panel ( @$panel_group ) {
- push @panels, $panel if $user_panels->{show}->{$panel};
- }
- }
- $default->{$panel_element_name} = \@panels;
+ $default->{$panel_element_name} = _load_visible_panels( $u );
$vars->{formdata} = $default;
}
diff -r 0c2da8bf43e8 -r 143caca9524b views/entry/options.tt
--- a/views/entry/options.tt Mon Oct 31 20:04:45 2011 +0800
+++ b/views/entry/options.tt Mon Oct 31 20:05:58 2011 +0800
@@ -84,6 +84,20 @@
</li>
<li class="odd">
<fieldset>
+ <legend><span>[% '.panels.reset.header' | ml %]</span></legend>
+ <ul>
+ <li>[%- reset_label = '.panels.reset.label' | ml;
+ form.checkbox(
+ label = reset_label
+ id = "reset_panels"
+ name = "reset_panels"
+ value = "1"
+ )
+ -%]</li>
+ </ul>
+ </li>
+ <li class="even">
+ <fieldset>
<legend><span>[% '.animations.header' | ml %]</span></legend>
<ul>
<li>
diff -r 0c2da8bf43e8 -r 143caca9524b views/entry/options.tt.text
--- a/views/entry/options.tt.text Mon Oct 31 20:04:45 2011 +0800
+++ b/views/entry/options.tt.text Mon Oct 31 20:05:58 2011 +0800
@@ -8,6 +8,10 @@
.panels.header=Show panels
+.panels.reset.header=Reset panels
+
+.panels.reset.label=Reset panels to original settings
+
.submit=Save
.title=Entry Form Options
--------------------------------------------------------------------------------
