diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2016-10-25 14:59:17 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2016-10-25 14:59:17 -0400 |
| commit | 61813149c7143019d30f56daeb82782c6d13175c (patch) | |
| tree | 5b86bbeb9cf576f223fceed5588370316ad1941f /www/js/MontageCtrl.js | |
| parent | 55de6e72edf067b7f9fd9bcacfd2bec6793a7111 (diff) | |
rethinking packery
Diffstat (limited to 'www/js/MontageCtrl.js')
| -rw-r--r-- | www/js/MontageCtrl.js | 128 |
1 files changed, 94 insertions, 34 deletions
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index 4f60f169..5714ffa0 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -232,12 +232,18 @@ angular.module('zmApp.controllers') } $timeout(function () { NVRDataModel.log("Force calling resize"); - pckry.shiftLayout(); - }, zm.packeryTimer); // don't ask + pckry.reloadItems(); + //pckry.initShiftLayout(positions,"data-item-id"); + // now do a jiggle + $timeout (function() {pckry.layout(); } ,300); + + }, 20); + + - pckry.onresize(); + //pckry.onresize(); - }, zm.packeryTimer); + }, 20); }); @@ -855,13 +861,19 @@ angular.module('zmApp.controllers') $timeout(function () { if (pckry) pckry.onresize(); }, zm.packeryTimer);*/ - $ionicScrollDelegate.$getByHandle("montage-delegate").scrollTop(); - var positions = pckry.getShiftPositions('data-item-id'); + + /* var positions = pckry.getShiftPositions('data-item-id'); + $timeout(function () { + NVRDataModel.log("init shift layout"); + pckry.initShiftLayout(positions,"data-item-id"); + $ionicScrollDelegate.$getByHandle("montage-delegate").scrollTop(); + }, 20);*/ + //console.log ("POSITIONS MAP " + JSON.stringify(positions)); - var ld = NVRDataModel.getLogin(); - ld.packeryPositions = JSON.stringify(positions); + // var ld = NVRDataModel.getLogin(); + // ld.packeryPositions = JSON.stringify(positions); //console.log ("Saving " + ld.packeryPositions); - NVRDataModel.setLogin(ld); + // NVRDataModel.setLogin(ld); } $scope.toggleSizeButtons = function () { @@ -1109,12 +1121,12 @@ angular.module('zmApp.controllers') // $scope.slider.monsize = 2; }); //layout(pckry); - $timeout(function () { + pckry.layout(); - }, zm.packeryTimer); // force here - no shiftlayout + - }, 100); + }, 20); }; @@ -1133,16 +1145,32 @@ angular.module('zmApp.controllers') $scope.sliderChanged = function (dirn) { if ($scope.sliderChanging) { - // console.log ("too fast my friend"); + console.log ("too fast my friend"); //$scope.slider.monsize = oldSliderVal; - // return; + return; } $scope.sliderChanging = true; + + $ionicLoading.show({ + template: $translate.instant('kPleaseWait'), + noBackdrop: true, + duration: 5000 + }); var somethingReset = false; + + var oldScales = {}; + pckry.getItemElements().forEach(function (elem) { + var id = elem.getAttribute("data-item-id"); + var sz = elem.getAttribute("data-item-size"); + oldScales[id] = sz; + console.log ("REMEMBERING "+id+":"+sz); + + }); + // this only changes items that are selected for (var i = 0; i < $scope.MontageMonitors.length; i++) { @@ -1179,27 +1207,44 @@ angular.module('zmApp.controllers') $scope.MontageMonitors[i].Monitor.gridScale = cv; } } + + // reload sizes from DOM and trigger a layout + + $timeout (function() { + console.log ("Calling re-layout"); + //pckry.reloadItems(); + + if (dirn == 1) //expand + { + pckry.getItemElements().forEach(function (elem) { + var id = elem.getAttribute("data-item-id"); + var sz = elem.getAttribute("data-item-size"); + console.log ("NOW IT IS-> "+id+":"+sz); + if (oldScales[id] != sz) + { + console.log ("Calling FIT on " + id + " size:"+oldScales[id]+"->"+sz); + pckry.once('fitComplete', resizeComplete); + pckry.fit(elem); + + } + }); + } + else //shrink + { + console.log ("Calling shift"); + pckry.once('layoutComplete', resizeComplete); + pckry.shiftLayout(); + + + } + + },20); + + + - pckry.shiftLayout(); - - pckry.once('layoutComplete', function () { - $timeout(function () { - var positions = pckry.getShiftPositions('data-item-id'); - //console.log ("POSITIONS MAP " + JSON.stringify(positions)); - var ld = NVRDataModel.getLogin(); - - ld.packeryPositions = JSON.stringify(positions); - //console.log ("Saving " + ld.packeryPositions); - NVRDataModel.setLogin(ld); - $ionicLoading.hide(); - $scope.sliderChanging = false; - }, zm.packeryTimer); - }); - - - - if (!somethingReset) { + /* if (!somethingReset) { //console.log (">>>SOMETHING NOT RESET"); $timeout(function () { pckry.layout(); @@ -1210,11 +1255,26 @@ angular.module('zmApp.controllers') $timeout(function () { layout(pckry); }, zm.packeryTimer); + }*/ + function resizeComplete() + { + //console.log ("HERE"); + $timeout(function () { + var positions = pckry.getShiftPositions('data-item-id'); + console.log ("SAVING"); + var ld = NVRDataModel.getLogin(); + + ld.packeryPositions = JSON.stringify(positions); + //console.log ("Saving " + ld.packeryPositions); + NVRDataModel.setLogin(ld); + $ionicLoading.hide(); + $scope.sliderChanging = false; + }, 20); + } - }; |
