Commit Graph

390 Commits

Author SHA1 Message Date
Vincent Petry 9d38e3602b Namespacing for FileList, FileActions and trashbin app
- FileList is now an instantiable class
- FileActions is now in namespace
- added App class for trashbin app
- moved trashbin overrides into classes extending FileList
- replaced many static calls with "this." or "self." to make the classes
  reusable/extendable
- new URL parameter "view" to specify which view is shown, for example
  "files" or "trashbin"
- added OC.Util.History utility class in core for handling history
- moved URL handling/routing to OCA.Files.App
- popstate will correctly update the current view and notify the view of
  the URL change so it can update the current dir
- added JS unitt tests for the trashbin app
- fixed public app to work with the new namespaces
2014-05-15 17:51:04 +02:00
Vincent Petry 9a9665f361 Merge pull request #8041 from owncloud/files-sortcolumns
File list sorting by clicking on column headers
2014-05-12 12:50:27 +02:00
Thomas Müller 95fe55f9e7 fix broken unit test 2014-05-02 20:35:03 +02:00
Vincent Petry 61db16321f Clear selection on reload (when changing sort) 2014-04-29 18:49:11 +02:00
Vincent Petry 10bc67bef9 Show spinner for all files when deleting all 2014-04-29 17:59:30 +02:00
Vincent Petry af22e7ec95 Added unit test in files app for sort function in helper class
Added unit test for the Helper class in the files app that tests the
different sort orders.
2014-04-28 17:42:04 +02:00
Vincent Petry 688f6162da Add sorting to files list, trashbin and public files 2014-04-28 17:42:04 +02:00
Vincent Petry f99f451026 Fixed drag and drop into folder and onto breadcrumb
Fixed drag and drop code to use FileList.getSelectedFiles() instead of
the visible DOM elements.
2014-04-28 14:55:01 +02:00
Vincent Petry a15b68c10f Fixed selection summary calculation issue 2014-04-28 14:55:01 +02:00
Vincent Petry fd982df6ae Fixed selection to be based on FileList.files
The file selection is now based on the internal model array
FileList.files instead of the visible checkboxes.

This makes it possible to virtually select files that haven't been
rendered yet (select all, then deselect a visible one)

Added more unit tests for selection (with shift and ctrl as well)
2014-04-28 14:55:01 +02:00
Vincent Petry 8909b574fa Make sure there are always enough elements visible on the page 2014-04-28 14:55:01 +02:00
Vincent Petry 2883f231d0 Fixed insertion of files
Removed "insert" flag, inserting is by default for FileList.add().
Added "animate" flag to FileList.add().
Added logic to correctly detect when to insert/append elements whenever
the insertion point is visible or not.
Fixed "render next page" logic to work correctly when many pages of
files have been added.
2014-04-28 14:55:01 +02:00
Vincent Petry f6586f6bdf Fixed file sorting to work with scrolling
The FileList.files model is now updated with file operations.
Adding files to the list will add to the model first, then to the DOM.
If the insertion point isn't visible yet, the file won't be added to the
DOM until the user scrolls down.

Updated unit tests to include checking for the correct insertion point.
2014-04-28 14:55:00 +02:00
Vincent Petry 9c2fbea6a4 Fix file selection for infinite scrolling
- moved file selection code to FileList
- fix selection summary when all files are selected
- nextPage now auto-selects files if "select all" checkbox is checked
- fixed trashbin to use the same selection logic as FileList
2014-04-28 14:55:00 +02:00
Vincent Petry 9f62059efa Fix file summary to use the whole file list
- moved the summary code into a new class FileSummary
- FileSummary is calculated only once, then updated with add/remove
- added new OC.Util namespace for JS utility functions
2014-04-28 14:49:39 +02:00
Bjoern Schiessle 27c5a978f9 we no longer need to handle the Shared folder different from any other folder 2014-04-23 12:54:25 +02:00
Vincent Petry 0be9de5df5 Files, trashbin, public apps use ajax/JSON for the file list
Files app:

- removed file list template, now rendering list from JSON response
- FileList.addFile/addDir is now FileList.add() and takes a JS map with all required
  arguments instead of having a long number of function arguments
- added unit tests for many FileList operations
- fixed newfile.php, newfolder.php and rename.php to return the file's
  full JSON on success
- removed obsolete/unused undo code
- removed download_url / loading options, now using
  Files.getDownloadUrl() for that
- server side now uses Helper::getFileInfo() to prepare file JSON response
- previews are now client-side only

Breadcrumbs are now JS only:

- Added BreadCrumb class to handle breadcrumb rendering and events
- Added unit test for BreadCrumb class
- Moved all relevant JS functions to the BreadCrumb class

Public page now uses ajax to load the file list:

- Added Helper class in sharing app to make it easier to authenticate
  and retrieve the file's real path
- Added ajax/list.php to retrieve the file list
- Fixed FileActions and FileList to work with the ajax list

Core:

- Fixed file picker dialog to use the same list format as files app
2014-04-02 15:33:47 +02:00
Vincent Petry aaa8d6ec02 Fixed broken delete file action 2014-04-01 16:09:48 +02:00
Vincent Petry 07f78c8248 Added unit tests for "add()" method for file upload
- Added OC.Upload.init() to make the code testable
- Added unit tests for the add() method of the uploader with some error
  cases
2014-03-06 13:53:34 +01:00
Bjoern Schiessle 2e73c957e5 don't allow to create a file or folder named 'Shared' in the root folder, also exclude all combinations of lower and upper case letters 2014-03-05 13:16:25 +01:00
Robin Appelman f710205ee7 Make unit tests expect the svg icons 2014-02-20 16:56:09 +01:00
Vincent Petry d5397d813c Do not send file list for select all on Download/delete
- When all files are selected, do not send the whole file list
- Download will trigger download for the parent folder, also works
  with root
- Delete will send "allfiles" to the server that will find the file
  list or the passed directory by itself
2014-02-13 20:28:52 +01:00
Thomas Müller 6d3b61f388 Merge pull request #7011 from owncloud/jshint
Added .jshintrc
2014-02-04 12:11:32 -08:00
Vincent Petry ba1b9df8a9 Fixed file name validation unit test + added newline
- fixed file name validation unit test
- added "\n" as forbidden character in isFileNameValid()
2014-01-30 13:40:01 +01:00
Vincent Petry d36a2ff9ee Added .jshintrc
- Also fixes a few JSHint warnings in files app
- Added "global" comment on top of files app to suppress warning and
  also inform devs about what globals are use
2014-01-30 13:40:01 +01:00
Vincent Petry bc598f1919 Updated unit tests for rename action
- rename action is now checked inside of ".nametext" element
- added test to ensure that display() correctly resets all actions
  including the rename one
2014-01-30 10:07:08 +01:00
Vincent Petry 58c7042e70 Added error message for when target folder was removed
Whent trying to upload/rename/create files in a folder that was removed
or rename, the correct error message is now shown.

In the case of upload of multiple files, the upload is cancelled.

This situation can happen if the target folder was renamed or removed
from another browser window or client.
2014-01-29 12:46:11 +01:00
Vincent Petry c6695bbd76 Fixed download URL in public page
- Refactored download URL building to make it overridable
- Added download URL override in public page
- Added JS unit tests for download URL
- Added OC.redirect() method to facilitate unit testing
2014-01-24 13:38:39 +01:00
Vincent Petry 0671c58e36 Fixed filelist unit tests hidden params
Also added dummy table
2014-01-24 13:19:44 +01:00
Vincent Petry 350214c609 Added Javascript unit tests
- added karma utility to run jasmine unit tests
- added Sinon library (for stubs/mocks/fakeserver)
- added a few unit tests for core and files
- added autotest-js.sh script
2014-01-16 17:12:29 +01:00
Vincent Petry bc64931cd0 Fixed unit tests for ajax rename 2013-11-27 23:19:57 +01:00
Vincent Petry 356eef0739 Quota storage wrapper is now used for all users in sharing mode
When accessing a shared folder, the folder's owner appears as mountpoint
but wasn't wrapped by a quota storage wrapper.

This fix makes sure that all home storages are wrapped by a quota
storage wrapper, if applicable, to make sure quotas are respected when
uploading into shared folders.
2013-11-21 12:04:54 +01:00
Thomas Müller a90cefcea2 avoid usage of brand name 'ownCloud' 2013-10-28 21:42:48 +01:00
kondou 9e8a6b704d Add _many_ newlines at the end of files 2013-08-18 11:06:59 +02:00
Morris Jobke e0547a25ab if rename of file fails, the rename is undone in the view - #fix 2820
Changes:
 * OC.dialog -> OC.Notification
 * Added test
 * Fixed OC.Notification.show() issue for queued items
 * Highlight failed item and show notification
2013-06-15 09:58:27 +02:00
Morris Jobke e2bd32323d [files] fix mock creation and remove hardcoded 'require' statement 2013-05-12 13:02:01 +02:00
Morris Jobke b777c0fd75 [files] rename lib to "App" 2013-05-12 11:47:22 +02:00
Morris Jobke 7e23e97676 [files] rename test class and add rename test 2013-05-12 11:47:22 +02:00
Morris Jobke d4ba9cf338 [files] remove realpath in test 2013-05-12 11:47:22 +02:00
Morris Jobke bb5554de7f [files] rename tests 2013-05-12 11:47:22 +02:00