Hormold

VK Change (#1381258804)

Oct 8th, 2013
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.92 KB | None | 0 0
  1. Файл - postbox.js (Старый размер - 7191 | Новый - 0):
  2. 0.  - var PostBox = {
  3. 1.  -
  4. 2.  - mrg: function(v) {
  5. 3.  -   return vk.rtl ? {marginRight: v} : {marginLeft: v};
  6. 4.  - },
  7. 5.  - show: function(opts) {
  8. 6.  -   wkcur.noClickHide = false;
  9. 7.  -
  10. 8.  -   cur.lang = extend(cur.lang || {}, opts.lang);
  11. 9.  -   extend(cur, {
  12. 10.  -     pbField: ge('pb_text'),
  13. 11.  -     pbTitle: ge('pb_title'),
  14. 12.  -     pbAva: ge('dark_box_ava'),
  15. 13.  -     pbClubs: opts.clubs,
  16. 14.  -     pbMyHash: opts.hash,
  17. 15.  -     pbError: ge('pb_error'),
  18. 16.  -     pbSent: false,
  19. 17.  -     pbSaved: ge('pb_saved'),
  20. 18.  -     pbShown: true
  21. 19.  -   });
  22. 20.  -
  23. 21.  -   autosizeSetup(cur.pbField, {minHeight: 80})
  24. 22.  -   setTimeout(elfocus.pbind(cur.pbField), 0);
  25. 23.  -
  26. 24.  -   Wall.initComposer(cur.pbField, {
  27. 25.  -     lang: {
  28. 26.  -       introText: getLang('profile_mention_start_typing'),
  29. 27.  -       noResult: getLang('profile_mention_not_found')
  30. 28.  -     },
  31. 29.  -     media: {
  32. 30.  -       lnk: domFC(ge('pb_add_media')),
  33. 31.  -       preview: ge('pb_media_preview'),
  34. 32.  -       types: opts.media,
  35. 33.  -       options: {
  36. 34.  -         limit: 10,
  37. 35.  -         toggleLnk: true,
  38. 36.  -         editable: 1,
  39. 37.  -         sortable: 1,
  40. 38.  -         teWidth: 450,
  41. 39.  -         teHeight: 260,
  42. 40.  -         onAddMediaChange: PostBox.postChanged.pbind(10),
  43. 41.  -         onMediaChange: PostBox.postChanged
  44. 42.  -       }
  45. 43.  -     },
  46. 44.  -     checkLen: PostBox.postChanged
  47. 45.  -   }, function() {
  48. 46.  -     var draft = opts.draft, composer = data(cur.pbField, 'composer'), note = cur.pbNoteAdded;
  49. 47.  -     if (!draft[0] && !draft[1]) return;
  50. 48.  -
  51. 49.  -     val(cur.pbField, replaceEntities(draft[0] || ''));
  52. 50.  -     if (!(composer || {}).addMedia) return;
  53. 51.  -     for (var i in (draft[1] || [])) {
  54. 52.  -       cur.pbNoDraftSave = 1;
  55. 53.  -       composer.addMedia.chooseMedia.apply(composer.addMedia, draft[1][i]);
  56. 54.  -     }
  57. 55.  -     if (note) {
  58. 56.  -       cur.pbNoDraftSave = 0;
  59. 57.  -       composer.addMedia.chooseMedia('note', note.raw, note);
  60. 58.  -     }
  61. 59.  -   });
  62. 60.  -
  63. 61.  -   var tmp = cur.postTo;
  64. 62.  -   cur.postTo = false;
  65. 63.  -   wkcur._hide.push(function() {
  66. 64.  -     cur.pbShown = false;
  67. 65.  -     if (!cur.pbField) return;
  68. 66.  -     if (cur.pbAfterPost) {
  69. 67.  -       cur.pbAfterPost = false;
  70. 68.  -     } else {
  71. 69.  -       PostBox.postChanged(true);
  72. 70.  -     }
  73. 71.  -     var composer = data(cur.pbField, 'composer');
  74. 72.  -     if ((composer || {}).addMedia) {
  75. 73.  -       composer.addMedia.onChange = function() { return false; };
  76. 74.  -     }
  77. 75.  -     Wall.deinitComposer(cur.pbField);
  78. 76.  -     delete cur.pbField;
  79. 77.  -     cur.postTo = tmp;
  80. 78.  -     if (window.WideDropdown) {
  81. 79.  -       WideDropdown.deinit('pb_club_dd');
  82. 80.  -     }
  83. 81.  -   });
  84. 82.  - },
  85. 83.  - send: function() {
  86. 84.  -   if (buttonLocked('pb_send')) return;
  87. 85.  -
  88. 86.  -   var toClub = isVisible('pb_choose_club'), hash = cur.pbMyHash, toClubId = 0;
  89. 87.  -   var dd = cur.wdd && cur.wdd['pb_club_dd'];
  90. 88.  -   if (toClub) {
  91. 89.  -     if (!dd || !dd.selCount) {
  92. 90.  -       return elfocus('pb_club_inp');
  93. 91.  -     }
  94. 92.  -     for (var i in dd.selected) {
  95. 93.  -       toClubId = intval(i.replace(/_$/, ''));
  96. 94.  -       hash = dd.selected[i][9];
  97. 95.  -     }
  98. 96.  -   }
  99. 97.  -   var composer = cur.pbField && data(cur.pbField, 'composer'),
  100. 98.  -       params = composer ? Composer.getSendParams(composer, PostBox.send) : {message: trim(val(cur.pbField))};
  101. 99.  -   if (cur.pbSendParams) {
  102. 100.  -     extend(params, cur.pbSendParams);
  103. 101.  -   } else if (toClub) {
  104. 102.  -     extend(params, {
  105. 103.  -       to_id: toClubId,
  106. 104.  -       official: 1,
  107. 105.  -       signed: isChecked('pb_signed')
  108. 106.  -     });
  109. 107.  -   } else {
  110. 108.  -     extend(params, {
  111. 109.  -       to_id: vk.id,
  112. 110.  -       friends_only: isChecked('pb_friends_only'),
  113. 111.  -       status_export: isChecked('pb_status_export'),
  114. 112.  -       facebook_export: isChecked('pb_facebook_export')
  115. 113.  -     });
  116. 114.  -   }
  117. 115.  -   if (cur.pbNeedsTitle && cur.pbTitle) {
  118. 116.  -     if (!val(cur.pbTitle)) {
  119. 117.  -       return elfocus(cur.pbTitle);
  120. 118.  -     }
  121. 119.  -     params.title = val(cur.pbTitle);
  122. 120.  -   }
  123. 121.  -   if (!params.message && !params.attach1_type) {
  124. 122.  -     return elfocus(cur.pbField);
  125. 123.  -   }
  126. 124.  -   if (params.delayed) {
  127. 125.  -     return;
  128. 126.  -   }
  129. 127.  -   cur.pbSent = true;
  130. 128.  -   ajax.post('al_wall.php', Wall.fixPostParams(extend(params, {
  131. 129.  -     act: 'post',
  132. 130.  -     from: 'postbox',
  133. 131.  -     hash: hash
  134. 132.  -   })), {
  135. 133.  -     onDone: function(text) {
  136. 134.  -       WkView.hide();
  137. 135.  -       showDoneBox(text);
  138. 136.  -       if (cur.pbOnSend) {
  139. 137.  -         cur.pbOnSend();
  140. 138.  -       }
  141. 139.  -     },
  142. 140.  -     onFail: function(text) {
  143. 141.  -       cur.pbSent = false;
  144. 142.  -       if (!text) return;
  145. 143.  -       val(cur.pbError, text);
  146. 144.  -       if (!cur.pbErrShown) {
  147. 145.  -         show(cur.pbError);
  148. 146.  -         cur.pbErrShown = true;
  149. 147.  -       }
  150. 148.  -       setTimeout(animate.pbind(cur.pbError, {backgroundColor: '#FCEBA7'}, 100, animate.pbind(cur.pbError, {backgroundColor: '#F4EBBD'}, 2000)), 0);
  151. 149.  -       return true;
  152. 150.  -     },
  153. 151.  -     showProgress: lockButton.pbind('pb_send'),
  154. 152.  -     hideProgress: unlockButton.pbind('pb_send')
  155. 153.  -   });
  156. 154.  - },
  157. 155.  - postChanged: function(force) {
  158. 156.  -   if (!cur.pbNoDraftSave) wkcur.noClickHide = true;
  159. 157.  -   clearTimeout(cur.pbSaveDraftTO);
  160. 158.  -   if (force === true) {
  161. 159.  -     PostBox.saveDraft();
  162. 160.  -   } else {
  163. 161.  -     cur.pbSaveDraftTO = setTimeout(PostBox.saveDraft, (force === 10) ? 10 : 3000);
  164. 162.  -   }
  165. 163.  -   if (cur.pbErrShown) {
  166. 164.  -     cur.pbErrShown = false;
  167. 165.  -     hide(cur.pbError);
  168. 166.  -   }
  169. 167.  - },
  170. 168.  - saveDraft: function() {
  171. 169.  -   if (cur.pbDraftDisabled) return;
  172. 170.  -   if (cur.pbNoDraftSave) {
  173. 171.  -     cur.pbNoDraftSave = false;
  174. 172.  -     return;
  175. 173.  -   }
  176. 174.  -   if (cur.pbSent || !cur.pbShown) return;
  177. 175.  -   var composer = cur.pbField && data(cur.pbField, 'composer'),
  178. 176.  -       params = composer ? Composer.getSendParams(composer, PostBox.postChanged.pbind(10), true) : {message: trim(val(cur.pbField))};
  179. 177.  -   if (params.delayed) return;
  180. 178.  -
  181. 179.  -   ajax.post('al_wall.php', Wall.fixPostParams(extend(params, {act: 'save_draft', hash: cur.pbMyHash})), {
  182. 180.  -     onDone: function() {
  183. 181.  -       clearTimeout(cur.pbSavedTO);
  184. 182.  -       show(cur.pbSaved);
  185. 183.  -       animate(cur.pbSaved, {opacity: 1}, 100);
  186. 184.  -       cur.pbSavedTO = setTimeout(animate.pbind(cur.pbSaved, {opacity: 0}, 1000, hide.pbind(cur.pbSaved)), 3000);
  187. 185.  -     }, onFail: function() {
  188. 186.  -       return true;
  189. 187.  -     }
  190. 188.  -   });
  191. 189.  - },
  192. 190.  - showClubs: function() {
  193. 191.  -   if (!window.WideDropdown) return;
  194. 192.  -
  195. 193.  -   hide('pb_choose_club_link', 'pb_user_options');
  196. 194.  -   show('pb_choose_club', 'pb_cancel_club', 'pb_club_options');
  197. 195.  -   val('pb_send', getLang('wall_post_box_sendclub'));
  198. 196.  -   elfocus('pb_club_inp');
  199. 197.  -   WideDropdown.init('pb_club_dd', {
  200. 198.  -     defaultItems: cur.pbClubs,
  201. 199.  -     noResult: getLang('like_club_not_found'),
  202. 200.  -     img: cur.pbAva,
  203. 201.  -     introText: getLang('like_club_choose'),
  204. 202.  -     defImgText: val(cur.pbAva),
  205. 203.  -     onChange: function(act) {
  206. 204.  -       var dd = cur.wdd['pb_club_dd'], sel = dd.selCount, peer = false, draft, ret = true;
  207. 205.  -       if (act == 1) { // added
  208. 206.  -         setTimeout(elfocus.pbind(cur.pbField), 0);
  209. 207.  -       }
  210. 208.  -       return ret;
  211. 209.  -     }
  212. 210.  -   });
  213. 211.  -   if (cur.pbTo) {
  214. 212.  -     each(cur.pbClubs, function(k, v) {
  215. 213.  -       if (v[0] == cur.pbTo) {
  216. 214.  -         WideDropdown.select('pb_club_dd', false, v);
  217. 215.  -         return false;
  218. 216.  -       }
  219. 217.  -     })
  220. 218.  -   }
  221. 219.  -   var composer = cur.pbField && data(cur.pbField, 'composer');
  222. 220.  -   if (composer && composer.addMedia) {
  223. 221.  -     hide(geByClass1('add_media_type_' + composer.addMedia.lnkId + '_note', composer.addMedia.menu.menuNode, 'a'));
  224. 222.  -   }
  225. 223.  -   if (cur.pbErrShown) {
  226. 224.  -     cur.pbErrShown = false;
  227. 225.  -     hide(cur.pbError);
  228. 226.  -   }
  229. 227.  - },
  230. 228.  - hideClubs: function() {
  231. 229.  -   show('pb_choose_club_link', 'pb_user_options');
  232. 230.  -   hide('pb_choose_club', 'pb_cancel_club', 'pb_club_options');
  233. 231.  -   val('pb_send', getLang('wall_post_box_publish'));
  234. 232.  -   window.WideDropdown && WideDropdown.deselect('pb_club_dd');
  235. 233.  -   var composer = cur.pbField && data(cur.pbField, 'composer');
  236. 234.  -   if (composer && composer.addMedia) {
  237. 235.  -     show(geByClass1('add_media_type_' + composer.addMedia.lnkId + '_note', composer.addMedia.menu.menuNode, 'a'));
  238. 236.  -   }
  239. 237.  -   if (cur.pbErrShown) {
  240. 238.  -     cur.pbErrShown = false;
  241. 239.  -     hide(cur.pbError);
  242. 240.  -   }
  243. 241.  - }
  244. 242.  -
  245. 243.  - };
  246. 244.  -
  247. 245.  - try{stManager.done('postbox.js');}catch(e){}
  248. ------
Advertisement
Add Comment
Please, Sign In to add comment