joomlatools / joomlatools-framework-files Goto Github PK
View Code? Open in Web Editor NEWFiles System Component for Joomlatools Framework.
Home Page: https://www.joomlatools.com/developer/framework/
License: GNU General Public License v3.0
Files System Component for Joomlatools Framework.
Home Page: https://www.joomlatools.com/developer/framework/
License: GNU General Public License v3.0
Microsoft BMP has a special mimetype image/x-ms-bmp. Map this back to image/bmp for easier comparison.
Update the CSS, JS and markup to Kodekit UI v1.0.0
Changes made while implementing attachments for TEXTman
Right now mimetype while downloading is only properly set for images. Mimetype dectection through file info seems unreliable and hosting dependent (ComFilesMixinMimetype::_detectFinfo).
We need some sort of fallback mechanism to assume mimetype given the file extension.
See:
This would let users override it without core hacks.
count can only be called on Countable
instances or arrays as of PHP 7.2.
See: https://wiki.php.net/rfc/counting_non_countables
See: joomlatools/joomlatools-framework#135
Upgrade plyr.io library from v2.0.11 to v2.0.18
See: https://support.joomlatools.com/forums/topic/7499-problem-with-drag-and-drop-in-firefox-53-0
See: https://support.joomlatools.com/forums/topic/7547-problem-with-drag-and-drop-in-firefox-53-0
Problem seems to be FF specific. I suggest to upgrade plupload to the latest 2.3.1 release, we are still on the older 2.1.9 release.
The idea is to have a mechanism to override routes of direct file URLs served by files, e.g. thumbnails. This allows each app running files to override how this paths are constructed at render time.
An implementation example is rendering thumbnails link on FILEman on Joomla vs Platform. Platform requires the web part of the path to be stripped as it's part of the document root.
NOTE
This filter is to replace this utility method https://github.com/joomlatools/joomlatools-framework-files/blob/master/filter/path.php#L117-L128
Make sure to remove this code and places where this is being used after implementation.
Small thumbnails on list view aren't rendered when switching the layout. A refresh is needed for these to appear.
When uploading a file while on the list layout, the thumbnail isn't set when the file is uploaded. A refresh is also needed in this case.
Exception handling does not use FW 3.x conventions, making it harder to override.
There's a racing condition on the uploader when dealing with states. The condition is being caused by a timer which removes the uploading state clases out from the progress bar container.
See:
The uploader options contain the URL as provided by the router route object. If the path contains non encoded characters the json_encode call will encode these if the JSON_UNESCAPED_UNICODE is not set.
See:
There's a known issue with Dropzone on Chrome and IE on which the drop file area constantly flickers and it's behavior is rather erratic.
See:
References:
We need two methods isAudio and isVideo in the file entity which can be used for knowing where to render a player. Also update the player helper to use these methods.
When a folder/file gets created, the resulting resource name encoding is not the same as the one stored in the model entity. Therefore any comparison made against both will fail causing unexpected results.
See: https://support.joomlatools.com/forums/topic/7943-fileman-thumbnails-are-gone#comment-43362
First call the parent entity to finish object constructing before setting data.
This is because setProperties calls setAdapter which might call save to generate a thumbnail. However in the normal construction flow command mixin is not mixed in yet. So invokeCommand method does not exist.
The component keeps a copy of image data on the browser session storage container. However, it would seem that chrome may have reduced the maximum amount of allowed data that can be put into it.
We have a report of chrome deliberately refusing to put any more data on it:
See:
Solution is to remove this functionality to avoid running into such problems.
Components that extend this framework may need a mimetype => extension map. Implement models, entities, and behaviours needed for the child classes to access this mimetype map.
Note: this feature will be used in DOCman
The app currently fetches all thumbnails from each returned file and then picks the one it needs. This can be heavy especially when done the very first time (when thumbs get created).
Instead we should make the app grab the thumbnail it needs to reduce page loads.
Almost all extensions using com_files needs to use a routable dispatcher behavior. Make an abstract routable behavior to reduce duplicate code.
Instead of throwing an exception the model should just return an empty rowset when fetching files via the files model on a non-existing folder.
History.js is throwing a JS error under some conditions.
History.unescapeString function keeps decoding URLs on a while block using window.decodeURI. This function throws an error if an invalid %xx URLencoded character is provided. This means that any folder with a %xx substring on it is likely to make it fail.
Steps to reproduce on FILEman:
You should get a Uncaught URIError: URI malformed error and the submit box doesn't get closed.
The copy/move UI should work without assuming that a tree instance is set in the app.
Re-factor the way we handle thumbnails so that these get stored in the filesystem and not in the DB.
See: https://support.joomlatools.com/forums/topic/7203#comment-39055
When the user tries to download a file with an unknown mimetype (such as an sts file), request is served inline with no mimetype at all.
Testing instructions:
Add sts to the valid extension list in Fileman config
Unzip the file attached here and upload STS file into Fileman G-SHW063-2OE.stp.ZIP
Try to download the file
It should be downloaded as an attachment
There are certain characters that can be encoded in multiple ways in UTF-8. This is particularly a problem when you read the file name from filesystem and write to database.
Add a normalizer for common accented characters
Ability to read exif data
If pictures are taken by rotating the camera, devices such as an iPhone will store the orientation in the EXIF metadata. If we don't consider the rotation when generating a thumbnail, the picture will be shown incorrectly.
Imagine comes with an autorotate that can automatically correct the image's orientation.
Related issue:
Background:
Example images:
See: https://support.joomlatools.com/forums/topic/6503#comment-34795
This function is dependent on exif extension being available.
Fixed in: 51d5a2e
Implement google analytics for the audio/video player.
Some translations are reported missing. Seems that those displayed by the uploader aren't there.
See:
See: https://support.joomlatools.com/forums/topic/6958-error-1054-files-section-won-t-open#comment-37556
https://support.joomlatools.com/forums/topic/7000-sorting-link-last-modified-not-working#comment-37878
The column name is wrong for the ordering.
To replicate:
Go to files view and try to order by last modified
Docman uses a docman_mimetypes table to gather an extension<->mimetype map. This is highly useful when serving downloads and can be made generic in com:files.
Todo
See: https://support.joomlatools.com/forums/topic/7000-sorting-link-last-modified-not-working
Table sorting only seems to work in Firefox.
Implemented checkboxes to select image thumbnails and allow for batch operations in the thumbnail view.
Add the https://plyr.io library to com_files
Add a recursive folder iterator
Implement Joomlatools UI
Add new sidebar markup
The attachments UI needs to be updated to the new v3 UI style
See:
https://support.joomlatools.com/forums/topic/6831-docman-is-slow-in-the-administrator-in-ff-on-windows#comment-37017
https://support.joomlatools.com/forums/topic/6856-extman-2-2-5-install-fail#comment-37049
https://support.joomlatools.com/forums/topic/6880-warning-unresponsive-script#comment-37108
If you resize the page in a crowded table, the page hangs for a few seconds.
See Docman documents view for an example with more than 50 rows.
Route thumbnails links through application instead of direct linking.
Investigate performance impact with this change.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.