$this->uid = null;
}
+ /**
+ * Used in the entries filter so it's more explicit for the end user than the uid.
+ *
+ * @return bool
+ */
+ public function isPublic()
+ {
+ return null !== $this->uid;
+ }
+
/**
* @return string
*/
},
'label' => 'entry.filters.preview_picture_label',
])
+ ->add('isPublic', CheckboxFilterType::class, [
+ 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
+ if (false === $values['value']) {
+ return;
+ }
+
+ // is_public isn't a real field
+ // we should use the "uid" field to determine if the entry has been made public
+ $expression = $filterQuery->getExpr()->isNotNull($values['alias'].'.uid');
+
+ return $filterQuery->createCondition($expression);
+ },
+ 'label' => 'entry.filters.is_public_label',
+ ])
->add('language', ChoiceFilterType::class, [
'choices' => array_flip($this->repository->findDistinctLanguageByUser($this->user->getId())),
'label' => 'entry.filters.language_label',
unread_label: 'Ulæst'
preview_picture_label: 'Har et vist billede'
preview_picture_help: 'Forhåndsvis billede'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Sprog'
# http_status_label: 'HTTP status'
reading_time:
unread_label: 'Ungelesene'
preview_picture_label: 'Vorschaubild vorhanden'
preview_picture_help: 'Vorschaubild'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Sprache'
http_status_label: 'HTTP-Status'
reading_time:
unread_label: 'Unread'
preview_picture_label: 'Has a preview picture'
preview_picture_help: 'Preview picture'
+ is_public_label: 'Has a public link'
+ is_public_help: 'Public link'
language_label: 'Language'
http_status_label: 'HTTP status'
reading_time:
unread_label: 'Sin leer'
preview_picture_label: 'Tiene imagen de previsualización'
preview_picture_help: 'Imagen de previsualización'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Idioma'
http_status_label: 'Código de estado HTTP'
reading_time:
unread_label: 'خواندهنشده'
preview_picture_label: 'دارای عکس پیشنمایش'
preview_picture_help: 'پیشنمایش عکس'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'زبان'
# http_status_label: 'HTTP status'
reading_time:
unread_label: "Non lus"
preview_picture_label: "A une photo"
preview_picture_help: "Photo"
+ is_public_label: 'A une lien public'
+ is_public_help: 'Lien public'
language_label: "Langue"
http_status_label: "Statut HTTP"
reading_time:
# unread_label: 'Unread'
preview_picture_label: "Ha un'immagine di anteprima"
preview_picture_help: 'Immagine di anteprima'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Lingua'
# http_status_label: 'HTTP status'
reading_time:
unread_label: 'Pas legits'
preview_picture_label: 'A un imatge'
preview_picture_help: 'Imatge'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Lenga'
http_status_label: 'Estatut HTTP'
reading_time:
unread_label: 'Nieprzeczytane'
preview_picture_label: 'Posiada podgląd obrazu'
preview_picture_help: 'Podgląd obrazu'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Język'
http_status_label: 'Status HTTP'
reading_time:
unread_label: 'Não Lido'
preview_picture_label: 'Possui uma imagem de preview'
preview_picture_help: 'Imagem de preview'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Idioma'
# http_status_label: 'HTTP status'
reading_time:
unread_label: 'Necitite'
preview_picture_label: 'Are o imagine de previzualizare'
preview_picture_help: 'Previzualizare imagine'
+ # is_public_label: 'Has a public link'
+ # is_public_help: 'Public link'
language_label: 'Limbă'
# http_status_label: 'HTTP status'
reading_time:
{{ form_widget(form.previewPicture) }}
{{ form_label(form.previewPicture) }}
</div>
+
+ <div class="input-field">
+ {{ form_widget(form.isPublic) }}
+ {{ form_label(form.isPublic) }}
+ </div>
</div>
<div id="filter-language" class="filter-group">
{{ form_label(form.previewPicture) }}
</div>
+ <div class="col s12">
+ <label>{{ 'entry.filters.is_public_help'|trans }}</label>
+ </div>
+
+ <div class="input-field col s12 with-checkbox">
+ {{ form_widget(form.isPublic) }}
+ {{ form_label(form.isPublic) }}
+ </div>
+
<div class="col s12">
{{ form_label(form.language) }}
</div>
<div class="col s12">
{{ form_label(form.readingTime) }}
</div>
+
<div class="input-field col s6">
{{ form_widget(form.readingTime.left_number, {'type': 'number'}) }}
<label for="entry_filter_readingTime_left_number">{{ 'entry.filters.reading_time.from'|trans }}</label>
</div>
+
<div class="input-field col s6">
{{ form_widget(form.readingTime.right_number, {'type': 'number'}) }}
<label for="entry_filter_readingTime_right_number">{{ 'entry.filters.reading_time.to'|trans }}</label>
$this->assertCount(1, $crawler->filter('div[class=entry]'));
}
+ public function testFilterOnIsPublic()
+ {
+ $this->logInAs('admin');
+ $this->useTheme('baggy');
+ $client = $this->getClient();
+
+ $crawler = $client->request('GET', '/unread/list');
+ $form = $crawler->filter('button[id=submit-filter]')->form();
+ $form['entry_filter[isPublic]']->tick();
+
+ $crawler = $client->submit($form);
+ $this->assertCount(0, $crawler->filter('div[class=entry]'));
+ }
+
public function testPreviewPictureFilter()
{
$this->logInAs('admin');