mirror of
https://github.com/Yetangitu/ampache
synced 2025-10-03 09:49:30 +02:00
Fix some list headers, remove innodb engines from sql update process and add themes preview images
This commit is contained in:
parent
9abed639d8
commit
1804b17730
9 changed files with 118 additions and 110 deletions
|
@ -1668,7 +1668,7 @@ class Update
|
||||||
"`date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
"`date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"PRIMARY KEY (`id`)," .
|
"PRIMARY KEY (`id`)," .
|
||||||
"UNIQUE KEY `unique_userflag` (`user`,`object_type`,`object_id`)," .
|
"UNIQUE KEY `unique_userflag` (`user`,`object_type`,`object_id`)," .
|
||||||
"KEY `object_id` (`object_id`))";
|
"KEY `object_id` (`object_id`)) ENGINE = MYISAM";
|
||||||
return Dba::write($sql);
|
return Dba::write($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1949,7 +1949,7 @@ class Update
|
||||||
"`date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
"`date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"`accepted` tinyint(1) NOT NULL DEFAULT '0'," .
|
"`accepted` tinyint(1) NOT NULL DEFAULT '0'," .
|
||||||
"PRIMARY KEY (`id`)," .
|
"PRIMARY KEY (`id`)," .
|
||||||
"UNIQUE KEY `unique_wanted` (`user`, `artist`,`mbid`))";
|
"UNIQUE KEY `unique_wanted` (`user`, `artist`,`mbid`)) ENGINE = MYISAM";
|
||||||
|
|
||||||
return Dba::write($sql);
|
return Dba::write($sql);
|
||||||
}
|
}
|
||||||
|
@ -1971,7 +1971,7 @@ class Update
|
||||||
"`disk` int(11) NULL," .
|
"`disk` int(11) NULL," .
|
||||||
"`track` int(11) NULL," .
|
"`track` int(11) NULL," .
|
||||||
"`file` varchar(255) CHARACTER SET utf8 NULL," .
|
"`file` varchar(255) CHARACTER SET utf8 NULL," .
|
||||||
"PRIMARY KEY (`id`))";
|
"PRIMARY KEY (`id`)) ENGINE = MYISAM";
|
||||||
|
|
||||||
return Dba::write($sql);
|
return Dba::write($sql);
|
||||||
}
|
}
|
||||||
|
@ -2118,7 +2118,7 @@ class Update
|
||||||
"`lastvisit_date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
"`lastvisit_date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"`public_url` varchar(255) CHARACTER SET utf8 NULL," .
|
"`public_url` varchar(255) CHARACTER SET utf8 NULL," .
|
||||||
"`description` varchar(255) CHARACTER SET utf8 NULL," .
|
"`description` varchar(255) CHARACTER SET utf8 NULL," .
|
||||||
"PRIMARY KEY (`id`))";
|
"PRIMARY KEY (`id`)) ENGINE = MYISAM";
|
||||||
Dba::write($sql);
|
Dba::write($sql);
|
||||||
|
|
||||||
$sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
|
$sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
|
||||||
|
@ -2206,7 +2206,7 @@ class Update
|
||||||
"`stream_type` varchar(8) CHARACTER SET utf8 NOT NULL DEFAULT 'mp3'," .
|
"`stream_type` varchar(8) CHARACTER SET utf8 NOT NULL DEFAULT 'mp3'," .
|
||||||
"`bitrate` int(11) unsigned NOT NULL DEFAULT '128'," .
|
"`bitrate` int(11) unsigned NOT NULL DEFAULT '128'," .
|
||||||
"`pid` int(11) unsigned NOT NULL DEFAULT '0'," .
|
"`pid` int(11) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"PRIMARY KEY (`id`))";
|
"PRIMARY KEY (`id`)) ENGINE = MYISAM";
|
||||||
return Dba::write($sql);
|
return Dba::write($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2227,7 +2227,7 @@ class Update
|
||||||
"`started` tinyint(1) unsigned NOT NULL DEFAULT '0'," .
|
"`started` tinyint(1) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"`listeners` int(11) unsigned NOT NULL DEFAULT '0'," .
|
"`listeners` int(11) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"`key` varchar(32) CHARACTER SET utf8 NULL," .
|
"`key` varchar(32) CHARACTER SET utf8 NULL," .
|
||||||
"PRIMARY KEY (`id`))";
|
"PRIMARY KEY (`id`)) ENGINE = MYISAM";
|
||||||
Dba::write($sql);
|
Dba::write($sql);
|
||||||
|
|
||||||
$sql = "CREATE TABLE `player_control` (" .
|
$sql = "CREATE TABLE `player_control` (" .
|
||||||
|
@ -2238,7 +2238,7 @@ class Update
|
||||||
"`object_type` varchar(32) NOT NULL," .
|
"`object_type` varchar(32) NOT NULL," .
|
||||||
"`object_id` int(11) unsigned NOT NULL," .
|
"`object_id` int(11) unsigned NOT NULL," .
|
||||||
"`send_date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
"`send_date` int(11) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"PRIMARY KEY (`id`))";
|
"PRIMARY KEY (`id`)) ENGINE = MYISAM";
|
||||||
|
|
||||||
return Dba::write($sql);
|
return Dba::write($sql);
|
||||||
}
|
}
|
||||||
|
@ -2278,7 +2278,7 @@ class Update
|
||||||
"`object_type` varchar(32) NOT NULL," .
|
"`object_type` varchar(32) NOT NULL," .
|
||||||
"`object_id` int(11) unsigned NOT NULL," .
|
"`object_id` int(11) unsigned NOT NULL," .
|
||||||
"`last_update` int(11) unsigned NOT NULL DEFAULT '0'," .
|
"`last_update` int(11) unsigned NOT NULL DEFAULT '0'," .
|
||||||
"PRIMARY KEY (`id`))";
|
"PRIMARY KEY (`id`)) ENGINE = MYISAM";
|
||||||
Dba::write($sql);
|
Dba::write($sql);
|
||||||
|
|
||||||
$sql = "CREATE TABLE `recommendation_item` (" .
|
$sql = "CREATE TABLE `recommendation_item` (" .
|
||||||
|
@ -2288,7 +2288,7 @@ class Update
|
||||||
"`name` varchar(256) NULL," .
|
"`name` varchar(256) NULL," .
|
||||||
"`rel` varchar(256) NULL," .
|
"`rel` varchar(256) NULL," .
|
||||||
"`mbid` varchar(1369) NULL," .
|
"`mbid` varchar(1369) NULL," .
|
||||||
"PRIMARY KEY (`id`))";
|
"PRIMARY KEY (`id`)) ENGINE = MYISAM";
|
||||||
Dba::write($sql);
|
Dba::write($sql);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<td class="cel_name"><?php echo $channel->name; ?></td>
|
<td class="cel_name"><?php echo $channel->name; ?></td>
|
||||||
<td class="cel_interface"><?php echo $channel->interface; ?></td>
|
<td class="cel_interface"><?php echo $channel->interface; ?></td>
|
||||||
<td class="cel_port"><?php echo $channel->port; ?></td>
|
<td class="cel_port"><?php echo $channel->port; ?></td>
|
||||||
<td class="cel_data"><?php echo $channel->get_target_object()->f_link; ?></td>
|
<td class="cel_data"><?php echo $channel->get_target_object()->f_name_link; ?></td>
|
||||||
<!--<td class="cel_random"><?php echo ($channel->random ? T_('Yes') : T_('No')); ?></td>
|
<!--<td class="cel_random"><?php echo ($channel->random ? T_('Yes') : T_('No')); ?></td>
|
||||||
<td class="cel_loop"><?php echo ($channel->loop ? T_('Yes') : T_('No')); ?></td>-->
|
<td class="cel_loop"><?php echo ($channel->loop ? T_('Yes') : T_('No')); ?></td>-->
|
||||||
<td class="cel_streamtype"><?php echo $channel->stream_type; ?></td>
|
<td class="cel_streamtype"><?php echo $channel->stream_type; ?></td>
|
||||||
|
|
|
@ -25,28 +25,29 @@ $web_path = AmpConfig::get('web_path');
|
||||||
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
|
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||||
<form method="post" id="reorder_playlist_<?php echo $playlist->id; ?>">
|
<form method="post" id="reorder_playlist_<?php echo $playlist->id; ?>">
|
||||||
<table id="reorder_playlist_table" class="tabledata" cellpadding="0" cellspacing="0">
|
<table id="reorder_playlist_table" class="tabledata" cellpadding="0" cellspacing="0">
|
||||||
<tr class="th-top">
|
<thead>
|
||||||
<th class="cel_play"></th>
|
<tr class="th-top">
|
||||||
<th class="cel_song"><?php echo T_('Song Title'); ?></th>
|
<th class="cel_play"></th>
|
||||||
<th class="cel_add"></th>
|
<th class="cel_song"><?php echo T_('Song Title'); ?></th>
|
||||||
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
<th class="cel_add"></th>
|
||||||
<th class="cel_album"><?php echo T_('Album'); ?></th>
|
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
||||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
<th class="cel_album"><?php echo T_('Album'); ?></th>
|
||||||
<th class="cel_time"><?php echo T_('Time'); ?></th>
|
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||||
<?php if (AmpConfig::get('ratings')) {
|
<th class="cel_time"><?php echo T_('Time'); ?></th>
|
||||||
Rating::build_cache('song', array_map(create_function('$i', 'return $i[\'object_id\'];'), $object_ids));
|
<?php if (AmpConfig::get('ratings')) {
|
||||||
?>
|
Rating::build_cache('song', array_map(create_function('$i', 'return $i[\'object_id\'];'), $object_ids));
|
||||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
?>
|
||||||
<?php } ?>
|
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||||
<?php if (AmpConfig::get('userflags')) {
|
<?php } ?>
|
||||||
Userflag::build_cache('song', array_map(create_function('$i', 'return $i[\'object_id\'];'), $object_ids));
|
<?php if (AmpConfig::get('userflags')) {
|
||||||
?>
|
Userflag::build_cache('song', array_map(create_function('$i', 'return $i[\'object_id\'];'), $object_ids));
|
||||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
?>
|
||||||
<?php } ?>
|
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||||
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
<?php } ?>
|
||||||
<th class="cel_drag"></th>
|
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
||||||
</tr>
|
<th class="cel_drag"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
<tbody id="sortableplaylist">
|
<tbody id="sortableplaylist">
|
||||||
<?php foreach ($object_ids as $object) {
|
<?php foreach ($object_ids as $object) {
|
||||||
$song = new Song($object['object_id']);
|
$song = new Song($object['object_id']);
|
||||||
|
@ -58,24 +59,25 @@ $web_path = AmpConfig::get('web_path');
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
<tr class="th-bottom">
|
<tr class="th-bottom">
|
||||||
<th class="cel_play"><?php echo T_('Play'); ?></th>
|
<th class="cel_play"><?php echo T_('Play'); ?></th>
|
||||||
<th class="cel_song"><?php echo T_('Song Title'); ?></th>
|
<th class="cel_song"><?php echo T_('Song Title'); ?></th>
|
||||||
<th class="cel_add"></th>
|
<th class="cel_add"></th>
|
||||||
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
||||||
<th class="cel_album"><?php echo T_('Album'); ?></th>
|
<th class="cel_album"><?php echo T_('Album'); ?></th>
|
||||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||||
<th class="cel_time"><?php echo T_('Time'); ?></th>
|
<th class="cel_time"><?php echo T_('Time'); ?></th>
|
||||||
<?php if (AmpConfig::get('ratings')) { ?>
|
<?php if (AmpConfig::get('ratings')) { ?>
|
||||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php if (AmpConfig::get('userflags')) { ?>
|
<?php if (AmpConfig::get('userflags')) { ?>
|
||||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
<th class="cel_action"><?php echo T_('Action'); ?></th>
|
||||||
<th class="cel_drag"></th>
|
<th class="cel_drag"></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
|
<?php if ($browse->get_show_header()) require AmpConfig::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||||
|
|
|
@ -24,66 +24,72 @@ $thcount = 8;
|
||||||
?>
|
?>
|
||||||
<?php UI::show_box_top(T_('Similar Artists'), 'info-box'); ?>
|
<?php UI::show_box_top(T_('Similar Artists'), 'info-box'); ?>
|
||||||
<table class="tabledata" cellpadding="0" cellspacing="0">
|
<table class="tabledata" cellpadding="0" cellspacing="0">
|
||||||
<tr class="th-top">
|
<thead>
|
||||||
<th class="cel_play"></th>
|
<tr class="th-top">
|
||||||
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
<th class="cel_play"></th>
|
||||||
<th class="cel_add"></th>
|
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
||||||
<th class="cel_songs"><?php echo T_('Songs'); ?></th>
|
<th class="cel_add"></th>
|
||||||
<th class="cel_albums"><?php echo T_('Albums'); ?></th>
|
<th class="cel_songs"><?php echo T_('Songs'); ?></th>
|
||||||
<th class="cel_time"><?php echo T_('Time'); ?></th>
|
<th class="cel_albums"><?php echo T_('Albums'); ?></th>
|
||||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
<th class="cel_time"><?php echo T_('Time'); ?></th>
|
||||||
<?php if (AmpConfig::get('ratings')) { ++$thcount; ?>
|
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
<?php if (AmpConfig::get('ratings')) { ++$thcount; ?>
|
||||||
<?php } ?>
|
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||||
<?php if (AmpConfig::get('userflags')) { ++$thcount; ?>
|
<?php } ?>
|
||||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
<?php if (AmpConfig::get('userflags')) { ++$thcount; ?>
|
||||||
<?php } ?>
|
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||||
<th class="cel_action"> <?php echo T_('Action'); ?> </th>
|
<?php } ?>
|
||||||
</tr>
|
<th class="cel_action"> <?php echo T_('Action'); ?> </th>
|
||||||
<?php
|
</tr>
|
||||||
// Cache the ratings we are going to use
|
</thead>
|
||||||
if (AmpConfig::get('ratings')) { Rating::build_cache('artist',$object_ids); }
|
<tbody>
|
||||||
// Cache the userflags we are going to use
|
<?php
|
||||||
if (AmpConfig::get('userflags')) { Userflag::build_cache('artist',$object_ids); }
|
// Cache the ratings we are going to use
|
||||||
|
if (AmpConfig::get('ratings')) { Rating::build_cache('artist',$object_ids); }
|
||||||
|
// Cache the userflags we are going to use
|
||||||
|
if (AmpConfig::get('userflags')) { Userflag::build_cache('artist',$object_ids); }
|
||||||
|
|
||||||
/* Foreach through every artist that has been passed to us */
|
/* Foreach through every artist that has been passed to us */
|
||||||
foreach ($object_ids as $artist_id) {
|
foreach ($object_ids as $artist_id) {
|
||||||
$artist = new Artist($artist_id);
|
$artist = new Artist($artist_id);
|
||||||
$artist->format();
|
$artist->format();
|
||||||
?>
|
?>
|
||||||
<tr id="artist_<?php echo $artist->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
<tr id="artist_<?php echo $artist->id; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||||
<?php require AmpConfig::get('prefix') . '/templates/show_artist_row.inc.php'; ?>
|
<?php require AmpConfig::get('prefix') . '/templates/show_artist_row.inc.php'; ?>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php
|
<?php
|
||||||
/* Foreach through every missing artist that has been passed to us */
|
/* Foreach through every missing artist that has been passed to us */
|
||||||
foreach ($missing_objects as $missing) {
|
foreach ($missing_objects as $missing) {
|
||||||
?>
|
?>
|
||||||
<tr id="missing_artist_<?php echo $missing['mbid']; ?>" class="<?php echo UI::flip_class(); ?>">
|
<tr id="missing_artist_<?php echo $missing['mbid']; ?>" class="<?php echo UI::flip_class(); ?>">
|
||||||
<td></td>
|
<td></td>
|
||||||
<td colspan="<?php echo ($thcount - 1); ?>"><a class="missing_album" href="<?php echo AmpConfig::get('web_path'); ?>/artists.php?action=show_missing&mbid=<?php echo $missing['mbid']; ?>" title="<?php echo scrub_out($missing['name']); ?>"><?php echo scrub_out($missing['name']); ?></a></td>
|
<td colspan="<?php echo ($thcount - 1); ?>"><a class="missing_album" href="<?php echo AmpConfig::get('web_path'); ?>/artists.php?action=show_missing&mbid=<?php echo $missing['mbid']; ?>" title="<?php echo scrub_out($missing['name']); ?>"><?php echo scrub_out($missing['name']); ?></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php if ((!$object_ids || !count($object_ids)) && (!$missing_objects || !count($missing_objects))) { ?>
|
<?php if ((!$object_ids || !count($object_ids)) && (!$missing_objects || !count($missing_objects))) { ?>
|
||||||
<tr class="<?php echo UI::flip_class(); ?>">
|
<tr class="<?php echo UI::flip_class(); ?>">
|
||||||
<td colspan="<?php echo $thcount; ?>"><span class="nodata"><?php echo T_('No similar artist found'); ?></span></td>
|
<td colspan="<?php echo $thcount; ?>"><span class="nodata"><?php echo T_('No similar artist found'); ?></span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<tr class="th-bottom">
|
</tbody>
|
||||||
<th class="cel_play"></th>
|
<tfoot>
|
||||||
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
<tr class="th-bottom">
|
||||||
<th class="cel_add"></th>
|
<th class="cel_play"></th>
|
||||||
<th class="cel_songs"> <?php echo T_('Songs'); ?> </th>
|
<th class="cel_artist"><?php echo T_('Artist'); ?></th>
|
||||||
<th class="cel_albums"> <?php echo T_('Albums'); ?> </th>
|
<th class="cel_add"></th>
|
||||||
<th class="cel_time"> <?php echo T_('Time'); ?> </th>
|
<th class="cel_songs"> <?php echo T_('Songs'); ?> </th>
|
||||||
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
<th class="cel_albums"> <?php echo T_('Albums'); ?> </th>
|
||||||
<?php if (AmpConfig::get('ratings')) { ?>
|
<th class="cel_time"> <?php echo T_('Time'); ?> </th>
|
||||||
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
<th class="cel_tags"><?php echo T_('Tags'); ?></th>
|
||||||
<?php } ?>
|
<?php if (AmpConfig::get('ratings')) { ?>
|
||||||
<?php if (AmpConfig::get('userflags')) { ?>
|
<th class="cel_rating"><?php echo T_('Rating'); ?></th>
|
||||||
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
<?php } ?>
|
||||||
<?php } ?>
|
<?php if (AmpConfig::get('userflags')) { ?>
|
||||||
<th class="cel_action"> <?php echo T_('Action'); ?> </th>
|
<th class="cel_userflag"><?php echo T_('Flag'); ?></th>
|
||||||
</tr>
|
<?php } ?>
|
||||||
|
<th class="cel_action"> <?php echo T_('Action'); ?> </th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
<?php UI::show_box_bottom(); ?>
|
<?php UI::show_box_bottom(); ?>
|
||||||
|
|
BIN
themes/classic/preview.png
Normal file
BIN
themes/classic/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 164 KiB |
BIN
themes/fresh/preview.png
Normal file
BIN
themes/fresh/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 161 KiB |
BIN
themes/greysme/preview.png
Normal file
BIN
themes/greysme/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 139 KiB |
BIN
themes/penguin/preview.png
Normal file
BIN
themes/penguin/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 130 KiB |
BIN
themes/reborn/preview.png
Normal file
BIN
themes/reborn/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 336 KiB |
Loading…
Add table
Add a link
Reference in a new issue