Commit Graph

224 Commits

Author SHA1 Message Date
Daniel Calviño Sánchez 29c924f74b Use hard-coded values for paddings and margins
This ensures that the resize tests do not depend on the values set in
the CSS files.

Note that this change causes a test to fail with Firefox, but not with
PhantomJS. This is due to a difference in the starting width used by
Firefox and by PhantomJS, and it will be fixed in a following commit.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-02-28 15:03:26 +01:00
Daniel Calviño Sánchez acdf091f84 Compress siblings before calculating the available width for crumbs
When the parent element of the breadcrumbs was resized to a larger width
and the siblings of the breadcrumbs expanded to fill all the available
width some crumbs could be hidden even if there was enough room for
them. The reason was that the width of the siblings being used to
calculate the available width for the breadcrumbs was the expanded width
of the siblings. Now as many crumbs as possible (that is, fitting in the
parent, no matter the siblings) are first shown so the expanding
siblings are compressed before calculating the available width.

Due to the lack of support for flexboxes in PhantomJS the related unit
test is skipped; it has to be run in other browser, like Firefox.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-02-28 15:03:26 +01:00
Daniel Calviño Sánchez a37007f872 Take all visible siblings into account
Other apps could add elements to the controls outside the creatable
actions div (for example, the button to switch to the gallery), so the
widths of all the visible siblings of the breadcrumbs have to be taken
into account in the size calculations.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-02-28 15:03:26 +01:00
Daniel Calviño Sánchez e37c4fd7f3 Take padding and margin of the creatable actions div into account
There are some differences in width handling between the browsers used
to run the tests, most likely due to their support (or lack of) of
certain CSS features: PhantomJS requires "width" to be set (probably
because it does not handle flex displays and treats it like a block, so
"min-width" does not matter in this case), while Firefox requires
"min-width" to be set (otherwise the children of "#controls" could be
compressed due to its use of flex display and the elements would end
with a different width than the one needed for the tests). Due to all
that the width of the breadcrumb siblings must be specified in the tests
using both "width" and "min-width".

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-02-28 15:03:26 +01:00
Daniel Calviño Sánchez 3850221ae1 Do not render the breadcrumbs again in resize tests
There is no need to call "setDirectory" again in resize tests; it is
enough to simply resize them (and isolates them better to just test the
resizing behaviour).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-02-28 15:03:26 +01:00
Daniel Calviño Sánchez a9552de089 Set the width of the parent element in breadcrumb tests
Setting the width of the parent element of the breadcrumbs and then
explicitly calling "_resize" is enough to test the resizing behaviour.
This makes possible to remove the "setMaxWidth" method and its related
code, which was used only for testing purposes.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-02-28 15:03:26 +01:00
Roland Tapken 38ba64af77 Split move and copy operations
The new 'Move and copy' operation from #6040 requires UPDATE permissions
on the selected files. However, READ would be sufficient to create a
copy of a file (if not viewed as a public share). For this reason this patch:

- changes the permission of the 'MoveCopy' action to PERMISSION_READ
- changes the label of the action depending on the permissions
- changes the available buttons in the Move/Copy dialog depending on the
  permissions.

The same changes are done to the filelist view for bulk actions.

Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
2018-02-15 18:51:12 +01:00
Daniel Calviño Sánchez f29c1cf13a Fix empty details view after renaming a file
"FileList._updateDetailsView" expects either a file name (as a string)
or a file model (as an "OCA.File.FileInfoModel"), but when called
through "updateInList" an "OC.Files.FileInfo" object was given instead.
As the given attribute was not a model "_updateDetailsView" treated it
as a file name and tried to get the model for that file, which failed
and caused the details view to be emptied.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-01-11 02:47:11 +01:00
Daniel Calviño Sánchez 7a088cfcf5 Move adding test files to "beforeEach()"
All the tests in the "Renaming files" section added the test files,
although those calling "doRename()" added them by setting a path for the
file too. However, the path is ignored in the other tests, so adding the
files can be unified and moved to "beforeEach()".

This would be needed, for example, to show the details view for a file
before calling "doRename()".

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-01-11 02:45:47 +01:00
Daniel Calviño Sánchez 3113ee1129 Hide favourite icon in details view if favourite action is not available
When the favourite icon in the details view is clicked the "Favorite"
action is triggered. However, if the action name given to
"triggerAction" is not found then the "Download" action is triggered
instead. As the "Favorite" action is not available in some file lists
(like "Recents") the "Download" action was executed instead in those
cases, which was a strange behaviour. Now the favourite icon is
hidden if its action is not available.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-01-05 19:06:06 +01:00
Daniel Calviño Sánchez ea40ade8ad Fix "fileActions.currentFile" not set before using it
When an empty area of a file row was clicked and the "Details" action
was executed "fileActions.currentFile" was not guaranteed to be set to
the appropriate object (it depended on the previous actions of the
user), so when it was used by "getCurrentMimeType()" and other
FileActions functions they may not work as expected. Now it is
explicitly set to the appropriate value before its use.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-12-26 04:56:25 +01:00
Morris Jobke e37fa60784
Merge pull request #7591 from nextcloud/trigger-events-before-and-after-a-file-action-is-executed
Trigger events before and after a file action is executed
2017-12-22 12:31:55 +01:00
John Molakvoæ (skjnldsv) 8cc90ab4de
Fixed breadcrumbs tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-12-21 16:22:54 +01:00
Daniel Calviño Sánchez 7760f16521 Trigger events before and after a file action is executed
In the same way that other elements can know when a FileAction is
registered or a default action is set this commit makes possible to be
notified before and after a FileAction is executed.

This is achieved by wrapping the registered action handler in a custom
function that notifies the listeners before and after executing the
handler itself. Due to this approach only FileActions registered through
"registerAction" trigger the events, although that is not a problem as
this is how the actions should be added to the FileActions anyway.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-12-19 18:33:34 +01:00
Bjoern Schiessle 7bc28f14de show e2e folder icon on encrypted folders
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-11-20 21:00:26 +01:00
Daniel Calviño Sánchez 37d8d3d858 Add data attribute to file list rows telling if the file is encrypted
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-20 21:00:04 +01:00
Björn Schießle f347e2e4a6
Merge pull request #7047 from nextcloud/add-support-for-files-with-no-permissions
Add support for files with no permissions
2017-11-20 16:15:52 +01:00
Morris Jobke ff2d4432d8
Merge pull request #7051 from nextcloud/breadcrumbs-refactor
Breadcrumbs refactor
2017-11-13 12:19:05 +01:00
John Molakvoæ (skjnldsv) 8c2dbeb13a
Added more tests and only test jsunit on drone (for testing only)
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-11-13 10:51:31 +01:00
John Molakvoæ (skjnldsv) b4f5b38713
Add menu tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-11-12 05:20:06 +01:00
John Molakvoæ (skjnldsv) 85355e98e6
Fixed tests and width calculation
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-11-08 20:12:38 +01:00
John Molakvoæ (skjnldsv) b001060556
Fixed remaining tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-11-08 18:11:33 +01:00
John Molakvoæ (skjnldsv) 694a96d938
Fixed some more test and loop fix
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-11-08 17:54:38 +01:00
John Molakvoæ (skjnldsv) 267b673ccb
Updated tests according to new system
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-11-08 16:04:10 +01:00
Daniel Calviño Sánchez e6b74fac40 Add proper handling of files without permissions
Now a file gets its directory permissions only if it contained no
permissions (they were undefined or null), but not if its permissions
were set to "NONE".

Besides that, now file actions that do not require any permission on the
file to be performed can be used on files that have no permissions.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-02 19:37:00 +01:00
Daniel Calviño Sánchez a9540fe990 Hide summary file actions when a selected file does not match
When several files are selected and one of them can not be deleted the
"Delete" file action is not shown in the summary. This commit extends
that behaviour too to the other file actions in the summary ("Move or
copy" and "Download"), so now an action is shown in the summary only if
it can be executed on all the currently selected files.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-02 12:47:57 +01:00
Daniel Calviño Sánchez 1f19a45a88 Merge pull request #6869 from burned42/6307-fix_page_title_not_changed
#6307 fix page title not changed
2017-10-27 17:12:47 +02:00
Bernd Stellwag 3e3e4899fa bugfix: set/change page title when switching to filelist
Signed-off-by: Bernd Stellwag <burned@zerties.org>
2017-10-27 15:23:39 +02:00
Daniel Calviño Sánchez f392e78d5b Move checkboxes to their own column
The selection column is not only a visual column, but also a real column
of the file list table. Unlike other columns whose width is reduced in
space constrained screens the selection column must stay the same so the
tapping area is large enough to be easily usable

The selection column does not appear in the search results table, so its
contents have to be explicitly aligned with those of the main table
based on whether the main table has a selection column or not (using the
"has-selection" CSS class in the same way as the "has-favorite" CSS
class was being used when there was a column for favorite actions).

In the tests the ":visible" selector can no longer be used. That
selector matches elements with a width or height that is greater than
zero, but the dimensions calculated in the unit tests are not reliable;
the width of the link was zero before these changes, and now moving the
checkbox to its own column causes the height of the link to become zero
too, so it no longer matches the ":visible" selector even if it is not
hidden. As hidding and showing the link is based on its "display" CSS
property its value is the one checked now.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-10-19 01:46:13 +02:00
Daniel Calviño Sánchez 6b8713e8b6 Remove "has-favorites" class from file list table
The "has-favorites" CSS class is no longer used after moving the
favorite mark to the top right corner of the thumbnail, so there is no
need to add it to the table.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-10-19 01:46:13 +02:00
Daniel Calviño Sánchez 415ac9b3ac Move favorite mark to the top right corner of the thumbnail
The favorite icon was shown on its own "column" (not a real column in
the table, but a visual column achieved through margins and left
positions). Now the icon was moved to the top right corner of the file
thumbnail, and the thumbnail and file name were moved to the left to
fill the space left by the "column".

To keep the markup in line with its visual representation (and to ease
the placing through CSS), the favorite mark is no longer prepended to
the row, but appended to the thumbnail instead. In the same way, the
thumbnail is no longer appended to the checkbox label, but to the link
with the name of the file instead (although the checkbox is still shown
at the bottom right corner of the thumbnail, and clicking on the
thumbnail still selects the file). In order to show the "busy" state on
a file the "icon-loading-small" CSS class is set to the parent element
of the thumbnail, so the thumbnail is also wrapped now by another div
with the same size and position as the label.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-10-19 01:46:13 +02:00
Daniel Calviño Sánchez 9ff0941c07 Replace inline favorite action with just a favorite icon
This is a preparatory step for a following commit in which the position
of the favorite icon and the checkbox will be swapped; in that new
design the favorite icon is no longer expected to be an action but just
a simple mark on whether the file is favorited or not (the action is
expected to be triggered then only from the file actions menu).

The favorite icon is now fully shown or completely hidden depending on
whether the file is favorited or not. As the icon is just informative
but no longer an action now it does not change when hovered or focus. In
the same way, the alternative text when the file is not favorited now it
is not "Favorite" (an action) but "Not favorited" instead.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-10-19 01:46:13 +02:00
Daniel Calviño Sánchez 420d1b91ab Add "Favorite" action to the file actions menu
The new FileAction for the menu is essentially the same as the old
inline FileAction, except for the rendering; in this case the FileAction
is shown in the menu in a standard way, so there is no need to provide a
custom renderer (although the menu entry text and icon change depending
on whether the file is currently a favorite or not, but that can be done
just with displayName and iconClass functions).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-10-19 01:46:13 +02:00
Daniel Calviño Sánchez a8f1902b02 Add support to FileActionsMenu for icon class functions
Icon class function properties make possible to render a different icon
class depending on the context of the file action.

Inline file actions had support for them already and called them passing
the file name and context of the file action as parameters. Due to this
the FileActionsMenu passes those parameters too to icon class functions
instead of just the context like done for display name functions.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-10-19 01:46:13 +02:00
John Molakvoæ (skjnldsv) ab1c34c5a5
Fixed tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-09-25 16:17:33 +02:00
Thomas Citharel 8c576a8d63 Add tests for FileList
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-09-15 18:14:34 +02:00
Roeland Jago Douma 69d2d0178a
Don't try the actual file upload if the checks already error out
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-08-26 11:30:04 +02:00
Robin Appelman e1d6ca3c53
fix test
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-07-11 14:03:11 +02:00
Daniel Calviño Sánchez be56374c51 Fix sorting of favorite files
The sort comparator checks the "isFavorite" property of the FileInfo
objects to compare. That property is set when the file list is loaded
and the response from the server is parsed, and thus a freshly loaded
file list has the proper sorting for favorite files. However, the
property is not set in other cases, like when the FileInfo objects are
derived from FileInfoModels due to a file being marked as a favorite or
a text editor being closed, which causes the file to be sorted in the
wrong position.

There is no need to add the property in those situations, though; in all
cases the TagsPlugin adds a "tags" array property that contains an
OC.TAG_FAVORITE tag, so that tag can be checked instead of "isFavorite".
Moreover, although "isFavorite" was added by the main "_parseFileInfo"
function it did not really belong there but to the "FileInfoParser" from
the TagsPlugin; however, as that property now is not used anywhere it
was removed altogether.

A cleaner solution would have been to make the sort comparator
extensible by plugins like other behaviours of the file list and then
add the sorting logic related to favorite files to the TagsPlugin.
However, right now only the TagsPlugin would need to alter the main
sorting logic, and it seems like a corner case anyway. Even if it is
implemented as a plugin, favorite files is a core feature, so for the
time being it will be taken into account directly in the main sorting
logic; making the sort comparator extensible by plugins is defered until
there are other use cases for that.

Fixes #5410

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-07-05 15:01:23 +02:00
Daniel Calviño Sánchez 0a3d9f25c1 Make possible to know the registered detail views in a details view
In some cases, an app may need to act on a detail view registered by
another app or the core, for example, to add extra elements to the
element of the detail view.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-06-09 03:14:23 +02:00
Roeland Jago Douma 8d66e325a9
Do not reload the filelist on first open
Fixes: #4644

Without this patch the filelist would always reload. However since not
all the correct data was set yet it would often:

1. fireoff a propfind to ../webdav/
2. fireoff a propfind to ../webdav/<PATH>

When just opening the file list those are the same so the result is just
fine. However if opening a direct link it means that there is a race
condition on which finishes first.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-05-04 13:29:49 +02:00
Vincent Petry 3f36548a6d
Reload file list when leaving hidden state
Whenever a file list is already initialized and was hidden when
switching to another file list in the navigation bar, if the user comes
back to this list it gets redisplayed. At this point the list needs to
be refreshed to be able to reflect any potential file changes done from
the other lists.
2017-04-26 13:51:44 +02:00
Christoph Wurst 2317d7bb49
Fix sinon.stub deprecation warnings
Calls to `sinon.stub(obj, 'meth', fn)` are deprecated and therefore
replaced by `sinon.stub(obj, 'meth).callsFake(fn)` as instructed by
the deprecation warning.

This makes the js unit testing output readable again.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2017-04-24 10:39:37 +02:00
noveens 40228c0c2b
added quit option in commentstabview.js
added quit option in notif in app.js

added quit option in notif in file-upload.js

added quit option in notif in fileinfomodel.js

added quit option in notif in filelist.js

added quit option in notif in filelist.js

added quit option in notif in tagsplugin.js

added quit option in notif in statusmanager.js

added quit option in notif in external.js

added quit option in notif in versionstabview.js

added quit option in notif in notification.js

changes according to the latest review.

timeout removed since there is a button to close it

translation capability added

typo fixed

test files updated

small errors fixed

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-23 13:12:29 -06:00
Felix Heidecke 11f838f9e4
Add ignore_files to config,
test files against ignore_files list on upload

fix typo and indentation

Move blacklist declaration to lib/public/Files/FileInfo.php,

Rename *ignored to *blacklisted

Mocked blacklist_files for testing

Mocked blacklist_files for testing

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-20 01:17:12 -06:00
noveens 93f9db4d59
filelist only refreshed if directory changes
check introduced at another method

comment added to explain one check

comment added to explain one check

unit tests added

small fixes in unit tests

missing semicolon added

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-02 21:43:44 -06:00
Michael Jobst a7526b9837
Style modifications of favorite star on main detail view (#26658)
* Style modifications of favorite star on main detail view

* Removed unused opacity change on mouse over

* favorite star title fixed

* favorite star opacity should  always be .7

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-19 17:34:09 +01:00
Lukas Reschke 9704b4df52
Catch status code 400
In case the server returns a statuscode 400 we should also gracefully return to the home directory.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-01 19:13:28 +01:00
Vincent Petry 1141fcc9ac
Skip hidden files when counting visible files in list (#26522)
The file list UI logic that renders the next page doesn't properly
exclude hidden files when not shown. This fix makes sure that only rows
that are actually visible are counted when rendering a page, this makes
sure that the page will always have enough elements displayed.
2016-11-14 16:21:57 +01:00
Vincent Petry 6a4ea2c15a
Upload autorename on client side
Removes the need for POST to collection which would hit against upload
limits.

The client tries to auto rename the file by adding a suffix "(2)".
It tries to use the file list on the client side to guess a
suitable name. In case a file still cannot be uploaded and creates a
conflict, which can happen when the file was concurrently uploaded, the
logic will continue increasing the suffix.
2016-11-02 22:15:03 +01:00