Unverified Commit 2d2a72b0 authored by IKEDA Soji's avatar IKEDA Soji Committed by GitHub
Browse files

Merge branch 'sympa-6.2' into issue-1235

parents 24d3949c ac5a081d
# Change Log
## [6.2.66](https://github.com/sympa-community/sympa/tree/6.2.66) (2021-09-29)
No changes.
## [6.2.65b.2](https://github.com/sympa-community/sympa/tree/6.2.65b.2) (2021-08-30)
[Full Changelog](https://github.com/sympa-community/sympa/compare/6.2.65b.1...6.2.65b.2)
**Implemented enhancements:**
- Add summary of outstanding moderation requests in "My lists" page [\#1194](https://github.com/sympa-community/sympa/issues/1194).
- `edit_list.conf` should not be loaded multiple times to waste memory [\#1172](https://github.com/sympa-community/sympa/pull/1172).
**Fixed bugs:**
- Robot listmasters could edit site templates [\#1224](https://github.com/sympa-community/sympa/issues/1224).
- Make the characters used for e-mail addresses conform to RFC 5322 [\#1217](https://github.com/sympa-community/sympa/issues/1217).
**Merged pull requests:**
- Update cpanfile [\#1231](https://github.com/sympa-community/sympa/pull/1231).
## [6.2.65b.1](https://github.com/sympa-community/sympa/tree/6.2.65b.1) (2021-07-30)
[Full Changelog](https://github.com/sympa-community/sympa/compare/6.2.64...6.2.65b.1)
**Implemented enhancements:**
- Improving data source synchronization performance [\#1186](https://github.com/sympa-community/sympa/issues/1186).
**Fixed bugs:**
- `custom_attribute` parameters are not transferred when subscribe action wasn't forwarded to the owner [\#1199](https://github.com/sympa-community/sympa/issues/1199).
- Drop dependency Socket6 [\#1211](https://github.com/sympa-community/sympa/issues/1211).
- WWSympa: Update jQuery to 3.6.0 [\#1204](https://github.com/sympa-community/sympa/issues/1204).
- `custom_robot_parameter` parameter was broken [\#1207](https://github.com/sympa-community/sympa/pull/1207).
- Typos in `mhonarc_rc.tt2` (formerly `mhonarc-ressources.tt2`) [\#1206](https://github.com/sympa-community/sympa/pull/1206).
**Merged pull requests:**
- Refactor internals of config (2) [\#1214](https://github.com/sympa-community/sympa/pull/1214).
## [6.2.64](https://github.com/sympa-community/sympa/tree/6.2.64) (2021-06-30)
[Full Changelog](https://github.com/sympa-community/sympa/compare/6.2.63b.2...6.2.64)
......
......@@ -25,7 +25,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.60)
AC_INIT(sympa, 6.2.64, sympa-developpers@listes.renater.fr)
AC_INIT(sympa, 6.2.66, sympa-developpers@listes.renater.fr)
AM_INIT_AUTOMAKE([foreign -Wall -Werror 1.9 tar-pax])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AM_PO_SUBDIRS
......
......@@ -208,15 +208,16 @@ feature 'Crypt::Eksblowfish', 'Used to encrypt passwords with the Bcrypt hash al
};
feature 'x509-auth', 'Required to extract user certificates for SSL clients and S/MIME messages.' => sub {
requires 'Crypt::OpenSSL::X509', '>= 1.800.1';
# Note: email() for certificate on versions < 1.909 was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.909';
};
feature 'smime', 'Required to sign, verify, encrypt and decrypt S/MIME messages.' => sub {
requires 'Convert::ASN1';
requires 'Crypt::SMIME', '>= 0.15';
# Required to extract user certificates for SSL clients and S/MIME messages.
# Note: On versions < 1.808, the value() method for extension was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.808';
# Note: value() for extension on versions < 1.808 was broken.
# Note: email() for certificate on versions < 1.909 was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.909';
};
feature 'csv', 'CSV database driver, required if you include list members, owners or moderators from CSV file.' => sub {
......@@ -275,9 +276,11 @@ feature 'Net::DNS', 'This is required if you set a value for "dmarc_protection_m
};
feature 'ipv6', 'Required to support IPv6 with client features.' => sub {
requires 'Socket6', '>= 0.23';
# Note: Perl 5.14 bundles Socket 0.95 which exports AF_INET6. Earlier
# version also requires Socket6 >= 0.23.
# Note: Some distributions e.g. RHEL/CentOS 6 do not provide package for
# IO::Socket::IP. If that is the case, use IO::Socket::INET6 instead.
# IO::Socket::IP. If that is the case, use IO::Socket::INET6 instead.
# Note: Perl 5.20.0 bundles IO::Socket::IP 0.29.
requires 'IO::Socket::IP', '>= 0.21';
};
......
......@@ -206,6 +206,9 @@
[%~ ELSIF report_entry == 'action_privileged_owner' ~%]
[%|loc%]This action is restricted to privileged list owners.[%END%]
[%~ ELSIF report_entry == 'action_super_listmaster' ~%]
[%|loc%]This action is restricted to super-listmasters.[%END%]
[%~ ELSIF report_entry == 'edit_right' ~%]
[%|loc(role,right)%]Rights to this action are '%2' for a '%1'.[%END%]
......
......@@ -622,7 +622,7 @@ $POWERED_BY$
<input class="MainMenuLinks" type="submit" name="action_view_source" value="<%|loc%>View source<%END%>" />
<% END %>
<% IF listconf.tracking.delivery_status_notification == 'on' || listconf.tracking.message_delivery_notification == 'on_demand' || listconf.tracking.message_delivery_notification == 'on' %>
<% IF listconf.tracking.delivery_status_notification == 'on' || listconf.tracking.message_disposition_notification == 'on_demand' || listconf.tracking.message_disposition_notification == 'on' %>
<% IF may_tracking %>
<input class="MainMenuLinks" type="submit" name="action_tracking" value="<%|loc%>mail tracking<%END%>" />
<% END %>
......
......@@ -49,10 +49,21 @@
<br />
<label for="scope_out">[%|loc%]Scope: [%END%] </label>
<select id="scope_out" name="scope_out">
<option value="site" [% IF scope == 'site' %]selected[% END %]>[%|loc%]site[%END%]</option>
[% UNLESS default_robot %]
<option value="robot" [% IF scope == 'robot' %]selected[% END %]>[%|loc%]robot[%END%]</option>
[%END%]
[% IF is_super_listmaster ~%]
<option value="site"
[%~ IF scope == 'site' %] selected[% END %]>
[%|loc%]site[%END%]
</option>
<option value="robot"
[%~ IF scope == 'robot' %] selected[% END %]>
[%|loc%]robot[%END%]
</option>
[%~ ELSE ~%]
<option value="robot"
[%~ IF scope == 'robot' || scope == 'site' %] selected[% END %]>
[%|loc%]robot[%END%]
</option>
[%~ END %]
<option value="list" [% IF scope == 'list' %]selected[% END %]>[%|loc%]list[%END%]</option>
</select>
<br />
......
......@@ -1027,12 +1027,13 @@ h4.letter {
padding-left: 0;
}
.item_list .item .item_content ul.my li{
.item_list .item .item_content ul.my li {
display:inline;
padding-left: 1.5rem;
}
.item_list .item .item_content ul.my li:nth-child(2){
padding-left: 1.5rem;
.item_list .item .item_content ul.my li:first-child {
padding-left: 0;
}
.item_list .item .item_content p {
......@@ -2593,8 +2594,6 @@ p.retraitita, span.retraitita {
}
.item_list .item .item_content ul.my li{
display:block;
}
.item_list .item .item_content ul.my li:nth-child(2){
padding-left:0;
}
}
......
......@@ -30,7 +30,7 @@ var lang = '[% lang %]';
</script>
[%# Now retrieving the javascript files ~%]
<script src="[% static_content_url %]/js/jquery.js?v3.2.1"></script>
<script src="[% static_content_url %]/js/jquery.js?v3.6.0"></script>
<script src="[% static_content_url %]/js/jquery-migrate.js?v1.4.1"></script>
<script src="[% static_content_url %]/js/jquery-ui/jquery-ui.js?v1.12.1"></script>
[%# jqPlot ~%]
......
......@@ -133,9 +133,19 @@
<input type="hidden" name="scope" value="site" />
<input type="hidden" name="tpl_lang" value="[% lang.key %]" />
<input type="hidden" name="webormail" value="[% webormail %]" />
<input class="MainMenuLinks" type="submit" name="action_edit_template" value="[%|loc%]edit[% END %]" />
<input class="MainMenuLinks" type="submit" name="action_copy_template" value="[%|loc%]cp[% END %]" />
<input class="MainMenuLinks" type="submit" name="action_remove_template" value="[%|loc%]rm[% END %]" />
[% IF is_super_listmaster ~%]
<input class="MainMenuLinks" type="submit" name="action_edit_template"
value="[%|loc%]edit[% END %]" />
<input class="MainMenuLinks" type="submit" name="action_copy_template"
value="[%|loc%]cp[% END %]" />
<input class="MainMenuLinks" type="submit" name="action_remove_template"
value="[%|loc%]rm[% END %]" />
[%~ ELSE ~%]
<input class="MainMenuLinks" type="submit" name="action_view_template"
value="[%|loc%]view[% END %]" />
<input class="MainMenuLinks" type="submit" name="action_copy_template"
value="[%|loc%]cp[% END %]" />
[%~ END %]
</fieldset>
</form>
[% END %]
......
......@@ -46,9 +46,17 @@
[% ELSE %]
<p>[%|loc(l.value.liststartdate)%]Suspended from %1 to indefinite end date[%END%]</p>
[% END %]
<a href="[% 'suboptions' | url_rel([l.key]) %]">
<i class="fa fa-pencil-square fa-lg"
title="[%|loc%](Edit)[%END%]"></i>
</a>
[% END %]
<ul class="my">
[%~ IF (l.value.is_owner || l.value.is_editor) && l.value.mod_count ~%]
<li><a href="[% 'modindex' | url_rel([l.key]) %]"><i class="fa fa-check-square"></i> [%|loc(l.value.mod_count)%]Messages held for moderation: %1[%END%]</a></li>
[%~ END %]
[% IF l.value.is_owner %]
<li><a href="[% 'review' | url_rel([l.key]) %]"><i class="fa fa-users"></i> [%|loc%]Review members[%END%]</a></li>
[% END %]
......
......@@ -7,7 +7,6 @@ use Cwd qw();
use English qw(-no_match_vars);
use Getopt::Long;
use Sympa::ConfDef;
use Sympa::Config::Schema;
use Sympa::Constants;
use Sympa::ListOpt;
......@@ -67,35 +66,40 @@ foreach my $okey (
and $pinfo->{$_}->{obsolete} =~ /\A[a-z]/
} _keys($pinfo)
) {
my $nkey = $pinfo->{$okey}->{obsolete};
my $pii = $pinfo->{$okey};
my $ppi = [$okey];
$parameters .= sprintf "=head3 C<%s>\n\n", _escape_pod($okey);
$parameters .= sprintf "See L<C<%s>|/%s>.\n\n", _escape_pod($nkey),
_escape_pod($nkey);
}
$parameters .= "=head2 Obsoleted F<sympa.conf> parameters\n\n";
$parameters .= "These parameters were used in F<sympa.conf> or F<robot.conf>";
$parameters .= " on Sympa 6.2.56 or earlier and are no longer";
$parameters .= " recommended.\n\n";
foreach my $okey (sort keys %Sympa::Config::Schema::obsolete_robot_params) {
my $nkey = $Sympa::Config::Schema::obsolete_robot_params{$okey};
$parameters .= sprintf "=head3 C<%s>\n\n", _escape_pod($okey);
$parameters .= sprintf "See L<C<%s>|/%s>.\n\n", _escape_pod($nkey),
_escape_pod($nkey);
$parameters .= sprintf "=head3 C<%s>\n\n", _escape_pod($okey);
_render($pii, $ppi);
}
$parameters .= "=head2 Deprecated parameters\n\n";
$parameters .= "These parameters were deprecated.";
$parameters .= " They may not be used anymore.\n\n";
foreach my $okey (
sort grep {
$pinfo->{$_}->{obsolete}
and $pinfo->{$_}->{obsolete} !~ /\A[a-z]/
} _keys($pinfo)
sort('tracking',
grep {
$pinfo->{$_}->{obsolete}
and $pinfo->{$_}->{obsolete} !~ /\A[a-z]/
} _keys($pinfo))
) {
$parameters .= sprintf "=head3 C<%s>\n\n", _escape_pod($okey);
if ($okey eq 'tracking') {
# Special: 'tracking' is a name of paragraph in list config.
$parameters .= "=head3 C<tracking> (domain and site)\n\n";
_render(
{ context => [qw(domain site)],
obsolete => 'tracking.tracking',
not_after => '6.2.56',
},
[]
);
} else {
my $pii = $pinfo->{$okey};
my $ppi = [$okey];
$parameters .= sprintf "=head3 C<%s>\n\n", _escape_pod($okey);
_render($pii, $ppi);
}
}
printf do { local $RS; <DATA> }, Sympa::Constants::CONFIG(), $parameters,
......@@ -108,12 +112,7 @@ sub _render {
my $ppi = shift;
if ($pii->{obsolete}) {
if ($pii->{obsolete} eq '1') {
$parameters .= "Deprecated.\n\n";
} else {
$parameters .= sprintf "Obsoleted. Use L<C<%s>|/%s>.\n\n",
$pii->{obsolete}, $pii->{obsolete};
}
_render_obsolete($pii, $ppi);
} elsif ($pii->{occurrence} =~ /n$/ and ref $pii->{format} eq 'ARRAY') {
_render_set($pii, $ppi);
} elsif (ref $pii->{format} eq 'HASH') {
......@@ -152,12 +151,7 @@ sub _render_paragraph {
#$parameters .= "=over\n\n" x (scalar @$pnames);
if ($pii->{obsolete}) {
if ($pii->{obsolete} eq '1') {
$parameters .= "Deprecated.\n\n";
} else {
$parameters .= sprintf "Obsoleted. Use L<C<%s>|/%s>.\n\n",
$pii->{obsolete}, join '.', @$pnames, $pii->{obsolete};
}
_render_obsolete($pii);
} elsif ($pii->{occurrence} =~ /n$/ and ref $pii->{format} eq 'ARRAY')
{
_render_set($pii, $ppi);
......@@ -181,6 +175,7 @@ sub _render_set {
_format($pinfo);
_default($pinfo, $pnames);
_context($pinfo);
_version($pinfo);
$parameters .= "=back\n\n";
$parameters .= sprintf "%s\n\n", join "\n\n", split /\n/,
......@@ -202,6 +197,7 @@ sub _render_scalar {
_format($pinfo);
_default($pinfo, $pnames);
_context($pinfo);
_version($pinfo);
$parameters .= "=back\n\n";
......@@ -212,6 +208,23 @@ sub _render_scalar {
_sample($pinfo, $pnames);
}
sub _render_obsolete {
my $pii = shift;
return unless $pii->{obsolete};
if ($pii->{obsolete} eq '1') {
$parameters .= "Deprecated.\n\n";
} else {
$parameters .= sprintf "See L<C<%s>|/%s>.\n\n",
$pii->{obsolete}, $pii->{obsolete};
}
$parameters .= "=over\n\n";
_context($pii);
_version($pii);
$parameters .= "=back\n\n";
}
sub _format {
my $pinfo = shift;
......@@ -220,7 +233,7 @@ sub _format {
if ($pinfo->{occurrence} =~ /n$/) {
if ($pinfo->{split_char}) {
$parameters .=
sprintf "Multiple values allowed, separated by C<%s>.\n\n",
sprintf "Multiple values allowed, separated by \"C<%s>\".\n\n",
$pinfo->{split_char};
} else {
$parameters .= "Multiple occurrences allowed.\n\n";
......@@ -289,6 +302,8 @@ sub _format {
$format =~ s/\A\(\?\^:(.*)\)\z/$1/
or $format =~ s/\A\(\?-xism:(.*)\)\z/$1/;
$parameters .= sprintf "/C<%s>/\n\n", _escape_pod($format);
} else {
$parameters .= "Any.\n\n";
}
}
......@@ -342,6 +357,26 @@ sub _context {
}
}
sub _version {
my $pinfo = shift;
my $param_text;
my ($nb, $na) = @{$pinfo}{qw(not_before not_after)};
undef $nb if ($nb // '') =~ /^[?]+$/;
undef $na if ($na // '') =~ /^[?]+$/;
if ($nb and $na) {
$param_text = sprintf "%s to %s.", $nb, $na;
} elsif ($nb) {
$param_text = sprintf "%s and later.", $nb;
} elsif ($na) {
$param_text = sprintf "up to %s.", $na;
}
$parameters .= "=item Available versions:\n\n$param_text\n\n"
if $param_text;
}
sub _sample {
my $pinfo = shift;
my $pnames = shift;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment