1、替换字体颜色~~蓝色改为绿色~
[PumpkinHouse.git] / PumpkinHouseWeb / Scripts / collect.js
blob3130bb34e0c77313bdd94e74acca2fbae697c1fe
1 /// <reference path="lib/jquery-1.7.js" />\r
2 /// <reference path="gettmpl.js" />\r
3 /// <reference path="ajaxCall.js" />\r
4 \r
5 \r
6 (function ($) {\r
7     /// create a collect button\r
8     /// require pictureTemplate.html\r
9     $.collectButtion = function (holderSelector, loggedIn, albums, displayTarget, successCallback) {\r
10         return new Collect(holderSelector, loggedIn, albums, displayTarget, successCallback);\r
11     };\r
13     Collect = function (holderSelector, loggedIn, albums, displayTarget, successCallback) {\r
14         this.holder = $(holderSelector);\r
15         this.albums = albums;\r
16         this.pictureId = this.holder.attr('data-picture-id');\r
17         this.ajaxErrorHandler = handleFault;\r
18         this.updateHandler = this.doCollect;\r
19         this.successCallback = successCallback;\r
20         this.displayTarget = displayTarget;\r
22         var collect = this;\r
23         if (loggedIn) {\r
24             this.holder.on('click', function (e) {\r
25                 if (loggedIn) {\r
26                     collect.showDialog(collect, $(e.target))\r
27                 }\r
28             });\r
29             if (!this.albums) {\r
30                 this.albums = getMyAlbumNamesSync(false, this.ajaxErrorHandler);\r
31             }\r
32         }\r
33         else {\r
34             this.holder.attr('title', '登陆才能进行操作哦,点击就可以登陆啦! ');\r
35             this.holder.on('click', function () {\r
36                 showLogonDialog();\r
37                 return;\r
38             });\r
39         }\r
40     }\r
42     $.extend(Collect, {\r
43         prototype: {\r
44             getDialog: function () {\r
45                 return $.data(document, 'collectDialog');\r
46             },\r
47             showDialog: function (collect, buttonTarget) {\r
48                 var dialog = this.getDialog();\r
49                 if (dialog) {\r
50                     dialog.showDialog();\r
51                     dialog.position({\r
52                         my: 'center top',\r
53                         at: 'center bottom',\r
54                         of: $(collect.holder)\r
55                     });\r
56                 }\r
57                 else {\r
58                     var dialogTemplate = $('#collectDialogTemplate').tmpl({ albums: collect.albums });\r
59                     dialog = dialogTemplate.mDialog({ width: 452, height: 252, modal: false });\r
61                     dialog.position({\r
62                         my: 'center top',\r
63                         at: 'center bottom',\r
64                         of: $(collect.holder)\r
65                     });\r
67                     $.data(document, 'collectDialog', dialog);\r
68                 }\r
70                 var albumId = buttonTarget.attr('data-album-id');\r
71                 dialog.find('a').removeClass('ColorAacd60');\r
72                 dialog.find('a[data-album-id=' + albumId + ']').addClass('ColorAacd60');\r
74                 $('#btnCreateAlbum', dialog).off('click').on('click', function () {\r
75                     var name = $.trim($('#newAlbumName', dialog).val());\r
76                     if (name == '') {\r
77                         return;\r
78                     }\r
79                     var result = createAlbumSync(new AlbumToCreate(name, '', ''), function (errorCode) {\r
80                         handleSensitiveWord(errorCode, '抱歉,专辑名包含非法字符,请修改后再创建。');\r
81                     });\r
82                     if (result) {\r
83                         renderTemplate('.favDailCon ul', '#albumItemTemplate', result, true);\r
84                         $('#newAlbumName', dialog).val('');\r
85                         $("a.albumName", dialog).on('click', function (event) {\r
86                             collect.updateHandler(collect, collect.pictureId, $(this).attr('data-album-id'));\r
87                             collect.getDialog().closeDialog();\r
88                             return false;\r
89                         });\r
90                     }\r
91                 });\r
93                 $("a.albumName", dialog).off('click').on('click', function (event) {\r
94                     collect.updateHandler(collect, collect.pictureId, $(this).attr('data-album-id'));\r
95                     collect.getDialog().closeDialog();\r
96                     return false;\r
97                 });\r
98             },\r
100             doCollect: function (collect, pictureId, albumId) {\r
101                 var li = $('li.pic[data-picture-id=' + pictureId + ']');\r
102                 var isMine;\r
103                 if (li) {\r
104                     isMine = li.attr('data-mine');\r
105                 } else {\r
106                     isMine = "0"; // 图片页,出现按钮必定不是自己的图片\r
107                 }\r
109                 if (isMine == "1") {\r
110                     ajaxMovePicture(true, pictureId, albumId, function (result) { collect.collectCallback(collect, pictureId, li, result); }\r
111                     , collect.ajaxErrorHandler);\r
112                 }\r
113                 else {\r
114                     ajaxCollectPicture(true, pictureId, albumId, function (result) { collect.collectCallback(collect, pictureId, li, result); }\r
115                     , collect.ajaxErrorHandler);\r
116                 }\r
117             },\r
119             collectCallback: function (collect, pictureId, li, result) {\r
120                 var btn = $('input.collectButton[data-picture-id=' + pictureId + ']');\r
121                 if (btn.val() == '收纳') { // 新收纳,更新数字\r
122                     var displayTarget = li.find('span.collectCount');\r
123                     if (displayTarget && displayTarget.length > 0) {\r
124                         var txt = $.trim(li.attr('data-collect-count'));\r
125                         if (txt) {\r
126                             var v = parseInt(txt);\r
127                             displayTarget.text('(' + (v + 1) + ')');\r
128                         }\r
129                     }\r
130                 }\r
131                 if (collect.successCallback) {\r
132                     collect.successCallback(result);\r
133                 }\r
134                 else {\r
135                     btn.val('已收纳');\r
136                     btn.attr('data-album-id', result.id);\r
137                 }\r
138             }\r
139         }\r
140     });\r
141 } (jQuery));