2016-03-22 10:39:24 +01:00
|
|
|
#Official apps
|
|
|
|
|
|
|
|
<img src="/images/roundcube.png" width=50>
|
|
|
|
<img src="/images/ttrss.png" width=50>
|
|
|
|
<img src="/images/wordpress.png" width=50>
|
|
|
|
<img src="/images/transmission.png" width=50>
|
|
|
|
<img src="/images/jappix.png" width=50>
|
|
|
|
<img src="/images/logo-jirafeau.jpeg" width=50>
|
|
|
|
<img src="/images/Logo-wallabag-svg.svg" width=50>
|
|
|
|
<img src="/images/Searx_logo.svg" width=50>
|
2017-04-12 11:47:11 +02:00
|
|
|
<img src="/images/rainloop_logo.png" width=40>
|
2017-04-12 12:01:02 +02:00
|
|
|
<img src="/images/Nextcloud_Logo.svg" width=70>
|
2017-04-12 12:22:16 +02:00
|
|
|
<img src="/images/privatebin_icon.svg" width=40>
|
2013-11-16 10:38:12 +01:00
|
|
|
|
2015-10-04 01:21:52 +02:00
|
|
|
<a class="btn btn-lg btn-default disabled" href="/apps_en">Official apps</a> <a class="btn btn-lg btn-default" href="/apps_in_progress_en">Apps in progress</a> <a class="btn btn-lg btn-default" href="/apps_wishlist_en">Apps wishlist</a>
|
2015-04-01 15:58:08 +02:00
|
|
|
|
2015-10-05 12:59:09 +02:00
|
|
|
<div class="clearfix" style="margin-bottom: 1em;">
|
|
|
|
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion .collapse">View all</div>
|
|
|
|
</div>
|
|
|
|
|
2013-11-17 13:28:00 +01:00
|
|
|
<div class="panel-group" id="app-accordion"></div>
|
|
|
|
|
|
|
|
<script type="text/template" id="app-template">
|
|
|
|
<div class="panel panel-default">
|
|
|
|
<div class="panel-heading">
|
|
|
|
<div class="panel-title">
|
2015-10-04 02:29:29 +02:00
|
|
|
<a data-toggle="collapse" data-parent="#app-accordion" href="apps_en/#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
|
2013-11-17 13:28:00 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="panel-collapse collapse app_{app_id}">
|
|
|
|
<div class="panel-body">
|
|
|
|
<p><strong>Description</strong>: {app_description}</p>
|
2015-01-05 21:46:26 +01:00
|
|
|
<p><strong>Last update (UTC)</strong>: {app_update}</p>
|
2017-01-12 13:09:23 +01:00
|
|
|
<p><strong>Level</strong>: {app_level}</p>
|
2013-11-17 13:28:00 +01:00
|
|
|
<p><strong>Maintainer</strong>: {app_maintainer} <small class="text-muted">({app_mail})</small></p>
|
2015-10-04 14:52:04 +02:00
|
|
|
<p><strong>Git repository</strong>: <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
|
2014-06-15 16:34:01 +02:00
|
|
|
<a href="#/app_{app_id}" target="_blank" class="btn btn-default">Documentation</a>
|
2013-11-17 13:28:00 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</script>
|
2015-10-05 23:36:11 +02:00
|
|
|
<br />
|
2015-10-23 23:22:30 +02:00
|
|
|
<div class="alert alert-info">All official applications are under free licenses.</div>
|
2013-11-16 10:38:12 +01:00
|
|
|
|
|
|
|
<script>
|
2013-11-17 13:28:00 +01:00
|
|
|
function timeConverter(UNIX_timestamp) {
|
|
|
|
var a = new Date(UNIX_timestamp*1000);
|
2015-10-05 23:46:02 +02:00
|
|
|
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
|
2013-11-17 13:28:00 +01:00
|
|
|
var year = a.getFullYear();
|
|
|
|
var month = months[a.getMonth()];
|
|
|
|
var date = a.getDate();
|
|
|
|
var hour = a.getHours();
|
|
|
|
var min = a.getMinutes();
|
2013-12-09 15:15:40 +01:00
|
|
|
if (hour < 10) { hour = '0' + hour; }
|
|
|
|
if (min < 10) { min = '0' + min; }
|
2013-11-17 13:28:00 +01:00
|
|
|
var time = date+' '+month+' '+year+' at '+hour+':'+min;
|
|
|
|
return time;
|
|
|
|
}
|
|
|
|
|
2013-11-16 10:38:12 +01:00
|
|
|
$(document).ready(function () {
|
2016-03-23 08:46:09 +01:00
|
|
|
$.getJSON('https://app.yunohost.org/official.json', function(app_list) {
|
2014-11-20 15:20:00 +01:00
|
|
|
// Cast as array
|
|
|
|
var app_list = $.map(app_list, function(el) { return el; });
|
|
|
|
// Sort alpha
|
|
|
|
app_list.sort(function(a, b){
|
|
|
|
if (a.manifest.id > b.manifest.id) {return 1;}
|
|
|
|
else if (a.manifest.id < b.manifest.id) {return -1;}
|
|
|
|
return 0;
|
|
|
|
});
|
|
|
|
$.each(app_list, function(k, infos) {
|
|
|
|
app_id = infos.manifest.id;
|
2013-11-17 13:28:00 +01:00
|
|
|
html = $('#app-template').html()
|
|
|
|
.replace(/{app_id}/g, app_id)
|
|
|
|
.replace(/{app_name}/g, infos.manifest.name)
|
|
|
|
.replace('{app_description}', infos.manifest.description.en)
|
2015-01-05 21:46:26 +01:00
|
|
|
.replace(/{app_git}/g, infos.git.url)
|
2013-11-17 13:28:00 +01:00
|
|
|
.replace('{app_branch}', infos.git.branch)
|
2017-01-31 10:17:29 +01:00
|
|
|
.replace('{app_level}', infos.level)
|
2015-10-05 23:36:11 +02:00
|
|
|
.replace('{app_update}', timeConverter(infos.lastUpdate));
|
2014-12-12 10:55:43 +01:00
|
|
|
|
|
|
|
if (infos.manifest.developer) {
|
2014-12-12 10:58:45 +01:00
|
|
|
html = html
|
2014-12-12 10:55:43 +01:00
|
|
|
.replace('{app_maintainer}', infos.manifest.developer.name)
|
|
|
|
.replace('{app_mail}', infos.manifest.developer.email);
|
|
|
|
}
|
2015-01-05 21:46:26 +01:00
|
|
|
|
|
|
|
if (infos.manifest.maintainer) {
|
2014-12-12 10:58:45 +01:00
|
|
|
html = html
|
2015-01-05 21:46:26 +01:00
|
|
|
.replace('{app_maintainer}', infos.manifest.maintainer.name)
|
|
|
|
.replace('{app_mail}', infos.manifest.maintainer.email);
|
2014-12-12 10:57:15 +01:00
|
|
|
}
|
2014-12-12 10:55:43 +01:00
|
|
|
|
2013-11-17 13:28:00 +01:00
|
|
|
$('#app-accordion').append(html);
|
|
|
|
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
|
2013-11-16 10:38:12 +01:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
2017-01-12 13:09:23 +01:00
|
|
|
</script>
|