Commit 2681003ca297c4c4bf48e23fe7679bb29c6c8e52

Authored by TRUONG
1 parent 802503dfad
Exists in master and in 1 other branch develop

update #1808, #1809

Showing 6 changed files with 76 additions and 19 deletions Side-by-side Diff

... ... @@ -47,7 +47,7 @@
47 47 <script src="bower_components/json3/lib/json3.min.js"></script>
48 48 <![endif]-->
49 49 <script type="text/javascript">
50   - var VERSION = '27-11_04';
  50 + var VERSION = new Date().getTime();//'27-11_04';
51 51 var require = {
52 52 urlArgs: "ver="+VERSION,
53 53 };
app/scripts/controllers/tshirtdesign.js
1 1 define(['app'], function (app) {
2 2 app.controller('TshirtdesignCtrl', function ($scope, $rootScope, $window, $timeout, $illustration, $favorite) {
  3 + $scope.Math = window.Math;
3 4 $scope.savedFrameView = 'views/design_part/tshirt-saved.html?ver='+VERSION;
4 5 var canvas = new fabric.Canvas('main-design-container');
5 6 var diffX = 40, diffY = 40;
6 7  
7 8  
8 9  
9 10  
10 11  
11 12  
... ... @@ -654,30 +655,46 @@
654 655 $('#content-saved-'+tab).addClass('active');
655 656  
656 657 $timeout(function(){
657   - $('.saved-item').tooltip({
  658 + $('.saved-item img').tooltip({
658 659 animated: 'fade',
659 660 placement: 'bottom',
660 661 html: true
661 662 });
662   - },1000);
  663 + },500);
663 664 }
664 665  
665 666 $favorite.loadFromRemote();
666 667 $scope.saveFavorite = function(){
  668 + if (!confirm('Do you want to put current design to your favorite?')){
  669 + return;
  670 + }
667 671 var dataDump = {
668 672 thumb: canvas.toDataURL('png'),
669   - data: canvas.toJSON()
  673 + data: JSON.stringify(canvas)
670 674 }
671 675 $favorite.addToFavorite({
672 676 data: dataDump
673 677 })
674   - console.log(dataDump);
  678 + // console.log(JSON.stringify(dataDump));
675 679 alert('saved');
676 680 }
677 681  
678 682 $scope.restoreSaved = function(item){
  683 + if (!confirm('this may be clear all current design frame, are you sure ?')){
  684 + return;
  685 + }
679 686 $('#tshirt-design-saved').modal('hide');
680 687 canvas.loadFromJSON(item.data,canvas.renderAll.bind(canvas));
  688 + }
  689 +
  690 + $scope.deleteFavorite = function(idx){
  691 + if (confirm('are you sure?')){
  692 + $favorite.removeFromFavorite({
  693 + idx: idx
  694 + });
  695 + $scope.recommendList = $favorite.getAll();
  696 + $scope.favoriteList = $favorite.getAll();
  697 + }
681 698 }
682 699 });
683 700 });
app/scripts/services/favorite.js
... ... @@ -59,6 +59,31 @@
59 59 httpObj.error(errorHandle);
60 60 }
61 61 },
  62 + removeFromFavorite: function(params,successHandle,errorHandle) {
  63 + /*** load from localstorage for test */
  64 + DATA.splice(params.idx,1);
  65 + $window.localStorage.listFavorite = JSON.stringify(DATA);
  66 + return;
  67 + /*** end test */
  68 +
  69 + var httpObj = $http({
  70 + url: $rootScope.API_URL+'/apiv1/favorite',
  71 + method: 'POST',
  72 + params: params || []
  73 + });
  74 + if (typeof successHandle == 'undefined'){
  75 + successHandle = function(response){
  76 + if (response.status==1){
  77 + DATA = response.data;
  78 + }
  79 + }
  80 + }
  81 + httpObj.success(successHandle);
  82 +
  83 + if (typeof errorHandle != 'undefined'){
  84 + httpObj.error(errorHandle);
  85 + }
  86 + },
62 87 getAll: function(){
63 88 return DATA;
64 89 }
... ... @@ -613,7 +613,7 @@
613 613 cursor: pointer;
614 614 }
615 615  
616   -.footer-bar {
  616 +.illustration-list .footer-bar, .saved-list .footer-bar {
617 617 text-align: center;
618 618 margin-top: 5px;
619 619 bottom: 10px;
620 620  
621 621  
... ... @@ -866,12 +866,13 @@
866 866 width: 100%;
867 867 border: #bbb solid 1px;
868 868 background: #FFF;
869   - margin-top: 5px;
  869 + margin-top: 0px;
870 870 min-height: 400px;
871   - padding-bottom: 20px;
  871 + padding: 10px;
872 872 }
873 873  
874 874 #tshirt-design-saved .saved-list .saved-item{
  875 + width: 100px;
875 876 height: 100px;
876 877 overflow: hidden;
877 878 float: left;
878 879  
... ... @@ -892,8 +893,21 @@
892 893 width: 100px;
893 894 cursor: pointer;
894 895 }
  896 +#tshirt-design-saved .saved-list .saved-item button {
  897 + background: #ff0f00;
  898 + color: #FFF;
  899 + border: 0;
  900 + position: absolute;
  901 + margin-left: -5px;
  902 + margin-top: -5px;
  903 + padding: 0 5px;
  904 +}
  905 +#tshirt-design-saved .saved-list .saved-item button:hover {
  906 + background: #ffcccc;
  907 +}
895 908  
896 909 #tshirt-design-saved .saved-list .footer-bar {
897 910 bottom: 20px;
  911 + width: 75%;
898 912 }
app/views/design_part/illustration.html
... ... @@ -14,8 +14,8 @@
14 14 <div class="clearfix"></div>
15 15 <div class="footer-bar">
16 16 <div class="pull-left footer-pagination" ng-click="currentIllustrationPage=currentIllustrationPage-1" ng-show="currentIllustrationPage > 1">< Back</div>
17   - {{currentIllustrationPage}}/{{currentIllustrationCate.list.length/perIllustrationPage | number:0}}
18   - <div class="pull-right footer-pagination" ng-click="currentIllustrationPage=currentIllustrationPage+1" ng-show="currentIllustrationPage < (currentIllustrationCate.list.length/perIllustrationPage|number:0)">Next ></div>
  17 + {{currentIllustrationPage}}/{{Math.ceil(currentIllustrationCate.list.length/perIllustrationPage)}}
  18 + <div class="pull-right footer-pagination" ng-click="currentIllustrationPage=currentIllustrationPage+1" ng-show="currentIllustrationPage < Math.ceil(currentIllustrationCate.list.length/perIllustrationPage)">Next ></div>
19 19 </div>
20 20 </div>
21 21 </div>
app/views/design_part/tshirt-saved.html
... ... @@ -10,28 +10,29 @@
10 10 </ul>
11 11 <div class="tab-content">
12 12 <div role="tabpanel" class="tab-pane active" id="content-saved-favorite">
13   - <div class="saved-list" ng-init="currentFavoritePage=1;perFavoritePage=16">
14   - <div class="saved-item" ng-repeat="item in favoriteList | limitTo:perFavoritePage:((currentFavoritePage-1)*perFavoritePage) track by $index" ng-click="restoreSaved(item)" title="<img src='{{item.thumb}}' style='width:200px;background:#e2e2e2;margin:0;padding:0;margin-left:-8px;border:0'/>" data-toggle="tooltip">
15   - <img ng-src="{{item.thumb}}"/>
  13 + <div class="saved-list" ng-init="currentFavoritePage=1;perFavoritePage=18">
  14 + <div class="saved-item" ng-repeat="item in (favoriteList | limitTo:perFavoritePage:((currentFavoritePage-1)*perFavoritePage)) track by $index">
  15 + <button ng-click="deleteFavorite($index)">X</button>
  16 + <img ng-click="restoreSaved(item)" ng-src="{{item.thumb}}" title="<img src='{{item.thumb}}' style='width:200px;background:#e2e2e2;margin:0;padding:0;margin-left:-8px;border:0'/>" data-toggle="tooltip"/>
16 17 </div>
17 18 <div class="clearfix"></div>
18 19 <div class="footer-bar">
19 20 <div class="pull-left footer-pagination" ng-click="currentFavoritePage=currentFavoritePage-1" ng-show="currentFavoritePage > 1">< Back</div>
20   - {{currentFavoritePage}}/{{favoriteList.length/perFavoritePage | number:0}}
21   - <div class="pull-right footer-pagination" ng-click="currentFavoritePage=currentFavoritePage+1" ng-show="currentFavoritePage < (favoriteList.length/perFavoritePage|number:0)">Next ></div>
  21 + {{currentFavoritePage}}/{{Math.ceil(favoriteList.length/perFavoritePage)}}
  22 + <div class="pull-right footer-pagination" ng-click="currentFavoritePage=currentFavoritePage+1" ng-show="currentFavoritePage < Math.ceil(favoriteList.length/perFavoritePage)">Next ></div>
22 23 </div>
23 24 </div>
24 25 </div>
25 26 <div role="tabpanel" class="tab-pane" id="content-saved-recommend">
26   - <div class="saved-list" ng-init="currentRecommendPage=1;perRecommendPage=16">
27   - <div class="saved-item" ng-repeat="item in recommendList | limitTo:perRecommendPage:((currentRecommendPage-1)*perRecommendPage) track by $index" ng-click="restoreSaved(item)" title="<img src='{{item.thumb}}' style='width:200px;background:#e2e2e2;margin:0;padding:0;margin-left:-8px;border:0'/>" data-toggle="tooltip">
  27 + <div class="saved-list" ng-init="currentRecommendPage=1;perRecommendPage=18">
  28 + <div class="saved-item" ng-repeat="item in (recommendList | limitTo:perRecommendPage:((currentRecommendPage-1)*perRecommendPage)) track by $index" ng-click="restoreSaved(item)" title="<img src='{{item.thumb}}' style='width:200px;background:#e2e2e2;margin:0;padding:0;margin-left:-8px;border:0'/>" data-toggle="tooltip">
28 29 <img ng-src="{{item.thumb}}"/>
29 30 </div>
30 31 <div class="clearfix"></div>
31 32 <div class="footer-bar">
32 33 <div class="pull-left footer-pagination" ng-click="currentRecommendPage=currentRecommendPage-1" ng-show="currentRecommendPage > 1">< Back</div>
33   - {{currentRecommendPage}}/{{recommendList.length/perRecommendPage | number:0}}
34   - <div class="pull-right footer-pagination" ng-click="currentRecommendPage=currentRecommendPage+1" ng-show="currentRecommendPage < (recommendList.length/perRecommendPage|number:0)">Next ></div>
  34 + {{currentRecommendPage}}/{{Math.ceil(recommendList.length/perRecommendPage)}}
  35 + <div class="pull-right footer-pagination" ng-click="currentRecommendPage=currentRecommendPage+1" ng-show="currentRecommendPage < Math.ceil(recommendList.length/perRecommendPage)">Next ></div>
35 36 </div>
36 37 </div>
37 38 </div>