Skip to content
Snippets Groups Projects
Commit 686da725 authored by Grzegorz Rola's avatar Grzegorz Rola
Browse files

Unique identifier

parent 297032ff
No related branches found
No related tags found
No related merge requests found
## [1.0.2] - 2020-02-24
### Added
- non unique identifier info
## [1.0.1] - 2020-02-20 ## [1.0.1] - 2020-02-20
### Fixed ### Fixed
- slashes in inputs - slashes in inputs
......
...@@ -31,7 +31,7 @@ table.sender-address tbody td { ...@@ -31,7 +31,7 @@ table.sender-address tbody td {
margin-bottom: 9px; margin-bottom: 9px;
padding: 15px 10px; padding: 15px 10px;
line-height: 1.3; line-height: 1.3;
vertical-align: middle; vertical-align: top;
border-top: 1px solid #e5e5e5; border-top: 1px solid #e5e5e5;
} }
...@@ -43,6 +43,18 @@ table.sender-address tbody tr:nth-child(even) td { ...@@ -43,6 +43,18 @@ table.sender-address tbody tr:nth-child(even) td {
background: #f9f9f9; background: #f9f9f9;
} }
table.sender-address input.non-unique {
background: #d62728;
}
table.sender-address tbody td span {
display: none;
}
table.sender-address tbody td.non-unique span {
display: block;
}
table.sender-address input[type="text"] { table.sender-address input[type="text"] {
max-width: 100%; max-width: 100%;
width: 100%; width: 100%;
......
fieldset.settings-field-sender-address{margin:0;padding:0;boder:0}table.sender-address{position:relative;table-layout:fixed;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);border-spacing:0;width:100%;clear:both;margin:0}table.sender-address thead td{display:table-cell;padding:1em;vertical-align:top;line-height:1.75em;text-align:left;font-weight:600;text-shadow:none;font-size:14px}table.sender-address tbody td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle;border-top:1px solid #e5e5e5}table.sender-address tfoot td{border-top:1px solid #e1e1e1}table.sender-address tbody tr:nth-child(even) td{background:#f9f9f9}table.sender-address input[type="text"]{max-width:100%;width:100%}table.sender-address input[type="email"]{max-width:100%;width:100%}table.sender-address tbody tr td:first-child select{width:100%}@media only screen and (max-width:600px){table.sender-address tbody tr td:first-child select{width:auto;max-width:100%}table.sender-address,table.sender-address tbody{display:block}table.sender-address thead{display:none}table.sender-address tbody tr td:first-child,table.sender-address thead tr td:first-child{width:100%;display:block}table.sender-address tbody tr,table.sender-address tbody td{display:block;width:100%}} fieldset.settings-field-sender-address{margin:0;padding:0;boder:0}table.sender-address{position:relative;table-layout:fixed;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);border-spacing:0;width:100%;clear:both;margin:0}table.sender-address thead td{display:table-cell;padding:1em;vertical-align:top;line-height:1.75em;text-align:left;font-weight:600;text-shadow:none;font-size:14px}table.sender-address tbody td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:top;border-top:1px solid #e5e5e5}table.sender-address tfoot td{border-top:1px solid #e1e1e1}table.sender-address tbody tr:nth-child(even) td{background:#f9f9f9}table.sender-address input.non-unique{background:#d62728}table.sender-address tbody td span{display:none}table.sender-address tbody td.non-unique span{display:block}table.sender-address input[type="text"]{max-width:100%;width:100%}table.sender-address input[type="email"]{max-width:100%;width:100%}table.sender-address tbody tr td:first-child select{width:100%}@media only screen and (max-width:600px){table.sender-address tbody tr td:first-child select{width:auto;max-width:100%}table.sender-address,table.sender-address tbody{display:block}table.sender-address thead{display:none}table.sender-address tbody tr td:first-child,table.sender-address thead tr td:first-child{width:100%;display:block}table.sender-address tbody tr,table.sender-address tbody td{display:block;width:100%}}
\ No newline at end of file \ No newline at end of file
...@@ -32575,9 +32575,13 @@ var SenderAddressTable = function (_React$Component) { ...@@ -32575,9 +32575,13 @@ var SenderAddressTable = function (_React$Component) {
   
var elements = 0; var elements = 0;
var addresses = props.addresses; var addresses = props.addresses;
var addresses_ids = {};
addresses.forEach(function (element) { addresses.forEach(function (element) {
element.id = elements; element.id = elements;
elements++; elements++;
// Mark non unique address_ids.
element.unique = addresses_ids[element.address_id] === undefined;
addresses_ids[element.address_id] = element.address_id;
}); });
/** /**
* @type {{addresses: array, elements: number, name: *, labels: ([]|NodeListOf<HTMLLabelElement>|any|*[]|NodeListOf<HTMLLabelElement>)}} * @type {{addresses: array, elements: number, name: *, labels: ([]|NodeListOf<HTMLLabelElement>|any|*[]|NodeListOf<HTMLLabelElement>)}}
...@@ -32604,6 +32608,7 @@ var SenderAddressTable = function (_React$Component) { ...@@ -32604,6 +32608,7 @@ var SenderAddressTable = function (_React$Component) {
state.elements++; state.elements++;
state.addresses.push({ state.addresses.push({
id: state.elements, id: state.elements,
unique: true,
address_id: '', address_id: '',
company: '', company: '',
name: '', name: '',
...@@ -32781,7 +32786,7 @@ var AddressRow = function (_React$Component) { ...@@ -32781,7 +32786,7 @@ var AddressRow = function (_React$Component) {
/** /**
* @type { * @type {
* { * {
* address: { id: number, address_id: string, company: string, name: string, address: string, postal_code: string, city: string, phone: string, email: string }, * address: { id: number, unique: boolean, address_id: string, company: string, name: string, address: string, postal_code: string, city: string, phone: string, email: string },
* index: number, * index: number,
* inputNamePrefix: string, * inputNamePrefix: string,
* labels: {} * labels: {}
...@@ -32816,8 +32821,13 @@ var AddressRow = function (_React$Component) { ...@@ -32816,8 +32821,13 @@ var AddressRow = function (_React$Component) {
{ id: this.state.inputNamePrefix + '_' + this.state.index, className: 'sender-address' }, { id: this.state.inputNamePrefix + '_' + this.state.index, className: 'sender-address' },
_react2.default.createElement( _react2.default.createElement(
'td', 'td',
{ className: address.unique ? '' : 'non-unique' },
_react2.default.createElement(_addressInput2.default, { className: address.unique ? '' : 'non-unique', address: address, field: 'address_id', name: field_name + '[address_id]', value: this.state.address.address_id }),
_react2.default.createElement(
'span',
null, null,
_react2.default.createElement(_addressInput2.default, { address: address, field: 'address_id', name: field_name + '[address_id]', value: this.state.address.address_id }) labels.non_unique_id
)
), ),
_react2.default.createElement( _react2.default.createElement(
'td', 'td',
...@@ -32978,7 +32988,7 @@ var AddressInput = function (_React$Component) { ...@@ -32978,7 +32988,7 @@ var AddressInput = function (_React$Component) {
}, { }, {
key: 'render', key: 'render',
value: function render() { value: function render() {
var className = 'input-text regular-input'; var className = 'input-text regular-input ' + this.props.className;
   
return _react2.default.createElement('input', { return _react2.default.createElement('input', {
className: className, className: className,
This diff is collapsed.
...@@ -67,7 +67,7 @@ export default class AddressInput extends React.Component { ...@@ -67,7 +67,7 @@ export default class AddressInput extends React.Component {
* @returns {*} * @returns {*}
*/ */
render () { render () {
let className = 'input-text regular-input'; let className = 'input-text regular-input ' + this.props.className;
return ( return (
<input <input
......
...@@ -15,7 +15,7 @@ export default class AddressRow extends React.Component { ...@@ -15,7 +15,7 @@ export default class AddressRow extends React.Component {
/** /**
* @type { * @type {
* { * {
* address: { id: number, address_id: string, company: string, name: string, address: string, postal_code: string, city: string, phone: string, email: string }, * address: { id: number, unique: boolean, address_id: string, company: string, name: string, address: string, postal_code: string, city: string, phone: string, email: string },
* index: number, * index: number,
* inputNamePrefix: string, * inputNamePrefix: string,
* labels: {} * labels: {}
...@@ -39,9 +39,10 @@ export default class AddressRow extends React.Component { ...@@ -39,9 +39,10 @@ export default class AddressRow extends React.Component {
let labels = this.state.labels; let labels = this.state.labels;
return ( return (
<tr id={this.state.inputNamePrefix + '_' + this.state.index} className="sender-address"> <tr id={this.state.inputNamePrefix + '_' + this.state.index} className='sender-address'>
<td> <td className={address.unique ? '' : 'non-unique'}>
<AddressInput address={address} field='address_id' name={field_name + '[address_id]'} value={this.state.address.address_id} /> <AddressInput className={address.unique ? '' : 'non-unique'} address={address} field='address_id' name={field_name + '[address_id]'} value={this.state.address.address_id} />
<span>{labels.non_unique_id}</span>
</td> </td>
<td> <td>
<AddressInput address={address} field='company' name={field_name + '[company]'} value={this.state.address.company} /> <AddressInput address={address} field='company' name={field_name + '[company]'} value={this.state.address.company} />
......
...@@ -14,10 +14,14 @@ export default class SenderAddressTable extends React.Component { ...@@ -14,10 +14,14 @@ export default class SenderAddressTable extends React.Component {
super(props); super(props);
let elements = 0; let elements = 0;
let addresses = props.addresses; let addresses = props.addresses;
let addresses_ids = {};
addresses.forEach(function(element){ addresses.forEach(function(element){
element.id = elements; element.id = elements;
elements++; elements++;
}) // Mark non unique address_ids.
element.unique = addresses_ids[element.address_id] === undefined;
addresses_ids[element.address_id] = element.address_id;
});
/** /**
* @type {{addresses: array, elements: number, name: *, labels: ([]|NodeListOf<HTMLLabelElement>|any|*[]|NodeListOf<HTMLLabelElement>)}} * @type {{addresses: array, elements: number, name: *, labels: ([]|NodeListOf<HTMLLabelElement>|any|*[]|NodeListOf<HTMLLabelElement>)}}
*/ */
...@@ -38,6 +42,7 @@ export default class SenderAddressTable extends React.Component { ...@@ -38,6 +42,7 @@ export default class SenderAddressTable extends React.Component {
state.elements++; state.elements++;
state.addresses.push({ state.addresses.push({
id: state.elements, id: state.elements,
unique: true,
address_id: '', address_id: '',
company: '', company: '',
name: '', name: '',
......
...@@ -2,8 +2,8 @@ msgid "" ...@@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-18 18:07+0100\n" "POT-Creation-Date: 2020-02-24 18:55+0100\n"
"PO-Revision-Date: 2020-02-18 18:08+0100\n" "PO-Revision-Date: 2020-02-24 18:55+0100\n"
"Last-Translator: Krzysztof Dyszczyk <krzysztof.dyszczyk@gmail.com>\n" "Last-Translator: Krzysztof Dyszczyk <krzysztof.dyszczyk@gmail.com>\n"
"Language-Team: Maciej Swoboda <maciej.swoboda@gmail.com>\n" "Language-Team: Maciej Swoboda <maciej.swoboda@gmail.com>\n"
"Language: pl_PL\n" "Language: pl_PL\n"
...@@ -22,45 +22,49 @@ msgstr "" ...@@ -22,45 +22,49 @@ msgstr ""
"X-Poedit-SearchPathExcluded-0: *.js\n" "X-Poedit-SearchPathExcluded-0: *.js\n"
"X-Poedit-SearchPathExcluded-1: vendor\n" "X-Poedit-SearchPathExcluded-1: vendor\n"
#: src/Labels.php:28 #: src/Labels.php:30
msgid "Identifier" msgid "Identifier"
msgstr "Identyfikator" msgstr "Identyfikator"
#: src/Labels.php:29 #: src/Labels.php:31
msgid "Company" msgid "Company"
msgstr "Firma" msgstr "Firma"
#: src/Labels.php:30 #: src/Labels.php:32
msgid "Name" msgid "Name"
msgstr "Imię i nazwisko" msgstr "Imię i nazwisko"
#: src/Labels.php:31 #: src/Labels.php:33
msgid "Address" msgid "Address"
msgstr "Adres" msgstr "Adres"
#: src/Labels.php:32 #: src/Labels.php:34
msgid "Postal code" msgid "Postal code"
msgstr "Kod pocztowy" msgstr "Kod pocztowy"
#: src/Labels.php:33 #: src/Labels.php:35
msgid "City" msgid "City"
msgstr "Miasto" msgstr "Miasto"
#: src/Labels.php:34 #: src/Labels.php:36
msgid "Phone" msgid "Phone"
msgstr "Telefon" msgstr "Telefon"
#: src/Labels.php:35 #: src/Labels.php:37
msgid "Email" msgid "Email"
msgstr "E-mail" msgstr "E-mail"
#: src/Labels.php:37 #: src/Labels.php:39
msgid "Add" msgid "Add"
msgstr "Dodaj" msgstr "Dodaj"
#: src/Labels.php:38 #: src/Labels.php:40
msgid "Delete" msgid "Delete"
msgstr "Usuń" msgstr "Usuń"
#: src/Labels.php:42
msgid "Identifier is not unique!"
msgstr "Identyfikator nie jest unikalny!"
#~ msgid "Custom" #~ msgid "Custom"
#~ msgstr "Własne" #~ msgstr "Własne"
...@@ -24,6 +24,8 @@ class Labels { ...@@ -24,6 +24,8 @@ class Labels {
public $button_delete; public $button_delete;
public $button_add; public $button_add;
public $non_unique_id;
public function __construct() { public function __construct() {
$this->address_id = __( 'Identifier', 'wp-settings-field-sender-address' ); $this->address_id = __( 'Identifier', 'wp-settings-field-sender-address' );
$this->company = __( 'Company', 'wp-settings-field-sender-address' ); $this->company = __( 'Company', 'wp-settings-field-sender-address' );
...@@ -36,6 +38,8 @@ class Labels { ...@@ -36,6 +38,8 @@ class Labels {
$this->button_add = __( 'Add', 'wp-settings-field-sender-address' ); $this->button_add = __( 'Add', 'wp-settings-field-sender-address' );
$this->button_delete = __( 'Delete', 'wp-settings-field-sender-address' ); $this->button_delete = __( 'Delete', 'wp-settings-field-sender-address' );
$this->non_unique_id = __( 'Identifier is not unique!', 'wp-settings-field-sender-address' );
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment