From 45160aafe3e52e5e44e1549706dc91d43645e4bb Mon Sep 17 00:00:00 2001 From: Matthew Jackowski Date: Wed, 24 Feb 2016 10:24:33 -0800 Subject: [PATCH 1/6] cleaning up codebase added front-end jquery logging module minor refactor of language mapping control updated logic around javascript rendering --- ...ansifex-live-integration-settings-page.php | 3 + ...fex-live-integration-settings-template.php | 4 +- .../transifex-live-integration-defaults.php | 2 +- .../transifex-live-integration-javascript.php | 18 +- javascript/jquery.jloggins.1.0.1.js | 169 ++++++++++++++++++ ...ransifex-live-integration-settings-page.js | 163 ++++++++++------- transifex-live-integration.php | 1 + 7 files changed, 292 insertions(+), 68 deletions(-) create mode 100644 javascript/jquery.jloggins.1.0.1.js diff --git a/includes/admin/transifex-live-integration-settings-page.php b/includes/admin/transifex-live-integration-settings-page.php index 05381640..55bf859c 100644 --- a/includes/admin/transifex-live-integration-settings-page.php +++ b/includes/admin/transifex-live-integration-settings-page.php @@ -71,6 +71,9 @@ static function options_page() { if ( $settings['language_map'] !== '' ) { $language_map = $settings['language_map']; } + Plugin_Debug::logTrace($settings['language_map']); + Plugin_Debug::logTrace($language_map); + Plugin_Debug::logTrace(htmlentities(stripslashes($language_map))); $checked_custom_urls = ($settings['enable_custom_urls'] === "1") ? "1" : "0"; diff --git a/includes/admin/transifex-live-integration-settings-template.php b/includes/admin/transifex-live-integration-settings-template.php index a6034552..5271ddbe 100644 --- a/includes/admin/transifex-live-integration-settings-template.php +++ b/includes/admin/transifex-live-integration-settings-template.php @@ -44,8 +44,8 @@

- - + +
LanguageCode
Your languages can't be loaded. Please re-check your API key. diff --git a/includes/transifex-live-integration-defaults.php b/includes/transifex-live-integration-defaults.php index 0642989d..a8f59216 100644 --- a/includes/transifex-live-integration-defaults.php +++ b/includes/transifex-live-integration-defaults.php @@ -58,7 +58,7 @@ static function settings() { 'language_lookup' => null, 'language_map' => null, 'languages_regex' => null, - 'rewrite_option_all' => "1", + 'rewrite_option_all' => 0, 'enable_custom_urls' => 0, 'urls' => [ diff --git a/includes/transifex-live-integration-javascript.php b/includes/transifex-live-integration-javascript.php index 15625cd8..1d423e88 100644 --- a/includes/transifex-live-integration-javascript.php +++ b/includes/transifex-live-integration-javascript.php @@ -18,7 +18,8 @@ class Transifex_Live_Integration_Javascript { private $live_settings; private $is_detectlang; private $tx_langs; - + private $language_map; + private $source_language; /** * Public constructor, sets local settings * @param array $live_settings Associative array of plugin settings. @@ -30,6 +31,8 @@ public function __construct( $settings, $is_detectlang ) { } $this->tx_langs = $settings['transifex_languages']; $this->is_detectlang = $is_detectlang; + $this->language_map = json_decode( $settings['language_map'], true )[0]; + $this->source_language = $settings['source_language']; } /** @@ -39,8 +42,16 @@ function render() { Plugin_Debug::logTrace(); $this->is_detectlang ? Plugin_Debug::logTrace( "overriding detectlang" ) : Plugin_Debug::logTrace( "skipped detectlang override" ); if ( $this->is_detectlang ) { - $lang = get_query_var( 'lang' ); - + $query_lang = get_query_var( 'lang' ); + if ($query_lang == $this->source_language) { + $lang = $this->source_language; + } else { + $lang = array_search($query_lang,$this->language_map); + if (!$lang) { + Plugin_Debug::logTrace('javascript render failed could not find key'); + return false; + } + } $check_for_standard_lang = in_array( $lang, explode( ",", $this->tx_langs ) ); Plugin_Debug::logTrace( $check_for_standard_lang ? "standard lang detected, skipping override" : "not standard lang, overriding" ); if ( !$check_for_standard_lang ) { @@ -57,7 +68,6 @@ function() { return "$lang";} $live_settings_string = str_replace( '"%function%"', $detectlang, $live_settings_string ); } - Plugin_Debug::logTrace( $live_settings_string ); $include = <<window.liveSettings=$live_settings_string; \n diff --git a/javascript/jquery.jloggins.1.0.1.js b/javascript/jquery.jloggins.1.0.1.js new file mode 100644 index 00000000..61c87f98 --- /dev/null +++ b/javascript/jquery.jloggins.1.0.1.js @@ -0,0 +1,169 @@ +//**************************************************************************************************************************************************** +// Copyright (c) 2012 AbstractLabs +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +//**************************************************************************************************************************************************** +(function (jQuery) { + var hash = new RegExp(/log\:?(all|debug|info|warn|error)/gi).exec(document.location.hash) + jQuery.log = + { + __window: null, + __level: "none", + __context: new Array(), + __operation: new Array(), + level: function (value) { + if (value != this.__level && (value == 'all' || value == 'debug' || value == 'info' || value == 'warn' || value == 'error')) { + this.__level = value; + this.write('Logging level is ' + this.__level) + } + return this.__level; + }, + enabled: function (level) { + return (this.__level == 'all' + || this.__level == 'debug' + || (this.__level != 'none' && level == 'any') + || (this.__level == 'info' && (level != 'debug')) + || (this.__level == 'warn' && (level != 'debug' || level != 'info')) + || (this.__level == 'error' && (level != 'debug' || level != 'info' || level != 'warn'))); + }, + context: function (depth) { + var result = null; + if (this.context.length > 0 && (typeof (depth) == 'undefined' || depth < this.__context.length)) result = this.__context[this.__context.length - 1]; + return result; + }, + enter: function (context) { + this.__context.push(context); + return this; + }, + exit: function () { + if (this.__context.length > 0) this.__context.pop(); + return this; + }, + start: function (operation) { + this.__operation.push({ name: operation, timestamp: new Date().getTime() }); + this.write('Start ' + operation, '->') + }, + stop: function () { + if (this.__operation.length > 0) { + var operation = this.__operation.pop() + var elapsed = new Date(); + elapsed.setTime(new Date().getTime() - operation.timestamp); + this.write('Stop ' + operation.name + ' ' + elapsed.getMinutes() + ':' + elapsed.getSeconds() + ':' + elapsed.getMilliseconds() + ' elapsed', '<-') + } + }, + reset: function () { + this.__context = new Array(); + this.__operations = new Array(); + return this; + }, + write: function (message, type) { + if (this.enabled('any')) { + if (typeof (type) != 'undefined') message = '[' + type + '] ' + message; + if (typeof (console) == 'object') console.log(message) + else if (typeof (opara) == 'object') opera.postError(message); + else { + if (this.__window == null) this.__window = window.open(); + this.__window.document.write(message); + } + } + }, + format: function () { + var result = (this.__context.length > 0) ? this.__context.join(' ') + ':' : ''; + for (var index = 0; index < arguments.length; index++) + { + if(typeof(arguments[index]) == 'string') + { + result += arguments[index] + } + else if(JSON && JSON.stringify) result += JSON.stringify(arguments[index]); + else + { + results += '{'; + for(p in arguments[index]) result += p +':'+ arguments[index][p] + results += '}'; + } + } + return result; + }, + debug: function () { + if (this.enabled('debug')) { + var message = this.format.apply(this, arguments); + if (typeof (console.debug) == 'function') console.debug(message) + else this.write(message, '*'); + } + }, + info: function () { + if (this.enabled('info')) { + var message = this.format.apply(this, arguments); + if (typeof (console.info) == 'function') console.info(message) + else this.write(message, '?'); + } + }, + warn: function () { + if (this.enabled('warn')) { + var message = this.format.apply(this, arguments); + if (typeof (console.warn) == 'function') console.warn(message) + else this.write(message, '+'); + } + }, + error: function () { + if (this.enabled('error')) { + var message = this.format.apply(this, arguments); + if (typeof (console.error) == 'function') console.error(message) + else this.write(message, '!'); + } + }, + exception: function (e) { + if (this.enabled('error')) { + var message = ''; + if ('fileName' in e) message += e.fileName + ' '; + if ('lineNumber' in e) message += e.lineNumber + ' '; + if ('number' in e) message += e.number; + if (message.length > 0) message += ':'; + message += e.message; + if ('description' in e) message += '-' + e.description; + } + } + }, + jQuery.fn.log = function (jQuery) { + var $this = $(this); + var context = $this.prop('tagName'); + if ($this.attr('id')) context += ' #' + $this.attr('id'); + if ($this.attr('class')) context += ' ' + $this.attr('class'); + return { + write: function (message, type) { + $.log.enter(context); + try { $.log.write.call($._log, message, type); } + finally { $.log.exit(); } + } + , + debug: function () { + $.log.enter(context); + try { $.log.debug.apply($.log, arguments); } + finally { $.log.exit(); } + }, + info: function () { + $.log.enter(context); + try { $.log.info.apply($.log, arguments); } + finally { $.log.exit(); } + }, + warn: function () { + $.log.enter(context); + try { $.log.warn.apply($.log, arguments); } + finally { $.log.exit(); } + }, + error: function () { + $.log.enter(context); + try { $.log.error.apply($.log, arguments); } + finally { $.log.exit(); } + } + } + } + if (hash != null && hash.length > 1) try { $.log.level(hash[1]) } finally { } +})(jQuery); \ No newline at end of file diff --git a/javascript/transifex-live-integration-settings-page.js b/javascript/transifex-live-integration-settings-page.js index 95142fac..4c70d68d 100755 --- a/javascript/transifex-live-integration-settings-page.js +++ b/javascript/transifex-live-integration-settings-page.js @@ -9,6 +9,29 @@ function transifex_live_integration_mapper(l1) { }; } +function transifex_live_integration_map_update(tl) { + if (typeof (tl) != 'undefined') { + console.log('param update'); + var t = tl; + } else { + var t = transifex_languages; + console.log('global update'); + } + console.log(t); + var h = []; + var local_lm = []; + var arr = {}; + // loop through transifex languages + jQuery.each(t, function (i, s) { + var l = jQuery('#transifex-integration-live-' + s).val(); + arr[s] = l; + }); + local_lm.push(arr); + jQuery('#transifex_live_settings_language_map').val(JSON.stringify(local_lm)); + return true; +} + + function transifex_live_integration_convert(l) { var r = {"type": "div", "id": "transifex-languages"}; @@ -25,8 +48,10 @@ function transifex_live_integration_convert(l) { arr['tx_name'] = o['tx_name']; arr['code'] = o['code']; language_lookup.push(arr); + console.log(o['code']); arrr[o['code']] = o['code']; }); + console.log(arrr); language_map.push(arrr); var s = { caption: 'Source:' + l['source']['tx_name'], @@ -41,8 +66,8 @@ function transifex_live_integration_convert(l) { return r; } + function transifexLanguages() { - console.log('transifexLanguages'); var apikey = jQuery('#transifex_live_settings_api_key').val(); if (apikey != '') { jQuery.ajax({ @@ -52,21 +77,15 @@ function transifexLanguages() { dataType: "jsonp", timeout: 3000 }).done(function (data) { - console.log('done'); if (data['translation'] != undefined && data['translation'].length > 0) { - console.log('success'); + globaldata = data; transifex_language_fields = transifex_live_integration_convert(data); jQuery('#transifex_live_settings_api_key').trigger('success'); } else { - console.log('no translation index'); jQuery('#transifex_live_settings_api_key').trigger('notranslation'); } }).fail(function () { - console.log('failed'); jQuery('#transifex_live_settings_api_key').trigger('error'); - }).always(function (jqXHR, textStatus) { - console.log(jqXHR); - console.log(textStatus); }); } else { jQuery('#transifex_live_settings_api_key').trigger('blank'); @@ -74,24 +93,41 @@ function transifexLanguages() { } function addTransifexLanguages(obj) { - if (obj !== null && obj !== undefined) { - var lm = jQuery.parseJSON(jQuery('#transifex_live_settings_language_map').val()); + + if ( typeof(obj) !== 'undefined' && obj !== null) { + console.log('load from page'); + lm = jQuery.parseJSON(jQuery('#transifex_live_settings_language_map').val()); + globalobj = obj; var myName = ''; var myId = ''; + var tl = JSON.parse(jQuery('#transifex_live_settings_transifex_languages').val()); jQuery.each(obj, function (i, o) { myName = 'transifex-integration-live-' + o.code; myId = 'transifex-integration-live-' + o.code; jQuery('#language_map_table').append(jQuery('#language_map_template').clone().show().addClass('cloned-language-map').each(function (ii, oo) { jQuery(oo).find('span.tx-language').text(o.tx_name); - jQuery(oo).find('input.tx-code').attr('id', myId).attr('name', myName).val(lm[o.code]); + jQuery(oo).find('input.tx-code').attr('id', myId).attr('name', myName).val(lm[0][o.code]); })); }); + + jQuery.each(obj, function (i, o) { + jQuery('#transifex-integration-live-' + o.code).machine({defaultState: {onEnter: function () { + transifex_live_integration_map_update(tl); + }, + events: {change: 'defaultState'}}, }); + }); + + } else { + console.log('load from transifex_languages'); jQuery.each(transifex_language_fields['html'], function (i, o) { jQuery('#language_map_table').append(jQuery('#language_map_template').clone().show().addClass('cloned-language-map').each(function () { jQuery(this).find('span.tx-language').text(o.caption); jQuery(this).find('input.tx-code').attr('id', o.id).attr('name', o.name).val(o.value); - + jQuery(this).machine({defaultState: {onEnter: function () { + transifex_live_integration_map_update(); + }, + events: {change: 'defaultState'}}, }); })); }); jQuery('#transifex_live_settings_source_language').val(source_language); @@ -105,7 +141,7 @@ function addTransifexLanguages(obj) { $('#transifex_live_languages').machine({ defaultState: { onEnter: function () { - console.log('#transifex_live_languages:defaultState:onEnter'); + $.log.debug('#transifex_live_languages:defaultState:onEnter'); ($('#transifex_live_settings_language_lookup').val() !== '') ? this.trigger('render') : this.trigger('wait'); }, @@ -113,13 +149,13 @@ function addTransifexLanguages(obj) { }, wait: { onEnter: function () { - console.log('#transifex_live_languages:wait:onEnter'); + $.log.debug('#transifex_live_languages:wait:onEnter'); }, events: {load: 'loadnew'} }, loadnew: { onEnter: function () { - console.log('#transifex_live_languages:load:onEnter'); + $.log.debug('#transifex_live_languages:load:onEnter'); $("#transifex_live_languages_message").toggleClass('hide-if-js', true); $(".cloned-language-map").remove(); addTransifexLanguages(); @@ -128,11 +164,10 @@ function addTransifexLanguages(obj) { }, render: { onEnter: function () { - console.log('#transifex_live_languages:render:onEnter'); + $.log.debug('#transifex_live_languages:render:onEnter'); $("#transifex_live_languages_message").toggleClass('hide-if-js', true); var obj = jQuery.parseJSON(jQuery('#transifex_live_settings_language_lookup').val()); myobj = obj; - console.log(obj); addTransifexLanguages(obj); }, events: {load: 'loadnew'} @@ -145,14 +180,14 @@ function addTransifexLanguages(obj) { $('#transifex_live_settings_api_key_button').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_api_key_button::defaultState::onEnter'); + $.log.debug('transifex_live_settings_api_key_button::defaultState::onEnter'); ($('#transifex_live_settings_api_key').val() !== '') ? this.trigger('hidden') : this.trigger('wait'); }, events: {wait: 'wait', hidden: 'hidden'} }, wait: { onEnter: function () { - console.log('transifex_live_settings_api_key_button::wait::onEnter'); + $.log.debug('transifex_live_settings_api_key_button::wait::onEnter'); this.show(); this.attr('disabled', false); }, @@ -160,7 +195,7 @@ function addTransifexLanguages(obj) { }, checking: { onEnter: function () { - console.log('transifex_live_settings_api_key_button::checking::onEnter'); + $.log.debug('transifex_live_settings_api_key_button::checking::onEnter'); $('#transifex_live_settings_api_key').trigger('validating'); this.attr('disabled', true); }, @@ -168,7 +203,7 @@ function addTransifexLanguages(obj) { }, hidden: { onEnter: function () { - console.log('transifex_live_settings_api_key_button::hidden::onEnter'); + $.log.debug('transifex_live_settings_api_key_button::hidden::onEnter'); this.hide(); }, events: {wait: 'wait'} @@ -181,14 +216,15 @@ function addTransifexLanguages(obj) { $('#transifex_live_settings_api_key').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_api_key:defaultState:onEnter'); + $.log.debug('transifex_live_settings_api_key:defaultState:onEnter'); + languages_override = false; this.trigger('validating'); }, events: {validating: 'validating'} }, validating: { onEnter: function () { - console.log('transifex_live_settings_api_key:validating:onEnter'); + $.log.debug('transifex_live_settings_api_key:validating:onEnter'); $('#transifex_live_settings_api_key_message').text('Checking key...'); $('#transifex_live_settings_url_options_none').attr('disabled', true); $('#transifex_live_settings_url_options_subdirectory').attr('disabled', true); @@ -200,12 +236,15 @@ function addTransifexLanguages(obj) { }, valid: { onEnter: function () { - console.log('valid:onEnter'); + $.log.debug('#transifex_live_settings_api_key:valid:onEnter'); $('#transifex_live_settings_api_key_button').trigger('hidden'); $('#transifex_live_settings_url_options_none').attr('disabled', false); $('#transifex_live_settings_url_options_subdirectory').attr('disabled', false); $('#transifex_live_settings_url_options_subdomain').attr('disabled', false); - $('#transifex_live_languages').trigger('load'); + if (jQuery('#transifex_live_settings_language_map').val()=='' || languages_override) { + $('#transifex_live_languages').trigger('load'); + languages_override = false; + } $('#transifex_live_settings_api_key_message').text('Success! Advanced SEO settings enabled.'); $('input#submit').trigger('enable'); }, @@ -213,7 +252,7 @@ function addTransifexLanguages(obj) { }, error: { onEnter: function () { - console.log('error:onEnter'); + $.log.debug('error:onEnter'); $('#transifex_live_settings_api_key_button').trigger('wait'); $('#transifex_live_settings_api_key_message').text(' Oops! Please make sure you’ve entered a valid API key.'); }, @@ -221,7 +260,7 @@ function addTransifexLanguages(obj) { }, blank: { onEnter: function () { - console.log('transifex_live_settings_api_key:blank:onEnter'); + $.log.debug('transifex_live_settings_api_key:blank:onEnter'); $('#transifex_live_settings_api_key_button').trigger('wait'); $('#transifex_live_settings_api_key_message').text(''); }, @@ -229,7 +268,7 @@ function addTransifexLanguages(obj) { }, missing: { onEnter: function () { - console.log('missing:onEnter'); + $.log.debug('#transifex_live_settings_api_key:missing:onEnter'); $('#transifex_live_settings_api_key_button').trigger('wait'); $('#transifex_live_settings_api_key_message').text('D’oh! No languages have been published from Transifex Live yet.'); }, @@ -242,13 +281,13 @@ function addTransifexLanguages(obj) { $('#transifex_live_settings_url_options_none').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_url_options_none::defaultState::onEnter'); + $.log.debug('transifex_live_settings_url_options_none::defaultState::onEnter'); }, events: {click: 'on'} }, on: { onEnter: function () { - console.log('transifex_live_settings_url_options_none::on::onEnter'); + $.log.debug('transifex_live_settings_url_options_none::on::onEnter'); $('#transifex_live_settings_url_options').trigger('none'); }, events: {click: 'on'} @@ -260,13 +299,13 @@ function addTransifexLanguages(obj) { $('#transifex_live_settings_url_options_subdirectory').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_url_options_subdirectory::defaultState::onEnter'); + $.log.debug('transifex_live_settings_url_options_subdirectory::defaultState::onEnter'); }, events: {click: 'on'} }, on: { onEnter: function () { - console.log('transifex_live_settings_url_options_subdirectory::on::onEnter'); + $.log.debug('transifex_live_settings_url_options_subdirectory::on::onEnter'); $('#transifex_live_settings_url_options').trigger('subdirectory'); }, events: {click: 'on'} @@ -278,13 +317,13 @@ function addTransifexLanguages(obj) { $('#transifex_live_settings_url_options_subdomain').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_url_options_subdomain::defaultState::onEnter'); + $.log.debug('transifex_live_settings_url_options_subdomain::defaultState::onEnter'); }, events: {click: 'on'} }, on: { onEnter: function () { - console.log('transifex_live_settings_url_options_subdomain::on::onEnter'); + $.log.debug('transifex_live_settings_url_options_subdomain::on::onEnter'); $('#transifex_live_settings_url_options').trigger('subdomain'); }, events: {click: 'on'} @@ -296,14 +335,14 @@ function addTransifexLanguages(obj) { $('#transifex_live_settings_url_options').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_url_options::defaultState::onEnter'); + $.log.debug('transifex_live_settings_url_options::defaultState::onEnter'); (this.val() === "1") ? this.trigger('none') : (this.val() === "2") ? this.trigger('subdomain') : this.trigger('subdirectory'); }, events: {none: 'none', subdomain: 'subdomain', subdirectory: 'subdirectory'} }, none: { onEnter: function () { - console.log('transifex_live_settings_url_options::none::onEnter'); + $.log.debug('transifex_live_settings_url_options::none::onEnter'); $('.url-structure-subdirectory').toggleClass('hide-if-js', true); $('.url-structure-subdomain').toggleClass('hide-if-js', true); $('.custom-urls-settings').toggleClass('hide-if-js', true); @@ -316,7 +355,7 @@ function addTransifexLanguages(obj) { }, subdirectory: { onEnter: function () { - console.log('transifex_live_settings_url_options::subdirectory::onEnter'); + $.log.debug('transifex_live_settings_url_options::subdirectory::onEnter'); $('#transifex_live_settings_custom_urls').val("1"); $('.url-structure-subdirectory').toggleClass('hide-if-js', false); $('.url-structure-subdomain').toggleClass('hide-if-js', true); @@ -331,7 +370,7 @@ function addTransifexLanguages(obj) { }, subdomain: { onEnter: function () { - console.log('transifex_live_settings_url_options::subdomain::onEnter'); + $.log.debug('transifex_live_settings_url_options::subdomain::onEnter'); $('#transifex_live_settings_custom_urls').val("1"); $('.url-structure-subdirectory').toggleClass('hide-if-js', true); $('.url-structure-subdomain').toggleClass('hide-if-js', false); @@ -352,7 +391,7 @@ function addTransifexLanguages(obj) { $('#transifex_live_settings_rewrite_option_all').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_rewrite_option_all::defaultState::onEnter'); + $.log.debug('transifex_live_settings_rewrite_option_all::defaultState::onEnter'); if (this.prop('checked')) { this.trigger('seton'); } else { @@ -363,7 +402,7 @@ function addTransifexLanguages(obj) { }, on: { onEnter: function () { - console.log('transifex_live_settings_rewrite_option_all::on::onEnter'); + $.log.debug('transifex_live_settings_rewrite_option_all::on::onEnter'); this.prop('checked', true); $('.all_selector').trigger('on'); }, @@ -371,7 +410,7 @@ function addTransifexLanguages(obj) { }, off: { onEnter: function () { - console.log('transifex_live_settings_rewrite_option_all::off::onEnter'); + $.log.debug('transifex_live_settings_rewrite_option_all::off::onEnter'); this.prop('checked', false); $('.all_selector').trigger('off'); $('input#submit').trigger('disable'); @@ -380,7 +419,7 @@ function addTransifexLanguages(obj) { }, singleoff: { onEnter: function () { - console.log('transifex_live_settings_rewrite_option_all::singleoff::onEnter'); + $.log.debug('transifex_live_settings_rewrite_option_all::singleoff::onEnter'); this.prop("checked", false); }, events: {click: 'on'} @@ -392,7 +431,7 @@ function addTransifexLanguages(obj) { $('.all_selector').machine({ defaultState: { onEnter: function () { - console.log('all_selector::defaultState::onEnter'); + $.log.debug('all_selector::defaultState::onEnter'); if (this.prop('checked')) { this.trigger('seton'); } else { @@ -403,7 +442,7 @@ function addTransifexLanguages(obj) { }, on: { onEnter: function () { - console.log('all_selector::on::onEnter'); + $.log.debug('all_selector::on::onEnter'); this.prop("checked", true); $('input#submit').trigger('enable'); }, @@ -411,7 +450,7 @@ function addTransifexLanguages(obj) { }, off: { onEnter: function () { - console.log('all_selector::off::onEnter'); + $.log.debug('all_selector::off::onEnter'); this.prop("checked", false); $('#transifex_live_settings_rewrite_option_all').trigger('singleoff'); $('input#submit').trigger('enable'); @@ -425,32 +464,32 @@ function addTransifexLanguages(obj) { $('input#submit').machine({ defaultState: { onEnter: function () { - console.log('transifex_live_settings_url_options_subdomain::input#submit::onEnter'); + $.log.debug('transifex_live_settings_url_options_subdomain::input#submit::onEnter'); this.trigger('disable'); }, events: {disable: 'disable'} }, enable: { onEnter: function () { - console.log('transifex_live_settings_url_options_subdomain::enable::onEnter'); + $.log.debug('transifex_live_settings_url_options_subdomain::enable::onEnter'); this.attr('disabled', false); - if (jQuery('#transifex_live_settings_url_options').data('state')=='subdirectory') { - var checkOptions = false; - $.each($('.all_selector'), function (i, o) { + if (jQuery('#transifex_live_settings_url_options').data('state') == 'subdirectory') { + var checkOptions = false; + $.each($('.all_selector'), function (i, o) { + if (!checkOptions) { + checkOptions = ($(o).prop('checked')) ? true : false; + } + }); if (!checkOptions) { - checkOptions = ($(o).prop('checked'))?true:false; - } - }); - if (!checkOptions) { - this.trigger('disable'); + this.trigger('disable'); + } } - } }, events: {disable: 'disable', enable: 'enable'} }, disable: { onEnter: function () { - console.log('transifex_live_settings_url_options_subdomain::enable::onEnter'); + $.log.debug('transifex_live_settings_url_options_subdomain::enable::onEnter'); this.attr('disabled', true); }, events: {enable: 'enable'} @@ -462,28 +501,30 @@ function addTransifexLanguages(obj) { $('input#sync').machine({ defaultState: { onEnter: function () { - console.log('input#sync::defaultState::onEnter'); + $.log.debug('input#sync::defaultState::onEnter'); this.trigger('wait'); }, events: {wait: 'wait'} }, wait: { onEnter: function () { - console.log('input#sync::wait::onEnter'); + $.log.debug('input#sync::wait::onEnter'); }, events: {click: 'confirm'} }, confirm: { onEnter: function () { - console.log('input#sync::confirm::onEnter'); + $.log.debug('input#sync::confirm::onEnter'); (confirm('Refreshing languages will replace your current codes with those from Transifex Live. Continue?')) ? this.trigger('refresh') : this.trigger('wait'); }, events: {refresh: 'refresh', wait: 'wait'} }, refresh: { onEnter: function () { - console.log('input#sync::refresh::onEnter'); + $.log.debug('input#sync::refresh::onEnter'); + languages_override = true; jQuery('#transifex_live_settings_api_key').trigger('validating'); + this.trigger('wait'); }, events: {wait: 'wait'} diff --git a/transifex-live-integration.php b/transifex-live-integration.php index 78725bb3..f05d36fd 100755 --- a/transifex-live-integration.php +++ b/transifex-live-integration.php @@ -178,6 +178,7 @@ static function do_plugin( $is_admin, $version ) { $handler = new Transifex_Live_Integration_Static_Files_Handler(); $handler->add_css_file( $version, TRANSIFEX_LIVE_INTEGRATION_STYLESHEETS . '/transifex-live-integration-settings-page.css' ); + $handler->add_js_file( $version, TRANSIFEX_LIVE_INTEGRATION_JAVASCRIPT . '/jquery.jloggins.1.0.1.js', 'jloggins' ); $handler->add_js_file( $version, TRANSIFEX_LIVE_INTEGRATION_JAVASCRIPT . '/jquery-machine.1.0.1.min.js', 'jquery-machine' ); $handler->add_js_file( $version, TRANSIFEX_LIVE_INTEGRATION_JAVASCRIPT . '/transifex-live-integration-settings-page.js' ); From e7064593f716f7b4e6842b750084996d9cdae35c Mon Sep 17 00:00:00 2001 From: Matthew Jackowski Date: Thu, 25 Feb 2016 08:45:12 -0800 Subject: [PATCH 2/6] removing extra debugging --- .../admin/transifex-live-integration-settings-page.php | 4 ---- includes/transifex-live-integration-javascript.php | 1 - javascript/transifex-live-integration-settings-page.js | 7 ------- 3 files changed, 12 deletions(-) diff --git a/includes/admin/transifex-live-integration-settings-page.php b/includes/admin/transifex-live-integration-settings-page.php index 55bf859c..2eb34188 100644 --- a/includes/admin/transifex-live-integration-settings-page.php +++ b/includes/admin/transifex-live-integration-settings-page.php @@ -71,10 +71,6 @@ static function options_page() { if ( $settings['language_map'] !== '' ) { $language_map = $settings['language_map']; } - Plugin_Debug::logTrace($settings['language_map']); - Plugin_Debug::logTrace($language_map); - Plugin_Debug::logTrace(htmlentities(stripslashes($language_map))); - $checked_custom_urls = ($settings['enable_custom_urls'] === "1") ? "1" : "0"; $url_options = $settings['url_options']; diff --git a/includes/transifex-live-integration-javascript.php b/includes/transifex-live-integration-javascript.php index 1d423e88..b8163902 100644 --- a/includes/transifex-live-integration-javascript.php +++ b/includes/transifex-live-integration-javascript.php @@ -59,7 +59,6 @@ function render() { $detectlang = <<live_settings = array_merge( $this->live_settings, array( 'detectlang' => '%function%' ) ); } } diff --git a/javascript/transifex-live-integration-settings-page.js b/javascript/transifex-live-integration-settings-page.js index 4c70d68d..ccae9524 100755 --- a/javascript/transifex-live-integration-settings-page.js +++ b/javascript/transifex-live-integration-settings-page.js @@ -11,13 +11,10 @@ function transifex_live_integration_mapper(l1) { function transifex_live_integration_map_update(tl) { if (typeof (tl) != 'undefined') { - console.log('param update'); var t = tl; } else { var t = transifex_languages; - console.log('global update'); } - console.log(t); var h = []; var local_lm = []; var arr = {}; @@ -48,10 +45,8 @@ function transifex_live_integration_convert(l) { arr['tx_name'] = o['tx_name']; arr['code'] = o['code']; language_lookup.push(arr); - console.log(o['code']); arrr[o['code']] = o['code']; }); - console.log(arrr); language_map.push(arrr); var s = { caption: 'Source:' + l['source']['tx_name'], @@ -95,7 +90,6 @@ function transifexLanguages() { function addTransifexLanguages(obj) { if ( typeof(obj) !== 'undefined' && obj !== null) { - console.log('load from page'); lm = jQuery.parseJSON(jQuery('#transifex_live_settings_language_map').val()); globalobj = obj; var myName = ''; @@ -119,7 +113,6 @@ function addTransifexLanguages(obj) { } else { - console.log('load from transifex_languages'); jQuery.each(transifex_language_fields['html'], function (i, o) { jQuery('#language_map_table').append(jQuery('#language_map_template').clone().show().addClass('cloned-language-map').each(function () { jQuery(this).find('span.tx-language').text(o.caption); From 361aa4873a3d61b1c6463da5c5c88db5f5c5915c Mon Sep 17 00:00:00 2001 From: Matthew Jackowski Date: Thu, 25 Feb 2016 08:46:01 -0800 Subject: [PATCH 3/6] turning off plugin debug output --- includes/plugin-debug.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/plugin-debug.php b/includes/plugin-debug.php index e137f7a2..6b3fd5cb 100644 --- a/includes/plugin-debug.php +++ b/includes/plugin-debug.php @@ -18,7 +18,7 @@ class Plugin_Debug { * Define the core functionality of the plugin. */ public function __construct() { - self::$debug_mode = true; + self::$debug_mode = false; $this->logTrace(); // Check to see if plugin is in debug mode From 940691a9e12d903bf0d1290273765e0c39f76808 Mon Sep 17 00:00:00 2001 From: Matthew Jackowski Date: Thu, 25 Feb 2016 08:48:34 -0800 Subject: [PATCH 4/6] formatting --- .../transifex-live-integration-settings-page.php | 8 ++++---- includes/transifex-live-integration-javascript.php | 13 +++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/includes/admin/transifex-live-integration-settings-page.php b/includes/admin/transifex-live-integration-settings-page.php index 2eb34188..a2b52574 100644 --- a/includes/admin/transifex-live-integration-settings-page.php +++ b/includes/admin/transifex-live-integration-settings-page.php @@ -44,19 +44,19 @@ static function options_page() { checked( $settings['rewrite_option_all'], '1' ); $checked_rewrite_option_all = ob_get_clean(); - - + + // These are used by the template: DO NOT REMOVE - Mjj 2/22/2016 $languages = [ ]; if ( $settings['transifex_languages'] !== '' ) { $languages = $settings['transifex_languages']; } - + $languages_regex = [ ]; if ( $settings['languages_regex'] !== '' ) { $languages_regex = $settings['languages_regex']; } - + $source_language = ''; if ( $settings['source_language'] !== '' ) { $source_language = $settings['source_language']; diff --git a/includes/transifex-live-integration-javascript.php b/includes/transifex-live-integration-javascript.php index b8163902..3e634457 100644 --- a/includes/transifex-live-integration-javascript.php +++ b/includes/transifex-live-integration-javascript.php @@ -14,12 +14,13 @@ class Transifex_Live_Integration_Javascript { * Stores current plugin settings. * @var array */ - private $live_settings_keys = array( 'api_key'); + private $live_settings_keys = array( 'api_key' ); private $live_settings; private $is_detectlang; private $tx_langs; private $language_map; private $source_language; + /** * Public constructor, sets local settings * @param array $live_settings Associative array of plugin settings. @@ -43,17 +44,17 @@ function render() { $this->is_detectlang ? Plugin_Debug::logTrace( "overriding detectlang" ) : Plugin_Debug::logTrace( "skipped detectlang override" ); if ( $this->is_detectlang ) { $query_lang = get_query_var( 'lang' ); - if ($query_lang == $this->source_language) { + if ( $query_lang == $this->source_language ) { $lang = $this->source_language; } else { - $lang = array_search($query_lang,$this->language_map); - if (!$lang) { - Plugin_Debug::logTrace('javascript render failed could not find key'); + $lang = array_search( $query_lang, $this->language_map ); + if ( !$lang ) { + Plugin_Debug::logTrace( 'javascript render failed could not find key' ); return false; } } $check_for_standard_lang = in_array( $lang, explode( ",", $this->tx_langs ) ); - Plugin_Debug::logTrace( $check_for_standard_lang ? "standard lang detected, skipping override" : "not standard lang, overriding" ); + Plugin_Debug::logTrace( $check_for_standard_lang ? "standard lang detected, skipping override" : "not standard lang, overriding" ); if ( !$check_for_standard_lang ) { Plugin_Debug::logTrace( "Not a standard lang override" ); $detectlang = << Date: Thu, 25 Feb 2016 09:06:50 -0800 Subject: [PATCH 5/6] making 'checked' consistent --- includes/admin/transifex-live-integration-settings-page.php | 2 +- includes/admin/transifex-live-integration-settings-util.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/admin/transifex-live-integration-settings-page.php b/includes/admin/transifex-live-integration-settings-page.php index a2b52574..b254e1c8 100644 --- a/includes/admin/transifex-live-integration-settings-page.php +++ b/includes/admin/transifex-live-integration-settings-page.php @@ -41,7 +41,7 @@ static function options_page() { } ob_start(); - checked( $settings['rewrite_option_all'], '1' ); + checked( $settings['rewrite_option_all'], 1 ); $checked_rewrite_option_all = ob_get_clean(); diff --git a/includes/admin/transifex-live-integration-settings-util.php b/includes/admin/transifex-live-integration-settings-util.php index 68059527..25e72c20 100644 --- a/includes/admin/transifex-live-integration-settings-util.php +++ b/includes/admin/transifex-live-integration-settings-util.php @@ -8,7 +8,7 @@ static function render_url_options( $options ) { $i = 1; foreach ($options as $option) { ob_start(); - checked( $option['checked'], '1' ); + checked( $option['checked'], 1 ); $checked = ob_get_clean(); $text = $option['text']; $id = $option['id']; From fb1ee0c6da58c15d149d2d5cd7d854190122de4d Mon Sep 17 00:00:00 2001 From: Matthew Jackowski Date: Thu, 25 Feb 2016 09:40:11 -0800 Subject: [PATCH 6/6] removing debug console require --- tests/unit/ReverseHardLinkTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit/ReverseHardLinkTest.php b/tests/unit/ReverseHardLinkTest.php index be317566..d43d4c08 100644 --- a/tests/unit/ReverseHardLinkTest.php +++ b/tests/unit/ReverseHardLinkTest.php @@ -6,7 +6,6 @@ class ReverseHardLinkTest extends \PHPUnit_Framework_TestCase private $data; protected function setUp() { - require('psysh'); require_once './includes/plugin-debug.php'; include_once './includes/transifex-live-integration-rewrite.php'; $this->data = [[