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