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

Annotation of /rpms/smeserver-mailsorting/contribs9/smeserver-mailsorting-bz8044-NFRdroplist.patch

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


Revision 1.1 - (hide annotations) (download)
Wed Feb 8 19:42:44 2017 UTC (7 years, 3 months ago) by unnilennium
Branch: MAIN
CVS Tags: smeserver-mailsorting-1_4-8_el6_sme, smeserver-mailsorting-1_4-6_el6_sme, smeserver-mailsorting-1_4-9_el6_sme, smeserver-mailsorting-1_4-5_el6_sme, smeserver-mailsorting-1_4-10_el6_sme, smeserver-mailsorting-1_4-7_el6_sme, HEAD
* Wed Feb 08 2017 Jean-Philipe Pialasse <tests@pialasse.com> 1.4-5.sme
- NFR droplist to choose the directory to sort to [SME: 8044]
- few tidying in code of panel

1 unnilennium 1.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