Commit graph

242 commits

Author SHA1 Message Date
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
Vincent Petry
7e701504be
Remove upload_limit in files app as it is not needed with PUT upload (#26069)
The web UI now uses for PUT uploads which aren't restricted by PHP's
upload_max_filesize and post_max_size

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-02 20:43:35 +01:00
Vincent Petry
50b8221255
Highlight files and update storage stats at end of upload (#26164)
Properly trigger the "stop" even from the uploader.
Also update storage stats at the end of all uploads instead of for each
upload.
2016-10-25 14:51:44 +02:00
Morris Jobke
c0adc3c2cf Merge pull request #1883 from nextcloud/downstream-26145
Storage 503 message improvements
2016-10-25 13:19:46 +02:00
Vincent Petry
f374eb5f1d
More fixes to file upload
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-24 21:45:00 +02:00
Vincent Petry
f72ffa2f11
Fix js unit tests for webdav put upload changes
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-24 21:45:00 +02:00
Vincent Petry
59c5be1cc5
Use Webdav PUT for uploads in the web browser
- uses PUT method with jquery.fileupload for regular and public file
  lists
- for IE and browsers that don't support it, use POST with iframe
  transport
- implemented Sabre plugin to handle iframe transport and redirect the
  embedded PUT request to the proper handler
- added RFC5995 POST to file collection with "add-member" property to
  make it possible to auto-rename conflicting file names
- remove obsolete ajax/upload.php and obsolete ajax routes

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-24 21:45:00 +02:00
Vincent Petry
44cf67accd
Storage 503 message improvements
"Storage not available" is now "Storage temporarily not available".
Exceptions are now logged in DEBUG level, not FATAL.
2016-10-24 15:43:15 +02:00
Vincent Petry
361f008c70
Make it possible to filter by tags with REPORT method
Enhanced the REPORT method on the Webdav endpoint and added a
"oc:favorite" filter rule. When set, it will return a flat list of
results filtered with only favorite files.

The web UI was also adjusted to use this REPORT method instead of the
private API endpoint.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-19 11:06:29 +02:00
Joas Schilling
6c81c65eea
Also prevent null byte character 2016-09-01 12:24:14 +02:00
Joas Schilling
7cd86cfe59
Filter out %0A from paths 2016-09-01 10:06:06 +02:00
Vincent Petry
7fa66409ae
Display number of hidden files in files summary (#25870)
When dot files are hidden, the table summary and selection summary will
not show how many hidden files were included.
2016-08-29 14:47:41 +02:00
Vincent Petry
f7deb2c2eb
Fix hidden files handling
Hidden files (dot files) are now always rendered in the DOM to make
sure that all file operations and selection still work as expected.

Their visibility is now toggled on CSS level.
2016-08-19 10:26:19 +02:00
Julius Haertl
217b52085d
Fix javascript tests for sidebar animation 2016-07-30 16:30:05 +02:00
Robin Appelman
c662e4b983 fix js test 2016-07-27 12:59:43 +02:00
Morris Jobke
ba16fd0d33 Merge branch 'master' into sync-master 2016-07-07 11:29:46 +02:00
Vincent Petry
cf6fe95cbf Merge pull request #25325 from owncloud/filelist-prependslash
Filelist change dir auto-prepend slash
2016-07-06 12:44:03 +02:00
Vincent Petry
1f9d728538 Ignore invalid paths in the JS file list (#25368) 2016-07-06 11:55:02 +02:00
Lukas Reschke
76c73d5ec3 Match on 405 2016-07-01 15:19:21 +02:00
Lukas Reschke
4ac9eaab03 Match for /../ 2016-07-01 15:01:48 +02:00
Lukas Reschke
5b65591d84 Do not allow directory traversal using "../"
We should not allow directory traversals using "../" here.

To test access the following URL once with and then without this patch:

http://localhost/server/index.php/apps/files/?dir=../../This+Should+Not+Be+Here
2016-07-01 13:36:05 +02:00
Vincent Petry
4acb06923d Filelist change dir auto-prepend slash
Prepend a slash to directories in case it was missing since many places
assume that it's there.
2016-07-01 11:10:37 +02:00
Lukas Reschke
6670d37658 Merge remote-tracking branch 'upstream/master' into master-sync-upstream 2016-06-27 18:23:00 +02:00
Vincent Petry
b4cf297758 Prerender file list pages to include search results
When filtering the file list, if a result is on an unrendered page,
make sure to call _nextPage() to prerender the pages in order to
display all matching results.
2016-06-24 13:55:14 +02:00
Morris Jobke
51b067d603
Fix failing JS unit tests
* fixes #124
2016-06-16 11:00:58 +02:00
Vincent Chan
3538e90ba1
fixes size of the download spinner 2016-05-30 11:23:54 +02:00
Vincent Petry
254576e1f7
Do not encode slashes in "dir" URL param in files JS 2016-05-06 17:00:22 +02:00
Vincent Petry
112b703df0
Add anchor icon in sidebar to copy permalink 2016-05-06 16:46:59 +02:00
Vincent Petry
fdeafef6a0
Auto-add fileid in URL for currently displayed folder 2016-05-06 16:46:59 +02:00
Christoph Wurst
576f7244e6 fix default value, update js/php tests 2016-04-13 14:25:23 +02:00
Vincent Petry
3a36163e91 Fix download spinner to work with CSS styles
A recent change replaced img elements with CSS icons for file actions.
This fix adjusts the logic to work properly with CSS icons instead of
images.
2016-03-04 10:48:08 +01:00
Vincent Petry
867a8aca12 Fix favorite icon unit test for icon image 2016-02-25 23:01:09 +01:00
Roeland Jago Douma
92cff0984d Make file actions use icon CSS classes
This makes theming of file actions possible
2016-02-25 22:49:52 +01:00
Vincent Petry
27544144ce Fix unit tests affected by side effects
The notification tests were not restoring the clock properly, but
indirectly helped other tests pass.

Since now we're restoring the clock properly, the other tests were fixed
to still work.
2016-02-22 17:25:32 +01:00
Thomas Müller
7af7d18cfa Merge pull request #16783 from owncloud/handle-redirects-global
Adding global error handler for ajax calls which run into redirection…
2016-02-17 14:49:04 +01:00
Vincent Petry
d565290d16 Close file detail sidebar when selecting/unselecting files
Interacting with the checkboxes, also "Select all" will automatically
close the sidebar now.
2016-02-15 14:58:44 +01:00
Vincent Petry
b8b77709c0 Add handler for global ajax errors 2016-02-15 12:48:47 +01:00
Vincent Petry
ae367c7e97 Fix elementToFile to also return path when defined
Fixes issue when opening the share dialog for a file inside the favorite
list, and the file is from a subfolder
2016-02-08 22:33:39 +01:00
Thomas Müller
22010517f5 Merge pull request #21752 from owncloud/files-delete-fix
Only check selection for delete permissions, not parent folder
2016-01-26 16:13:10 +01:00
Morris Jobke
6e096936e5 update JS humanFileSize to use KB instead of kB 2016-01-19 10:51:57 +01:00
Robin McCorkell
df7db3685e Remove faulty directory permissions test 2016-01-15 20:46:39 +00:00
Roeland Jago Douma
665d7b25b0 Add unit test for file update 2016-01-09 22:47:26 +01:00
Vincent Petry
d27826bac0 Correctly render uploadtext indicator only on folders 2015-12-18 18:09:46 +01:00
Vincent Petry
4d9e12b8bc Fix mount type root detection
Since Webdav doesn't contain that information, we need to rely on the
parent folder's mount type to find out whether a child item is a
shared/external root or not.

Fixed the mount type detection logic and added unit test.

Also added a fix that ignores detection if no parent folder exists (ex:
shared file list, favorites, etc)
2015-12-14 10:44:47 +01:00
Vincent Petry
baa5a69c55 Bring back file delete action text to be based on context
For received shares, the delete action becomes "Unshare" and for
personal mounts it becomes "Disconnect storage".

This also makes it possible from now on to pass a function to a file
action's "displayName" attribute.
2015-12-11 15:14:30 +01:00
Vincent Petry
fa2be0750c Make files app use Webdav for most operations 2015-11-22 16:05:50 +01:00
Vincent Petry
8fc0e05564 Remove "Text file" entry in the "+" menu
The text editor app will register this instead.

Also made "fileList" a non-private attribute to make it possible for
plugins to access the attached file list object.
2015-11-19 15:36:21 +01:00
Vincent Petry
80cf4e84e3 Fix file action download spinner 2015-10-30 14:58:53 +01:00
Vincent Petry
9c9158e6b7 Fix icon update to be more consistent
Makes the details bar show the same icon as in the list.
2015-10-29 12:59:51 +01:00
Vincent Petry
abd0ba1f25 Fix file upload, conflict dialog, also in public link
- Use "FileList" instead of "OCA.Files.App.fileList" that doesn't exist in public
link page.
- Fix public link upload by properly adding the form data using a new
  utility function "addFormData". That one is needed because IE8 upload
  and regular upload use a different format...
2015-10-21 12:18:06 +02:00
Vincent Petry
204b3ca189 Do not register sidebar panels when no sidebar 2015-10-15 16:30:50 +02:00
Roeland Jago Douma
6bf6ff9564 If an inline files action provides an alt text show it
* Added unit tests for icon display
* Added unit tests for icon alt text display
2015-10-03 15:47:20 +02:00
Morris Jobke
4b3a5a257f Fix moment.js "a few seconds ago" with "seconds ago"
* fixes #18627
2015-10-02 10:51:51 +02:00
Thomas Müller
750f19340f Merge pull request #19310 from owncloud/hide-sort-indicator
hide sort indicator when in multiselect mode, ref #19056
2015-09-30 11:07:45 +02:00
Thomas Müller
733673b39d Merge pull request #19365 from owncloud/files-detailsbar-interaction
Fix sidebar interaction
2015-09-29 14:44:28 +02:00
Vincent Petry
d52361b09b Disable sorting when multiselect is enabled in file list 2015-09-29 13:24:33 +02:00
Vincent Petry
f9acf4627e Fix sidebar interaction
- Clicking a file row or selecting it will open the sidebar.
- When sidebar is open, its contents update with the last selection.
- Dragging doesn't open the sidebar but does update its contents if it was
open already.
- Switching folders closes the sidebar.
- Close sidebar when highlighted file got deleted/removed from list
2015-09-28 15:23:37 +02:00
Vincent Petry
a8fb0038e9 Hide sidebar tab headers conditionally
Added canDisplay() in DetailsTabView that should return false if the tab
header of this tab must be hidden
2015-09-28 14:57:44 +02:00
Thomas Müller
72024ad201 Merge pull request #19404 from owncloud/files-sidebar-sorttabs
Fix tabs order in files sidebar
2015-09-28 12:55:38 +02:00
Vincent Petry
5e4a52d3c2 Fix tabs order in files sidebar 2015-09-28 12:30:12 +02:00
Vincent Petry
f35b6833ff Fix order of actions in the files actions menu 2015-09-28 11:19:49 +02:00
Jan-Christoph Borchardt
004de1425e Merge pull request #18630 from owncloud/files-combineuploadbutton
Combine upload action into the "New" menu
2015-09-07 14:03:57 +02:00
Vincent Petry
310d797284 Add versions tab to files sidebar
- move versions to a tab in the files sidebar
- added mechanism to auto-update the row in the FileList whenever values
  are set to the FileInfoModel given to the sidebar
- updated tags/favorite action to make use of that new mechanism
2015-09-03 16:47:24 +02:00
Vincent Petry
73c61941e2 Tags in FileInfo map must be an array
Fixes FileList.elementToFile to make an array for the tags instead of
keeping the original joined string
2015-09-03 13:01:14 +02:00
Vincent Petry
4ba2333507 Added unit tests for "new" file menu and small fixes
- added unit tests for NewFileMenu
- use generateUrl for FileList.createFile and FileList.createDirectory
- added unit tests for FileList.createFile and FileList.createDirectory
2015-09-03 12:17:35 +02:00
Vincent Petry
3ea9f97c36 Fix sidebar thumbnail loading JS unit tests 2015-09-03 08:24:50 +02:00
Raghu Nayyar
c6053daf43 Fixes failing tests 2015-08-31 00:14:07 +02:00
Vincent Petry
5e6fa3c938 Fix trashbin sidebar
Do not display size as it is not available.
Use display name instead of name to remove the ".d123456" suffix.
2015-08-25 11:29:35 +02:00
Vincent Petry
37939fb0e8 Parse mtime from the data attributes 2015-08-24 17:16:20 +02:00
Vincent Petry
ffff156965 Merge pull request #18310 from hasso/selection-string-fix
Fix the string counting a selected files/dirs
2015-08-18 10:43:17 +02:00
Hasso Tepper
97bc73ad49 Update unit test to reflect the string change 2015-08-17 15:31:44 +03:00
Vincent Petry
e2549fa660 Improve right sidebar tabs behavior
Tab heads are not rendered if only one tab.

The tab contents is updated on-demand. This means that if a tab is not
visible it is not rendered at first. If the tab was already rendered
through switching, its model will not get updated until the next time it
becomes visible. This will prevent needless rerendering of invisible tab
contents, especially considering that some tabs might need extra ajax
requests.
2015-08-14 16:51:04 +02:00
Vincent Petry
c964eff17b Make file actions work from sidebar
The favorite icon in the sidebar now triggers the file action and also
updates itself according to the model's state when triggered from the
file row.

The thumbnail triggers the default action.

Currently only one FileInfoModel is used for the selection and state
synchronization between views.

FileList reload now auto-closes the sidebar.
2015-08-12 17:30:20 +02:00
Vincent Petry
984ae8140d Fixed file actions menu to close when reclicking trigger
FileActionsMenu is now a backbone view.
The trigger and highlight handling is now done in the
FileActions.showMenu() method using events.
2015-08-11 11:35:46 +02:00
Vincent Petry
9454e9043a Updated unit tests for file actions and actions menu 2015-08-10 14:12:34 +02:00
Vincent Petry
038d29b8de Fix unit test for tipsy->tooltip change 2015-08-10 11:23:39 +02:00
Arthur Schiwon
9c402c761f fix timezone issue with unittest 2015-08-07 01:22:45 +02:00
Vincent Petry
bdfab8108e Fix sidebar mtime display unit test 2015-08-07 01:22:45 +02:00
Vincent Petry
781ba420c9 Use own tabs impl in files sidebar
Also change style.
2015-08-07 01:22:44 +02:00
Arthur Schiwon
734c6b0b6f extend MainFileInfoDetailView JS tests 2015-08-07 01:22:43 +02:00
Vincent Petry
e0bcd56402 More work on right sidebar unit tests 2015-08-07 01:22:43 +02:00
Vincent Petry
3e44ca6dc2 Added unit tests for right sidebar 2015-08-07 01:22:43 +02:00
Morris Jobke
5699fff889 Merge pull request #17175 from owncloud/add-download-feedback
Add loading spinner to download icon
2015-07-30 16:34:35 +02:00