diff --git a/addons/web/__manifest__.py b/addons/web/__manifest__.py index 6b2726f539c..b4d3a4e6b18 100644 --- a/addons/web/__manifest__.py +++ b/addons/web/__manifest__.py @@ -87,7 +87,6 @@ This module provides the core of the Odoo Web Client. 'web/static/lib/jquery/jquery.browser.js', 'web/static/lib/jquery.blockUI/jquery.blockUI.js', 'web/static/lib/jquery.hotkeys/jquery.hotkeys.js', - 'web/static/lib/jquery.placeholder/jquery.placeholder.js', 'web/static/lib/jquery.form/jquery.form.js', 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', 'web/static/lib/jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js', @@ -290,7 +289,6 @@ This module provides the core of the Odoo Web Client. 'web/static/lib/jquery/jquery.browser.js', 'web/static/lib/jquery.blockUI/jquery.blockUI.js', 'web/static/lib/jquery.hotkeys/jquery.hotkeys.js', - 'web/static/lib/jquery.placeholder/jquery.placeholder.js', 'web/static/lib/jquery.form/jquery.form.js', 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', 'web/static/lib/jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js', diff --git a/addons/web/static/lib/jquery.placeholder/jquery.placeholder.js b/addons/web/static/lib/jquery.placeholder/jquery.placeholder.js deleted file mode 100644 index d8051fa269d..00000000000 --- a/addons/web/static/lib/jquery.placeholder/jquery.placeholder.js +++ /dev/null @@ -1,157 +0,0 @@ -/*! http://mths.be/placeholder v2.0.7 by @mathias */ -;(function(window, document, $) { - - var isInputSupported = 'placeholder' in document.createElement('input'), - isTextareaSupported = 'placeholder' in document.createElement('textarea'), - prototype = $.fn, - valHooks = $.valHooks, - hooks, - placeholder; - - if (isInputSupported && isTextareaSupported) { - - placeholder = prototype.placeholder = function() { - return this; - }; - - placeholder.input = placeholder.textarea = true; - - } else { - - placeholder = prototype.placeholder = function() { - var $this = this; - $this - .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]') - .not('.placeholder') - .bind({ - 'focus.placeholder': clearPlaceholder, - 'blur.placeholder': setPlaceholder - }) - .data('placeholder-enabled', true) - .trigger('blur.placeholder'); - return $this; - }; - - placeholder.input = isInputSupported; - placeholder.textarea = isTextareaSupported; - - hooks = { - 'get': function(element) { - var $element = $(element); - return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value; - }, - 'set': function(element, value) { - var $element = $(element); - if (!$element.data('placeholder-enabled')) { - return element.value = value; - } - if (value == '') { - element.value = value; - // Issue #56: Setting the placeholder causes problems if the element continues to have focus. - if (element != document.activeElement) { - // We can't use `triggerHandler` here because of dummy text/password inputs :( - setPlaceholder.call(element); - } - } else if ($element.hasClass('placeholder')) { - clearPlaceholder.call(element, true, value) || (element.value = value); - } else { - element.value = value; - } - // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363 - return $element; - } - }; - - isInputSupported || (valHooks.input = hooks); - isTextareaSupported || (valHooks.textarea = hooks); - - $(function() { - // Look for forms - $(document).delegate('form', 'submit.placeholder', function() { - // Clear the placeholder values so they don't get submitted - var $inputs = $('.placeholder', this).each(clearPlaceholder); - setTimeout(function() { - $inputs.each(setPlaceholder); - }, 10); - }); - }); - - // Clear placeholder values upon page reload - $(window).bind('beforeunload.placeholder', function() { - $('.placeholder').each(function() { - this.value = ''; - }); - }); - - } - - function args(elem) { - // Return an object of element attributes - var newAttrs = {}, - rinlinejQuery = /^jQuery\d+$/; - $.each(elem.attributes, function(i, attr) { - if (attr.specified && !rinlinejQuery.test(attr.name)) { - newAttrs[attr.name] = attr.value; - } - }); - return newAttrs; - } - - function clearPlaceholder(event, value) { - var input = this, - $input = $(input); - if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) { - if ($input.data('placeholder-password')) { - $input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id')); - // If `clearPlaceholder` was called from `$.valHooks.input.set` - if (event === true) { - return $input[0].value = value; - } - $input.focus(); - } else { - input.value = ''; - $input.removeClass('placeholder'); - input == document.activeElement && input.select(); - } - } - } - - function setPlaceholder() { - var $replacement, - input = this, - $input = $(input), - $origInput = $input, - id = this.id; - if (input.value == '') { - if (input.type == 'password') { - if (!$input.data('placeholder-textinput')) { - try { - $replacement = $input.clone().attr({ 'type': 'text' }); - } catch(e) { - $replacement = $('').attr($.extend(args(this), { 'type': 'text' })); - } - $replacement - .removeAttr('name') - .data({ - 'placeholder-password': true, - 'placeholder-id': id - }) - .bind('focus.placeholder', clearPlaceholder); - $input - .data({ - 'placeholder-textinput': $replacement, - 'placeholder-id': id - }) - .before($replacement); - } - $input = $input.removeAttr('id').hide().prev().attr('id', id).show(); - // Note: `$input[0] != input` now! - } - $input.addClass('placeholder'); - $input[0].value = $input.attr('placeholder'); - } else { - $input.removeClass('placeholder'); - } - } - -}(this, document, jQuery)); \ No newline at end of file diff --git a/addons/web/static/src/legacy/js/public/public_root.js b/addons/web/static/src/legacy/js/public/public_root.js index dede514e60e..8f87f311773 100644 --- a/addons/web/static/src/legacy/js/public/public_root.js +++ b/addons/web/static/src/legacy/js/public/public_root.js @@ -102,11 +102,6 @@ export const PublicRoot = publicWidget.RootWidget.extend({ this.el.scrollTop = +window.location.hash.match(/scrollTop=([0-9]+)/)[1]; } - // Fix for IE: - if ($.fn.placeholder) { - $('input, textarea').placeholder(); - } - this.$el.children().on('error.datetimepicker', this._onDateTimePickerError.bind(this)); return Promise.all(defs); diff --git a/addons/website_slides/__manifest__.py b/addons/website_slides/__manifest__.py index f453c83402c..59860536cda 100644 --- a/addons/website_slides/__manifest__.py +++ b/addons/website_slides/__manifest__.py @@ -168,7 +168,6 @@ Featuring 'web/static/lib/jquery/jquery.browser.js', 'web/static/lib/jquery.blockUI/jquery.blockUI.js', 'web/static/lib/jquery.hotkeys/jquery.hotkeys.js', - 'web/static/lib/jquery.placeholder/jquery.placeholder.js', 'web/static/lib/jquery.form/jquery.form.js', 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', 'web/static/lib/jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js',