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|
+ <form action="@{[$wiki->create_url()]}" method="POST">
+ <input type="submit" value="¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÌ᤹"/>
+ <input type="hidden" name="action" value="DIFF"/>
+ <input type="hidden" name="page" value="@{[Util::escapeHTML($page)]}"/>
+ <input type="hidden" name="rollback" value="@{[Util::escapeHTML($to)]}"/>
+ </form>
+ |;
+ }
+
+ 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|
<script type="text/javascript" src="${theme_uri}/resources/jsdifflib/difflib.js"></script>
<script type="text/javascript" src="${theme_uri}/resources/jsdifflib/diffview.js"></script>
}));
}
</script>
-$diff
+<input id="newText" type="hidden" value="@{[Util::escapeHTML($source1)]}">
+<input id="baseText" type="hidden" value="@{[Util::escapeHTML($source2)]}">
<input type="checkbox" id="viewtype" onclick="diffUsingJS(this.checked ? 0 : 1)"><label for="viewtype">¥µ¥¤¥É¥Ð¥¤¥µ¥¤¥É¤Çɽ¼¨</label>
-<div id="diffoutputdiv"/>
+<div id="diffoutputdiv"></div>
<script type="text/javascript">
diffUsingJS(1);
</script>
|;
- if($wiki->can_modify_page($page) && $rollback && $wiki->get_CGI->param('diff') eq ''){
- $buf .= qq|
- <form action="@{[$wiki->create_url()]}" method="POST">
- <input type="submit" value="¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÌ᤹"/>
- <input type="hidden" name="action" value="DIFF"/>
- <input type="hidden" name="page" value="@{[Util::escapeHTML($page)]}"/>
- <input type="hidden" name="rollback" value="@{[Util::escapeHTML($to)]}"/>
- </form>
- |;
- }
-
return $buf;
}
}
#==============================================================================
-# º¹Ê¬Ê¸»úÎó¤òɽ¼¨ÍÑHTML¤È¤·¤Æ¼èÆÀ
+# º¹Ê¬É½¼¨ÍѤΥ½¡¼¥¹¤ò¼èÆÀ
#==============================================================================
-sub get_diff_html {
+sub get_diff_sources {
my $self = shift;
my $wiki = shift;
my $page = shift;
$source1 = $wiki->convert_from_fswiki($source1, $format);
$source2 = $wiki->convert_from_fswiki($source2, $format);
- return '<input id="newText" type="hidden" value="'.Util::escapeHTML($source1).'">'.
- '<input id="baseText" type="hidden" value="'.Util::escapeHTML($source2).'">';
+ return ($source1, $source2);
}
#==============================================================================
}
}
if($wiki->page_exists($pagename) && $cgi->param("lastmodified") != $time){
- $buf .= "<p><span class=\"error\">¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£</span></p>";
+ $buf .= "<p><span class=\"error\">¥Ú¡¼¥¸¤Ï´û¤ËÊ̤Υ桼¥¶¤Ë¤è¤Ã¤Æ¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ¿·ÈǤȤκ¹Ê¬¤ò³Îǧ¤·¤ÆºÆÅÙÊÔ½¸¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£</span></p>";
my $mode = $wiki->get_edit_format();
my $orig_source = undef;
$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/<br>/g;
-
- $buf .= qq|
- <ul>
- <li>Äɲ䵤줿Éôʬ¤Ï<ins class="diff">¤³¤Î¤è¤¦¤Ë</ins>ɽ¼¨¤µ¤ì¤Þ¤¹¡£</li>
- <li>ºï½ü¤µ¤ì¤¿Éôʬ¤Ï<del class="diff">¤³¤Î¤è¤¦¤Ë</del>ɽ¼¨¤µ¤ì¤Þ¤¹¡£</li>
- </ul>
- <p>
- ºÇ¿·ÈǤȤκ¹Ê¬¤ò³Îǧ¤·¤ÆºÆÅÙÊÔ½¸¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡§
- </p>
- <div class="diff">$diff</div>
- |;
+ my $diff = plugin::core::Diff::_get_diff_html($wiki, $orig_source, $your_source);
+ $buf .= $diff."<br>";
$content = $orig_source;
$your_source =~ s/\r\n/\n/g;
$your_source =~ s/\r/\n/g;
- $buf .= qq|
- <ul>
- <li>Äɲ䵤줿Éôʬ¤Ï<ins class="diff">¤³¤Î¤è¤¦¤Ë</ins>ɽ¼¨¤µ¤ì¤Þ¤¹¡£</li>
- <li>ºï½ü¤µ¤ì¤¿Éôʬ¤Ï<del class="diff">¤³¤Î¤è¤¦¤Ë</del>ɽ¼¨¤µ¤ì¤Þ¤¹¡£</li>
- </ul>
- |;
-
if($orig_source eq $your_source){
$buf .= '<p class="error">º¹Ê¬¤Ï¤¢¤ê¤Þ¤»¤ó¡£</p>';
} else {
- my $diff = plugin::core::Diff::_get_diff_html($your_source, $orig_source);
- $diff =~ s/\n/<br>/g;
- $buf .= qq|<div class="diff">$diff</div>|;
+ my $diff = plugin::core::Diff::_get_diff_html($wiki, $your_source, $orig_source);
+ $buf .= $diff."<br>";
}
#--------------------------------------------------------------------------