From 0fc69ce3ad89844dd5fb2f87532e7b6fca55923d Mon Sep 17 00:00:00 2001 From: Daniel Schmitzer Date: Tue, 22 Mar 2016 13:59:16 +0000 Subject: - sync git-svn-id: https://[internal]/wordpress/plugins/wpsg4@5439 0d5edaf7-2b12-4e95-93f4-047927463d4b --- .../inputs-ext/address/address.js | 170 +++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 views/js/bootstrap3-editable-1.5.1/inputs-ext/address/address.js (limited to 'views/js/bootstrap3-editable-1.5.1/inputs-ext/address/address.js') diff --git a/views/js/bootstrap3-editable-1.5.1/inputs-ext/address/address.js b/views/js/bootstrap3-editable-1.5.1/inputs-ext/address/address.js new file mode 100644 index 0000000..de3af81 --- /dev/null +++ b/views/js/bootstrap3-editable-1.5.1/inputs-ext/address/address.js @@ -0,0 +1,170 @@ +/** +Address editable input. +Internally value stored as {city: "Moscow", street: "Lenina", building: "15"} + +@class address +@extends abstractinput +@final +@example +awesome + +**/ +(function ($) { + "use strict"; + + var Address = function (options) { + this.init('address', options, Address.defaults); + }; + + //inherit from Abstract input + $.fn.editableutils.inherit(Address, $.fn.editabletypes.abstractinput); + + $.extend(Address.prototype, { + /** + Renders input from tpl + + @method render() + **/ + render: function() { + this.$input = this.$tpl.find('input'); + }, + + /** + Default method to show value in element. Can be overwritten by display option. + + @method value2html(value, element) + **/ + value2html: function(value, element) { + if(!value) { + $(element).empty(); + return; + } + var html = $('
').text(value.city).html() + ', ' + $('
').text(value.street).html() + ' st., bld. ' + $('
').text(value.building).html(); + $(element).html(html); + }, + + /** + Gets value from element's html + + @method html2value(html) + **/ + html2value: function(html) { + /* + you may write parsing method to get value by element's html + e.g. "Moscow, st. Lenina, bld. 15" => {city: "Moscow", street: "Lenina", building: "15"} + but for complex structures it's not recommended. + Better set value directly via javascript, e.g. + editable({ + value: { + city: "Moscow", + street: "Lenina", + building: "15" + } + }); + */ + return null; + }, + + /** + Converts value to string. + It is used in internal comparing (not for sending to server). + + @method value2str(value) + **/ + value2str: function(value) { + var str = ''; + if(value) { + for(var k in value) { + str = str + k + ':' + value[k] + ';'; + } + } + return str; + }, + + /* + Converts string to value. Used for reading value from 'data-value' attribute. + + @method str2value(str) + */ + str2value: function(str) { + /* + this is mainly for parsing value defined in data-value attribute. + If you will always set value by javascript, no need to overwrite it + */ + return str; + }, + + /** + Sets value of input. + + @method value2input(value) + @param {mixed} value + **/ + value2input: function(value) { + if(!value) { + return; + } + this.$input.filter('[name="city"]').val(value.city); + this.$input.filter('[name="street"]').val(value.street); + this.$input.filter('[name="building"]').val(value.building); + }, + + /** + Returns value of input. + + @method input2value() + **/ + input2value: function() { + return { + city: this.$input.filter('[name="city"]').val(), + street: this.$input.filter('[name="street"]').val(), + building: this.$input.filter('[name="building"]').val() + }; + }, + + /** + Activates input: sets focus on the first field. + + @method activate() + **/ + activate: function() { + this.$input.filter('[name="city"]').focus(); + }, + + /** + Attaches handler to submit form in case of 'showbuttons=false' mode + + @method autosubmit() + **/ + autosubmit: function() { + this.$input.keydown(function (e) { + if (e.which === 13) { + $(this).closest('form').submit(); + } + }); + } + }); + + Address.defaults = $.extend({}, $.fn.editabletypes.abstractinput.defaults, { + tpl: '
'+ + '
'+ + '
', + + inputclass: '' + }); + + $.fn.editabletypes.address = Address; + +}(window.jQuery)); \ No newline at end of file -- cgit v1.2.3