Commit faf1542f8ef7d73272242c9a04f811327f1f62d9

Authored by TRUONG
1 parent 24a56c629f
Exists in master and in 1 other branch develop

fix lazy border width

Showing 7 changed files with 190 additions and 5 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 = '26-11_01';
  50 + var VERSION = '27-11_01';
51 51 var require = {
52 52 urlArgs: "ver="+VERSION,
53 53 };
app/scripts/controllers/tshirtdesign.js
1 1 define(['app'], function (app) {
2   - app.controller('TshirtdesignCtrl', function ($scope, $rootScope, $window, $timeout, $illustration) {
  2 + app.controller('TshirtdesignCtrl', function ($scope, $rootScope, $window, $timeout, $illustration, $favorite) {
  3 + $scope.savedFrameView = 'views/design_part/tshirt-saved.html?ver='+VERSION;
3 4 var canvas = new fabric.Canvas('main-design-container');
4 5 //Set width and height canvas
5 6 function setSizeCanvas() {
... ... @@ -221,7 +222,7 @@
221 222 console.log(object.oCoords,object.originalState);
222 223 object.setCoords();
223 224 var Coords = object.oCoords;
224   - var diffX = 55, diffY=50;
  225 + var diffX = 40, diffY=40;
225 226 var xAngle = Math.cos(object.getAngle() * (Math.PI / 180))/2;
226 227 var yAngle = Math.sin(object.getAngle() * (Math.PI / 180))/2;
227 228 $('#object-border-left').css({'height':Math.ceil(object.originalState.height*object.scaleY), top: Coords.tl.y+diffY, left: Coords.tl.x+diffX});
... ... @@ -612,6 +613,45 @@
612 613 $rootScope.outputImage = canvas.toDataURL('png');
613 614 // console.log();
614 615 $('#tshirt-design').modal('hide');
  616 + }
  617 +
  618 + $scope.showRecommend = function(){
  619 + $('#tshirt-design-saved').modal({
  620 + backdrop: 'static',
  621 + keyboard: false
  622 + });
  623 + }
  624 +
  625 + $scope.closeSavedModal = function(){
  626 + $('#tshirt-design-saved').modal('hide');
  627 + }
  628 +
  629 + $scope.openSavedTab = function(tab){
  630 + $scope.recommendList = $favorite.getAll();
  631 + $scope.favoriteList = $favorite.getAll();
  632 + $('#tshirt-design-saved .subframe-design .nav-tabs li').removeClass('active');
  633 + $('#tab-saved-'+tab).addClass('active');
  634 + $('#tshirt-design-saved .subframe-design .tab-content .tab-pane').removeClass('active');
  635 + $('#content-saved-'+tab).addClass('active');
  636 +
  637 + $timeout(function(){
  638 + $('.saved-item').tooltip({
  639 + animated: 'fade',
  640 + placement: 'bottom',
  641 + html: true
  642 + });
  643 + },1000);
  644 + }
  645 +
  646 + $scope.saveFavorite = function(){
  647 + var dataDump = {
  648 + thumb: canvas.toDataURL('png'),
  649 + data: canvas.toDatalessJSON()
  650 + }
  651 + $favorite.addToFavorite({
  652 + data: dataDump
  653 + })
  654 + console.log(dataDump);
615 655 }
616 656 });
617 657 });
app/scripts/routes.js
... ... @@ -9,6 +9,7 @@
9 9 'scripts/controllers/main.js',
10 10 'scripts/controllers/tshirtdesign.js',
11 11 'scripts/services/illustration.js',
  12 + 'scripts/services/favorite.js',
12 13 'scripts/services/tshirt.js'
13 14 ]
14 15 },
app/scripts/services/favorite.js
  1 +define(['app'], function (app) {
  2 + 'use strict';
  3 +
  4 + app.factory('$favorite', function ($http, $rootScope) {
  5 + var DATA = [];
  6 +
  7 + return {
  8 + loadFromRemote: function (params,successHandle,errorHandle) {
  9 + /*** load from localstorage for test */
  10 + if ($window.localStorage.listFavorite){
  11 + DATA = JSON.parse($window.localStorage.listFavorite);
  12 + }else{
  13 + DATA = [];
  14 + }
  15 + return;
  16 + /*** end test */
  17 +
  18 + // return format: { status:0|1 , data:{} }
  19 + var httpObj = $http({
  20 + url: $rootScope.API_URL+'/apiv1/favorite',
  21 + method: 'GET',
  22 + params: params || []
  23 + });
  24 + if (typeof successHandle == 'undefined'){
  25 + successHandle = function(response){
  26 + if (response.status==1){
  27 + DATA = response.data;
  28 + }
  29 + }
  30 + }
  31 + httpObj.success(successHandle);
  32 +
  33 + if (typeof errorHandle != 'undefined'){
  34 + httpObj.error(errorHandle);
  35 + }
  36 + },
  37 + addToFavorite: function(params,successHandle,errorHandle) {
  38 + /*** load from localstorage for test */
  39 + DATA.push(params.data);
  40 + $window.localStorage.listFavorite = JSON.stringify(DATA);
  41 + return;
  42 + /*** end test */
  43 +
  44 + var httpObj = $http({
  45 + url: $rootScope.API_URL+'/apiv1/favorite',
  46 + method: 'POST',
  47 + params: params || []
  48 + });
  49 + if (typeof successHandle == 'undefined'){
  50 + successHandle = function(response){
  51 + if (response.status==1){
  52 + DATA = response.data;
  53 + }
  54 + }
  55 + }
  56 + httpObj.success(successHandle);
  57 +
  58 + if (typeof errorHandle != 'undefined'){
  59 + httpObj.error(errorHandle);
  60 + }
  61 + },
  62 + getAll: function(){
  63 + return DATA;
  64 + }
  65 + };
  66 + });
  67 +});
... ... @@ -815,4 +815,49 @@
815 815 padding: 0 0;
816 816 }
817 817 }
  818 +
  819 +
  820 +
  821 +#tshirt-design-saved .subframe-design {
  822 + width: 80%;
  823 + margin: auto;
  824 + margin-top: 150px;
  825 + border: 10px solid rgb(0, 0, 0);
  826 + border: 20px solid rgba(0, 0, 0, .5);
  827 + -webkit-background-clip: padding-box; /* for Safari */
  828 + background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
  829 +}
  830 +
  831 +#tshirt-design-saved .modal-content button.close {
  832 + margin-right: 100px;
  833 + font-size: 41px;
  834 + margin-top: -10px;
  835 +}
  836 +
  837 +#tshirt-design-saved .subframe-design .nav-tabs {
  838 + background: rgba(0, 0, 0, .5);
  839 + border-bottom: 1px solid #F5F5F5;
  840 +}
  841 +
  842 +#tshirt-design-saved .subframe-design .nav-tabs li a {
  843 + text-decoration: none;
  844 + background-color: #CCC;
  845 + cursor: pointer;
  846 + margin-right: 10px;
  847 + padding: 2px 30px;
  848 + color: #000;
  849 + font-weight: 600;
  850 + border-bottom: 1px solid #F5F5F5
  851 +}
  852 +
  853 +#tshirt-design-saved .subframe-design .nav-tabs li.active a {
  854 + background: #F5F5F5;
  855 + color: #fe070f;
  856 +}
  857 +
  858 +#tshirt-design-saved .subframe-design .tab-content {
  859 + background: #F5F5F5;
  860 + width: 100%;
  861 + min-height: 400px;
  862 +}
app/views/design_part/tshirt-saved.html
  1 +<!-- Modal -->
  2 +<div class="modal" id="tshirt-design-saved" tabindex="2" role="dialog">
  3 + <div class="modal-dialog" role="document">
  4 + <div class="modal-content">
  5 + <button type="button" class="close" ng-click="closeSavedModal()" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  6 + <div class="subframe-design">
  7 + <ul class="nav nav-tabs" role="tablist">
  8 + <li role="presentation" id="tab-saved-favorite" class="active"><a ng-click="openSavedTab('favorite')" role="tab" data-toggle="tab">マイアルバム</a></li>
  9 + <li role="presentation" id="tab-saved-recommend"><a ng-click="openSavedTab('recommend')" role="tab" data-toggle="tab">おすすめ</a></li>
  10 + </ul>
  11 + <div class="tab-content">
  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)" 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.path}}"/>
  16 + </div>
  17 + <div class="clearfix"></div>
  18 + <div class="footer-bar">
  19 + <div class="pull-left footer-pagination" ng-click="currentIllustrationPage=currentIllustrationPage-1" ng-show="currentIllustrationPage > 1">< Back</div>
  20 + {{currentIllustrationPage}}/{{currentIllustrationCate.list.length/perIllustrationPage | number:0}}
  21 + <div class="pull-right footer-pagination" ng-click="currentIllustrationPage=currentIllustrationPage+1" ng-show="currentIllustrationPage < (currentIllustrationCate.list.length/perIllustrationPage|number:0)">Next ></div>
  22 + </div>
  23 + </div>
  24 + </div>
  25 + <div role="tabpanel" class="tab-pane" id="content-saved-recommend">...</div>
  26 + </div>
  27 + </div>
  28 + </div>
  29 + </div>
  30 +</div>
app/views/tshirt-design.html
... ... @@ -26,10 +26,10 @@
26 26 </div>
27 27  
28 28 <div class="action pull-right">
29   - <button class="white">
  29 + <button class="white" ng-click="showRecommend()">
30 30 アルバムを開く
31 31 </button>
32   - <button class="white">
  32 + <button class="white" ng-click="saveFavorite()">
33 33 アルバムに入れる
34 34 </button>
35 35 </div>
... ... @@ -74,5 +74,7 @@
74 74 </div>
75 75 </div>
76 76 </div>
  77 +
  78 + <div ng-include="savedFrameView"></div>
77 79 </div>