$repository = $this->get('wallabag_core.entry_repository');
switch ($type) {
+ case 'untagged':
+ $qb = $repository->getBuilderForUntaggedByUser($this->getUser()->getId());
+
+ break;
case 'starred':
$qb = $repository->getBuilderForStarredByUser($this->getUser()->getId());
break;
['entry' => $entry]
);
}
+
+ /**
+ * Shows untagged articles for current user.
+ *
+ * @param Request $request
+ * @param int $page
+ *
+ * @Route("/untagged/list/{page}", name="untagged", defaults={"page" = "1"})
+ *
+ * @return \Symfony\Component\HttpFoundation\Response
+ */
+ public function showUntaggedEntriesAction(Request $request, $page)
+ {
+ return $this->showEntries('untagged', $request, $page);
+ }
}
*
* @Route("/export/{category}.{format}", name="export_entries", requirements={
* "format": "epub|mobi|pdf|json|xml|txt|csv",
- * "category": "all|unread|starred|archive|tag_entries"
+ * "category": "all|unread|starred|archive|tag_entries|untagged"
* })
*
* @return \Symfony\Component\HttpFoundation\Response
;
}
+ /**
+ * Retrieves untagged entries for a user.
+ *
+ * @param int $userId
+ *
+ * @return QueryBuilder
+ */
+ public function getBuilderForUntaggedByUser($userId)
+ {
+ return $this
+ ->getBuilderByUser($userId)
+ ->leftJoin('e.tags', 't')
+ ->groupBy('e.id')
+ ->having('count(t.id) = 0');
+ }
+
/**
* Find Entries.
*
page_title: 'Tags'
list:
# number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
+ # see_untagged_entries: 'See untagged entries'
import:
# page_title: 'Import'
page_title: 'Tags'
list:
number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.'
+ # see_untagged_entries: 'See untagged entries'
import:
page_title: 'Importieren'
archived: 'Archived entries'
filtered: 'Filtered entries'
filtered_tags: 'Filtered by tags'
+ untagged: 'Untagged entries'
list:
number_on_the_page: '{0} There are no entries.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
reading_time: 'estimated reading time'
page_title: 'Tags'
list:
number_on_the_page: '{0} There are no tags.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
+ see_untagged_entries: 'See untagged entries'
import:
page_title: 'Import'
page_title: 'Etiquetas'
list:
number_on_the_page: '{0} No hay ninguna etiqueta.|{1} Hay una etiqueta.|]1,Inf[ Hay %count% etiquetas.'
+ # see_untagged_entries: 'See untagged entries'
import:
page_title: 'Importar'
page_title: 'برچسبها'
list:
number_on_the_page: '{0} هیچ برچسبی نیست.|{1} یک برچسب هست.|]1,Inf[ %count% برچسب هست.'
+ # see_untagged_entries: 'See untagged entries'
import:
page_title: 'درونریزی'
page_title: 'Tags'
list:
number_on_the_page: "{0} Il n'y a pas de tag.|{1} Il y a un tag.|]1,Inf[ Il y a %count% tags."
+ see_untagged_entries: 'Voir les articles sans tag'
import:
page_title: 'Importer'
page_title: 'Tags'
list:
number_on_the_page: "{0} Non ci sono tag.|{1} C'è un tag.|]1,Inf[ ci sono %count% tag."
+ # see_untagged_entries: 'See untagged entries'
import:
page_title: 'Importa'
page_title: 'Etiquetas'
list:
number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas."
+ # see_untagged_entries: 'See untagged entries'
import:
page_title: 'Importar'
page_title: 'Tagi'
list:
number_on_the_page: '{0} Nie ma tagów.|{1} Jest jeden tag.|]1,Inf[ Są %count% tagi.'
+ # see_untagged_entries: 'See untagged entries'
import:
page_title: 'Import'
page_title: 'Tag-uri'
list:
# number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.'
+ # see_untagged_entries: 'See untagged entries'
import:
# page_title: 'Import'
page_title: 'Etiketler'
list:
number_on_the_page: '{0} Herhangi bir etiket yok.|{1} Burada bir adet etiket var.|]1,Inf[ Burada %count% adet etiket var.'
+ # see_untagged_entries: 'See untagged entries'
import:
page_title: 'İçe Aktar'
{{ 'entry.page_titles.filtered'|trans }}
{% elseif currentRoute == 'tag_entries' %}
{{ 'entry.page_titles.filtered_tags'|trans }}
+{% elseif currentRoute == 'untagged' %}
+ {{ 'entry.page_titles.untagged'|trans }}
{% else %}
{{ 'entry.page_titles.unread'|trans }}
{% endif %}
<li id="tag-{{ tag.id|e }}"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.entries.getValues | length }})</a></li>
{% endfor %}
</ul>
+
+ <div>
+ <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a>
+ </div>
{% endblock %}
<li id="tag-{{ tag.id|e }}" class="col l4 m6 s12"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.entries.getValues | length }})</a></li>
{% endfor %}
</ul>
+ <div>
+ <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a>
+ </div>
{% endblock %}