The main providers come from both the backend and client side plugins such as `in-folder` search.
The main providers may carry callbacks functions and other information that should be passed to the `filteredProviders`.
This is important because the current code does not make a distinction between `filteredProviders` and `providers`
rightly so, becuase they are the same thing!
Without the mentioned distinction above, sooner or later, we try to access a property on the `filteredProviders` which we
did not transfer with the manual property copy.
----
This fix prevents in-folder search from searching everywhere when "load more results" is clicked; Essentially ignoring the in-folder
search filter.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
The client-side plugin `in-folder` uses the `files` provider, this makes it
overlap with the main files provider itself.
This change follows eecda06f1a after it was discovered
that some apps/providers like `dav` use providers from another app like `contacts`
Signed-off-by: nfebe <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Each provider may search from a particular app so we should use that for searching.
Before this commit, we used `provider.id` instead of `provider.appId` the problem with the previous
approach is that it forces the provider id to be a valid search provider (an app that supports search)
limiting the developers ability to use unique IDs to identify the different providers (especially plugin providers)
inside the places filter.
For example the Files search plugin "In folder" (search in folder plugin) was required to have id as `files` while the
files provider itself already has id as `files`.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
Ensure that the if a preview is available the maximum sizes are
respected (clickable area).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
- Add default value to non-required Vue props
- Reformat function to async function if needed
- Add some documentation
- Allow `any` in places where it makes sense (tests)
- Order vue component sections as required
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Some filters are only available for certain providers, the UI should give the user
a hint to what providers such filters are available in.
Currently, if a filter (date or person) is not support by an a provider, the provider is
blurred out in the places dropdown.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
If a session timed out or was closed in another tab,
then currently the user gets random error messages.
This intercepts 401 responses (should only happen if logged out, or the
users does something wrong).
If we get a 401, we make sure its because of the session,
by checking if the user can access the files app.
If that is also the case we forward the user to the login page
and set the redirect URL to the last used URL.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The content that can be renderered does *not* include HTML (see
`recommended` object).
But `v-html` was used, this is potentially dangerous, even though we
sanitize the translation values, so no urgent harm but better safe than
sorry.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This solves 57 ESLint warnings by replacing deprecated code with `@nextcloud/` libraries,
as well as adding missing type information, importing jQuery instead of relying on global one,
and the same with Moment.js.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This adds a Vue implementation of the public page menu,
that is the menu that can be added using `PublicTemplateResponse::setHeaderActions`.
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Louis <louis@chmn.me>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Fix other background-positions
Minor fix in link button icon position
Update header left and right to start and end
Signed-off-by: Mostafa Ahangarha <ahangarha@riseup.net>
The `name` property expects a `text` and just adds basically a "heading" for the text,
so lets instead just utilize the default slot.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
1. Fix app menu overflow button to be centered
2. Ensure the overflow calculation always just removed one element (incl. refactor to use `@vueuse`)
3. Ensure we use 1.5 line height for app menu, otherwise some languages look squashed under the app icon
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This allows to split one large block of code into three components with each one usecase.
Allowing for better readability and maintainablility.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Nevertheless this causes a huge amount of new warnings.
Previously the shell script for directories to lint was wrong it was generating all app names to lint,
but was missing the `apps/` prefix. Causing only `core` to be linted.
Co-authored-by: Grigorii K. Shartsev <me@shgk.me>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This simplifies the code a lot and fixes errors with the exisiting custom code,
where slightly different base64 values were emitted which are not valid according to the standard.
ref: https://github.com/web-auth/webauthn-framework/issues/510
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
For security reasons it is recommended to stop the login process at a defined time,
this could prevent password leaks by e.g. user forgetting that they entered their password on public devices.
Enforced e.g. by the BSI ORP.4.A13 rule.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Excessively long emails reported make server unresponsive.
We could at some point, consider adding a configuration for sysadmins to bypass this setting
on their instance if they want.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
This would allow us to type guard what is sent to`registerFilterAction`
for unified search, so that incompatibilties are caught quickly.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
E.g. the file reference widget should work with links to Nextcloud on
localhost.
This adjusts the URL pattern regexes in server to be in sync with the
ones in `@nextcloud/vue`. See nextcloud-libraries/nextcloud-vue#5176
for further details.
Signed-off-by: Jonas <jonas@freesources.org>
This commit introduces the mechanism for apps out of the call,
to add search filters to the unified search "Places" filter selector.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
The unified search emits, search events that other apps can subscribe to and
react however they want to search queries, following
4b55594f55 and prior updates to migrate the Files
app ui to vue.js that feature was broken.
This commit reintroduces the feature using the current `FileList` implementation.
This commit also adds some logging to an empty exception handler.
Resolve : https://github.com/nextcloud/server/issues/43365
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
It was deprecated for over 4 years and scheduled for removal with Nextcloud 20.
Not used by server or any app anymore.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
It does not support tree shaking as they are still building a cjs
bundle. However, they bundle certain futures to separate smaller modules
which we can take advantage of.
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Those elements are shown directly on the background which has the `color-primary`,
so they need to use `color-primary-text` instead of `color-primary-element-text` for guranteed contrast.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
As expected, a user does not see themselves in their contact list,
however, when using the contact list for filtering search, a user,
might want to limit the search to things that pertain to them.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
On change/input from user which has the effect of filtering,
we want to send the query to the API to obtained fresh results,
based on the databased on not just preloaded contacts.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
- Changes appearances of "Global search" to "Unified search" in UI
- Refactors code, to remove usage of term "GlobalSearch" in files and code
structure
- Rename old unified search to `legacy-unified-search`
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Following the update of `NcListItem` to allow control over
where and how passed `hrefs` open, the search result component
can now make use of these props.
See : https://github.com/nextcloud-libraries/nextcloud-vue/pull/4923
Resolves : #41800
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
For BOD, it's better to always emit the search event so
apps (all of which we don't know) responding to this effect would receive notifications when
the search happens within these apps.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
After moving the `SearchResult` to its own component and leaving
out the openResult method, the search results do not lead anywhere but
but error out.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
The current close infrastructure modifies a prop which has
no real effect aside bugs.
In addition, calling the `NcModal.close()` as the primary way to
close the search modal instead of using the states defined in `GlobalSearch` view
causing re-open bugs (Modal cannot open, needs to click twice, and other weird stuff).
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
- Show loading when actually loading, instead of no content
- Change modified label to `Date` as it applies to a bunch of things.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
For better accesibility, the search input in the global search
modal should be focused when the search modal is opened.
Resolves: https://github.com/nextcloud/server/issues/41651
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Emit search queries from the global search modal that would trigger
list filtering in various apps that support it.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
The section that handles the search result list item is big and complex enough
to have it's own component. Inside this component, a new method is added to hide
the thumbnail preview if the image load errors out.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
- Pass `results.rounded` property that comes with search result
data to determine if avatar would be rounded or not.
- Icons loaded via url's now visible.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
- Allow future dates in custom date range
- Fix date ranges for example, before now, today range was roughly
between `now()` to `now() + a few milli seconds`
- Update text in custom date range modal, right align "Search in range"
button.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Only show in-app serach button if available for specific app
in question.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
- Fixes remove person filter/chip when applied
- Close person searchable filter via workaround
- Person filter has no effect fixed, now uses user property instead of id
- Left align filters
- Reduce avatar size in user chip and make photo non-clickable
Resolves : https://github.com/nextcloud/server/issues/41381
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
This commit migrates away from NcSelect which has a couple of
accesibility and display problems currently, hence a new component
`SearchableList` is now used.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
We are introducing a new search UI that providers a lot more space
for users via a large centralized modal and providers various filters
which can by applied by adding various chips on the UI.
For example, users can now filter their search or scope it by limiting the results
to specific apps, time period and people by apply the appropriate filters on the
new UI, previously filters where applied using text in the search box by prefixing
with `::`.
Resolves: #39162
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
`autocorrect` was actual for Safari long time ago when Safari didn't fully supported HTML 5 spellcheck.
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
Our utility to add `X-Requested-With` headers on API calls intercepts
calls to `window.fetch`, so we must ensure we allow all parameters that the default
browser provided `window.fetch` allows.
In this case make sure to allow all stringify-able objects.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Still providing the legacy one until the Vue FilePicker is out of beta.
Pin beta releases so we do not get version conflicts.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>