PageRenderTime 41ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/web/concrete/js/ccm_app/toolbar.js

https://github.com/elizad/concrete5
JavaScript | 340 lines | 289 code | 39 blank | 12 comment | 57 complexity | 0aed888400721a5c2f4a69b5d62edde4 MD5 | raw file
Possible License(s): MIT, LGPL-2.1, BSD-3-Clause
  1. $(function() {
  2. if ($("#ccm-toolbar").length > 0) {
  3. ccm_intelligentSearchActivateResults();
  4. ccm_intelligentSearchDoRemoteCalls($('#ccm-nav-intelligent-search').val());
  5. }
  6. });
  7. ccm_togglePopover = function(e, link) {
  8. if ($('.popover').is(':visible')) {
  9. $(link).popover('hide');
  10. } else {
  11. $(link).popover('show');
  12. e.stopPropagation();
  13. $(window).bind('click.popover', function() {
  14. $(link).popover('hide');
  15. $(window).unbind('click.popover');
  16. });
  17. }
  18. }
  19. ccm_toggleQuickNav = function(cID, token) {
  20. var l = $("#ccm-add-to-quick-nav");
  21. if (l.hasClass('ccm-icon-favorite-selected')) {
  22. l.removeClass('ccm-icon-favorite-selected').addClass('ccm-icon-favorite');
  23. } else {
  24. l.removeClass('ccm-icon-favorite').addClass('ccm-icon-favorite-selected');
  25. }
  26. var accepter = $('#ccm-nav-dashboard');
  27. var title = l.parent().parent().parent().find('h3');
  28. title.css('display','inline');
  29. title.effect("transfer", { to: accepter, 'easing': 'easeOutExpo'}, 600);
  30. $.get(CCM_TOOLS_PATH + '/dashboard/add_to_quick_nav', {
  31. 'cID': cID,
  32. 'token': token
  33. }, function(r) {
  34. var div = $('<div />').html(r);
  35. $('#ccm-intelligent-search-results').html(div.find('#ccm-intelligent-search-results').html());
  36. $('#ccm-dashboard-overlay').html(div.find('#ccm-dashboard-overlay').html());
  37. $('#ccm-nav-intelligent-search').data('liveUpdate').setupCache();
  38. });
  39. }
  40. var ccm_hideToolbarMenusTimer = false;
  41. ccm_hideToolbarMenus = function() {
  42. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  43. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  44. $('#ccm-edit-overlay').fadeOut(90, 'easeOutExpo');
  45. $('#ccm-dashboard-overlay').fadeOut(90, 'easeOutExpo');
  46. clearTimeout(ccm_hideToolbarMenusTimer);
  47. }
  48. ccm_activateToolbar = function() {
  49. $("#ccm-dashboard-overlay").css('visibility','visible').hide();
  50. $("#ccm-nav-intelligent-search-wrapper").click(function() {
  51. $("#ccm-nav-intelligent-search").focus();
  52. });
  53. $("#ccm-nav-intelligent-search").focus(function() {
  54. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  55. $(this).parent().addClass("ccm-system-nav-selected");
  56. if ($("#ccm-dashboard-overlay").is(':visible')) {
  57. $('#ccm-dashboard-overlay').fadeOut(90, 'easeOutExpo');
  58. $(window).unbind('click.dashboard-nav');
  59. }
  60. });
  61. $(".ccm-nav-edit-mode-active").click(function() {
  62. void(0);
  63. return false;
  64. });
  65. $("#ccm-edit-overlay,#ccm-dashboard-overlay").mouseover(function() {
  66. clearTimeout(ccm_hideToolbarMenusTimer);
  67. });
  68. $("#ccm-nav-dashboard").hoverIntent(function() {
  69. clearTimeout(ccm_hideToolbarMenusTimer);
  70. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  71. $(this).parent().addClass('ccm-system-nav-selected');
  72. $("#ccm-nav-intelligent-search").val('');
  73. $("#ccm-intelligent-search-results").fadeOut(90, 'easeOutExpo');
  74. if ($('#ccm-edit-overlay').is(':visible')) {
  75. $('#ccm-edit-overlay').fadeOut(90, 'easeOutExpo');
  76. $(window).unbind('click.ccm-edit');
  77. }
  78. /*if ($('#ccm-dashboard-overlay').is(':visible')) {
  79. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  80. $('#ccm-dashboard-overlay').fadeOut(90, 'easeOutExpo');
  81. $(window).unbind('click.dashboard-nav');
  82. } else {*/
  83. $("#ccm-dashboard-overlay").fadeIn(160, 'easeOutExpo');
  84. $(window).bind('click.dashboard-nav', function() {
  85. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  86. $('#ccm-dashboard-overlay').fadeOut(90, 'easeOutExpo');
  87. $(window).unbind('click.dashboard-nav');
  88. });
  89. //}
  90. return false;
  91. }, function() {});
  92. $("#ccm-nav-dashboard,#ccm-dashboard-overlay,#ccm-nav-edit,#ccm-edit-overlay").mouseout(function() {
  93. ccm_hideToolbarMenusTimer = setTimeout(function() {
  94. ccm_hideToolbarMenus();
  95. }, 1500);
  96. });
  97. $("#ccm-nav-intelligent-search").bind('keydown.ccm-intelligent-search', function(e) {
  98. if (e.keyCode == 13 || e.keyCode == 40 || e.keyCode == 38) {
  99. e.preventDefault();
  100. e.stopPropagation();
  101. if (e.keyCode == 13 && $("a.ccm-intelligent-search-result-selected").length > 0) {
  102. var href = $("a.ccm-intelligent-search-result-selected").attr('href');
  103. if (!href || href == '#' || href == 'javascript:void(0)') {
  104. $("a.ccm-intelligent-search-result-selected").click();
  105. } else {
  106. window.location.href = href;
  107. }
  108. }
  109. var visibleitems = $("#ccm-intelligent-search-results li:visible");
  110. var sel;
  111. if (e.keyCode == 40 || e.keyCode == 38) {
  112. $.each(visibleitems, function(i, item) {
  113. if ($(item).children('a').hasClass('ccm-intelligent-search-result-selected')) {
  114. if (e.keyCode == 38) {
  115. io = visibleitems[i-1];
  116. } else {
  117. io = visibleitems[i+1];
  118. }
  119. sel = $(io).find('a');
  120. }
  121. });
  122. if (sel && sel.length > 0) {
  123. $("a.ccm-intelligent-search-result-selected").removeClass();
  124. $(sel).addClass('ccm-intelligent-search-result-selected');
  125. }
  126. }
  127. }
  128. });
  129. $("#ccm-nav-intelligent-search").bind('keyup.ccm-intelligent-search', function(e) {
  130. ccm_intelligentSearchDoRemoteCalls($(this).val());
  131. });
  132. $("#ccm-nav-intelligent-search").blur(function() {
  133. $(this).parent().removeClass("ccm-system-nav-selected");
  134. });
  135. $("#ccm-nav-intelligent-search").liveUpdate('ccm-intelligent-search-results', 'intelligent-search');
  136. $("#ccm-nav-intelligent-search").bind('click', function(e) { if ( this.value=="") {
  137. $("#ccm-intelligent-search-results").hide();
  138. }});
  139. $("#ccm-toolbar-nav-properties").dialog();
  140. $("#ccm-toolbar-nav-preview-as-user").dialog();
  141. $("#ccm-toolbar-add-subpage").dialog();
  142. $("#ccm-toolbar-nav-versions").dialog();
  143. $("#ccm-toolbar-nav-design").dialog();
  144. $("#ccm-toolbar-nav-permissions").dialog();
  145. $("#ccm-toolbar-nav-speed-settings").dialog();
  146. $("#ccm-toolbar-nav-move-copy").dialog();
  147. $("#ccm-toolbar-nav-delete").dialog();
  148. $("#ccm-edit-overlay,#ccm-dashboard-overlay").click(function(e) {
  149. e.stopPropagation();
  150. });
  151. $("#ccm-nav-edit").hoverIntent(function() {
  152. clearTimeout(ccm_hideToolbarMenusTimer);
  153. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  154. $(this).parent().addClass('ccm-system-nav-selected');
  155. $("#ccm-nav-intelligent-search").val('');
  156. $("#ccm-intelligent-search-results").fadeOut(90, 'easeOutExpo');
  157. if ($('#ccm-dashboard-overlay').is(':visible')) {
  158. $('#ccm-dashboard-overlay').fadeOut(90, 'easeOutExpo');
  159. $(window).unbind('click.dashboard-nav');
  160. }
  161. /*if ($('#ccm-edit-overlay').is(':visible')) {
  162. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  163. $('#ccm-edit-overlay').fadeOut(90, 'easeOutExpo');
  164. $(window).unbind('click.ccm-edit');
  165. } else {*/
  166. setTimeout("$('#ccm-check-in-comments').focus();",300);
  167. $("#ccm-check-in-preview").click(function() {
  168. $("#ccm-approve-field").val('PREVIEW');
  169. $("#ccm-check-in").submit();
  170. });
  171. $("#ccm-check-in-discard").click(function() {
  172. $("#ccm-approve-field").val('DISCARD');
  173. $("#ccm-check-in").submit();
  174. });
  175. $("#ccm-check-in-publish").click(function() {
  176. $("#ccm-approve-field").val('APPROVE');
  177. $("#ccm-check-in").submit();
  178. });
  179. var posX = $(this).position().left;
  180. if (posX > 0) {
  181. posX = posX - 20; // BACK it up!
  182. }
  183. $("#ccm-edit-overlay").css('left', posX + "px");
  184. $("#ccm-edit-overlay").fadeIn(160, 'easeOutExpo', function() {
  185. $(this).find('a').click(function() {
  186. ccm_toolbarCloseEditMenu();
  187. });
  188. });
  189. $(window).bind('click.ccm-edit', function() {
  190. ccm_toolbarCloseEditMenu();
  191. });
  192. //}
  193. return false;
  194. }, function() {});
  195. }
  196. var ajaxtimer = null;
  197. var ajaxquery = null;
  198. ccm_toolbarCloseEditMenu = function() {
  199. $(".ccm-system-nav-selected").removeClass('ccm-system-nav-selected');
  200. $('#ccm-edit-overlay').fadeOut(90, 'easeOutExpo');
  201. $(window).unbind('click.ccm-edit');
  202. }
  203. ccm_intelligentSearchActivateResults = function() {
  204. if ($("#ccm-intelligent-search-results div:visible").length == 0) {
  205. $("#ccm-intelligent-search-results").hide();
  206. }
  207. $("#ccm-intelligent-search-results a").hover(function() {
  208. $('a.ccm-intelligent-search-result-selected').removeClass();
  209. $(this).addClass('ccm-intelligent-search-result-selected');
  210. }, function() {
  211. $(this).removeClass('ccm-intelligent-search-result-selected');
  212. });
  213. }
  214. ccm_intelligentSearchDoRemoteCalls = function(query) {
  215. query = jQuery.trim(query);
  216. if (!query) {
  217. return;
  218. }
  219. if (query.length > 2) {
  220. if (query == ajaxquery) {
  221. return;
  222. }
  223. if (ajaxtimer) {
  224. window.clearTimeout(ajaxtimer);
  225. }
  226. ajaxquery = query;
  227. ajaxtimer = window.setTimeout(function() {
  228. ajaxtimer = null;
  229. $("#ccm-intelligent-search-results-list-marketplace").parent().show();
  230. $("#ccm-intelligent-search-results-list-help").parent().show();
  231. $("#ccm-intelligent-search-results-list-your-site").parent().show();
  232. $("#ccm-intelligent-search-results-list-marketplace").parent().addClass('ccm-intelligent-search-results-module-loading');
  233. $("#ccm-intelligent-search-results-list-help").parent().addClass('ccm-intelligent-search-results-module-loading');
  234. $("#ccm-intelligent-search-results-list-your-site").parent().addClass('ccm-intelligent-search-results-module-loading');
  235. $.getJSON(CCM_TOOLS_PATH + '/marketplace/intelligent_search', {
  236. 'q': ajaxquery
  237. },
  238. function(r) {
  239. $("#ccm-intelligent-search-results-list-marketplace").parent().removeClass('ccm-intelligent-search-results-module-loading');
  240. $("#ccm-intelligent-search-results-list-marketplace").html('');
  241. for (i = 0; i < r.length; i++) {
  242. var rr= r[i];
  243. var _onclick = "ccm_getMarketplaceItemDetails(" + rr.mpID + ")";
  244. $("#ccm-intelligent-search-results-list-marketplace").append('<li><a href="javascript:void(0)" onclick="' + _onclick + '"><img src="' + rr.img + '" />' + rr.name + '</a></li>');
  245. }
  246. if (r.length == 0) {
  247. $("#ccm-intelligent-search-results-list-marketplace").parent().hide();
  248. }
  249. if ($('.ccm-intelligent-search-result-selected').length == 0) {
  250. $("#ccm-intelligent-search-results").find('li a').removeClass('ccm-intelligent-search-result-selected');
  251. $("#ccm-intelligent-search-results li:visible a:first").addClass('ccm-intelligent-search-result-selected');
  252. }
  253. ccm_intelligentSearchActivateResults();
  254. }).error(function() {
  255. $("#ccm-intelligent-search-results-list-marketplace").parent().hide();
  256. });
  257. $.getJSON(CCM_TOOLS_PATH + '/get_remote_help', {
  258. 'q': ajaxquery
  259. },
  260. function(r) {
  261. $("#ccm-intelligent-search-results-list-help").parent().removeClass('ccm-intelligent-search-results-module-loading');
  262. $("#ccm-intelligent-search-results-list-help").html('');
  263. for (i = 0; i < r.length; i++) {
  264. var rr= r[i];
  265. $("#ccm-intelligent-search-results-list-help").append('<li><a href="' + rr.href + '">' + rr.name + '</a></li>');
  266. }
  267. if (r.length == 0) {
  268. $("#ccm-intelligent-search-results-list-help").parent().hide();
  269. }
  270. if ($('.ccm-intelligent-search-result-selected').length == 0) {
  271. $("#ccm-intelligent-search-results").find('li a').removeClass('ccm-intelligent-search-result-selected');
  272. $("#ccm-intelligent-search-results li:visible a:first").addClass('ccm-intelligent-search-result-selected');
  273. }
  274. ccm_intelligentSearchActivateResults();
  275. }).error(function() {
  276. $("#ccm-intelligent-search-results-list-help").parent().hide();
  277. });
  278. $.getJSON(CCM_TOOLS_PATH + '/pages/intelligent_search', {
  279. 'q': ajaxquery
  280. },
  281. function(r) {
  282. $("#ccm-intelligent-search-results-list-your-site").parent().removeClass('ccm-intelligent-search-results-module-loading');
  283. $("#ccm-intelligent-search-results-list-your-site").html('');
  284. for (i = 0; i < r.length; i++) {
  285. var rr= r[i];
  286. $("#ccm-intelligent-search-results-list-your-site").append('<li><a href="' + rr.href + '">' + rr.name + '</a></li>');
  287. }
  288. if (r.length == 0) {
  289. $("#ccm-intelligent-search-results-list-your-site").parent().hide();
  290. }
  291. if ($('.ccm-intelligent-search-result-selected').length == 0) {
  292. $("#ccm-intelligent-search-results").find('li a').removeClass('ccm-intelligent-search-result-selected');
  293. $("#ccm-intelligent-search-results li:visible a:first").addClass('ccm-intelligent-search-result-selected');
  294. }
  295. ccm_intelligentSearchActivateResults();
  296. }).error(function() {
  297. $("#ccm-intelligent-search-results-list-your-site").parent().hide();
  298. });
  299. }, 500);
  300. }
  301. }