diff options
author | Ralf Geschke <ralf@kuerbis.org> | 2019-04-29 21:46:24 +0300 |
---|---|---|
committer | Ralf Geschke <ralf@kuerbis.org> | 2019-04-29 21:46:24 +0300 |
commit | 6a2a63629d484707d44d6d693879f263ecd73083 (patch) | |
tree | 9e9982348257f353826373b1db99b2dd526a910f | |
parent | db0c0da7ffd423b44e1334811c8463fc79bd3172 (diff) |
Remove unnecessary files
-rw-r--r-- | static/js/custom-font.js | 339 | ||||
-rw-r--r-- | static/js/custom-repeater.js | 592 | ||||
-rw-r--r-- | static/js/custom-slider.js | 38 | ||||
-rw-r--r-- | static/js/custom-theme.js | 143 |
4 files changed, 0 insertions, 1112 deletions
diff --git a/static/js/custom-font.js b/static/js/custom-font.js deleted file mode 100644 index b89bffe..0000000 --- a/static/js/custom-font.js +++ /dev/null @@ -1,339 +0,0 @@ -/* global jQuery */ -/* global wp */ - - -/** - * Customizer Control: JavaScript part of font control - * - * @package Azbalac Controls - * @subpackage Controls - * @copyright Copyright (c) 2017, Ralf Geschke - * @license https://opensource.org/licenses/MIT - * @since 0.1 - */ - -(function ($) { - - -wp.customize.controlConstructor.azbalac_font = wp.customize.Control.extend( { - - - ready: function() { - var control = this; - - this.container.on( 'event_font_updated', function() { - var dataField = $(control.container).find('.azbalac_font_collector'); - var settingData = dataField.val(); - - control.setting.set( settingData ); - return true; - }); - - control.initFontControl(); - - }, - - /** - * Get all variant select fields with selected variant, load font data content, build options array and - * show selected option. In case of no ggl font chosen, hide variant select element. - * - */ - displaySelectVariants: function() { - var control = this; - $(control.container).find('.customize-font-input-select-variant').each(function(idx) { - var selectField = this; - var variantSelected = $(selectField).attr('data-default-selected'); - var fontVariant = $(selectField).attr('data-font-variant'); // a kind of fallback in the case that variant data isn't stored into database - // this can happen in the first case when database is empty and the - // variant select field is not updated (changed) - - if (variantSelected != '' || fontVariant == 'true') { - if (variantSelected == '') { - // default is 'regular' - - variantSelected = 'regular'; - } - $(selectField).parents('.font-input-select-variant').show(); - var fontSelected = $(selectField).parents('.customize-control-font-element').find('.customize-font-input-select').attr('data-default-selected'); - - var requestData = { - action: "azbalac_get_font_data_action", - searchfont: fontSelected - }; - $.ajax({ - type: "POST", - url: ajaxurl, - - dataType: "json", - data: requestData, - success: function (data, textStatus, jqXHR) { - - if (data != null) { - - if (typeof data.variants != 'undefined') { - - var selectOption = $(selectField).children()[0]; // string "-- select --" - $(selectField).empty().append(selectOption); - - _.each(data.variants, function(choiceOption, choiceValue) { - var variantData = { - 'value': choiceOption, - 'text': choiceOption - }; - if (choiceOption == variantSelected) { - variantData['selected'] = 'selected'; - } - // choiceOption is the identifier string - $('<option/>', variantData).appendTo(selectField); - - }); - } - - } - - }, - error: function (errorMessage) { - // later: show error? - - } - - }); - } else { - - $(this).parents('.font-input-select-variant').hide(); - - } - - - }); - - }, - - /** - * Find and update hidden data field with collection of values by submitting new elementData array. - * At the end, this method triggers an event, so WordPress recognizes the changes. - * - */ - updateCurrentDataField: function(elementData) { - var control = this; - var dataField = $(control.container).find('.azbalac_font_collector'); - var dataFieldId = dataField.attr('id'); - - $(control.container).find('#' + dataFieldId).val( encodeURI( JSON.stringify( elementData ) )); - dataField.trigger('event_font_updated'); - }, - - - onChangeSelectUpdate: function( event, element, elementData ) { - var control = this; - elementId = element.parents('.customize-control-font-element').attr('id'); - - var newValue = element.val(); - - elementData['font'] = newValue; - - // delete previously set ggl font data to prevent displaying old presets like another variant - // if ggl font is chosen, the default variant should be active, i.e. "regular" or empty string - if (typeof elementData['gglfontdata'] != 'undefined') { - elementData['gglfontdata'] = null; - } - if (isNaN(parseInt(newValue))) { // no number, so we have Google Fonts - $('#' + elementId).find('.font-input-select-variant').show(); - - // get variants from backend and trigger another event - // if no variant is chosen, nothing will be stored - // default is 'regular' - elementData['gglfont'] = true; - - var requestData = { - action: "azbalac_get_font_data_action", - searchfont: newValue - }; - - $.ajax({ - type: "POST", - url: ajaxurl, - - dataType: "json", - data: requestData, - success: function (data, textStatus, jqXHR) { - - if (data != null) { - // trigger action which builds array of variants - element.trigger('event_font_gglfont_selected', [ element, elementId, data ]); - - // this does not work due to asynchronous request - // get default (first) first variant to store into elementData - /*if (typeof data.variants != 'undefined') { - var defaultVariant = data.variants[0]; - console.log("defaultVariant and file::"); - console.log(defaultVariant); - console.log(data.files[defaultVariant]); - elementData['gglfontdata'] = {'variant': defaultVariant, - 'file': data.files[defaultVariant] - }; - }*/ - } - - }, - error: function (errorMessage) { - // maybe later: write error message - } - - }); - - } else { - $('#' + elementId).find('.font-input-select-variant').hide(); - - // no ggl font, remove ggl font contents - elementData['gglfont'] = false; - if (typeof elementData['gglfontdata'] != 'undefined') { - elementData['gglfontdata'] = null; - } - } - control.updateCurrentDataField(elementData, element); - - }, - - - onChangeSelectVariantUpdate: function( event, element, elementData ) { - var control = this; - elementId = element.parents('.customize-control-font-element').attr('id'); - - var variant = element.val(); - - var requestData = { - action: "azbalac_get_font_data_action", - searchfont: elementData['font'] - }; - - $.ajax({ - type: "POST", - url: ajaxurl, - - dataType: "json", - data: requestData, - success: function (data, textStatus, jqXHR) { - if (data != null) { - // search variant and store filename into elementData array - - if (typeof data.variants != 'undefined') { - if (typeof data.files[variant] != 'undefined') { - // variant found - var file = data.files[variant]; - - } else { - var file = ''; // no file submitted, use empty string. - // currently the font file is not used. Was: data.files[data.variants[0]]; - } - elementData['gglfontdata'] = {'variant': variant, - 'file': file - }; - // call update function to store elementData - control.updateCurrentDataField(elementData); - } - } // else nothing, default variant is regular if nothing chosen or empty - - }, - error: function (errorMessage) { - // show error? - } - - }); - }, - - onChangeSizeUpdate: function( event, element, elementData, newValue ) { - var control = this; - elementId = element.parents('.customize-control-font-element').attr('id'); - - elementData['size'] = newValue; - - control.updateCurrentDataField(elementData, element); - - }, - - - initFontControl: function() { - var control = this; - var elementData = {}; - - - var element = $(this.container).find('.customize-control-font-element'); - - var elementId = element.attr('id'); - var prevValue = $(control.container).find('.azbalac_font_collector').val(); - - if (prevValue != '') { - elementData = JSON.parse(decodeURI(prevValue)); - // todo: if gglfont, get variants and select chosen variant - } else { - elementData = {}; - } - - - control.displaySelectVariants(); - - // initialize key events to handle select fields - $(this.container).on('change', '.customize-font-input-select', function (event) { - control.onChangeSelectUpdate(event, $(this), elementData); - }); - - $(this.container).on('event_font_gglfont_selected', function(event, element, elementId, data) { - - var selectField = $('#' + elementId).find('.customize-font-input-select-variant'); - - var selectOption = $(selectField).children()[0]; // string "-- select --" - selectField.empty().append(selectOption); - - _.each(data.variants, function(choiceOption, choiceValue) { - // choiceOption is the identifier string - var variantData = { - 'value': choiceOption, - 'text': choiceOption - }; - - if (choiceOption == 'regular') { // regular is the default value - // but 'regular' is not stored as default, because it's identically - // to an empty string - variantData['selected'] = 'selected'; - } - $('<option/>', variantData).appendTo(selectField); - }); - - }); - - - $(this.container).on('change', '.customize-font-input-select-variant', function (event) { - control.onChangeSelectVariantUpdate(event, $(this), elementData); - }); - - - var sizeDefault = $('[id="input_size_' + elementId + '"]').attr('data-default'); - if (!sizeDefault) { - sizeDefault = 0; // it has to be initialized with some value, fallback if no default size is submitted, 0 means nothing set, use size defined by theme - } - // if available, load current size from stored data - if (typeof elementData['size'] != 'undefined') { - sizeDefault = elementData['size']; - } - - $('[id="slider_size_' + elementId + '"]').slider({ - value: sizeDefault, min: 0, max: 120, step: 1, - slide: function (event, ui) { - $('[id="input_size_' + elementId + '"]').val(ui.value).keyup(); - - control.onChangeSizeUpdate(event, $(this), elementData, ui.value); - - } - }); - $('[id="input_size_' + elementId + '"]').val($('[id="slider_size_' + elementId + '"]').slider("value")); - - - - } - - -} ); - - -})(jQuery);
\ No newline at end of file diff --git a/static/js/custom-repeater.js b/static/js/custom-repeater.js deleted file mode 100644 index 2d66b94..0000000 --- a/static/js/custom-repeater.js +++ /dev/null @@ -1,592 +0,0 @@ -/* global jQuery */ -/* global wp */ - - -/** - * Customizer Control: JavaScript part of repeater control - * - * @package azbalac Controls - * @subpackage Controls - * @copyright Copyright (c) 2017, Ralf Geschke - * @license https://opensource.org/licenses/MIT - * @since 2.0 - */ - -/** - * Preload image when using image type in repeater - * - * @param {*} id - * @param {*} payload - * @param {*} callback - */ -function azbalacRepeaterPreloadAttachment(id, payload, callback) { - // if it doesn't have URL we probably have to preload it - if (!wp.media.attachment(id).get('url')) { - wp.media.attachment(id).fetch().then(function () { - callback(wp.media.attachment(id), payload); - }); - // was:, but what did I want here? element.children('') - return; - } - - callback(wp.media.attachment(id), payload); - } - -/** - * Show selected image as preview in a repeater area - * - * @param {*} payload - * @param {*} attachment - */ -function azbalacRepeaterPreviewImage(payload, attachment) { - var elementId = payload['elementId']; - var elementName = payload['elementName']; - - var mediaView = jQuery('#' + elementId).find("div[data-field='" + elementName + "']"); - - var placeholder = jQuery(mediaView).find('.placeholder'); - if (placeholder.length) { - // placeholder element is available, replace with image - mediaView.empty(); - var imageTemplate = '<div class="thumbnail thumbnail-image"><img class="attachment-thumb" src="" draggable="false" alt=""></div>'; - imageTemplate += '<div class="actions"><button type="button" class="button remove-button azbalac-repeater-custom-remove-button">' + objectL10n.remove + '</button> <button type="button" class="button upload-button azbalac-repeater-custom-upload-button" id="">' + objectL10n.change_image + '</button> </div>'; - mediaView.append(imageTemplate); - - } - var imageUrl = wp.media.attachment(attachment.id).get('url'); - mediaView.find('.attachment-thumb').attr('src',imageUrl).css('display','block'); - -} - - -/* Generate unique id, taken from https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript -*/ -function uuidv4() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - } - -(function ($) { - - -wp.customize.controlConstructor.azbalac_repeater = wp.customize.Control.extend( { - - - - ready: function() { - var control = this; - //this.elementData = {}; - - this.container.on( 'event_repeater_updated', function() { - var dataField = $(control.container).find('.azbalac_repeater_collector'); - var settingData = dataField.val(); - - control.setting.set( settingData ); - return true; - }); - - control.initRepeaterControl(); - - }, - - - /** - * The first control element should not be removed, so hide it's remove button and display - * all but not the first - */ - displayRemoveButtons: function() { - var control = this; - $(control.container).find('.customize-repeater-row-remove').each(function(idx) { - if (idx == 0) { - $(this).hide(); - } else { - $(this).show(); - } - - }); - - }, - - /** - * Find and update hidden data field with collection of values by submitting new elementData array. - * At the end, this method triggers an event, so WordPress recognizes the changes. - * - */ - updateCurrentDataField: function(elementData) { - var control = this; - var dataField = $(control.container).find('.azbalac_repeater_collector'); - - var dataFieldId = dataField.attr('id'); - - $(control.container).find('#' + dataFieldId).val( encodeURI( JSON.stringify( elementData ) )); - - dataField.trigger('event_repeater_updated'); - - }, - - updateCurrentTextField: function(element, elementData, value) { - var control = this; - elementId = $(element).parents('.customize-control-repeater-element').attr('id'); - if (elementData[elementId] != undefined) { - - var dataField = ($(element).attr('data-field')); - var dataType = ($(element).attr('data-type')); - - if (elementData[elementId]["elements"][dataField] == undefined) { - elementData[elementId]["elements"][dataField] = {}; - } - elementData[elementId]["elements"][dataField]['type'] = dataType; - elementData[elementId]["elements"][dataField]['name'] = dataField; - elementData[elementId]["elements"][dataField]['value'] = value; - - - } - /*else { - console.log("something went wrong here!"); - }*/ - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - }, - - emptyTemplateEntrySelect: function(selectFields) { - _.each( selectFields, function( selectField, selectName ) { - - if ($(selectField).attr('data-default') != '') { - - var selectDefault = $(selectField).attr('data-default'); - $(selectField).children('option').each(function(index, optionElem) { - if ($(optionElem).val() == selectDefault) { - $(optionElem).attr('selected','selected'); - } - }); - - } else { - $(selectField).children('option').removeAttr("selected"); - } - }); - }, - - emptyTemplateImage: function(mediaView) { - // todo: check function with multiple image elements - mediaView.empty(); - var imageTemplate = '<div class="placeholder">' + objectL10n.no_image_selected + '</div><div class="actions"> <button type="button" class="button azbalac-repeater-custom-upload-button">' + objectL10n.select_image + '</button> </div>'; - mediaView.append(imageTemplate); - - }, - - emptyTemplateInputfields: function(inputFields) { - _.each( inputFields, function( inputField, inputName ) { - - if ($(inputField).attr('data-default') != '') { - $(inputField).val($(inputField).attr('data-default')); - } else { - $(inputField).val(''); - } - }); - }, - - onChangeSelectUpdate: function( event, element, elementData ) { - var control = this; - - elementId = element.parents('.customize-control-repeater-element').attr('id'); - - if (elementData[elementId] != undefined) { - - var dataField = element.attr('data-field'); - var dataType = element.attr('data-type'); - if (dataType == 'dropdown-pages' || dataType == 'select') { - - var newValue = element.val(); - if (elementData[elementId]["elements"][dataField] == undefined) { - elementData[elementId]["elements"][dataField] = {}; - } - elementData[elementId]["elements"][dataField]['type'] = dataType; - elementData[elementId]["elements"][dataField]['name'] = dataField; - elementData[elementId]["elements"][dataField]['value'] = newValue; - - } - - } - /*else { - console.log("something went wrong here!"); - }*/ - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - - }, - - - initRepeaterControl: function() { - var control = this; - var elementData = {}; - - var colorPickerOptions = { - // a callback to fire whenever the color changes to a valid color - change: function(event, ui){ - var element = event.target; - var color = ui.color.toString(); - - control.updateCurrentTextField(element, elementData, color); - }, - // a callback to fire when the input is emptied or an invalid color - clear: function(event) { - var element = jQuery(event.target).siblings('.wp-color-picker')[0]; - var color = ''; - - if (element) { - var color = ''; - control.updateCurrentTextField(element, elementData, color); - - } - - } - }; - - - control.displayRemoveButtons(); - - //console.log("in initRepeaterControl"); - var element = $(this.container).find('.customize-control-repeater-element'); - - - // first initialization - if (element.length > 1) { - // preinitialized elements available? - - element = $(element[0]); // get first element as template - - } - - var prevValue = $(control.container).find('.azbalac_repeater_collector').val(); - - if (typeof prevValue != 'undefined' && prevValue != '') { - elementData = JSON.parse(decodeURI(prevValue)); - - } else { - - elementData[element.attr('id')] = { - elements: {} - }; - } - - - - // initialize button events - var newButton = $(this.container).find('.customize-repeater-new-field'); - newButton.on('click',function() { - var newElement = element.clone(); - var newId = uuidv4(); - - newElement.attr('id',newId); - // clear input fields, replace with default, if available - var inputFields = newElement.find('.customize-repeater-input-text'); - control.emptyTemplateInputfields(inputFields); - - - // empty textarea content or set default - var inputFields = newElement.find('.customize-repeater-input-textarea'); - control.emptyTemplateInputfields(inputFields); - - var selectFields = newElement.find('.customize-repeater-input-select'); - control.emptyTemplateEntrySelect(selectFields); - selectFields = newElement.find('.customize-repeater-input-dropdownpages'); - control.emptyTemplateEntrySelect(selectFields); - // empty image element content - var mediaView = newElement.find('.attachment-media-view'); - if (mediaView.length) { - control.emptyTemplateImage(mediaView); - } - // empty colorpicker element and set events - var colorpicker = newElement.find('.wp-picker-container'); - var colorpickerContainer = colorpicker.parent(); - var colorpickerInput = newElement.find('.azbalac-repeater-color-field').prop('outerHTML'); - colorpicker.remove(); - colorpickerContainer.append(colorpickerInput); - newElement.find('.azbalac-repeater-color-field').wpColorPicker(colorPickerOptions); - - // empty radio button elements and set new names for radio button group based on element id - var radioContainer = newElement.find('.customize-control-radio-container'); - if (radioContainer.length) { - - _.each( radioContainer, function( radioContainerElement, rcIndex ) { - var dataFieldName = $(radioContainerElement).attr('data-field'); - - var radioName = '_customize-control-repeater-radio-' + dataFieldName + '-' + newId; - var radioInputElement = $(radioContainerElement).find('.azbalac-customize-repeater-input-radio'); - _.each( radioInputElement, function(radioInputItem, rcItemIndex ){ - //console.log(radioInputItem); - $(radioInputItem).attr('name',radioName); - - }); - - }); - - - } - - // todo: check checkbox elements - - - newElement.appendTo($('.customize-control-repeater-element-container')); - elementData[newId] = { - elements: {} - }; - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - - }); - - $(document).on('click', '.customize-repeater-row-remove', function () { - - var removeElem = $(this).parents('.customize-control-repeater-element'); - var removeId = removeElem.attr('id'); - - removeElem.remove(); - - elementData = _.omit(elementData,removeId); - - // todo: clear textareaOldval... maybe clear all temporary variables in another method? - - control.updateCurrentDataField(elementData); - - control.displayRemoveButtons(); - - }); - - // initialize key events to handle input fields - $(document).on('keyup', '.customize-repeater-input-text', function () { - - elementId = $(this).parents('.customize-control-repeater-element').attr('id'); - if (elementData[elementId] != undefined) { - - var dataField = ($(this).attr('data-field')); - var dataType = ($(this).attr('data-type')); - var newValue = $(this).val(); - if (elementData[elementId]["elements"][dataField] == undefined) { - elementData[elementId]["elements"][dataField] = {}; - } - elementData[elementId]["elements"][dataField]['type'] = dataType; - elementData[elementId]["elements"][dataField]['name'] = dataField; - elementData[elementId]["elements"][dataField]['value'] = newValue; - - } - /*else { - console.log("something went wrong here!"); - }*/ - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - - }); - - - // initialize key events to handle input fields - var textareaOldval = {}; - $(document).on('change keyup paste', '.customize-repeater-input-textarea', function () { - - elementId = $(this).parents('.customize-control-repeater-element').attr('id'); - - var currentVal = $(this).val(); - - if(typeof textareaOldval[elementId] != undefined && currentVal == textareaOldval[elementId]) { - return; //check to prevent multiple simultaneous triggers - } - - textareaOldval[elementId] = currentVal; - - if (elementData[elementId] != undefined) { - - var dataField = ($(this).attr('data-field')); - var dataType = ($(this).attr('data-type')); - - var newValue = $(this).val(); - - if (elementData[elementId]["elements"][dataField] == undefined) { - elementData[elementId]["elements"][dataField] = {}; - } - elementData[elementId]["elements"][dataField]['type'] = dataType; - elementData[elementId]["elements"][dataField]['name'] = dataField; - elementData[elementId]["elements"][dataField]['value'] = newValue; - - - } - /*else { - console.log("something went wrong here!"); - }*/ - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - - }); - - - var custom_uploader; - - $(document).on('click', '.azbalac-repeater-custom-upload-button', function(e) { - elementId = $(this).parents('.customize-control-repeater-element').attr('id'); - var mediaView = $(this).parents('.attachment-media-view'); - - if (elementData[elementId] != undefined) { - var dataField = ($(this).parents('.attachment-media-view').attr('data-field')); - var dataType = ($(this).parents('.attachment-media-view').attr('data-type')); - - } - else { - console.log("elementData undefined!"); - } - - - e.preventDefault(); - - //If the uploader object has already been created, reopen the dialog - if (custom_uploader) { - custom_uploader.open(); - return; - } - - //Extend the wp.media object - custom_uploader = wp.media.frames.file_frame = wp.media({ - title: objectL10n.choose_image, - button: { - text: objectL10n.choose_image - }, - multiple: false - }); - - //When a file is selected, grab the URL and set it as the text field's value - custom_uploader.on('select', function() { - attachment = custom_uploader.state().get('selection').first().toJSON(); - - var payload = []; - payload['elementId'] = elementId; - payload['elementName'] = dataField; - azbalacRepeaterPreviewImage(payload, attachment); - - if (elementData[elementId]["elements"][dataField] == undefined) { - elementData[elementId]["elements"][dataField] = {}; - } - elementData[elementId]["elements"][dataField]['type'] = dataType; - elementData[elementId]["elements"][dataField]['name'] = dataField; - elementData[elementId]["elements"][dataField]['value'] = attachment.id; - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - - //} else { - // return _orig_send_attachment.apply( button_id, [props, attachment] ); - //} - - - }); - - //Open the uploader dialog - custom_uploader.open(); - - }); - - $(document).on('click', '.azbalac-repeater-custom-remove-button', function(e) { - elementId = $(this).parents('.customize-control-repeater-element').attr('id'); - var mediaView = $(this).parents('.attachment-media-view'); - - var dataField = ($(this).parents('.attachment-media-view').attr('data-field')); - var dataType = ($(this).parents('.attachment-media-view').attr('data-type')); - - - mediaView.empty(); - - var imageTemplate = '<div class="placeholder">' + objectL10n.no_image_selected + '</div><div class="actions"> <button type="button" class="button azbalac-repeater-custom-upload-button">' + objectL10n.select_image + '</button> </div>'; - mediaView.append(imageTemplate); - - elementData[elementId]["elements"][dataField] = {}; - control.updateCurrentDataField(elementData); - - - }); - - - $('.azbalac-repeater-color-field').wpColorPicker(colorPickerOptions); - - - $(document).on('change', '.azbalac-customize-repeater-input-checkbox', function () { - - elementId = $(this).parents('.customize-control-repeater-element').attr('id'); - if (elementData[elementId] != undefined) { - - var dataField = ($(this).attr('data-field')); - var dataType = ($(this).attr('data-type')); - - var newValue = ''; - if (this.checked === true) { - newValue = '1'; - } - - if (elementData[elementId]["elements"][dataField] == undefined) { - elementData[elementId]["elements"][dataField] = {}; - } - elementData[elementId]["elements"][dataField]['type'] = dataType; - elementData[elementId]["elements"][dataField]['name'] = dataField; - elementData[elementId]["elements"][dataField]['value'] = newValue; - - } - /*else { - console.log("something went wrong here!"); - }*/ - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - - }); - - $(document).on('change', '.azbalac-customize-repeater-input-radio', function () { - - var radioName = $(this).attr('name'); - var newValue = $( "input[type=radio][name=" + radioName + " ]:checked" ).val(); - - elementId = $(this).parents('.customize-control-repeater-element').attr('id'); - if (elementData[elementId] != undefined) { - - var dataField = ($(this).parents('.customize-control-radio-container').attr('data-field')); - var dataType = ($(this).parents('.customize-control-radio-container').attr('data-type')); - - if (elementData[elementId]["elements"][dataField] == undefined) { - elementData[elementId]["elements"][dataField] = {}; - } - elementData[elementId]["elements"][dataField]['type'] = dataType; - elementData[elementId]["elements"][dataField]['name'] = dataField; - elementData[elementId]["elements"][dataField]['value'] = newValue; - - } - /*else { - console.log("something went wrong here!"); - }*/ - - control.updateCurrentDataField(elementData); - control.displayRemoveButtons(); - - }); - - - - // initialize key events to handle select fields - - $(document).on('change', '.customize-repeater-input-select', function (event) { - control.onChangeSelectUpdate(event, $(this), elementData); - }); - - $(document).on('change', '.customize-repeater-input-dropdownpages', function (event) { - control.onChangeSelectUpdate(event, $(this), elementData); - }); - - - } - - -} ); - - -})(jQuery);
\ No newline at end of file diff --git a/static/js/custom-slider.js b/static/js/custom-slider.js deleted file mode 100644 index cdd0ee0..0000000 --- a/static/js/custom-slider.js +++ /dev/null @@ -1,38 +0,0 @@ -/* global jQuery */ -/* global wp */ - - -/** - * Customizer Control: JavaScript part of slider control - * - * @package Azbalac Controls - * @subpackage Controls - * @copyright Copyright (c) 2018, Ralf Geschke - * @license https://opensource.org/licenses/MIT - * @since 0.1 - */ - -(function ($) { - - -wp.customize.controlConstructor.azbalac_slider = wp.customize.Control.extend( { - - - ready: function() { - var control = this; - - var element = $(this.container).find('.customize-control-slider-value'); - - $(element).on('change paste keyup', function(event) { - control.setting.set( element.val() ); - return true; - }); - - }, - - - -} ); - - -})(jQuery);
\ No newline at end of file diff --git a/static/js/custom-theme.js b/static/js/custom-theme.js deleted file mode 100644 index 8ad4bb3..0000000 --- a/static/js/custom-theme.js +++ /dev/null @@ -1,143 +0,0 @@ -/* global jQuery */ -/* global wp */ - - -/** - * Customizer Control: JavaScript part of theme (i.e. Bootstrap theme) loading control - * - * @package Azbalac Controls - * @subpackage Controls - * @copyright Copyright (c) 2018, Ralf Geschke - * @license https://opensource.org/licenses/MIT - * @since 0.1 - */ - -(function ($) { - - -wp.customize.controlConstructor.azbalac_theme = wp.customize.Control.extend( { - - - ready: function() { - var control = this; - - this.container.on( 'event_theme_updated', function() { - var dataField = $(control.container).find('.azbalac_theme_collector'); - var settingData = dataField.val(); - - control.setting.set( settingData ); - return true; - }); - - control.initControl(); - - }, - - - - /** - * Find and update hidden data field with collection of values by submitting new elementData array. - * At the end, this method triggers an event, so WordPress recognizes the changes. - * - */ - updateCurrentDataField: function(elementData) { - var control = this; - var dataField = $(control.container).find('.azbalac_theme_collector'); - var dataFieldId = dataField.attr('id'); - - $(control.container).find('#' + dataFieldId).val( encodeURI( JSON.stringify( elementData ) )); - dataField.trigger('event_theme_updated'); - }, - - - onChangeSelectUpdate: function( event, element, elementData ) { - var control = this; - elementId = element.parents('.customize-control-theme-element').attr('id'); - - var newValue = element.val(); - - elementData['theme'] = newValue; - - console.log(elementData); - if (parseInt(newValue) != 0) { // theme selected - - - // get variants from backend and trigger another event - // if no variant is chosen, nothing will be stored - // default is 'regular' - - var requestData = { - action: "azbalac_get_theme_data_action", - searchtheme: newValue - }; - - $.ajax({ - type: "POST", - url: ajaxurl, - - dataType: "json", - data: requestData, - success: function (data, textStatus, jqXHR) { - - if (data != null) { - - console.log(data); - elementData['data'] = data.value; // we only need values, theme id is set before - control.updateCurrentDataField(elementData, element); - } - - }, - error: function (errorMessage) { - // maybe later: write error message - } - - }); - - } else { // fallback to default theme (bootstrap) - - // no ggl font, remove ggl font contents - elementData['theme'] = 0; - if (typeof elementData['data'] != 'undefined' ) { - elementData['data'] = null; - } - control.updateCurrentDataField(elementData, element); - } - - - }, - - - - - - initControl: function() { - var control = this; - var elementData = {}; - - - var element = $(this.container).find('.customize-control-theme-element'); - - var elementId = element.attr('id'); - var prevValue = $(control.container).find('.azbalac_theme_collector').val(); - - if (prevValue != '') { - elementData = JSON.parse(decodeURI(prevValue)); - // todo: if gglfont, get variants and select chosen variant - } else { - elementData = {}; - } - - - // initialize key events to handle select fields - $(this.container).on('change', '.customize-theme-input-select', function (event) { - control.onChangeSelectUpdate(event, $(this), elementData); - }); - - - } - - -} ); - - -})(jQuery);
\ No newline at end of file |