mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
Display the list of apps with nice cards (#537)
* [enh] Display the list of apps with nice cards * [fix] notworking and uppercase issue in app search
This commit is contained in:
parent
1923192205
commit
9ccdf22d16
13 changed files with 512 additions and 468 deletions
|
@ -28,9 +28,8 @@
|
|||
* [Avec OVH](/OVH_fr)
|
||||
* [Accéder à son domaine depuis le réseau local](/dns_local_network_fr)
|
||||
* [Nom de domaine en Nohost.me](/dns_nohost_me_fr)
|
||||
* [Applications officielles](/apps_fr)
|
||||
* [Applications](/apps_fr)
|
||||
* [Mettre à jour ses applications](app_update_fr)
|
||||
* [Applications en cours](apps_in_progress_fr)
|
||||
* [Applications souhaitées](apps_wishlist_fr)
|
||||
* [Nextcloud](app_nextcloud_fr)
|
||||
* [Fournisseurs d’accès à Internet](/isp_fr)
|
||||
|
|
277
apps.md
277
apps.md
|
@ -1,44 +1,133 @@
|
|||
#Official apps
|
||||
# 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/logo-jirafeau.jpeg" width=50>
|
||||
<img src="/images/Logo-wallabag-svg.svg" width=50>
|
||||
<img src="/images/Searx_logo.svg" width=50>
|
||||
<img src="/images/rainloop_logo.png" width=40>
|
||||
<img src="/images/Nextcloud_Logo.svg" width=70>
|
||||
<img src="/images/privatebin_icon.svg" width=40>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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">
|
||||
<a data-toggle="collapse" data-parent="#app-accordion" href="apps_en/#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input type="text" id="filter-app-cards" class="form-control" placeholder="Search for apps..." aria-describedby="basic-addon1"/>
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="app-cards-list-filter-text">Only official apps</span> <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#" id="app-cards-list-validated">Only official apps</a></li>
|
||||
<li><a href="#" id="app-cards-list-working">Only working apps</a></li>
|
||||
<li><a href="#" id="app-cards-list-working-inprogress">In progress/not working apps</a></li>
|
||||
<li><a href="#" id="app-cards-list-all-apps">All apps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-collapse collapse app_{app_id}">
|
||||
<br />
|
||||
<div id="community-app-list-warrant" class="alert alert-danger">
|
||||
<p>Only apps tagged <span class="label label-success label-as-badge">validated</span> are officially supported by the package team. </p>
|
||||
|
||||
<p>Apps tagged <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> are from community repository, you can test and use them **at your own risk**.</p>
|
||||
|
||||
<p>Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.</p>
|
||||
</div>
|
||||
<div class="alert alert-info">The packagers will appreciate your remarks. If you install them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page.</div>
|
||||
|
||||
<div class="app-cards-list" id="app-cards-list"></div>
|
||||
|
||||
<div class="alert alert-warning">If you don't find the app you are searching for, you can search it in community app repository (working, inprogress and not working apps) or fill the <a href="/apps_wishlist_en">apps wishlist</a>.</div>
|
||||
|
||||
<style>
|
||||
/*=================================================
|
||||
Search bar
|
||||
=================================================*/
|
||||
#filter-app-cards, #app-cards-list {
|
||||
width:100%;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
Force return space after card list
|
||||
=================================================*/
|
||||
#app-cards-list:after {
|
||||
content:'';
|
||||
display:block;
|
||||
clear: both;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card
|
||||
=================================================*/
|
||||
.app-card {
|
||||
margin-bottom:10px;
|
||||
width:270px;
|
||||
float:left;
|
||||
min-height: 1px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card body
|
||||
=================================================*/
|
||||
.app-card .panel-body > h3 {
|
||||
margin-top:0;
|
||||
margin-bottom:5px;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.app-card .category {
|
||||
height:50px;
|
||||
}
|
||||
.app-card .category .label, .app-card-date-maintainer {
|
||||
font-size:0.7em;
|
||||
}
|
||||
.app-card-date-maintainer {
|
||||
text-align:right;
|
||||
max-height: 18px;
|
||||
}
|
||||
|
||||
.app-card-desc {
|
||||
height:100px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card footer
|
||||
=================================================*/
|
||||
.app-card .btn-group {
|
||||
width:100%;
|
||||
margin-left: 0px;
|
||||
}
|
||||
.app-card > .btn-group > .btn{
|
||||
border-bottom:0;
|
||||
}
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
border-left:0;
|
||||
border-top-left-radius:0;
|
||||
}
|
||||
.app-card > .btn-group > .btn:last-child {
|
||||
border-right:0;
|
||||
border-top-right-radius:0;
|
||||
margin-left: 0px;
|
||||
}
|
||||
/*===============================================*/
|
||||
</style>
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="app-card_{app_id} app-card panel panel-default">
|
||||
|
||||
<div class="panel-body">
|
||||
<p><strong>Description</strong>: {app_description}</p>
|
||||
<p><strong>Last update (UTC)</strong>: {app_update}</p>
|
||||
<p><strong>Level</strong>: {app_level}</p>
|
||||
<p><strong>Maintainer</strong>: {app_maintainer} <small class="text-muted">({app_mail})</small></p>
|
||||
<p><strong>Git repository</strong>: <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
|
||||
<a href="#/app_{app_id}" target="_blank" class="btn btn-default">Documentation</a>
|
||||
<h3>{app_name}</h3>
|
||||
<div class="category"></div>
|
||||
|
||||
<div class="app-card-desc">{app_description}</div>
|
||||
<div class="app-card-date-maintainer">
|
||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
||||
<span class="glyphicon glyphicon-user"></span> {app_maintainer}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group" role="group">
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
||||
<a href="#/app_{app_id}_en" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Install</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</script>
|
||||
<br />
|
||||
<div class="alert alert-info">All official applications are under free licenses.</div>
|
||||
|
||||
<script>
|
||||
function timeConverter(UNIX_timestamp) {
|
||||
|
@ -51,30 +140,118 @@ function timeConverter(UNIX_timestamp) {
|
|||
var min = a.getMinutes();
|
||||
if (hour < 10) { hour = '0' + hour; }
|
||||
if (min < 10) { min = '0' + min; }
|
||||
var time = date+' '+month+' '+year+' at '+hour+':'+min;
|
||||
var time = date+' '+month+' '+year;//+' at '+hour+':'+min
|
||||
return time;
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$.getJSON('https://app.yunohost.org/official.json', function(app_list) {
|
||||
// Cast as array
|
||||
var app_list = $.map(app_list, function(el) { return el; });
|
||||
// Hide warrant about community list
|
||||
$('#community-app-list-warrant').hide();
|
||||
var filters = ["validated"];
|
||||
|
||||
function filter(){
|
||||
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
|
||||
var valThis = $('#filter-app-cards').val().toLowerCase();
|
||||
$('.app-card').each(function(){
|
||||
var text = $(this).find('h3').text().toLowerCase();
|
||||
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
|
||||
});
|
||||
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
|
||||
}
|
||||
|
||||
//=================================================
|
||||
// Search & filter bar event
|
||||
//=================================================
|
||||
$('#filter-app-cards').keyup(filter);
|
||||
|
||||
$('#app-cards-list-validated').click(function(){
|
||||
filters = ["validated"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working').click(function(){
|
||||
filters = ["validated", "working"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working-inprogress').click(function(){
|
||||
filters = ["notworking", "inprogress"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-all-apps').click(function(){
|
||||
filters = ["validated", "working", "inprogress", "notworking"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
||||
|
||||
//=================================================
|
||||
// Upload apps lists
|
||||
//=================================================
|
||||
var app_list={};
|
||||
$.when(
|
||||
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
|
||||
app_list.community = $.map(community, function(el) { return el; });
|
||||
}),
|
||||
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
|
||||
app_list.official = $.map(official, function(el) { return el; });
|
||||
})
|
||||
).then(function() {
|
||||
app_list = app_list.official.concat(app_list.community);
|
||||
|
||||
// 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;
|
||||
a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
|
||||
b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
|
||||
if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
|
||||
else if (a.manifest.id == b.manifest.id) {return 0;}
|
||||
return -1;
|
||||
});
|
||||
$.each(app_list, function(k, infos) {
|
||||
app_id = infos.manifest.id;
|
||||
html = $('#app-template').html()
|
||||
app_install_bootstrap = "success";
|
||||
if (infos.state === "validated") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "working") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
}
|
||||
if (infos.level == null ) {
|
||||
infos.level = '?';
|
||||
}
|
||||
if (infos.level == 0 ) {
|
||||
app_level_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level <= 2) {
|
||||
app_level_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level >= 7) {
|
||||
app_level_bootstrap = "success";
|
||||
} else {
|
||||
app_level_bootstrap = "default";
|
||||
}
|
||||
|
||||
// Fill the template
|
||||
html = $('#app-template2').html()
|
||||
.replace(/{app_id}/g, app_id)
|
||||
.replace(/{app_name}/g, infos.manifest.name)
|
||||
.replace('{app_description}', infos.manifest.description.en)
|
||||
.replace(/{app_git}/g, infos.git.url)
|
||||
.replace('{app_branch}', infos.git.branch)
|
||||
.replace('{app_level}', infos.level)
|
||||
.replace('{app_update}', timeConverter(infos.lastUpdate));
|
||||
.replace('{app_update}', timeConverter(infos.lastUpdate))
|
||||
.replace('{app_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_install_bootstrap}', app_install_bootstrap);
|
||||
|
||||
if (infos.manifest.developer) {
|
||||
html = html
|
||||
|
@ -88,9 +265,19 @@ $(document).ready(function () {
|
|||
.replace('{app_mail}', infos.manifest.maintainer.email);
|
||||
}
|
||||
|
||||
$('#app-accordion').append(html);
|
||||
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
|
||||
// Fill the template
|
||||
$('#app-cards-list').append(html);
|
||||
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if (infos.manifest.license && infos.manifest.license != 'free') {
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
280
apps_fr.md
280
apps_fr.md
|
@ -1,49 +1,138 @@
|
|||
#Apps officielles
|
||||
# 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/logo-jirafeau.jpeg" width=50>
|
||||
<img src="/images/Logo-wallabag-svg.svg" width=50>
|
||||
<img src="/images/Searx_logo.svg" width=50>
|
||||
<img src="/images/rainloop_logo.png" width=40>
|
||||
<img src="/images/Nextcloud_Logo.svg" width=70>
|
||||
<img src="/images/privatebin_icon.svg" width=40>
|
||||
|
||||
<a class="btn btn-lg btn-default" href="/apps_fr" disabled>Apps officielles</a> <a class="btn btn-lg btn-default" href="/apps_in_progress_fr">Apps en cours</a> <a class="btn btn-lg btn-default" href="/apps_wishlist_fr">Apps souhaitées</a>
|
||||
|
||||
<div class="clearfix" style="margin-bottom: 1em;">
|
||||
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion .collapse">Tout déplier</div>
|
||||
</div>
|
||||
|
||||
<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">
|
||||
<a data-toggle="collapse" data-parent="#app-accordion" href="#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-search"></span></span>
|
||||
<input type="text" id="filter-app-cards" class="form-control" placeholder="Rechercher des apps..." aria-describedby="basic-addon1"/>
|
||||
<div class="input-group-btn">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="app-cards-list-filter-text">Apps officielles seulement</span> <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#" id="app-cards-list-validated">Apps officielles seulement</a></li>
|
||||
<li><a href="#" id="app-cards-list-working">Apps "working" seulement</a></li>
|
||||
<li><a href="#" id="app-cards-list-working-inprogress">Apps "in progress"/"not working"</a></li>
|
||||
<li><a href="#" id="app-cards-list-all-apps">Toutes les apps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-collapse collapse app_{app_id}">
|
||||
<br />
|
||||
<div id="community-app-list-warrant" class="alert alert-danger">
|
||||
<p>Seules les apps marquées <span class="label label-success label-as-badge">validated</span> sont officiellement supportées par l'équipe d'empaquetage. </p>
|
||||
|
||||
<p>Les apps marquées <span class="label label-success label-as-badge">working</span>, <span class="label label-warning label-as-badge">inprogress</span>, <span class="label label-danger label-as-badge">notworking</span> sont des applications non officielles maintenues par la communauté, vous pouvez les tester et les utiliser **à vos risques et périls**.</p>
|
||||
|
||||
<p>Important: c'est le mainteneur de l'application qui définit son application comme "working" et non pas l'équipe d'empaquetage de Yunohost. Installez ces apps à vos risques et périls. Nous ne fournissons pas de support pour elles.</p>
|
||||
</div>
|
||||
<div class="alert alert-info">Les empaqueteurs apprécieront vos remarques. Si vous installez leurs apps et trouvez des dysfonctionnement, ou si vous avez des idées d'amélioration, n'hésitez pas à créer des tickets directement sur les pages de dépots des projets.</div>
|
||||
|
||||
<div class="app-cards-list" id="app-cards-list"></div>
|
||||
|
||||
<div class="alert alert-warning">Si vous ne trouvez pas l'applications que vous recherchez, vous pouvez la rechercher dans les apps communautaires (working, inprogress et notworking) ou remplir la <a href="/apps_wishlist_fr">liste d'apps souhaitées</a>.</div>
|
||||
|
||||
<style>
|
||||
/*=================================================
|
||||
Search bar
|
||||
=================================================*/
|
||||
#filter-app-cards, #app-cards-list {
|
||||
width:100%;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
Force return space after card list
|
||||
=================================================*/
|
||||
#app-cards-list:after {
|
||||
content:'';
|
||||
display:block;
|
||||
clear: both;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card
|
||||
=================================================*/
|
||||
.app-card {
|
||||
margin-bottom:10px;
|
||||
width:270px;
|
||||
float:left;
|
||||
min-height: 1px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card body
|
||||
=================================================*/
|
||||
.app-card .panel-body > h3 {
|
||||
margin-top:0;
|
||||
margin-bottom:5px;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.app-card .category {
|
||||
height:50px;
|
||||
}
|
||||
.app-card .category .label, .app-card-date-maintainer {
|
||||
font-size:0.7em;
|
||||
}
|
||||
.app-card-date-maintainer {
|
||||
text-align:right;
|
||||
max-height: 18px;
|
||||
}
|
||||
|
||||
.app-card-desc {
|
||||
height:100px;
|
||||
}
|
||||
/*===============================================*/
|
||||
|
||||
/*=================================================
|
||||
App card footer
|
||||
=================================================*/
|
||||
.app-card .btn-group {
|
||||
width:100%;
|
||||
margin-left: 0px;
|
||||
}
|
||||
.app-card > .btn-group > .btn{
|
||||
border-bottom:0;
|
||||
}
|
||||
.app-card > .btn-group > .btn:first-child {
|
||||
border-left:0;
|
||||
border-top-left-radius:0;
|
||||
}
|
||||
.app-card > .btn-group > .btn:last-child {
|
||||
border-right:0;
|
||||
border-top-right-radius:0;
|
||||
margin-left: 0px;
|
||||
}
|
||||
/*===============================================*/
|
||||
</style>
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="app-card_{app_id} app-card panel panel-default">
|
||||
|
||||
<div class="panel-body">
|
||||
<p><strong>Description</strong> : {app_description}</p>
|
||||
<p><strong>Dernière mise à jour (UTC)</strong> : {app_update}</p>
|
||||
<p><strong>Niveau</strong>: {app_level}</p>
|
||||
<p><strong>Mainteneur</strong> : {app_maintainer} <small class="text-muted">({app_mail})</small></p>
|
||||
<p><strong>Dépôt git</strong> : <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
|
||||
<a href="#/app_{app_id}_fr" target="_blank" class="btn btn-default">Documentation</a>
|
||||
<h3>{app_name}</h3>
|
||||
<div class="category"></div>
|
||||
|
||||
<div class="app-card-desc">{app_description}</div>
|
||||
<div class="app-card-date-maintainer">
|
||||
<span class="glyphicon glyphicon-refresh"></span> {app_update} -
|
||||
<span class="glyphicon glyphicon-user"></span> {app_maintainer}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group" role="group">
|
||||
<a href="{app_git}" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span> Code</a>
|
||||
<a href="app_{app_id}_fr" target="_BLANK" type="button" class="btn btn-default col-sm-4"><span class="glyphicon glyphicon-book" aria-hidden="true"></span> Doc</a>
|
||||
<a href="https://install-app.yunohost.org/?app={app_id}" target="_BLANK" type="button" class="btn btn-{app_install_bootstrap} col-sm-4 active">Installer</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</script>
|
||||
<br />
|
||||
<div class="alert alert-info">Toutes les applications officielles sont sous licences libres.</div>
|
||||
|
||||
<script>
|
||||
function timeConverter(UNIX_timestamp) {
|
||||
var a = new Date(UNIX_timestamp*1000);
|
||||
var months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
|
||||
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
|
||||
var year = a.getFullYear();
|
||||
var month = months[a.getMonth()];
|
||||
var date = a.getDate();
|
||||
|
@ -51,33 +140,118 @@ function timeConverter(UNIX_timestamp) {
|
|||
var min = a.getMinutes();
|
||||
if (hour < 10) { hour = '0' + hour; }
|
||||
if (min < 10) { min = '0' + min; }
|
||||
var time = date+' '+month+' '+year+' à '+hour+':'+min;
|
||||
var time = date+' '+month+' '+year;//+' at '+hour+':'+min
|
||||
return time;
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$.getJSON('https://app.yunohost.org/official.json', function(app_list) {
|
||||
// Cast as array
|
||||
var app_list = $.map(app_list, function(el) { return el; });
|
||||
// Hide warrant about community list
|
||||
$('#community-app-list-warrant').hide();
|
||||
var filters = ["validated"];
|
||||
|
||||
function filter(){
|
||||
var filters_text = filters.map(function(el) { return '.app-' + el;}).join(', ');
|
||||
var valThis = $('#filter-app-cards').val().toLowerCase();
|
||||
$('.app-card').each(function(){
|
||||
var text = $(this).find('h3').text().toLowerCase();
|
||||
(text.indexOf(valThis) == 0 && $(this).find(filters_text).length > 0) ? $(this).show() : $(this).hide();
|
||||
});
|
||||
(filters.indexOf("working") == -1) ?$('#community-app-list-warrant').hide():$('#community-app-list-warrant').show();
|
||||
}
|
||||
|
||||
//=================================================
|
||||
// Search & filter bar event
|
||||
//=================================================
|
||||
$('#filter-app-cards').keyup(filter);
|
||||
|
||||
$('#app-cards-list-validated').click(function(){
|
||||
filters = ["validated"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-validated').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working').click(function(){
|
||||
filters = ["validated", "working"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-working-inprogress').click(function(){
|
||||
filters = ["notworking", "inprogress"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-working-inprogress').text());
|
||||
filter();
|
||||
});
|
||||
|
||||
$('#app-cards-list-all-apps').click(function(){
|
||||
filters = ["validated", "working", "inprogress", "notworking"];
|
||||
$('#app-cards-list-filter-text').text($('#app-cards-list-all-apps').text());
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
|
||||
|
||||
//=================================================
|
||||
// Upload apps lists
|
||||
//=================================================
|
||||
var app_list={};
|
||||
$.when(
|
||||
$.getJSON('https://app.yunohost.org/community.json', {}, function(community) {
|
||||
app_list.community = $.map(community, function(el) { return el; });
|
||||
}),
|
||||
$.getJSON('https://app.yunohost.org/official.json', {}, function(official) {
|
||||
app_list.official = $.map(official, function(el) { return el; });
|
||||
})
|
||||
).then(function() {
|
||||
app_list = app_list.official.concat(app_list.community);
|
||||
|
||||
// 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;
|
||||
a_state = (a.state == "validated")?4:(a.state == "working")?3:(a.state == "inprogress")?2:1;
|
||||
b_state = (b.state == "validated")?4:(b.state == "working")?3:(b.state == "inprogress")?2:1;
|
||||
if (a_state < b_state || a_state == b_state && a.level < b.level || a_state == b_state && a.level == b.level && a.manifest.id > b.manifest.id) {return 1;}
|
||||
else if (a.manifest.id == b.manifest.id) {return 0;}
|
||||
return -1;
|
||||
});
|
||||
$.each(app_list, function(k, infos) {
|
||||
app_id = infos.manifest.id;
|
||||
if (typeof infos.manifest.description.fr === 'undefined') {
|
||||
infos.manifest.description.fr = infos.manifest.description.en;
|
||||
app_install_bootstrap = "success";
|
||||
if (infos.state === "validated") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "working") {
|
||||
app_state_bootstrap = "success";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
}
|
||||
html = $('#app-template').html()
|
||||
if (infos.level == null ) {
|
||||
infos.level = '?';
|
||||
}
|
||||
if (infos.level == 0 ) {
|
||||
app_level_bootstrap = "danger";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level <= 2) {
|
||||
app_level_bootstrap = "warning";
|
||||
app_install_bootstrap = "danger";
|
||||
} else if (infos.level >= 7) {
|
||||
app_level_bootstrap = "success";
|
||||
} else {
|
||||
app_level_bootstrap = "default";
|
||||
}
|
||||
|
||||
// Fill the template
|
||||
html = $('#app-template2').html()
|
||||
.replace(/{app_id}/g, app_id)
|
||||
.replace(/{app_name}/g, infos.manifest.name)
|
||||
.replace('{app_description}', infos.manifest.description.fr)
|
||||
.replace(/{app_git}/g, infos.git.url)
|
||||
.replace('{app_branch}', infos.git.branch)
|
||||
.replace('{app_level}', infos.level)
|
||||
.replace('{app_update}', timeConverter(infos.lastUpdate));
|
||||
.replace('{app_update}', timeConverter(infos.lastUpdate))
|
||||
.replace('{app_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_install_bootstrap}', app_install_bootstrap);
|
||||
|
||||
if (infos.manifest.developer) {
|
||||
html = html
|
||||
|
@ -91,9 +265,19 @@ $(document).ready(function () {
|
|||
.replace('{app_mail}', infos.manifest.maintainer.email);
|
||||
}
|
||||
|
||||
$('#app-accordion').append(html);
|
||||
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
|
||||
// Fill the template
|
||||
$('#app-cards-list').append(html);
|
||||
$('.app-card_'+ app_id).attr('id', 'app-card_'+ app_id);
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_level_bootstrap+' label-as-badge">'+infos.level+'</span>');
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-'+app_state_bootstrap+' label-as-badge app-'+infos.state+'">'+infos.state+'</span>');
|
||||
if (infos.manifest.license && infos.manifest.license != 'free') {
|
||||
$('.app-card_'+ app_id + ' .category').append(' <span class="label label-default">'+infos.manifest.license+'</span>');
|
||||
}
|
||||
|
||||
});
|
||||
filter();
|
||||
});
|
||||
//=================================================
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,134 +0,0 @@
|
|||
# Apps in progress
|
||||
|
||||
<img src="/images/freshrss_logo.png" width=40>
|
||||
<img src="/images/Icons_mumble.svg" width=40>
|
||||
<img src="/images/Lutim_small.png" width=30>
|
||||
<img src="/images/PluXml-logo_transparent.png" width=60>
|
||||
<img src="/images/Etherpad.svg" width=40>
|
||||
<img src="/images/gogs.svg" width=40>
|
||||
<img src="/images/movim_logo.png" width=40>
|
||||
<img src="/images/duniter-logo.svg" width=40>
|
||||
<img src="/images/Zeronet_logo.png" width=40>
|
||||
<img src="/images/jappix.png" width=50>
|
||||
|
||||
<a class="btn btn-lg btn-default" href="/apps_en">Official apps</a>
|
||||
<a class="btn btn-lg btn-default disabled" href="/apps_in_progress_en">Apps in progress</a>
|
||||
<a class="btn btn-lg btn-default" href="/apps_wishlist_en">Apps wishlist</a>
|
||||
|
||||
The following applications are being packaged on by a growing number of packagers.
|
||||
<div class="alert alert-danger">They are **NOT** validated by the packaging team, and as such, **no official support is provided** for them.<br>
|
||||
You can test and use them **at your own risk**.
|
||||
</div>
|
||||
|
||||
You can install them through the [administration web interface](/admin) by choosing "Install custom app", or using the [moulinette](/moulinette):
|
||||
```bash
|
||||
yunohost app install https://github.com/<packager>/<app_repository>
|
||||
```
|
||||
|
||||
The packagers will appreciate your remarks. If you test them and find issues, or ideas for improvement, do not hesitate to file issues directly on their repositories project page.
|
||||
|
||||
<div class="clearfix" style="margin-bottom: 1em;">
|
||||
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-notworking .collapse">Collapse broken</div>
|
||||
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-inprogress .collapse">Collapse in progress</div>
|
||||
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-working .collapse">Collapse working</div>
|
||||
</div>
|
||||
|
||||
<h2>Declared as working applications</h2>
|
||||
<p><b style="color: red">Important: it's the application maintaineur that qualify his application as working, not the YunoHost core team. Install it at your own risks. We won't provide support for it.</b></p>
|
||||
|
||||
<div class="panel-group" id="app-accordion2-working"></div>
|
||||
|
||||
<h2>Work in progress applications</h2>
|
||||
<p>Those are <b>not yet finished</b> applications, we <b>strongly advise against installing them</b> except if you know what you are doing.</p>
|
||||
|
||||
<div class="panel-group" id="app-accordion2-inprogress"></div>
|
||||
|
||||
<h2>Broken applications</h2>
|
||||
<p>Do <b>NOT</b> install them, they are here as reference while they aren't fixed.</p>
|
||||
|
||||
<div class="panel-group" id="app-accordion2-notworking"></div>
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="panel panel-default panel-{app_state_bootstrap}">
|
||||
<div class="panel-heading">
|
||||
<div class="panel-title">
|
||||
<a data-toggle="collapse" data-parent="#app-accordion" href="apps_in_progress/#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-collapse collapse app_{app_id}">
|
||||
<div class="panel-body">
|
||||
<p><strong>Description</strong>: {app_description}</p>
|
||||
<p><strong>Last update (UTC)</strong>: {app_update}</p>
|
||||
<p><strong>Level</strong>: {app_level}</p>
|
||||
<p><strong>Maintainer</strong>: {app_maintainer} <small class="text-muted">({app_mail})</small></p>
|
||||
<p><strong>Git repository</strong>: <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
|
||||
<p><strong>Software license</strong>: {app_license}</p>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function timeConverter(UNIX_timestamp) {
|
||||
var a = new Date(UNIX_timestamp*1000);
|
||||
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
|
||||
var year = a.getFullYear();
|
||||
var month = months[a.getMonth()];
|
||||
var date = a.getDate();
|
||||
var hour = a.getHours();
|
||||
var min = a.getMinutes();
|
||||
if (hour < 10) { hour = '0' + hour; }
|
||||
if (min < 10) { min = '0' + min; }
|
||||
var time = date+' '+month+' '+year+' at '+hour+':'+min;
|
||||
return time;
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$.getJSON('https://app.yunohost.org/community.json', function(app_list) {
|
||||
// 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;
|
||||
if (infos.state === "working") {
|
||||
app_state_bootstrap = "default";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
}
|
||||
|
||||
html = $('#app-template2').html()
|
||||
.replace(/{app_id}/g, app_id)
|
||||
.replace(/{app_name}/g, infos.manifest.name)
|
||||
.replace('{app_description}', infos.manifest.description.en)
|
||||
.replace(/{app_git}/g, infos.git.url)
|
||||
.replace('{app_branch}', infos.git.branch)
|
||||
.replace('{app_level}', infos.level)
|
||||
.replace('{app_update}', timeConverter(infos.lastUpdate))
|
||||
.replace('{app_state}', infos.state)
|
||||
.replace('{app_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_license}', infos.manifest.license);
|
||||
|
||||
if (infos.manifest.developer) {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.developer.name)
|
||||
.replace('{app_mail}', infos.manifest.developer.email);
|
||||
}
|
||||
|
||||
if (infos.manifest.maintainer) {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.maintainer.name)
|
||||
.replace('{app_mail}', infos.manifest.maintainer.email);
|
||||
}
|
||||
|
||||
$('#app-accordion2-' + infos.state).append(html);
|
||||
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -1,137 +0,0 @@
|
|||
# Apps en cours
|
||||
|
||||
<img src="/images/freshrss_logo.png" width=40>
|
||||
<img src="/images/Icons_mumble.svg" width=40>
|
||||
<img src="/images/Lutim_small.png" width=30>
|
||||
<img src="/images/PluXml-logo_transparent.png" width=60>
|
||||
<img src="/images/Etherpad.svg" width=40>
|
||||
<img src="/images/gogs.svg" width=40>
|
||||
<img src="/images/movim_logo.png" width=40>
|
||||
<img src="/images/duniter-logo.svg" width=40>
|
||||
<img src="/images/Zeronet_logo.png" width=40>
|
||||
<img src="/images/jappix.png" width=50>
|
||||
|
||||
<a class="btn btn-lg btn-default" href="/apps_fr">Apps officielles</a>
|
||||
<a class="btn btn-lg btn-default disabled" href="/apps_in_progress_fr">Apps en cours</a>
|
||||
<a class="btn btn-lg btn-default" href="/apps_wishlist_fr">Apps souhaitées</a>
|
||||
|
||||
De plus en plus d’applications sont mises à disposition par les packagers.
|
||||
<div class="alert alert-danger">Ces applications **n’ont pas** été validées par l’équipe YunoHost et **ne sont pas** officiellement prises en charge.<br>Vous pouvez les tester et les utiliser à **vos risques et périls**.
|
||||
</div>
|
||||
|
||||
Elles sont installables avec l’[interface web d’administration](/admin) ou avec la moulinette :
|
||||
```bash
|
||||
yunohost app install https://github.com/<packageur>/<dépôt_app>
|
||||
```
|
||||
|
||||
N’hésitez pas à vous créer un compte GitHub pour faire part de vos remarques aux packagers (sous forme d’« issues ») ou à leur proposer des améliorations (sous forme de « pull requests »).
|
||||
|
||||
<div class="clearfix" style="margin-bottom: 1em;">
|
||||
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-notworking .collapse">Déplier cassées</div>
|
||||
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-inprogress .collapse">Déplier en cours</div>
|
||||
<div class="btn btn-default btn-xs pull-right" data-toggle="collapse" data-target="#app-accordion2-working .collapse">Déplier fonctionnelles</div>
|
||||
</div>
|
||||
|
||||
<h2>Applications dites fonctionnelles</h2>
|
||||
<p><b style="color: red">Remarque : c'est le mainteneur de l'application qui la décrit comme fonctionnelle, pas l'équipe de YunoHost. Installez la à vos risques et péril et soyez conscient que ne fournirons aucune assistance dessus.</b></p>
|
||||
|
||||
<div class="panel-group" id="app-accordion2-working"></div>
|
||||
|
||||
<h2>Applications en cours de développement</h2>
|
||||
<p>Il s'agit d'application <b>pas encore fonctionnelles</b> mais en cours de développement, nous vous <b>déconseillons fortement de les installer</b> sauf si vous savez ce que vous faites.</p>
|
||||
|
||||
<div class="panel-group" id="app-accordion2-inprogress"></div>
|
||||
|
||||
<h2>Applications cassées</h2>
|
||||
<p>Ne les installez <b>PAS</b>, elles sont là pour référence le temps d'être réparées.</p>
|
||||
|
||||
<div class="panel-group" id="app-accordion2-notworking"></div>
|
||||
|
||||
<script type="text/template" id="app-template2">
|
||||
<div class="panel panel-default panel-{app_state_bootstrap}">
|
||||
<div class="panel-heading">
|
||||
<div class="panel-title">
|
||||
<a data-toggle="collapse" data-parent="#app-accordion" href="#app_{app_id}">{app_name} <em><small>({app_id})</small></em></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-collapse collapse app_{app_id}">
|
||||
<div class="panel-body">
|
||||
<p><strong>Description</strong> : {app_description}</p>
|
||||
<p><strong>Dernière mise à jour (UTC)</strong> : {app_update}</p>
|
||||
<p><strong>Niveau</strong>: {app_level}</p>
|
||||
<p><strong>Mainteneur</strong> : {app_maintainer} <small class="text-muted">({app_mail})</small></p>
|
||||
<p><strong>Dépôt git</strong> : <a href="{app_git}" target="_blank">{app_git}</a> <small class="text-muted">({app_branch})</small></p>
|
||||
<p><strong>Licence de l’application</strong> : {app_license}</p>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function timeConverter(UNIX_timestamp) {
|
||||
var a = new Date(UNIX_timestamp*1000);
|
||||
var months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
|
||||
var year = a.getFullYear();
|
||||
var month = months[a.getMonth()];
|
||||
var date = a.getDate();
|
||||
var hour = a.getHours();
|
||||
var min = a.getMinutes();
|
||||
if (hour < 10) { hour = '0' + hour; }
|
||||
if (min < 10) { min = '0' + min; }
|
||||
var time = date+' '+month+' '+year+' at '+hour+':'+min;
|
||||
return time;
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$.getJSON('https://app.yunohost.org/community.json', function(app_list) {
|
||||
// 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;
|
||||
if (typeof infos.manifest.description.fr === 'undefined') {
|
||||
infos.manifest.description.fr = infos.manifest.description.en;
|
||||
}
|
||||
|
||||
if (infos.state === "working") {
|
||||
app_state_bootstrap = "default";
|
||||
} else if (infos.state === "inprogress") {
|
||||
app_state_bootstrap = "warning";
|
||||
} else if (infos.state === "notworking") {
|
||||
app_state_bootstrap = "danger";
|
||||
}
|
||||
|
||||
html = $('#app-template2').html()
|
||||
.replace(/{app_id}/g, app_id)
|
||||
.replace(/{app_name}/g, infos.manifest.name)
|
||||
.replace('{app_description}', infos.manifest.description.fr)
|
||||
.replace(/{app_git}/g, infos.git.url)
|
||||
.replace('{app_branch}', infos.git.branch)
|
||||
.replace('{app_level}', infos.level)
|
||||
.replace('{app_update}', timeConverter(infos.lastUpdate))
|
||||
.replace('{app_state}', infos.state)
|
||||
.replace('{app_state_bootstrap}', app_state_bootstrap)
|
||||
.replace('{app_license}', infos.manifest.license);
|
||||
|
||||
if (infos.manifest.developer) {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.developer.name)
|
||||
.replace('{app_mail}', infos.manifest.developer.email);
|
||||
}
|
||||
|
||||
if (infos.manifest.maintainer) {
|
||||
html = html
|
||||
.replace('{app_maintainer}', infos.manifest.maintainer.name)
|
||||
.replace('{app_mail}', infos.manifest.maintainer.email);
|
||||
}
|
||||
|
||||
$('#app-accordion2-' + infos.state).append(html);
|
||||
$('.app_'+ app_id).attr('id', 'app_'+ app_id);
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -1,6 +1,6 @@
|
|||
# Apps wishlist
|
||||
|
||||
<a class="btn btn-lg btn-default" 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 disabled" href="/apps_wishlist_en">Apps wishlist</a>
|
||||
<div class="alert alert-info">Before to add an app in wishlist please check your app is not already in official or community list: see the <a href="/apps_en">apps list</a></div>
|
||||
|
||||
The following list is a compiled wishlist of applications that would be nice-to-have.
|
||||
|
||||
|
@ -29,7 +29,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
|
|||
- [Commafeed](https://github.com/Athou/commafeed)
|
||||
- [Converse.js](https://conversejs.org)
|
||||
- [Coquelicot](https://coquelicot.potager.org) – [package](https://github.com/M5oul/coquelicot_ynh)
|
||||
- [Cryptpad](https://github.com/xwiki-labs/cryptpad)
|
||||
- [Cronkeep](https://github.com/cronkeep/cronkeep)
|
||||
- [CronWeb](https://github.com/fisherinnovation/CronWeb)
|
||||
- [Croodle](https://github.com/jelhan/croodle) Schedule a date or to do a poll on a general topics, with client-side encryption.
|
||||
|
@ -53,7 +52,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
|
|||
- [GetSimple CMS](http://get-simple.info)
|
||||
- [Git-annex](http://git-annex.branchable.com)
|
||||
- [Gitit](http://gitit.net)
|
||||
- [GitLab](http://gitlab.org)
|
||||
- [Goaccess](https://goaccess.io) Web log analyser (replaces piwik without js tracking scripts)
|
||||
- [Gollum](https://github.com/gollum/gollum)
|
||||
- [Goploader](https://github.com/Depado/goploader)
|
||||
|
@ -113,7 +111,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
|
|||
- [pdfy](https://github.com/joepie91/pdfy)
|
||||
- [PeerTube](https://github.com/Chocobozzz/PeerTube)
|
||||
- [Pelias](https://github.com/pelias/pelias)
|
||||
- [Pelican](http://blog.getpelican.com)
|
||||
- [Peps](https://github.com/MLstate/PEPS)
|
||||
- [PHPList](http://www.phplist.com)
|
||||
- [PHProxy](http://sourceforge.net/projects/poxy)
|
||||
|
@ -130,7 +127,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
|
|||
- [Request Tracker](https://bestpractical.com)
|
||||
- [Respawn 2.0](https://github.com/broncowdd/respawn)
|
||||
- [Restya](http://restya.com)
|
||||
- [uMap](https://umap.openstreetmap.fr/en)
|
||||
- [Scramble, Browser-based PGP web mail](https://github.com/dcposch/scramble)
|
||||
- [Scribbleton](https://scribbleton.com)
|
||||
- [ShareLatex](https://www.sharelatex.com)
|
||||
|
@ -143,7 +139,6 @@ The following list is a compiled wishlist of applications that would be nice-to-
|
|||
- [Streama](https://github.com/dularion/streama)
|
||||
- [Streisand](https://github.com/jlund/streisand)
|
||||
- [SVG-Edit](https://github.com/SVG-Edit/svgedit)
|
||||
- [Sympa](http://www.sympa.org)
|
||||
- [Taskwarrior](https://taskwarrior.org)
|
||||
- [Taiga](https://taiga.io)
|
||||
- [TorChat](https://github.com/prof7bit/TorChat)
|
||||
|
@ -158,11 +153,9 @@ The following list is a compiled wishlist of applications that would be nice-to-
|
|||
- [WebODF](http://webodf.org)
|
||||
- [webSync](http://furier.github.io/websync)
|
||||
- [WebTorrent](https://github.com/feross/webtorrent)
|
||||
- [Wekan](http://wekan.io)
|
||||
- [WID](https://wid.chorem.com/site/home)
|
||||
- [Wisemapping](http://www.wisemapping.com)
|
||||
- [Xonotic](http://xonotic.org)
|
||||
- [Yacy](http://yacy.net) – [package](https://github.com/M5oul/yacy_ynh)
|
||||
- [YellowCMS](http://datenstrom.se/yellow)
|
||||
- [YesWiki](http://yeswiki.net/wa.php?wiki=AccueiL)
|
||||
- [ZeroTier](https://github.com/zerotier/ZeroTierOne)
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
# Apps souhaitées
|
||||
|
||||
<a class="btn btn-lg btn-default" href="/apps_fr">Apps officielles</a>
|
||||
<a class="btn btn-lg btn-default" href="/apps_in_progress_fr">Apps en cours</a>
|
||||
<a class="btn btn-lg btn-default disabled" href="/apps_wishlist_fr">Apps souhaitées</a>
|
||||
|
||||
La liste des applications souhaitées n’est maintenue qu’en <a href="/apps_wishlist_en">version anglaise</a>. Merci de vous y référer.
|
||||
|
|
|
@ -87,7 +87,7 @@ This Python script checks:
|
|||
### Publish and ask for testing your application
|
||||
* Publishing a [post on the Forum](https://forum.yunohost.org/) with the [`App integration` category](https://forum.yunohost.org/c/app-integration), to ask for testing and feedback on your application.
|
||||
|
||||
* Ask your application to be added to the [app repository](https://github.com/YunoHost/apps) to be displayed in the [non-official apps list](apps_in_progress_en). Specify its progress state: `notworking`, `inprogress`, or `working`.
|
||||
* Ask your application to be added to the [app repository](https://github.com/YunoHost/apps) to be displayed in the [non-official apps list](apps_en). Specify its progress state: `notworking`, `inprogress`, or `working`.
|
||||
|
||||
- Subscribe to the [Apps mailing list](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) to be informed about packaging evolution.
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ Il s’agit d’un script Python qui vérifie :
|
|||
### Publiez et demandez des tests de votre application
|
||||
* Demandez des tests et des retours sur votre application en publiant un [post sur le Forum](https://forum.yunohost.org/) dans la [catégorie `App integration`](https://forum.yunohost.org/c/app-integration).
|
||||
|
||||
* Faire une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) afin qu’elle soit affichée dans [la liste des apps non officielles](apps_in_progress_fr). Préciser également son état d’avancement : `notworking`, `inprogress` ou `working`.
|
||||
* Faire une demande d’ajout de votre application dans le [dépôt des applications](https://github.com/YunoHost/apps) afin qu’elle soit affichée dans [la liste des apps non officielles](apps_fr). Préciser également son état d’avancement : `notworking`, `inprogress` ou `working`.
|
||||
|
||||
- Inscrivez-vous à la [mailing list Apps](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) pour être tenu au courant des évolutions du packaging.
|
||||
|
||||
|
|
16
sitemap.md
16
sitemap.md
|
@ -42,8 +42,7 @@
|
|||
* [Internet service provider](/isp)
|
||||
* [Generic configuration of the ISP router](/isp_box_config)
|
||||
* Applications
|
||||
* [Official applications](/apps_en)
|
||||
* [Non-official applications](/apps_in_progress_en)
|
||||
* [Applications](/apps_en)
|
||||
* [Update applications](app_update_en)
|
||||
* Administration
|
||||
* Command-line
|
||||
|
@ -70,17 +69,7 @@
|
|||
* [User interface](user_interface)
|
||||
* [Configure email client](email_configure_client_en)
|
||||
* [Instant messaging usage](/XMPP)
|
||||
* [Official applications](/apps)
|
||||
* [Baikal](/app_baikal_en)
|
||||
* [Firefox Sync](/app_ffsync_en)
|
||||
* [Tiny Tiny RSS](/app_ttrss_en)
|
||||
* [Transmission](/app_transmission_en)
|
||||
* [Radicale](/app_radicale)
|
||||
* [RoundCube](/app_roundcube_en)
|
||||
* [Minidlna](app_minidlna_en)
|
||||
* [Wallabag v2](/app_wallabag2)
|
||||
* [Community applications](/apps_in_progress_en)
|
||||
* [LimeSurvey](/app_limesurvey_en)
|
||||
* [Applications](/apps)
|
||||
|
||||
* [Contributor guide](/contribute)
|
||||
* Developement
|
||||
|
@ -96,7 +85,6 @@
|
|||
* [Trap usage](packaging_apps_trap_fr)
|
||||
* [Applications levels](packaging_apps_levels_fr)
|
||||
* [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr)
|
||||
* [Applications in progress](/apps_in_progress_en)
|
||||
* [Wishlist of applications](/apps_wishlist_en)
|
||||
* [Contributing to the YunoHost core](/dev)
|
||||
* [Creation of system packages](/build_system_en)
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
* [Orange](/isp_orange_fr)
|
||||
* Applications
|
||||
* [Applications officielles](/apps_fr)
|
||||
* [Applications non officielles](/apps_in_progress_en)
|
||||
* [Mise à jour des applications](app_update_fr)
|
||||
* Administration
|
||||
* En ligne de commande
|
||||
|
@ -78,19 +77,7 @@
|
|||
* [Interface utilisateur](user_interface)
|
||||
* [Configurer un client email](email_configure_client_fr)
|
||||
* [Utiliser la messagerie instantanée XMPP](/XMPP_fr)
|
||||
* [Applications officielles](/apps_fr)
|
||||
* [Baïkal](/app_baikal_fr)
|
||||
* [Firefox Sync](/app_ffsync_fr)
|
||||
* [Jappix](/app_jappix_fr)
|
||||
* [Nextcloud](app_nextcloud_fr)
|
||||
* [Tiny Tiny RSS](/app_ttrss_fr)
|
||||
* [Transmission](/app_transmission_fr)
|
||||
* [Radicale](/app_radicale_fr)
|
||||
* [RoundCube](/app_roundcube_fr)
|
||||
* [Minidlna](app_minidlna_fr)
|
||||
* [Wallabag v2](/app_wallabag2_fr)
|
||||
* [Applications communautaires](/apps_in_progress_fr)
|
||||
* [LimeSurvey](/app_limesurvey_fr)
|
||||
* [Applications](/apps_fr)
|
||||
|
||||
* [Guide du contributeur](/contribute_fr)
|
||||
* Développement
|
||||
|
@ -110,7 +97,6 @@
|
|||
* [Usage de trap](packaging_apps_trap_fr)
|
||||
* [Niveaux des applications](packaging_apps_levels_fr)
|
||||
* [YEP - YunoHost Enhancement Proposals](packaging_apps_guidelines_fr)
|
||||
* [Packages d’applications en cours de développement](/apps_in_progress_fr)
|
||||
* [Liste de proposition d’applications](/apps_wishlist_fr)
|
||||
* [Contribuer au cœur de YunoHost](/dev_fr)
|
||||
* [Création de paquets système](/build_system_fr)
|
||||
|
|
11
userdoc.md
11
userdoc.md
|
@ -4,13 +4,4 @@
|
|||
* [User interface](user_interface)
|
||||
* [Configure an email client](/email)
|
||||
* [Instant messaging usage](/XMPP)
|
||||
* [Official applications](/apps)
|
||||
* [Baikal](/app_baikal_en)
|
||||
* [Firefox Sync](/app_ffsync_en)
|
||||
* [Tiny Tiny RSS](/app_ttrss_en)
|
||||
* [Transmission](/app_transmission_en)
|
||||
* [Radicale](/app_radicale)
|
||||
* [RoundCube](/app_roundcube_en)
|
||||
* [Wallabag v2](/app_wallabag2)
|
||||
* [Community applications](/apps_in_progress_en)
|
||||
* [LimeSurvey](/app_limesurvey_en)
|
||||
* [Applications](/apps)
|
||||
|
|
|
@ -3,13 +3,4 @@
|
|||
* [L’interface utilisateur](user_interface)
|
||||
* [La messagerie électronique (email)](/email_fr)
|
||||
* [La messagerie instantanée et les réseaux sociaux XMPP](/XMPP_fr)
|
||||
* [Les applications officielles](/apps_fr)
|
||||
* [Firefox Sync](/app_ffsync_fr)
|
||||
* [Jappix](/app_jappix_fr)
|
||||
* [Tiny Tiny RSS](/app_ttrss_fr)
|
||||
* [Transmission](/app_transmission_fr)
|
||||
* [Radicale](/app_radicale_fr)
|
||||
* [RoundCube](/app_roundcube_fr)
|
||||
* [Wallabag v2](/app_wallabag2_fr)
|
||||
* [Applications communautaires](/apps_in_progress_fr)
|
||||
* [LimeSurvey](/app_limesurvey_fr)
|
||||
* [Les applications](/apps_fr)
|
||||
|
|
Loading…
Reference in a new issue