| Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 1 | <?php
 | 
 | 2 | if (!isset($_SESSION['mailcow_cc_role'])) {
 | 
 | 3 | 	header('Location: /');
 | 
 | 4 | 	exit();
 | 
 | 5 | }
 | 
 | 6 | ?>
 | 
 | 7 | <!-- change fido2 fn -->
 | 
 | 8 | <div class="modal fade" id="fido2ChangeFn" tabindex="-1" role="dialog" aria-hidden="true">
 | 
 | 9 |   <div class="modal-dialog modal-lg">
 | 
 | 10 |     <div class="modal-content">
 | 
 | 11 |       <div class="modal-header">
 | 
 | 12 |         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
 | 
 | 13 |         <h3 class="modal-title"><?=$lang['fido2']['set_fn'];?></h3>
 | 
 | 14 |         <p class="help-block" style="word-break:break-all" id="fido2_subject_desc" data-fido2-subject=""></p>
 | 
 | 15 |       </div>
 | 
 | 16 |       <div class="modal-body">
 | 
 | 17 |         <form class="form-horizontal" data-cached-form="false" data-id="fido2ChangeFn" role="form" method="post" autocomplete="off">
 | 
 | 18 |           <input type="hidden" class="form-control" name="fido2_cid" id="fido2_cid">
 | 
 | 19 |           <div class="form-group">
 | 
 | 20 |             <label class="control-label col-sm-4" for="fido2_fn"><?=$lang['fido2']['fn'];?>:</label>
 | 
 | 21 |             <div class="col-sm-8">
 | 
 | 22 |               <input type="text" class="form-control" name="fido2_fn">
 | 
 | 23 |             </div>
 | 
 | 24 |           </div>
 | 
 | 25 |           <div class="form-group">
 | 
 | 26 |             <div class="col-sm-offset-4 col-sm-8">
 | 
| Matthias Andreas Benkard | 7b2a3a1 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 27 |               <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="fido2ChangeFn" data-item="null" data-api-url='edit/fido2-fn' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>
 | 
| Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 28 |             </div>
 | 
 | 29 |           </div>
 | 
 | 30 |         </form>
 | 
 | 31 |       </div>
 | 
 | 32 |     </div>
 | 
 | 33 |   </div>
 | 
 | 34 | </div><!-- add domain admin modal -->
 | 
 | 35 | <!-- add sync job modal -->
 | 
 | 36 | <div class="modal fade" id="addSyncJobModal" tabindex="-1" role="dialog" aria-hidden="true">
 | 
 | 37 |   <div class="modal-dialog modal-lg">
 | 
 | 38 |     <div class="modal-content">
 | 
 | 39 |       <div class="modal-header">
 | 
 | 40 |         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
 | 
 | 41 |         <h3 class="modal-title"><?=$lang['add']['syncjob'];?></h3>
 | 
 | 42 |       </div>
 | 
 | 43 |       <div class="modal-body">
 | 
 | 44 |         <p><?=$lang['add']['syncjob_hint'];?></p>
 | 
 | 45 | 				<form class="form-horizontal" data-cached-form="true" role="form" data-id="add_syncjob">
 | 
 | 46 | 					<div class="form-group">
 | 
 | 47 | 						<label class="control-label col-sm-2" for="host1"><?=$lang['add']['hostname'];?></label>
 | 
 | 48 | 						<div class="col-sm-10">
 | 
 | 49 | 						<input type="text" class="form-control" name="host1" required>
 | 
 | 50 | 						</div>
 | 
 | 51 | 					</div>
 | 
 | 52 | 					<div class="form-group">
 | 
 | 53 | 						<label class="control-label col-sm-2" for="port1"><?=$lang['add']['port'];?></label>
 | 
 | 54 | 						<div class="col-sm-10">
 | 
 | 55 | 						<input type="number" class="form-control" name="port1" min="1" max="65535" value="143" required>
 | 
 | 56 |             <small class="help-block">1-65535</small>
 | 
 | 57 | 						</div>
 | 
 | 58 | 					</div>
 | 
 | 59 | 					<div class="form-group">
 | 
 | 60 | 						<label class="control-label col-sm-2" for="user1"><?=$lang['add']['username'];?></label>
 | 
 | 61 | 						<div class="col-sm-10">
 | 
 | 62 | 						<input type="text" class="form-control" name="user1" required>
 | 
 | 63 | 						</div>
 | 
 | 64 | 					</div>
 | 
 | 65 | 					<div class="form-group">
 | 
 | 66 | 						<label class="control-label col-sm-2" for="password1"><?=$lang['add']['password'];?></label>
 | 
 | 67 | 						<div class="col-sm-10">
 | 
 | 68 | 						<input type="password" class="form-control" name="password1" data-hibp="true" required>
 | 
 | 69 | 						</div>
 | 
 | 70 | 					</div>
 | 
 | 71 | 					<div class="form-group">
 | 
 | 72 | 						<label class="control-label col-sm-2" for="enc1"><?=$lang['add']['enc_method'];?></label>
 | 
 | 73 | 						<div class="col-sm-10">
 | 
 | 74 | 							<select name="enc1" title="<?=$lang['add']['select'];?>" required>
 | 
 | 75 |                 <option value="SSL" selected>SSL</option>
 | 
 | 76 |                 <option value="TLS">STARTTLS</option>
 | 
 | 77 |                 <option value="PLAIN">PLAIN</option>
 | 
 | 78 | 							</select>
 | 
 | 79 | 						</div>
 | 
 | 80 | 					</div>
 | 
 | 81 | 					<div class="form-group">
 | 
 | 82 | 						<label class="control-label col-sm-2" for="mins_interval"><?=$lang['add']['mins_interval'];?></label>
 | 
 | 83 | 						<div class="col-sm-10">
 | 
 | 84 |               <input type="number" class="form-control" name="mins_interval" min="1" max="43800" value="20" required>
 | 
 | 85 |               <small class="help-block">1-43800</small>
 | 
 | 86 | 						</div>
 | 
 | 87 | 					</div>
 | 
 | 88 | 					<div class="form-group">
 | 
 | 89 | 						<label class="control-label col-sm-2" for="subfolder2"><?=$lang['edit']['subfolder2'];?></label>
 | 
 | 90 | 						<div class="col-sm-10">
 | 
 | 91 | 						<input type="text" class="form-control" name="subfolder2" value="">
 | 
 | 92 | 						</div>
 | 
 | 93 | 					</div>
 | 
 | 94 | 					<div class="form-group">
 | 
 | 95 | 						<label class="control-label col-sm-2" for="maxage"><?=$lang['edit']['maxage'];?></label>
 | 
 | 96 | 						<div class="col-sm-10">
 | 
 | 97 | 						<input type="number" class="form-control" name="maxage" min="0" max="32000" value="0">
 | 
 | 98 |             <small class="help-block">0-32000</small>
 | 
 | 99 | 						</div>
 | 
 | 100 | 					</div>
 | 
 | 101 | 					<div class="form-group">
 | 
 | 102 | 						<label class="control-label col-sm-2" for="maxbytespersecond"><?=$lang['edit']['maxbytespersecond'];?></label>
 | 
 | 103 | 						<div class="col-sm-10">
 | 
 | 104 | 						<input type="number" class="form-control" name="maxbytespersecond" min="0" max="125000000" value="0">
 | 
 | 105 |             <small class="help-block">0-125000000</small>
 | 
 | 106 | 						</div>
 | 
 | 107 | 					</div>
 | 
 | 108 | 					<div class="form-group">
 | 
 | 109 | 						<label class="control-label col-sm-2" for="timeout1"><?=$lang['edit']['timeout1'];?></label>
 | 
 | 110 | 						<div class="col-sm-10">
 | 
 | 111 | 						<input type="number" class="form-control" name="timeout1" min="1" max="32000" value="600">
 | 
 | 112 |             <small class="help-block">1-32000</small>
 | 
 | 113 | 						</div>
 | 
 | 114 | 					</div>
 | 
 | 115 |           <div class="form-group">
 | 
 | 116 | 						<label class="control-label col-sm-2" for="timeout2"><?=$lang['edit']['timeout2'];?></label>
 | 
 | 117 | 						<div class="col-sm-10">
 | 
 | 118 | 						<input type="number" class="form-control" name="timeout2" min="1" max="32000" value="600">
 | 
 | 119 |             <small class="help-block">1-32000</small>
 | 
 | 120 | 						</div>
 | 
 | 121 | 					</div>
 | 
 | 122 | 					<div class="form-group">
 | 
 | 123 | 						<label class="control-label col-sm-2" for="exclude"><?=$lang['add']['exclude'];?></label>
 | 
 | 124 | 						<div class="col-sm-10">
 | 
 | 125 | 						<input type="text" class="form-control" name="exclude" value="(?i)spam|(?i)junk">
 | 
 | 126 | 						</div>
 | 
 | 127 | 					</div>
 | 
 | 128 | 					<div class="form-group">
 | 
 | 129 | 						<label class="control-label col-sm-2" for="custom_params"><?=$lang['add']['custom_params'];?></label>
 | 
 | 130 | 						<div class="col-sm-10">
 | 
 | 131 | 						<input type="text" class="form-control" name="custom_params" placeholder="--delete2folders --otheroption">
 | 
 | 132 | 						</div>
 | 
 | 133 | 					</div>
 | 
 | 134 | 					<div class="form-group">
 | 
 | 135 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 136 | 							<div class="checkbox">
 | 
 | 137 | 							<label><input type="checkbox" value="1" name="delete2duplicates" checked> <?=$lang['add']['delete2duplicates'];?> (--delete2duplicates)</label>
 | 
 | 138 | 							</div>
 | 
 | 139 | 						</div>
 | 
 | 140 | 					</div>
 | 
 | 141 | 					<div class="form-group">
 | 
 | 142 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 143 | 							<div class="checkbox">
 | 
 | 144 | 							<label><input type="checkbox" value="1" name="delete1"> <?=$lang['add']['delete1'];?> (--delete1)</label>
 | 
 | 145 | 							</div>
 | 
 | 146 | 						</div>
 | 
 | 147 | 					</div>
 | 
 | 148 |           <div class="form-group">
 | 
 | 149 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 150 | 							<div class="checkbox">
 | 
 | 151 | 							<label><input type="checkbox" value="1" name="delete2"> <?=$lang['add']['delete2'];?> (--delete2)</label>
 | 
 | 152 | 							</div>
 | 
 | 153 | 						</div>
 | 
 | 154 | 					</div>
 | 
 | 155 |           <div class="form-group">
 | 
 | 156 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 157 | 							<div class="checkbox">
 | 
 | 158 | 							<label><input type="checkbox" value="1" name="automap" checked> <?=$lang['add']['automap'];?> (--automap)</label>
 | 
 | 159 | 							</div>
 | 
 | 160 | 						</div>
 | 
 | 161 | 					</div>
 | 
 | 162 |           <div class="form-group">
 | 
 | 163 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 164 | 							<div class="checkbox">
 | 
 | 165 | 							<label><input type="checkbox" value="1" name="skipcrossduplicates"> <?=$lang['add']['skipcrossduplicates'];?> (--skipcrossduplicates)</label>
 | 
 | 166 | 							</div>
 | 
 | 167 | 						</div>
 | 
 | 168 | 					</div>
 | 
 | 169 |           <div class="form-group">
 | 
 | 170 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 171 | 							<div class="checkbox">
 | 
 | 172 | 							<label><input type="checkbox" value="1" name="subscribeall" checked> <?=$lang['add']['subscribeall'];?> (--subscribeall)</label>
 | 
 | 173 | 							</div>
 | 
 | 174 | 						</div>
 | 
 | 175 | 					</div>
 | 
 | 176 | 					<div class="form-group">
 | 
 | 177 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 178 | 							<div class="checkbox">
 | 
 | 179 | 							<label><input type="checkbox" value="1" name="active" checked> <?=$lang['add']['active'];?></label>
 | 
 | 180 | 							</div>
 | 
 | 181 | 						</div>
 | 
 | 182 | 					</div>
 | 
 | 183 | 					<div class="form-group">
 | 
 | 184 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
| Matthias Andreas Benkard | 7b2a3a1 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 185 |               <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_syncjob" data-api-url='add/syncjob' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>
 | 
| Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 186 | 						</div>
 | 
 | 187 | 					</div>
 | 
 | 188 | 				</form>
 | 
 | 189 |       </div>
 | 
 | 190 |     </div>
 | 
 | 191 |   </div>
 | 
 | 192 | </div><!-- add sync job modal -->
 | 
 | 193 | <!-- app passwd modal -->
 | 
 | 194 | <div class="modal fade" id="addAppPasswdModal" tabindex="-1" role="dialog" aria-hidden="true">
 | 
 | 195 |   <div class="modal-dialog modal-lg">
 | 
 | 196 |     <div class="modal-content">
 | 
 | 197 |       <div class="modal-header">
 | 
 | 198 |         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
 | 
 | 199 |         <h3 class="modal-title"><?=$lang['add']['app_password'];?></h3>
 | 
 | 200 |       </div>
 | 
 | 201 |       <div class="modal-body">
 | 
 | 202 | 				<form class="form-horizontal" data-cached-form="true" role="form" data-pwgen-length="32" data-id="add_apppasswd">
 | 
 | 203 | 					<div class="form-group">
 | 
 | 204 | 						<label class="control-label col-sm-2" for="app_name"><?=$lang['add']['app_name'];?></label>
 | 
 | 205 | 						<div class="col-sm-10">
 | 
 | 206 | 						<input type="text" class="form-control" name="app_name" required>
 | 
 | 207 | 						</div>
 | 
 | 208 | 					</div>
 | 
 | 209 |           <div class="form-group">
 | 
 | 210 |             <label class="control-label col-sm-2" for="app_passwd"><?=$lang['user']['password'];?> (<a href="#" class="generate_password"><?=$lang['user']['generate'];?></a>)</label>
 | 
 | 211 |             <div class="col-sm-10">
 | 
 | 212 |             <input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="app_passwd" autocomplete="new-password" required>
 | 
 | 213 |             </div>
 | 
 | 214 |           </div>
 | 
 | 215 |           <div class="form-group">
 | 
 | 216 |             <label class="control-label col-sm-2" for="app_passwd2"><?=$lang['user']['password_repeat'];?></label>
 | 
 | 217 |             <div class="col-sm-10">
 | 
 | 218 |             <input type="password" data-pwgen-field="true" class="form-control" name="app_passwd2" autocomplete="new-password" required>
 | 
 | 219 |             <p class="help-block"><?=$lang['user']['new_password_description'];?></p>
 | 
 | 220 |             </div>
 | 
 | 221 |           </div>
 | 
 | 222 | 					<div class="form-group">
 | 
 | 223 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
 | 224 | 							<div class="checkbox">
 | 
 | 225 | 							<label><input type="checkbox" value="1" name="active" checked> <?=$lang['add']['active'];?></label>
 | 
 | 226 | 							</div>
 | 
 | 227 | 						</div>
 | 
 | 228 | 					</div>
 | 
 | 229 | 					<div class="form-group">
 | 
 | 230 | 						<div class="col-sm-offset-2 col-sm-10">
 | 
| Matthias Andreas Benkard | 7b2a3a1 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 231 |               <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_apppasswd" data-api-url='add/app-passwd' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>
 | 
| Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 232 | 						</div>
 | 
 | 233 | 					</div>
 | 
 | 234 | 				</form>
 | 
 | 235 |       </div>
 | 
 | 236 |     </div>
 | 
 | 237 |   </div>
 | 
 | 238 | </div><!-- add app passwd modal -->
 | 
 | 239 | <!-- log modal -->
 | 
 | 240 | <div class="modal fade" id="syncjobLogModal" tabindex="-1" role="dialog" aria-labelledby="syncjobLogModalLabel">
 | 
 | 241 |   <div class="modal-dialog modal-lg" role="document">
 | 
 | 242 |     <div class="modal-content">
 | 
| Matthias Andreas Benkard | 7b2a3a1 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 243 |       <div class="modal-header">
 | 
 | 244 | 	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
 | 
 | 245 |         <h3 class="modal-title">Log</h3>
 | 
 | 246 |       </div>
 | 
| Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 247 |       <div class="modal-body">
 | 
 | 248 |         <textarea class="form-control textarea-code" rows="20" id="logText" spellcheck="false"></textarea>
 | 
 | 249 |       </div>
 | 
 | 250 |     </div>
 | 
 | 251 |   </div>
 | 
 | 252 | </div><!-- log modal -->
 | 
 | 253 | <!-- pw change modal -->
 | 
 | 254 | <div class="modal fade" id="pwChangeModal" tabindex="-1" role="dialog" aria-labelledby="pwChangeModalLabel">
 | 
 | 255 |   <div class="modal-dialog" role="document">
 | 
 | 256 |     <div class="modal-content">
 | 
| Matthias Andreas Benkard | 7b2a3a1 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 257 | 	    <div class="modal-header">
 | 
 | 258 | 	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
 | 
 | 259 |         <h3 class="modal-title"><?=$lang['user']['change_password'];?></h3>
 | 
 | 260 |       </div>
 | 
 | 261 |       <div class="modal-body">
 | 
 | 262 |         <form class="form-horizontal" data-cached-form="false" data-id="pwchange" role="form" method="post" autocomplete="off">
 | 
 | 263 |           <div class="form-group">
 | 
 | 264 |             <label class="control-label col-sm-3" for="user_new_pass"><?=$lang['user']['new_password'];?> (<a href="#" class="generate_password"><?=$lang['user']['generate'];?></a>)</label>
 | 
 | 265 |             <div class="col-sm-5">
 | 
 | 266 |             <input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="user_new_pass" autocomplete="new-password" required>
 | 
 | 267 |             </div>
 | 
 | 268 |           </div>
 | 
 | 269 |           <div class="form-group">
 | 
 | 270 |             <label class="control-label col-sm-3" for="user_new_pass2"><?=$lang['user']['new_password_repeat'];?></label>
 | 
 | 271 |             <div class="col-sm-5">
 | 
 | 272 |             <input type="password" data-pwgen-field="true" class="form-control" name="user_new_pass2" autocomplete="new-password" required>
 | 
 | 273 |             <p class="help-block"><?=$lang['user']['new_password_description'];?></p>
 | 
 | 274 |             </div>
 | 
 | 275 |           </div>
 | 
 | 276 |           <hr>
 | 
 | 277 |           <div class="form-group">
 | 
 | 278 |             <label class="control-label col-sm-3" for="user_old_pass"><?=$lang['user']['password_now'];?></label>
 | 
 | 279 |             <div class="col-sm-5">
 | 
 | 280 |             <input type="password" class="form-control" name="user_old_pass" autocomplete="off" required>
 | 
 | 281 |             </div>
 | 
 | 282 |           </div>
 | 
 | 283 |           <div class="form-group">
 | 
 | 284 |             <div class="col-sm-offset-3 col-sm-9">
 | 
 | 285 |               <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="pwchange" data-item="null" data-api-url='edit/self' data-api-attr='{}' href="#"><?=$lang['user']['change_password'];?></button>
 | 
 | 286 |             </div>
 | 
 | 287 |           </div>
 | 
 | 288 |         </form>
 | 
 | 289 |       </div>
 | 
 | 290 |     </div>
 | 
 | 291 |   </div>
 | 
 | 292 | </div><!-- pw change modal -->
 | 
 | 293 | <!-- pw change modal -->
 | 
 | 294 | <div class="modal fade" id="tempAliasModal" tabindex="-1" role="dialog" aria-labelledby="tempAliasModalLabel">
 | 
 | 295 |   <div class="modal-dialog" role="document">
 | 
 | 296 |     <div class="modal-content">
 | 
| Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 297 |       <div class="modal-body">
 | 
 | 298 |         <form class="form-horizontal" data-cached-form="false" data-id="pwchange" role="form" method="post" autocomplete="off">
 | 
 | 299 |           <div class="form-group">
 | 
 | 300 |             <label class="control-label col-sm-3" for="user_new_pass"><?=$lang['user']['new_password'];?> (<a href="#" class="generate_password"><?=$lang['user']['generate'];?></a>)</label>
 | 
 | 301 |             <div class="col-sm-5">
 | 
 | 302 |             <input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="user_new_pass" autocomplete="new-password" required>
 | 
 | 303 |             </div>
 | 
 | 304 |           </div>
 | 
 | 305 |           <div class="form-group">
 | 
 | 306 |             <label class="control-label col-sm-3" for="user_new_pass2"><?=$lang['user']['new_password_repeat'];?></label>
 | 
 | 307 |             <div class="col-sm-5">
 | 
 | 308 |             <input type="password" data-pwgen-field="true" class="form-control" name="user_new_pass2" autocomplete="new-password" required>
 | 
 | 309 |             <p class="help-block"><?=$lang['user']['new_password_description'];?></p>
 | 
 | 310 |             </div>
 | 
 | 311 |           </div>
 | 
 | 312 |           <hr>
 | 
 | 313 |           <div class="form-group">
 | 
 | 314 |             <label class="control-label col-sm-3" for="user_old_pass"><?=$lang['user']['password_now'];?></label>
 | 
 | 315 |             <div class="col-sm-5">
 | 
 | 316 |             <input type="password" class="form-control" name="user_old_pass" autocomplete="off" required>
 | 
 | 317 |             </div>
 | 
 | 318 |           </div>
 | 
 | 319 |           <div class="form-group">
 | 
 | 320 |             <div class="col-sm-offset-3 col-sm-9">
 | 
| Matthias Andreas Benkard | 7b2a3a1 | 2021-08-16 10:57:25 +0200 | [diff] [blame] | 321 |               <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="pwchange" data-item="null" data-api-url='edit/self' data-api-attr='{}' href="#"><?=$lang['user']['change_password'];?></button>
 | 
| Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame] | 322 |             </div>
 | 
 | 323 |           </div>
 | 
 | 324 |         </form>
 | 
 | 325 |       </div>
 | 
 | 326 |     </div>
 | 
 | 327 |   </div>
 | 
 | 328 | </div><!-- pw change modal -->
 | 
 | 329 | <!-- sieve filter modal -->
 | 
 | 330 | <div class="modal fade" id="userFilterModal" tabindex="-1" role="dialog">
 | 
 | 331 |   <div class="modal-dialog" role="document">
 | 
 | 332 |     <div class="modal-content">
 | 
 | 333 |       <div class="modal-header">
 | 
 | 334 |         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
 | 
 | 335 |         <h3 class="modal-title"><?=$lang['user']['active_sieve'];?></h3>
 | 
 | 336 |       </div>
 | 
 | 337 |       <div class="modal-body">
 | 
 | 338 |       <pre id="user_sieve_filter"></pre>
 | 
 | 339 |       </div>
 | 
 | 340 |     </div>
 | 
 | 341 |   </div>
 | 
 | 342 | </div><!-- sieve filter modal -->
 |