admin.php 19.5 KB
Newer Older
1
2
<?php
/**
3
4
5
 * Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com>
 * This file is licensed under the Affero General Public License version 3 or later.
 * See the COPYING-README file.
Robin Appelman's avatar
Robin Appelman committed
6
 */
7
8
/**
 * @var array $_
Thomas Müller's avatar
Thomas Müller committed
9
 * @var \OCP\IL10N $l
10
 */
11
12
13
14
15
16

style('settings', 'settings');
script('settings', 'settings');
script( "settings", "admin" );
script( "settings", "log" );
script( 'core', 'multiselect' );
Morris Jobke's avatar
Morris Jobke committed
17
18
vendor_script('select2/select2');
vendor_style('select2/select2');
19
20
script('core', 'setupchecks');

21
$levels = array('Debug', 'Info', 'Warning', 'Error', 'Fatal');
22
$levelLabels = array(
23
24
25
26
27
	$l->t( 'Everything (fatal issues, errors, warnings, info, debug)' ),
	$l->t( 'Info, warnings, errors and fatal issues' ),
	$l->t( 'Warnings, errors and fatal issues' ),
	$l->t( 'Errors and fatal issues' ),
	$l->t( 'Fatal issues only' ),
28
);
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

$mail_smtpauthtype = array(
	''	=> $l->t('None'),
	'LOGIN'	=> $l->t('Login'),
	'PLAIN'	=> $l->t('Plain'),
	'NTLM'	=> $l->t('NT LAN Manager'),
);

$mail_smtpsecure = array(
	''		=> $l->t('None'),
	'ssl'	=> $l->t('SSL'),
	'tls'	=> $l->t('TLS'),
);

$mail_smtpmode = array(
	'php',
45
	'smtp',
46
);
47
48
49
50
51
52
if ($_['sendmail_is_available']) {
	$mail_smtpmode[] = 'sendmail';
}
if ($_['mail_smtpmode'] == 'qmail') {
	$mail_smtpmode[] = 'qmail';
}
Robin Appelman's avatar
Robin Appelman committed
53
?>
54

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<div id="app-navigation">
	<ul>
		<?php foreach($_['forms'] as $form) {
			if (isset($form['anchor'])) {
				$anchor = '#' . $form['anchor'];
				$sectionName = $form['section-name'];
				print_unescaped(sprintf("<li><a href='%s'>%s</a></li>", OC_Util::sanitizeHTML($anchor), OC_Util::sanitizeHTML($sectionName)));
			}
		}?>
	</ul>
</div>

<div id="app-content">

<div id="security-warning">
70
71
<?php

Morris Jobke's avatar
Morris Jobke committed
72
73
74
// is ssl working ?
if (!$_['isConnectedViaHTTPS']) {
	?>
75
<div class="section">
Morris Jobke's avatar
Morris Jobke committed
76
77
78
	<h2><?php p($l->t('Security Warning'));?></h2>

	<span class="securitywarning">
Morris Jobke's avatar
Morris Jobke committed
79
		<?php p($l->t('You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead.', $theme->getTitle())); ?>
Morris Jobke's avatar
Morris Jobke committed
80
81
	</span>

82
</div>
Morris Jobke's avatar
Morris Jobke committed
83
84
85
<?php
}

86
// is htaccess working ?
87
if (!$_['htaccessworking']) {
Bart Visscher's avatar
Bart Visscher committed
88
	?>
Lukas Reschke's avatar
Lukas Reschke committed
89
90
	<div class="section">
		<h2><?php p($l->t('Security Warning')); ?></h2>
91

Thomas Mueller's avatar
Thomas Mueller committed
92
	<span class="securitywarning">
93
		<?php p($l->t('Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.')); ?>
Bart Visscher's avatar
Bart Visscher committed
94
	</span>
95

Lukas Reschke's avatar
Lukas Reschke committed
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
	</div>
<?php
}

// is read only config enabled
if ($_['readOnlyConfigEnabled']) {
?>
<div class="section">
	<h2><?php p($l->t('Read-Only config enabled'));?></h2>

	<span class="securitywarning">
		<?php p($l->t('The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update.')); ?>
	</span>

	</div>
111
<?php
112
}
113
114
115
// Are doc blocks accessible?
if (!$_['isAnnotationsWorking']) {
	?>
Thomas Müller's avatar
Thomas Müller committed
116
<div class="section">
117
118
119
120
121
122
123
	<h2><?php p($l->t('Setup Warning'));?></h2>

	<span class="securitywarning">
		<?php p($l->t('PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.')); ?>
		<?php p($l->t('This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.')); ?>
	</span>

Thomas Müller's avatar
Thomas Müller committed
124
</div>
125
126
127
<?php
}

Morris Jobke's avatar
Morris Jobke committed
128
129
130
131
// SQLite database performance issue
if ($_['databaseOverload']) {
	?>
<div class="section">
Morris Jobke's avatar
Morris Jobke committed
132
	<h2><?php p($l->t('Database Performance Info'));?></h2>
Morris Jobke's avatar
Morris Jobke committed
133

Morris Jobke's avatar
Morris Jobke committed
134
135
136
	<p class="securitywarning">
		<?php p($l->t('SQLite is used as database. For larger installations we recommend to change this. To migrate to another database use the command line tool: \'occ db:convert-type\'')); ?>
	</p>
Morris Jobke's avatar
Morris Jobke committed
137
138
139
140
141

</div>
<?php
}

142
143
144
// if module fileinfo available?
if (!$_['has_fileinfo']) {
	?>
145
<div class="section">
146
	<h2><?php p($l->t('Module \'fileinfo\' missing'));?></h2>
147
148

		<span class="connectionwarning">
Lukas Reschke's avatar
Lukas Reschke committed
149
		<?php p($l->t('The PHP module \'fileinfo\' is missing. We strongly recommend to enable this module to get best results with mime-type detection.')); ?>
150
151
	</span>

152
</div>
153
154
155
<?php
}

156
157
158
159
160
161
162
// is PHP charset set to UTF8?
if (!$_['isPhpCharSetUtf8']) {
	?>
	<div class="section">
		<h2><?php p($l->t('PHP charset is not set to UTF-8'));?></h2>

		<span class="connectionwarning">
Volkan Gezer's avatar
Volkan Gezer committed
163
		<?php p($l->t("PHP charset is not set to UTF-8. This can cause major issues with non-ASCII characters in file names. We highly recommend to change the value of 'default_charset' php.ini to 'UTF-8'.")); ?>
164
165
166
	</span>

	</div>
167
168
169
<?php
}

170
// is locale working ?
Bart Visscher's avatar
Bart Visscher committed
171
if (!$_['isLocaleWorking']) {
Bart Visscher's avatar
Bart Visscher committed
172
	?>
173
<div class="section">
174
	<h2><?php p($l->t('Locale not working'));?></h2>
175

Bart Visscher's avatar
Bart Visscher committed
176
		<span class="connectionwarning">
177
		<?php
Bart Visscher's avatar
Bart Visscher committed
178
			$locales = 'en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8';
179
180
181
182
183
184
185
186
			p($l->t('System locale can not be set to a one which supports UTF-8.'));
			?>
		<br>
		<?php
			p($l->t('This means that there might be problems with certain characters in file names.'));
		?>
			<br>
			<?php
Volkan Gezer's avatar
Volkan Gezer committed
187
			p($l->t('We strongly suggest installing the required packages on your system to support one of the following locales: %s.', array($locales)));
188
			?>
Bart Visscher's avatar
Bart Visscher committed
189
	</span>
190

191
</div>
192
<?php
193
194
}

195
196
197
198
199
200
201
202
203
204
205
206
if ($_['suggestedOverwriteWebroot']) {
	?>
	<div class="section">
		<h2><?php p($l->t('URL generation in notification emails'));?></h2>

		<span class="connectionwarning">
		<?php p($l->t('If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the "overwritewebroot" option in your config.php file to the webroot path of your installation (Suggested: "%s")', $_['suggestedOverwriteWebroot'])); ?>
	</span>

	</div>
<?php
}
207
?>
208
<div id="postsetupchecks" class="section">
209
	<h2><?php p($l->t('Connectivity Checks'));?></h2>
210
211
212
213
214
215
216
217
218
	<div class="loading"></div>
	<div class="success hidden"><?php p($l->t('No problems found'));?></div>
	<div class="errors hidden"></div>
	<div class="hint hidden">
		<span class="setupwarning"><?php
			print_unescaped($l->t('Please double check the <a href=\'%s\'>installation guides</a>.', \OC_Helper::linkToDocs('admin-install')));
		?></span>
	</div>
</div>
219
220
221
222
223
224
</div>
<?php foreach($_['forms'] as $form) {
	if (isset($form['form'])) {?>
		<div id="<?php isset($form['anchor']) ? p($form['anchor']) : p('');?>"><?php print_unescaped($form['form']);?></div>
	<?php }
};?>
225

226
<div class="section" id="backgroundjobs">
227
228
229
230
	<h2 class="inlineblock"><?php p($l->t('Cron'));?></h2>
	<?php if ($_['cron_log']): ?>
	<p class="cronlog inlineblock">
		<?php if ($_['lastcron'] !== false):
231
			$human_time = OC_Util::formatDate($_['lastcron']);
232
233
234
235
236
237
238
239
240
241
242
243
244
			if (time() - $_['lastcron'] <= 3600): ?>
				<span class="cronstatus success"></span>
				<?php p($l->t("Last cron was executed at %s.", array($human_time)));
			else: ?>
				<span class="cronstatus error"></span>
				<?php p($l->t("Last cron was executed at %s. This is more than an hour ago, something seems wrong.", array($human_time)));
			endif;
		else: ?>
			<span class="cronstatus error"></span>
			<?php p($l->t("Cron was not executed yet!"));
		endif; ?>
	</p>
	<?php endif; ?>
245
	<p>
Bart Visscher's avatar
Bart Visscher committed
246
				<input type="radio" name="mode" value="ajax"
kondou's avatar
kondou committed
247
					   id="backgroundjobs_ajax" <?php if ($_['backgroundjobs_mode'] === "ajax") {
Lukas Reschke's avatar
Lukas Reschke committed
248
					print_unescaped('checked="checked"');
Bart Visscher's avatar
Bart Visscher committed
249
250
				} ?>>
				<label for="backgroundjobs_ajax">AJAX</label><br/>
Lukas Reschke's avatar
Lukas Reschke committed
251
				<em><?php p($l->t("Execute one task with each page loaded")); ?></em>
252
253
	</p>
	<p>
Bart Visscher's avatar
Bart Visscher committed
254
				<input type="radio" name="mode" value="webcron"
kondou's avatar
kondou committed
255
					   id="backgroundjobs_webcron" <?php if ($_['backgroundjobs_mode'] === "webcron") {
Lukas Reschke's avatar
Lukas Reschke committed
256
					print_unescaped('checked="checked"');
Bart Visscher's avatar
Bart Visscher committed
257
258
				} ?>>
				<label for="backgroundjobs_webcron">Webcron</label><br/>
Frank Karlitschek's avatar
Frank Karlitschek committed
259
				<em><?php p($l->t("cron.php is registered at a webcron service to call cron.php every 15 minutes over http.")); ?></em>
260
261
	</p>
	<p>
Bart Visscher's avatar
Bart Visscher committed
262
				<input type="radio" name="mode" value="cron"
kondou's avatar
kondou committed
263
					   id="backgroundjobs_cron" <?php if ($_['backgroundjobs_mode'] === "cron") {
Lukas Reschke's avatar
Lukas Reschke committed
264
					print_unescaped('checked="checked"');
Bart Visscher's avatar
Bart Visscher committed
265
266
				} ?>>
				<label for="backgroundjobs_cron">Cron</label><br/>
Volkan Gezer's avatar
Volkan Gezer committed
267
				<em><?php p($l->t("Use system's cron service to call the cron.php file every 15 minutes.")); ?></em>
268
	</p>
269
</div>
270

271
<div class="section" id="shareAPI">
272
	<h2><?php p($l->t('Sharing'));?></h2>
273
274
275
276
277
278
279
280
281
282
283
284
		<p id="enable">
			<input type="checkbox" name="shareapi_enabled" id="shareAPIEnabled"
				   value="1" <?php if ($_['shareAPIEnabled'] === 'yes') print_unescaped('checked="checked"'); ?> />
			<label for="shareAPIEnabled"><?php p($l->t('Allow apps to use the Share API'));?></label><br/>
		</p>
		<p class="<?php if ($_['shareAPIEnabled'] === 'no') p('hidden');?>">
			<input type="checkbox" name="shareapi_allow_links" id="allowLinks"
				   value="1" <?php if ($_['allowLinks'] === 'yes') print_unescaped('checked="checked"'); ?> />
			<label for="allowLinks"><?php p($l->t('Allow users to share via link'));?></label><br/>
		</p>

			<p id="publicLinkSettings" class="indent <?php if ($_['allowLinks'] !== 'yes' || $_['shareAPIEnabled'] === 'no') p('hidden'); ?>">
285
286
287
				<input type="checkbox" name="shareapi_enforce_links_password" id="enforceLinkPassword"
						   value="1" <?php if ($_['enforceLinkPassword']) print_unescaped('checked="checked"'); ?> />
				<label for="enforceLinkPassword"><?php p($l->t('Enforce password protection'));?></label><br/>
288
289
				<input type="checkbox" name="shareapi_allow_public_upload" id="allowPublicUpload"
				       value="1" <?php if ($_['allowPublicUpload'] == 'yes') print_unescaped('checked="checked"'); ?> />
Thomas Mueller's avatar
Thomas Mueller committed
290
				<label for="allowPublicUpload"><?php p($l->t('Allow public uploads'));?></label><br/>
291
292
293
294

				<input type="checkbox" name="shareapi_default_expire_date" id="shareapiDefaultExpireDate"
				       value="1" <?php if ($_['shareDefaultExpireDateSet'] === 'yes') print_unescaped('checked="checked"'); ?> />
				<label for="shareapiDefaultExpireDate"><?php p($l->t('Set default expiration date'));?></label><br/>
295
296
297

			</p>
				<p id="setDefaultExpireDate" class="double-indent <?php if ($_['allowLinks'] !== 'yes' || $_['shareDefaultExpireDateSet'] === 'no' || $_['shareAPIEnabled'] === 'no') p('hidden');?>">
298
299
300
301
302
					<?php p($l->t( 'Expire after ' )); ?>
					<input type="text" name='shareapi_expire_after_n_days' id="shareapiExpireAfterNDays" placeholder="<?php p('7')?>"
						   value='<?php p($_['shareExpireAfterNDays']) ?>' />
					<?php p($l->t( 'days' )); ?>
					<input type="checkbox" name="shareapi_enforce_expire_date" id="shareapiEnforceExpireDate"
303
						   value="1" <?php if ($_['shareEnforceExpireDate'] === 'yes') print_unescaped('checked="checked"'); ?> />
304
					<label for="shareapiEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/>
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
				</p>
		<p class="<?php if ($_['shareAPIEnabled'] === 'no') p('hidden');?>">
			<input type="checkbox" name="shareapi_allow_resharing" id="allowResharing"
				   value="1" <?php if ($_['allowResharing'] === 'yes') print_unescaped('checked="checked"'); ?> />
			<label for="allowResharing"><?php p($l->t('Allow resharing'));?></label><br/>
		</p>
		<p class="<?php if ($_['shareAPIEnabled'] === 'no') p('hidden');?>">
			<input type="checkbox" name="shareapi_only_share_with_group_members" id="onlyShareWithGroupMembers"
				   value="1" <?php if ($_['onlyShareWithGroupMembers']) print_unescaped('checked="checked"'); ?> />
			<label for="onlyShareWithGroupMembers"><?php p($l->t('Restrict users to only share with users in their groups'));?></label><br/>
		</p>
		<p class="<?php if ($_['shareAPIEnabled'] === 'no') p('hidden');?>">
			<input type="checkbox" name="shareapi_allow_mail_notification" id="allowMailNotification"
				   value="1" <?php if ($_['allowMailNotification'] === 'yes') print_unescaped('checked="checked"'); ?> />
			<label for="allowMailNotification"><?php p($l->t('Allow users to send mail notification for shared files'));?></label><br/>
		</p>
		<p class="<?php if ($_['shareAPIEnabled'] === 'no') p('hidden');?>">
			<input type="checkbox" name="shareapi_exclude_groups" id="shareapiExcludeGroups"
			       value="1" <?php if ($_['shareExcludeGroups']) print_unescaped('checked="checked"'); ?> />
			<label for="shareapiExcludeGroups"><?php p($l->t('Exclude groups from sharing'));?></label><br/>
		</p>
			<p id="selectExcludedGroups" class="indent <?php if (!$_['shareExcludeGroups'] || $_['shareAPIEnabled'] === 'no') p('hidden'); ?>">
327
				<input name="shareapi_exclude_groups_list" type="hidden" id="excludedGroups" value="<?php p($_['shareExcludedGroupsList']) ?>" style="width: 400px"/>
328
				<br />
329
				<em><?php p($l->t('These groups will still be able to receive shares, but not to initiate them.')); ?></em>
330
			</p>
331
</div>
332

333
<div class="section" id="security">
334
	<h2><?php p($l->t('Security'));?></h2>
335
336
337
338
339
	<p>
		<input type="checkbox" name="forcessl"  id="forcessl"
			<?php if ($_['enforceHTTPSEnabled']) {
				print_unescaped('checked="checked" ');
				print_unescaped('value="true"');
340
341
			}  else {
				print_unescaped('value="false"');
342
343
344
345
346
347
348
			}
			?>
			<?php if (!$_['isConnectedViaHTTPS']) p('disabled'); ?> />
		<label for="forcessl"><?php p($l->t('Enforce HTTPS'));?></label><br/>
		<em><?php p($l->t(
			'Forces the clients to connect to %s via an encrypted connection.',
			$theme->getName()
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
		)); ?></em><br/>
		<span id="forceSSLforSubdomainsSpan" <?php if(!$_['enforceHTTPSEnabled']) { print_unescaped('class="hidden"'); } ?>>
			<input type="checkbox" name="forceSSLforSubdomains"  id="forceSSLforSubdomains"
				<?php if ($_['forceSSLforSubdomainsEnabled']) {
					print_unescaped('checked="checked" ');
					print_unescaped('value="true"');
				}  else {
					print_unescaped('value="false"');
				}
				?>
				<?php if (!$_['isConnectedViaHTTPS']) { p('disabled'); } ?> />
			<label for="forceSSLforSubdomains"><?php p($l->t('Enforce HTTPS for subdomains'));?></label><br/>
			<em><?php p($l->t(
					'Forces the clients to connect to %s and subdomains via an encrypted connection.',
					$theme->getName()
				)); ?></em>
		</span>
366
367
368
369
370
371
372
373
374
375
		<?php if (!$_['isConnectedViaHTTPS']) {
			print_unescaped("<br/><em>");
			p($l->t(
				'Please connect to your %s via HTTPS to enable or disable the SSL enforcement.',
				$theme->getName()
			));
			print_unescaped("</em>");
		}
		?>
	</p>
376
</div>
377

378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
<div class="section">
	<form id="mail_general_settings" class="mail_settings">
		<h2><?php p($l->t('Email Server'));?></h2>

		<p><?php p($l->t('This is used for sending out notifications.')); ?> <span id="mail_settings_msg" class="msg"></span></p>

		<p>
			<label for="mail_smtpmode"><?php p($l->t( 'Send mode' )); ?></label>
			<select name='mail_smtpmode' id='mail_smtpmode'>
				<?php foreach ($mail_smtpmode as $smtpmode):
					$selected = '';
					if ($smtpmode == $_['mail_smtpmode']):
						$selected = 'selected="selected"';
					endif; ?>
					<option value='<?php p($smtpmode)?>' <?php p($selected) ?>><?php p($smtpmode) ?></option>
				<?php endforeach;?>
			</select>

			<label id="mail_smtpsecure_label" for="mail_smtpsecure"
				   <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>>
				<?php p($l->t( 'Encryption' )); ?>
			</label>
			<select name="mail_smtpsecure" id="mail_smtpsecure"
					<?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>>
				<?php foreach ($mail_smtpsecure as $secure => $name):
					$selected = '';
					if ($secure == $_['mail_smtpsecure']):
						$selected = 'selected="selected"';
					endif; ?>
					<option value='<?php p($secure)?>' <?php p($selected) ?>><?php p($name) ?></option>
				<?php endforeach;?>
			</select>
		</p>
411

412
413
414
415
416
417
418
		<p>
			<label for="mail_from_address"><?php p($l->t( 'From address' )); ?></label>
			<input type="text" name='mail_from_address' id="mail_from_address" placeholder="<?php p($l->t('mail'))?>"
				   value='<?php p($_['mail_from_address']) ?>' />
			<input type="text" name='mail_domain' id="mail_domain" placeholder="example.com"
				   value='<?php p($_['mail_domain']) ?>' />
		</p>
419

420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
		<p id="setting_smtpauth" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>>
			<label for="mail_smtpauthtype"><?php p($l->t( 'Authentication method' )); ?></label>
			<select name='mail_smtpauthtype' id='mail_smtpauthtype'>
				<?php foreach ($mail_smtpauthtype as $authtype => $name):
					$selected = '';
					if ($authtype == $_['mail_smtpauthtype']):
						$selected = 'selected="selected"';
					endif; ?>
					<option value='<?php p($authtype)?>' <?php p($selected) ?>><?php p($name) ?></option>
				<?php endforeach;?>
			</select>

			<input type="checkbox" name="mail_smtpauth" id="mail_smtpauth" value="1"
				   <?php if ($_['mail_smtpauth']) print_unescaped('checked="checked"'); ?> />
			<label for="mail_smtpauth"><?php p($l->t( 'Authentication required' )); ?></label>
		</p>
436

437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
		<p id="setting_smtphost" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>>
			<label for="mail_smtphost"><?php p($l->t( 'Server address' )); ?></label>
			<input type="text" name='mail_smtphost' id="mail_smtphost" placeholder="smtp.example.com"
				   value='<?php p($_['mail_smtphost']) ?>' />
			:
			<input type="text" name='mail_smtpport' id="mail_smtpport" placeholder="<?php p($l->t('Port'))?>"
				   value='<?php p($_['mail_smtpport']) ?>' />
		</p>
	</form>
	<form class="mail_settings" id="mail_credentials_settings">
		<p id="mail_credentials" <?php if (!$_['mail_smtpauth'] || $_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>>
			<label for="mail_smtpname"><?php p($l->t( 'Credentials' )); ?></label>
			<input type="text" name='mail_smtpname' id="mail_smtpname" placeholder="<?php p($l->t('SMTP Username'))?>"
				   value='<?php p($_['mail_smtpname']) ?>' />
			<input type="password" name='mail_smtppassword' id="mail_smtppassword"
				   placeholder="<?php p($l->t('SMTP Password'))?>" value='<?php p($_['mail_smtppassword']) ?>' />
			<input id="mail_credentials_settings_submit" type="button" value="<?php p($l->t('Store credentials')) ?>">
		</p>
	</form>
456

457
458
459
460
	<br />
	<em><?php p($l->t( 'Test email settings' )); ?></em>
	<input type="submit" name="sendtestemail" id="sendtestemail" value="<?php p($l->t( 'Send email' )); ?>"/>
	<span id="sendtestmail_msg" class="msg"></span>
461
</div>
462

463
<div class="section" id="log-section">
464
	<h2><?php p($l->t('Log'));?></h2>
Lukas Reschke's avatar
Lukas Reschke committed
465
	<?php p($l->t('Log level'));?> <select name='loglevel' id='loglevel'>
466
467
468
469
470
471
472
<?php for ($i = 0; $i < 5; $i++):
	$selected = '';
	if ($i == $_['loglevel']):
		$selected = 'selected="selected"';
	endif; ?>
		<option value='<?php p($i)?>' <?php p($selected) ?>><?php p($levelLabels[$i])?></option>
<?php endfor;?>
473
</select>
474
	<table id="log" class="grid">
Bart Visscher's avatar
Bart Visscher committed
475
476
477
		<?php foreach ($_['entries'] as $entry): ?>
		<tr>
			<td>
Lukas Reschke's avatar
Lukas Reschke committed
478
				<?php p($levels[$entry->level]);?>
Bart Visscher's avatar
Bart Visscher committed
479
480
			</td>
			<td>
Lukas Reschke's avatar
Lukas Reschke committed
481
				<?php p($entry->app);?>
Bart Visscher's avatar
Bart Visscher committed
482
483
			</td>
			<td>
Lukas Reschke's avatar
Lukas Reschke committed
484
				<?php p($entry->message);?>
Bart Visscher's avatar
Bart Visscher committed
485
			</td>
486
			<td class="date">
487
				<?php if(is_int($entry->time)){
488
					p(OC_Util::formatDate($entry->time));
489
490
491
				} else {
					p($entry->time);
				}?>
Bart Visscher's avatar
Bart Visscher committed
492
493
494
495
496
			</td>
		</tr>
		<?php endforeach;?>
	</table>
	<?php if ($_['entriesremain']): ?>
Morris Jobke's avatar
Morris Jobke committed
497
498
	<input id="moreLog" type="button" value="<?php p($l->t('More'));?>...">
	<input id="lessLog" type="button" value="<?php p($l->t('Less'));?>...">
Bart Visscher's avatar
Bart Visscher committed
499
	<?php endif; ?>
500

501
</div>
502

503
<div class="section">
504
	<h2><?php p($l->t('Version'));?></h2>
505
	<strong><?php p($theme->getTitle()); ?></strong> <?php p(OC_Util::getHumanVersion()) ?>
506
<?php if (OC_Util::getEditionString() === ''): ?>
507
508
509
	<p>
		<?php print_unescaped($l->t('Developed by the <a href="http://ownCloud.org/contact" target="_blank">ownCloud community</a>, the <a href="https://github.com/owncloud" target="_blank">source code</a> is licensed under the <a href="http://www.gnu.org/licenses/agpl-3.0.html" target="_blank"><abbr title="Affero General Public License">AGPL</abbr></a>.')); ?>
	</p>
510
<?php endif; ?>
511
512
513
514
515
</div>

<div class="section credits-footer">
	<p><?php print_unescaped($theme->getShortFooter()); ?></p>
</div>
516
</div>