|
56 | 56 | var showHidden = $('#showHiddenFiles').val() === "1";
|
57 | 57 | this.$showHiddenFiles.prop('checked', showHidden);
|
58 | 58 |
|
| 59 | + // crop image previews |
| 60 | + this.$cropImagePreviews = $('input#cropimagepreviewsToggle'); |
| 61 | + var cropImagePreviews = $('#cropImagePreviews').val() === "1"; |
| 62 | + this.$cropImagePreviews.prop('checked', cropImagePreviews); |
59 | 63 |
|
60 | 64 | if ($('#fileNotFound').val() === "1") {
|
61 | 65 | OC.Notification.show(t('files', 'File could not be found'), {type: 'error'});
|
62 | 66 | }
|
63 | 67 |
|
64 | 68 | this._filesConfig = new OC.Backbone.Model({
|
65 |
| - showhidden: showHidden |
| 69 | + showhidden: showHidden, |
| 70 | + cropimagepreviews: cropImagePreviews, |
66 | 71 | });
|
67 | 72 |
|
68 | 73 | var urlParams = OC.Util.History.parseUrlQuery();
|
|
132 | 137 | });
|
133 | 138 |
|
134 | 139 | this._debouncedPersistShowHiddenFilesState = _.debounce(this._persistShowHiddenFilesState, 1200);
|
| 140 | + this._debouncedPersistCropImagePreviewsState = _.debounce(this._persistCropImagePreviewsState, 1200); |
135 | 141 |
|
136 | 142 | if (sessionStorage.getItem('WhatsNewServerCheck') < (Date.now() - 3600*1000)) {
|
137 | 143 | OCP.WhatsNew.query(); // for Nextcloud server
|
|
231 | 237 |
|
232 | 238 | $('#app-navigation').on('itemChanged', _.bind(this._onNavigationChanged, this));
|
233 | 239 | this.$showHiddenFiles.on('change', _.bind(this._onShowHiddenFilesChange, this));
|
| 240 | + this.$cropImagePreviews.on('change', _.bind(this._onCropImagePreviewsChange, this)); |
234 | 241 | },
|
235 | 242 |
|
236 | 243 | /**
|
|
256 | 263 | });
|
257 | 264 | },
|
258 | 265 |
|
| 266 | + /** |
| 267 | + * Toggle cropping image previews according to the settings checkbox |
| 268 | + * |
| 269 | + * @returns void |
| 270 | + */ |
| 271 | + _onCropImagePreviewsChange: function() { |
| 272 | + var crop = this.$cropImagePreviews.is(':checked'); |
| 273 | + this._filesConfig.set('cropimagepreviews', crop); |
| 274 | + this._debouncedPersistCropImagePreviewsState(); |
| 275 | + }, |
| 276 | + |
| 277 | + /** |
| 278 | + * Persist crop image previews preference on the server |
| 279 | + * |
| 280 | + * @returns void |
| 281 | + */ |
| 282 | + _persistCropImagePreviewsState: function() { |
| 283 | + var crop = this._filesConfig.get('cropimagepreviews'); |
| 284 | + $.post(OC.generateUrl('/apps/files/api/v1/cropimagepreviews'), { |
| 285 | + crop: crop |
| 286 | + }); |
| 287 | + }, |
| 288 | + |
259 | 289 | /**
|
260 | 290 | * Event handler for when the current navigation item has changed
|
261 | 291 | */
|
|
0 commit comments