/[smecontribs]/rpms/smeserver-mailsorting/contribs10/smeserver-mailsorting-bz8044-NFRdroplist.patch
ViewVC logotype

Contents of /rpms/smeserver-mailsorting/contribs10/smeserver-mailsorting-bz8044-NFRdroplist.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Wed Jun 10 10:04:40 2020 UTC (3 years, 10 months ago) by brianr
Branch: MAIN
CVS Tags: smeserver-mailsorting-1_4-13_el7_sme, smeserver-mailsorting-1_4-14_el7_sme, smeserver-mailsorting-1_4-11_el7_sme, smeserver-mailsorting-1_4-12_el7_sme, HEAD
Initial import

1 --- smeserver-mailsorting-1.4.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/mailsort.pm.dropbox 2014-12-02 07:32:45.000000000 +0100
2 +++ smeserver-mailsorting-1.4.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/mailsort.pm 2017-02-08 20:27:45.000000000 +0100
3 @@ -64,7 +64,7 @@
4
5 stripe => "#D4D0C8",
6
7 - fields => [ qw(b1 criterion b2 criterion2 deliver copy deliver2 Modify Remove) ],
8 + fields => [ qw(b1 criterion b2 criterion2 action deliver copy deliver2 Modify Remove) ],
9
10 labels => 1,
11
12 @@ -77,6 +77,7 @@
13
14 criterion2 => { label => $self->localise("2ND_CRITERION") },
15
16 + action => { label => $self->localise("ACTION") },
17 deliver => { label => $self->localise("DESTINATION") },
18
19 copy => { label => $self->localise("COPY") },
20 @@ -109,6 +110,8 @@
21 my $deliver2 = $rule->prop("deliver2") || '';
22 my $action = $rule->prop("action") || '';
23 my $action2 = $rule->prop("action2") || '';
24 + my $folder = ("$action" eq "sort" )? $deliver : '';
25 + $folder = "INBOX" if "$folder" eq "" && "$action" eq "sort";
26 my $copy = $rule->prop("copy") || '';
27 my $oldpmRule = '';
28
29 @@ -123,13 +126,13 @@
30 my $b1 = $self->localise($basis);
31 my $b2 = $self->localise($basis2);
32
33 - my $copyto = $rule->prop("deliver2") || '';
34 + my $copyto = $rule->prop("deliver2") || '';# useless
35 if (($copy eq 'yes') && ($action2 eq 'inbox'))
36 - { $copyto = 'inbox'; }
37 + { $deliver2 = ""; $copyto = 'inbox'; } # copyto is useless
38
39 $deliver = GetDisplayName($deliver);
40 $deliver2 = GetDisplayName($deliver2);
41 -
42 +
43 push @data,
44 {
45 key => $rule->key,
46 @@ -139,6 +142,7 @@
47 criterion2 => $rule->prop("criterion2") || '',
48 deliver => $deliver,
49 deliver2 => $deliver2,
50 + folder => $folder,
51 action => $action,
52 action2 => $action2,
53 copy => $copy,
54 @@ -227,6 +231,10 @@
55 {
56 my ($data_item, $row, $field) = @_;
57
58 + #avoid duplicate data if we sort we use folder field
59 + my $deliver = $row->{deliver};
60 + $deliver="" if $row->{action} eq "sort";
61 +
62 return "userpanel-mailsort?" .
63 join("&",
64 "page=0",
65 @@ -238,8 +246,9 @@
66 "basis2=" . $row->{basis2},
67 "criterion=" . $row->{criterion},
68 "criterion2=" . $row->{criterion2},
69 - "deliver=" . $row->{deliver},
70 + "deliver=" . $deliver,
71 "deliver2=" . $row->{deliver2},
72 + "folder=" . $row->{folder},
73 "action=" . $row->{action},
74 "action2=" . $row->{action2},
75 "copy=" . $row->{copy},
76 @@ -290,34 +299,42 @@
77 $rule = $PanelUser.$random;
78 $pdb->new_record($rule, { type => "$PanelUser" });
79 }
80 + my %filtered;
81 + $filtered{criterion} .= $q->param ('criterion') || '';
82 + $filtered{criterion2} .= $q->param ('criterion2') || '';
83 + $filtered{basis} .= $q->param ('basis') || '';
84 + $filtered{basis2} .= $q->param ('basis2') || '';
85 + $filtered{action} .= $q->param ('action') || '';
86 + $filtered{action2} .= $q->param ('action2') || '';
87 + $filtered{deliver} .= $q->param ('deliver') || '';
88 + $filtered{deliver2} .= $q->param ('deliver2') || '';
89 + $filtered{folder} .= $q->param ('folder') || '';
90 + $filtered{copy} .= $q->param ('copy') || '';
91 + $filtered{oldkey} .= $q->param ('oldkey') || '';
92 +
93 + if ($filtered{basis} eq 'sizelt') { $filtered{basis} = '<'; }
94 + if ($filtered{basis} eq 'sizegt') { $filtered{basis} = '>'; }
95 + if ($filtered{basis2} eq 'sizelt') { $filtered{basis2} = '<'; }
96 + if ($filtered{basis2} eq 'sizegt') { $filtered{basis2} = '>'; }
97 +
98 + # we use the folder drop box selection if asked to sort
99 + $filtered{folder} = "" if $filtered{folder} eq "INBOX";
100 + $filtered{deliver} = $filtered{folder} if $filtered{action} eq "sort";
101
102 - my $basis = $q->param ('basis') || '';
103 - my $basis2 = $q->param ('basis2') || '';
104 - my $action = $q->param ('action') || '';
105 - my $action2 = $q->param ('action2') || '';
106 - my $deliver = $q->param ('deliver') || '';
107 - my $deliver2 = $q->param ('deliver2') || '';
108 - my $copy = $q->param ('copy') || '';
109 - my $oldkey = $q->param ('oldkey') || '';
110 -
111 - if ($basis eq 'sizelt') { $basis = '<'; }
112 - if ($basis eq 'sizegt') { $basis = '>'; }
113 - if ($basis2 eq 'sizelt') { $basis2 = '<'; }
114 - if ($basis2 eq 'sizegt') { $basis2 = '>'; }
115 -
116 - if ($copy eq 'no') { $deliver2 = ''; $action2 = ''; }
117 + if ($filtered{copy} eq 'no') { $filtered{deliver2} = ''; $filtered{action2} = ''; }
118 + if ($filtered{copy} eq 'yes' && $filtered{action2} eq 'inbox') { $filtered{deliver2} = ''; }
119
120 # keys are different but rule at least has part of users name so is likely changed
121 - if (($oldkey ne $rule) && ($oldkey =~ /$PanelUser/))
122 + if (($filtered{oldkey} ne $rule) && ($filtered{oldkey} =~ /$PanelUser/))
123 {
124 $pdb->new_record($rule, { type => "$PanelUser" });
125
126 - my $rec = $pdb->get($oldkey);
127 + my $rec = $pdb->get($filtered{oldkey});
128 $rec->delete;
129 }
130
131 foreach ("criterion","criterion2","action","action2","copy","basis","basis2","deliver","deliver2" )
132 - { $pdb->set_prop($rule, "$_", $q->param("$_")); }
133 + { $pdb->set_prop($rule, "$_", $filtered{$_}); }
134
135 unless ( system ("/sbin/e-smith/signal-event mailsorting-conf $PanelUser") == 0 )
136 { return $self->error('ERROR_UPDATING'); }
137 @@ -331,7 +348,29 @@
138 my $t = Unicode::IMAPUtf7->new();
139 $s =~ s/(.*)//; # untaint it
140 my $u = utf8($t->decode($1));
141 - return $u->latin1;
142 + return $u->utf8;#$u->latin1;
143 +}
144 +
145 +sub listfolders
146 +{
147 + use File::Find::Rule;
148 + my $root="/home/e-smith/files/users/$PanelUser/Maildir";
149 + $root="/home/e-smith/Maildir" if "$PanelUser" eq "admin" ;
150 + my @dirs = File::Find::Rule->new
151 + ->extras({ untaint => 1 , untaint_pattern => qr|^([-+@\w&. /]+)$| })
152 + ->directory
153 + ->maxdepth(1)
154 + ->in($root);
155 + my %out_dir;
156 + $out_dir{"INBOX"} .= "INBOX";
157 + $out_dir{""} .= "";
158 + for (sort @dirs) {
159 + s/$root\/?\.?//;
160 + my @exclu =("cur", "tmp", "new" , "INBOX" );
161 + next if $_ ~~ @exclu;
162 + $out_dir{$_} .= GetDisplayName(join('/',split('\.', $_)));
163 + }
164 + return \%out_dir;
165 }
166
167 sub nonblankWithForward
168 @@ -342,7 +381,12 @@
169 my $action = $q->param ('action') || '';
170 my $deliver = $q->param ('deliver') || '';
171
172 - if ( $action ne 'delete')
173 + if ( $action eq 'sort')
174 + {
175 + return "ERROR_SHOULD_BE_EMPTY" unless not $deliver;
176 + return "OK";
177 + }
178 + elsif ( $action ne 'delete')
179 {
180 if (not $deliver)
181 { return "ERROR_FORWARD_NO_EMAIL"; }
182 @@ -363,7 +407,7 @@
183 my $action = $q->param ('action2') || '';
184 my $deliver = $q->param ('deliver2') || '';
185
186 - if (( $action ne 'delete') && ( $copy eq 'yes'))
187 + if (( $action eq 'forward') && ( $copy eq 'yes'))
188 {
189 if (not $deliver)
190 { return "ERROR_FORWARD_NO_EMAIL"; }
191 @@ -375,4 +419,21 @@
192 else { return "OK"; }
193 }
194
195 +sub nonblankWithSort
196 +{
197 + my $self = shift;
198 + my $q = $self->{cgi};
199 +
200 + my $action = $q->param ('action') || '';
201 + my $folder = $q->param ('folder') || '';
202 +
203 + if ( $action eq 'sort')
204 + {
205 + return "ERROR_SORT_NO_FOLDER" if not $folder;
206 + return "OK";
207 + }
208 + else { return "OK"; }
209 +}
210 +
211 +
212 1;
213 --- smeserver-mailsorting-1.4.old/root/etc/e-smith/web/functions/userpanel-mailsort.dropbox 2014-12-02 07:32:45.000000000 +0100
214 +++ smeserver-mailsorting-1.4.old/root/etc/e-smith/web/functions/userpanel-mailsort 2017-02-08 19:31:01.000000000 +0100
215 @@ -120,6 +120,14 @@
216 validation="nonblankWithForward()">
217 <label>DELIVER</label>
218 </field>
219 + <field
220 + type="select"
221 + id="folder"
222 + options="listfolders"
223 + value=""
224 + validation="nonblankWithSort()">
225 + <label>FOLDER</label>
226 + </field>
227
228 <field
229 type="select"
230 @@ -146,7 +154,7 @@
231 id="deliver2"
232 value=""
233 validation="nonblankWithForward2()">
234 - <label>DELIVER</label>
235 + <label>EMAIL</label>
236 </field>
237
238 <subroutine src="priority" />
239 diff -Nur smeserver-mailsorting-1.4.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/userpanel-mailsort smeserver-mailsorting-1.4/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/userpanel-mailsort
240 --- smeserver-mailsorting-1.4.old/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/userpanel-mailsort 2014-12-02 01:32:45.000000000 -0500
241 +++ smeserver-mailsorting-1.4/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/userpanel-mailsort 2017-02-08 14:38:37.752000000 -0500
242 @@ -78,7 +78,15 @@
243 </entry>
244 <entry>
245 <base>DELIVER</base>
246 - <trans>Folder or email address</trans>
247 + <trans>email address (if forwarding)</trans>
248 + </entry>
249 + <entry>
250 + <base>EMAIL</base>
251 + <trans>email address (if forwarding)</trans>
252 + </entry>
253 + <entry>
254 + <base>FOLDER</base>
255 + <trans>Folder (if sorting)</trans>
256 </entry>
257 <entry>
258 <base>COPY_TO</base>

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed