From d78d6f761a9dbb3f840d04ce57ddb9a1f112f363 Mon Sep 17 00:00:00 2001 From: takezoe Date: Mon, 30 Apr 2012 14:18:00 +0000 Subject: [PATCH] =?utf8?q?=E7=B7=A8=E9=9B=86=E7=94=BB=E9=9D=A2=E3=81=A7?= =?utf8?q?=E3=82=B3=E3=83=B3=E3=83=95=E3=83=AA=E3=82=AF=E3=83=88=E3=81=97?= =?utf8?q?=E3=81=9F=E5=A0=B4=E5=90=88=E3=82=82jsdifflib=E3=81=AE=E5=B7=AE?= =?utf8?q?=E5=88=86=E8=A1=A8=E7=A4=BA=E3=81=AB=E5=AF=BE=E5=BF=9C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- plugin/core/Diff.pm | 50 +++++++++++++++++++++++++++++++------------------ plugin/core/EditPage.pm | 29 +++++----------------------- 2 files changed, 37 insertions(+), 42 deletions(-) diff --git a/plugin/core/Diff.pm b/plugin/core/Diff.pm index e892043..734360f 100644 --- a/plugin/core/Diff.pm +++ b/plugin/core/Diff.pm @@ -166,9 +166,34 @@ sub show_diff { my $to = shift; $wiki->set_title("$page¤ÎÊѹ¹ÅÀ"); - my ($diff, $rollback) = $self->get_diff_html($wiki,$page, $from, $to); + my ($source1, $source2) = $self->get_diff_sources($wiki, $page, $from, $to); my $theme_uri = $wiki->config('theme_uri'); + my $buf = _get_diff_html($wiki, $source1, $source2); + + if($wiki->can_modify_page($page) && $wiki->get_CGI->param('diff') eq ''){ + $buf .= qq| +
+ + + + +
+ |; + } + + return $buf; +} + +#============================================================================== +# jsdifflib¤ò»È¤Ã¤Æº¹Ê¬¤Îɽ¼¨¤ò¹Ô¤¦HTML¤ò¼èÆÀ +#============================================================================== +sub _get_diff_html { + my $wiki = shift; + my $source1 = shift; + my $source2 = shift; + + my $theme_uri = $wiki->config('theme_uri'); my $buf = qq| @@ -202,25 +227,15 @@ function diffUsingJS(type) { })); } -$diff + + -
+
|; - if($wiki->can_modify_page($page) && $rollback && $wiki->get_CGI->param('diff') eq ''){ - $buf .= qq| -
- - - - -
- |; - } - return $buf; } @@ -263,9 +278,9 @@ sub get_diff_text { } #============================================================================== -# º¹Ê¬Ê¸»úÎó¤òɽ¼¨ÍÑHTML¤È¤·¤Æ¼èÆÀ +# º¹Ê¬É½¼¨ÍѤΥ½¡¼¥¹¤ò¼èÆÀ #============================================================================== -sub get_diff_html { +sub get_diff_sources { my $self = shift; my $wiki = shift; my $page = shift; @@ -290,8 +305,7 @@ sub get_diff_html { $source1 = $wiki->convert_from_fswiki($source1, $format); $source2 = $wiki->convert_from_fswiki($source2, $format); - return ''. - ''; + return ($source1, $source2); } #============================================================================== diff --git a/plugin/core/EditPage.pm b/plugin/core/EditPage.pm index 4cc6f5e..5a37e28 100644 --- a/plugin/core/EditPage.pm +++ b/plugin/core/EditPage.pm @@ -53,7 +53,7 @@ sub do_action { } } if($wiki->page_exists($pagename) && $cgi->param("lastmodified") != $time){ - $buf .= "

¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

"; + $buf .= "

¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ¿·ÈǤȤκ¹Ê¬¤ò³Îǧ¤·¤ÆºÆÅÙÊÔ½¸¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£

"; my $mode = $wiki->get_edit_format(); my $orig_source = undef; @@ -66,19 +66,8 @@ sub do_action { $your_source =~ s/\r\n/\n/g; $your_source =~ s/\r/\n/g; - my $diff = plugin::core::Diff::_get_diff_html($orig_source, $your_source); - $diff =~ s/\n/
/g; - - $buf .= qq| - -

- ºÇ¿·ÈǤȤκ¹Ê¬¤ò³Îǧ¤·¤ÆºÆÅÙÊÔ½¸¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡§ -

-
$diff
- |; + my $diff = plugin::core::Diff::_get_diff_html($wiki, $orig_source, $your_source); + $buf .= $diff."
"; $content = $orig_source; @@ -133,19 +122,11 @@ sub do_action { $your_source =~ s/\r\n/\n/g; $your_source =~ s/\r/\n/g; - $buf .= qq| - - |; - if($orig_source eq $your_source){ $buf .= '

º¹Ê¬¤Ï¤¢¤ê¤Þ¤»¤ó¡£

'; } else { - my $diff = plugin::core::Diff::_get_diff_html($your_source, $orig_source); - $diff =~ s/\n/
/g; - $buf .= qq|
$diff
|; + my $diff = plugin::core::Diff::_get_diff_html($wiki, $your_source, $orig_source); + $buf .= $diff."
"; } #-------------------------------------------------------------------------- -- 2.11.0