admin-all.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. (function($, undefined) {
  2. "use strict";
  3. var picker, selected, fbt;
  4. var init = function() {
  5. picker = $('<div id="vamtam-colorpicker"></div>').hide();
  6. $('body').append(picker);
  7. fbt = $.farbtastic('#vamtam-colorpicker');
  8. picker.append(function() {
  9. return $('<a class="transparent">transparent</a>').on( 'click', function() {
  10. if (selected) {
  11. $(selected).val('transparent').css({
  12. background: 'white'
  13. });
  14. picker.fadeOut();
  15. }
  16. });
  17. });
  18. };
  19. $.fn.vamtamColorPicker = function() {
  20. var self = this;
  21. if(!picker)
  22. init();
  23. $('[type=color], .vamtam-color-input', self).not('.vamtam-colorpicker').each(function() {
  24. $(this).prop('type', 'text').addClass('vamtam-colorpicker');
  25. fbt.linkTo(this);
  26. }).on('focus', null, function() {
  27. if (selected) $(selected).removeClass('colorwell-selected');
  28. var self = this;
  29. fbt.linkTo(function(color) {
  30. $(self).val(color).change();
  31. });
  32. picker.css({
  33. position: 'absolute',
  34. left: $(this).offset().left + $(this).outerWidth(),
  35. top: $(this).offset().top
  36. }).fadeIn();
  37. $(selected = this).addClass('colorwell-selected');
  38. }).on('blur', null, function() {
  39. picker.fadeOut();
  40. }).on('change keyup', null, function() {
  41. $(this).css({
  42. 'background-color': $(this).val()
  43. });
  44. });
  45. return this;
  46. };
  47. })(jQuery);
  48. (function($, undefined) {
  49. "use strict";
  50. $.fn.vamtamBackgroundOption = function() {
  51. $(this).find('.vamtam-config-row.background:not(.vamtambg-loaded)').each(function() {
  52. var row = $(this).addClass('vamtambg-loaded'),
  53. size = row.find('.bg-block.bg-size'),
  54. repeat = row.find('.bg-block.bg-repeat'),
  55. position = row.find('.bg-block.bg-position');
  56. size.find('input').bind('change', function() {
  57. repeat.add(position).show();
  58. if($(':checked', size).val() === 'cover')
  59. repeat.add(position).hide();
  60. }).change();
  61. });
  62. return this;
  63. };
  64. })(jQuery);
  65. (function($, undefined) {
  66. 'use strict';
  67. window.VAMTAM = window.VAMTAM || {};
  68. window.VAMTAM.upload = {
  69. init: function() {
  70. var file_frame;
  71. $(document).on('click', '.vamtam-upload-button', function(e) {
  72. var field_id = $(this).attr('data-target');
  73. file_frame = wp.media.frames.file_frame = wp.media({
  74. multiple: false,
  75. library: {
  76. type: $(this).hasClass('vamtam-video-upload') ? 'video' : 'image'
  77. }
  78. });
  79. file_frame.on( 'select', function() {
  80. var attachment = file_frame.state().get('selection').first();
  81. window.VAMTAM.upload.fill(field_id, attachment.attributes.url);
  82. });
  83. file_frame.open();
  84. e.preventDefault();
  85. });
  86. $(document).on('click', '.vamtam-upload-clear', function(e) {
  87. window.VAMTAM.upload.remove($(this).attr('data-target'));
  88. e.preventDefault();
  89. });
  90. $(document).on('click', '.vamtam-upload-undo', function(e) {
  91. window.VAMTAM.upload.undo($(this).attr('data-target'));
  92. e.preventDefault();
  93. });
  94. },
  95. fill: function(id, str) {
  96. if (/^\s*$/.test(str)) {
  97. window.VAMTAM.upload.remove(id);
  98. return;
  99. }
  100. var target = $('#' + id);
  101. target.data('undo', target.val());
  102. target.val(str);
  103. target.siblings('.vamtam-upload-clear, .vamtam-upload-undo').css({
  104. display: 'inline-block'
  105. });
  106. window.VAMTAM.upload.preview(id, str);
  107. },
  108. preview: function(id, str) {
  109. $('#' + id + '_preview').parents('.upload-basic-wrapper').addClass('active');
  110. $('#' + id + '_preview').find('img').attr('src', str).css({
  111. display: 'inline-block'
  112. });
  113. },
  114. remove: function(id) {
  115. var inp = $('#' + id);
  116. $('#' + id + '_preview').find('img').attr('src', '').hide();
  117. $('#' + id + '_preview').parents('.upload-basic-wrapper').removeClass('active');
  118. inp.data('undo', inp.val()).val('')
  119. .siblings('.vamtam-upload-undo').css({
  120. display: 'inline-block'
  121. })
  122. .siblings('.vamtam-upload-clear').hide();
  123. },
  124. undo: function(id) {
  125. var inp = $('#' + id);
  126. this.preview(id, inp.data('undo'));
  127. inp.val(inp.data('undo'));
  128. inp.data('undo', '').siblings('.vamtam-upload-undo').hide();
  129. var remove = inp.siblings('.vamtam-upload-clear');
  130. if (inp.val().length === 0 && remove.is(':visible')) {
  131. remove.hide();
  132. } else if (inp.val().length > 0 && remove.is(':hidden')) {
  133. remove.css({
  134. display: 'inline-block'
  135. });
  136. }
  137. }
  138. };
  139. })(jQuery);
  140. (function($, undefined) {
  141. "use strict";
  142. window.VAMTAM = window.VAMTAM || {};
  143. $(function() {
  144. $('body').vamtamColorPicker().vamtamBackgroundOption();
  145. window.VAMTAM.upload.init();
  146. $(document).on('change select', '[data-field-filter]', function() {
  147. var prefix = $(this).attr('data-field-filter');
  148. var selected = $(':checked', this).val();
  149. var others = $(this).closest('.vamtam-config-group').find('.' + prefix).filter(':not(.hidden)');
  150. others.show().filter(':not(.' + prefix + '-' + selected + ')').hide();
  151. });
  152. $('[data-field-filter]').change();
  153. $(document).on('change', '.social_icon_select_sites', function() {
  154. var wrap = $(this).closest('p').siblings('.social_icon_wrap');
  155. wrap.children('p').hide();
  156. $('option:selected', this).each(function() {
  157. wrap.find('.social_icon_' + $(this).val()).show();
  158. });
  159. });
  160. $(document).on('change', '.num_shown', function() {
  161. var wrap = $(this).closest('p').siblings('.hidden_wrap');
  162. wrap.children('div').hide();
  163. $('.hidden_el:lt(' + $(this).val() + ')', wrap).show();
  164. });
  165. $('.metabox').each(function() {
  166. var meta_tabs = $('<ul>').addClass('vamtam-meta-tabs');
  167. $('.config-separator:first', this).before(meta_tabs);
  168. $('.config-separator', this).each(function() {
  169. var id = $(this).text().replace(/[\s\n]+/g, '').toLowerCase();
  170. $(this).nextUntil('.config-separator').wrapAll('<div class="vamtam-meta-part" id="tab-' + id + '"></div>');
  171. $(this).css('cursor', 'pointer');
  172. if ($(this).next().is('.vamtam-meta-part')) {
  173. meta_tabs.append('<li class="vamtam-meta-tab '+$(this).attr('data-tab-class')+'"><a href="#tab-' + id + '" title="">' + $(this).text() + '</a></li>');
  174. }
  175. $(this).remove();
  176. });
  177. if(meta_tabs.children().length > 1) {
  178. meta_tabs.closest('.metabox').tabs();
  179. } else {
  180. meta_tabs.hide();
  181. }
  182. });
  183. $('#vamtam-config').tabs({
  184. activate: function(event, ui) {
  185. var hash = ui.newTab.context.hash;
  186. var element = $(hash);
  187. element.attr('id', '');
  188. window.location.hash = hash;
  189. element.attr('id', hash.replace('#', ''));
  190. $('.save-vamtam-config').show();
  191. if (ui.newTab.hasClass('nosave')) $('.save-vamtam-config').hide();
  192. },
  193. create: function(event, ui) {
  194. if (ui.tab.hasClass('nosave')) $('.save-vamtam-config').hide();
  195. }
  196. });
  197. $('body').on('click', '.info-wrapper > a', function(e) {
  198. var other = $(this).attr('data-other');
  199. $(this).attr('data-other', $(this).text()).text(other);
  200. $(this).siblings('.desc').slideToggle(200);
  201. e.preventDefault();
  202. });
  203. });
  204. })(jQuery);
  205. (function($, undefined) {
  206. "use strict";
  207. $(function() {
  208. var groups = [{
  209. options: '#vamtam-post-format-options',
  210. select: '#post-formats-select'
  211. }, {
  212. options: '#vamtam-portfolio-format-options',
  213. select: '#vamtam-portfolio-formats-select'
  214. }];
  215. _.each(groups, function(group) {
  216. var post_formats = $(group.options);
  217. if(post_formats.length) {
  218. var pf_tabs = post_formats.find('.vamtam-meta-tabs').hide(),
  219. pf_select = $(group.select);
  220. pf_select.find(':radio').change(function() {
  221. var checked = pf_select.find(':checked'),
  222. format_name = checked.prop('id') || 'post-format-'+checked.val(),
  223. tab = pf_tabs.find('li.vamtam-'+ format_name + ' a');
  224. tab.click();
  225. pf_tabs.parent().find('.vamtam-config-row.vamtam-all-formats').appendTo($(tab.attr('href')));
  226. }).change();
  227. post_formats.insertBefore($('#postdivrich')).addClass( 'vamtam-repositioned' );
  228. }
  229. });
  230. });
  231. })(jQuery);