From 5d2b5c0f14e8299a777ade9e86c97a9f98b14a55 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Sun, 19 May 2024 15:15:15 +0200 Subject: [PATCH 01/24] sort column types --- .../ncTable/mixins/columnHandler.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/shared/components/ncTable/mixins/columnHandler.js b/src/shared/components/ncTable/mixins/columnHandler.js index 8110383b3..e19781f33 100644 --- a/src/shared/components/ncTable/mixins/columnHandler.js +++ b/src/shared/components/ncTable/mixins/columnHandler.js @@ -1,15 +1,15 @@ export const ColumnTypes = { - TextLine: 'text-line', - TextLong: 'text-long', - TextRich: 'text-rich', - Selection: 'selection', - SelectionMulti: 'selection-multi', + Datetime: 'datetime', + DatetimeDate: 'datetime-date', + DatetimeTime: 'datetime-time', Number: 'number', + NumberProgress: 'number-progress', + NumberStars: 'number-stars', + Selection: 'selection', SelectionCheck: 'selection-check', + SelectionMulti: 'selection-multi', + TextLine: 'text-line', TextLink: 'text-link', - NumberStars: 'number-stars', - NumberProgress: 'number-progress', - DatetimeDate: 'datetime-date', - DatetimeTime: 'datetime-time', - Datetime: 'datetime', + TextLong: 'text-long', + TextRich: 'text-rich', } From 7ba4a61646cf984f90e63a48305d566ef0632905 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Sun, 19 May 2024 17:08:40 +0200 Subject: [PATCH 02/24] add ColumnType TextIPv4Address --- .../ColumnTypes/TextIPv4AddressBusiness.php | 7 +++ .../ncTable/mixins/columnHandler.js | 1 + .../mixins/columnsTypes/textIPv4Address.js | 63 +++++++++++++++++++ .../components/ncTable/mixins/filter.js | 18 +++--- 4 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 lib/Service/ColumnTypes/TextIPv4AddressBusiness.php create mode 100644 src/shared/components/ncTable/mixins/columnsTypes/textIPv4Address.js diff --git a/lib/Service/ColumnTypes/TextIPv4AddressBusiness.php b/lib/Service/ColumnTypes/TextIPv4AddressBusiness.php new file mode 100644 index 000000000..19641605e --- /dev/null +++ b/lib/Service/ColumnTypes/TextIPv4AddressBusiness.php @@ -0,0 +1,7 @@ + segm.padStart(this.segmentLength, this.filler)) + .join('') + } + + sort(mode) { + const factor = mode === 'DESC' ? -1 : 1 + return (rowA, rowB) => { + const valueA = rowA.data.find(item => item.columnId === this.id)?.value?.toLowerCase() || '' + const valueB = rowB.data.find(item => item.columnId === this.id)?.value?.toLowerCase() || '' + const valueAForNaturalSort = this.toNaturalSortReadyString(valueA) + const valueBForNaturalSort = this.toNaturalSortReadyString(valueB) + return ((valueAForNaturalSort < valueBForNaturalSort) ? -1 : (valueAForNaturalSort > valueBForNaturalSort) ? 1 : 0) * factor + } + } + + getValueString(valueObject) { + return valueObject.value.replace(/(<([^>]+)>)/ig, '') + } + + isSearchStringFound(cell, searchString) { + return super.isSearchStringFound(cell.value, cell, searchString) + } + + isFilterFound(cell, filter) { + const filterValue = (filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value).toLowerCase() + const cellValue = cell.value?.toLowerCase() + const filterValueForNaturalSort = this.toNaturalSortReadyString(filterValue) + const cellValueForNaturalSort = this.toNaturalSortReadyString(cellValue) + if (!cellValue & filter.operator.id !== FilterIds.IsEmpty) return false + const filterMethod = { + [FilterIds.Contains]() { return cellValue.includes(filterValue) }, + [FilterIds.BeginsWith]() { return cellValue.startsWith(filterValue) }, + [FilterIds.EndsWith]() { return cellValue.endsWith(filterValue) }, + [FilterIds.IsEqual]() { return cellValue === filterValue }, + [FilterIds.IsGreaterThan]() { return parseInt(cellValueForNaturalSort) > parseInt(filterValueForNaturalSort) }, + [FilterIds.IsGreaterThanOrEqual]() { return parseInt(cellValueForNaturalSort) >= parseInt(filterValueForNaturalSort) }, + [FilterIds.IsLowerThan]() { return parseInt(cellValueForNaturalSort) < parseInt(filterValueForNaturalSort) }, + [FilterIds.IsLowerThanOrEqual]() { return parseInt(cellValueForNaturalSort) <= parseInt(filterValueForNaturalSort) }, + [FilterIds.IsEmpty]() { return !cellValue }, + }[filter.operator.id] + + return super.isFilterFound(filterMethod, cell) + + } + +} diff --git a/src/shared/components/ncTable/mixins/filter.js b/src/shared/components/ncTable/mixins/filter.js index 34f796482..5aa929073 100644 --- a/src/shared/components/ncTable/mixins/filter.js +++ b/src/shared/components/ncTable/mixins/filter.js @@ -49,60 +49,60 @@ export const Filters = { Contains: new Filter({ id: FilterIds.Contains, label: t('tables', 'Contains'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextLong, ColumnTypes.TextLink, ColumnTypes.TextRich, ColumnTypes.SelectionMulti], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextLong, ColumnTypes.TextLink, ColumnTypes.TextRich, ColumnTypes.SelectionMulti], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual], }), BeginsWith: new Filter({ id: FilterIds.BeginsWith, label: t('tables', 'Begins with'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextLink], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextLink], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.BeginsWith], }), EndsWith: new Filter({ id: FilterIds.EndsWith, label: t('tables', 'Ends with'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextLink], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextLink], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.EndsWith], }), IsEqual: new Filter({ id: FilterIds.IsEqual, label: t('tables', 'Is equal'), shortLabel: '=', - goodFor: [ColumnTypes.TextLine, ColumnTypes.Number, ColumnTypes.SelectionCheck, ColumnTypes.TextLink, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.Selection, ColumnTypes.SelectionMulti], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.Number, ColumnTypes.SelectionCheck, ColumnTypes.TextLink, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.Selection, ColumnTypes.SelectionMulti], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.BeginsWith, FilterIds.EndsWith, FilterIds.Contains, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual], }), IsGreaterThan: new Filter({ id: FilterIds.IsGreaterThan, label: t('tables', 'Is greater than'), shortLabel: '>', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual], }), IsGreaterThanOrEqual: new Filter({ id: FilterIds.IsGreaterThanOrEqual, label: t('tables', 'Is greater than or equal'), shortLabel: '>=', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual], }), IsLowerThan: new Filter({ id: FilterIds.IsLowerThan, label: t('tables', 'Is lower than'), shortLabel: '<', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual], }), IsLowerThanOrEqual: new Filter({ id: FilterIds.IsLowerThanOrEqual, label: t('tables', 'Is lower than or equal'), shortLabel: '<=', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual], }), IsEmpty: new Filter({ id: FilterIds.IsEmpty, label: t('tables', 'Is empty'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextRich, ColumnTypes.Number, ColumnTypes.TextLink, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.SelectionCheck], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextRich, ColumnTypes.Number, ColumnTypes.TextLink, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.SelectionCheck], incompatibleWith: [FilterIds.Contains, FilterIds.BeginsWith, FilterIds.EndsWith, FilterIds.IsEqual, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual, FilterIds.IsEmpty], noSearchValue: true, }), From 09238910d669f357f5c9c9be102614377051b04e Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Sun, 19 May 2024 17:19:30 +0200 Subject: [PATCH 03/24] add ColumnType TextIPv6Address --- .../ColumnTypes/TextIPv6AddressBusiness.php | 7 +++ .../ncTable/mixins/columnHandler.js | 1 + .../mixins/columnsTypes/textIPv6Address.js | 63 +++++++++++++++++++ .../components/ncTable/mixins/filter.js | 18 +++--- 4 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 lib/Service/ColumnTypes/TextIPv6AddressBusiness.php create mode 100644 src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js diff --git a/lib/Service/ColumnTypes/TextIPv6AddressBusiness.php b/lib/Service/ColumnTypes/TextIPv6AddressBusiness.php new file mode 100644 index 000000000..c9ebeafde --- /dev/null +++ b/lib/Service/ColumnTypes/TextIPv6AddressBusiness.php @@ -0,0 +1,7 @@ + segm.padStart(this.segmentLength, this.filler)) + .join('') + } + + sort(mode) { + const factor = mode === 'DESC' ? -1 : 1 + return (rowA, rowB) => { + const valueA = rowA.data.find(item => item.columnId === this.id)?.value?.toLowerCase() || '' + const valueB = rowB.data.find(item => item.columnId === this.id)?.value?.toLowerCase() || '' + const valueAForNaturalSort = this.toNaturalSortReadyString(valueA) + const valueBForNaturalSort = this.toNaturalSortReadyString(valueB) + return ((valueAForNaturalSort < valueBForNaturalSort) ? -1 : (valueAForNaturalSort > valueBForNaturalSort) ? 1 : 0) * factor + } + } + + getValueString(valueObject) { + return valueObject.value.replace(/(<([^>]+)>)/ig, '') + } + + isSearchStringFound(cell, searchString) { + return super.isSearchStringFound(cell.value, cell, searchString) + } + + isFilterFound(cell, filter) { + const filterValue = (filter.magicValuesEnriched ? filter.magicValuesEnriched : filter.value).toLowerCase() + const cellValue = cell.value?.toLowerCase() + const filterValueForNaturalSort = this.toNaturalSortReadyString(filterValue) + const cellValueForNaturalSort = this.toNaturalSortReadyString(cellValue) + if (!cellValue & filter.operator.id !== FilterIds.IsEmpty) return false + const filterMethod = { + [FilterIds.Contains]() { return cellValue.includes(filterValue) }, + [FilterIds.BeginsWith]() { return cellValue.startsWith(filterValue) }, + [FilterIds.EndsWith]() { return cellValue.endsWith(filterValue) }, + [FilterIds.IsEqual]() { return cellValue === filterValue }, + [FilterIds.IsGreaterThan]() { return parseInt(cellValueForNaturalSort) > parseInt(filterValueForNaturalSort) }, + [FilterIds.IsGreaterThanOrEqual]() { return parseInt(cellValueForNaturalSort) >= parseInt(filterValueForNaturalSort) }, + [FilterIds.IsLowerThan]() { return parseInt(cellValueForNaturalSort) < parseInt(filterValueForNaturalSort) }, + [FilterIds.IsLowerThanOrEqual]() { return parseInt(cellValueForNaturalSort) <= parseInt(filterValueForNaturalSort) }, + [FilterIds.IsEmpty]() { return !cellValue }, + }[filter.operator.id] + + return super.isFilterFound(filterMethod, cell) + + } + +} diff --git a/src/shared/components/ncTable/mixins/filter.js b/src/shared/components/ncTable/mixins/filter.js index 5aa929073..e18a56ab9 100644 --- a/src/shared/components/ncTable/mixins/filter.js +++ b/src/shared/components/ncTable/mixins/filter.js @@ -49,60 +49,60 @@ export const Filters = { Contains: new Filter({ id: FilterIds.Contains, label: t('tables', 'Contains'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextLong, ColumnTypes.TextLink, ColumnTypes.TextRich, ColumnTypes.SelectionMulti], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address, ColumnTypes.TextLong, ColumnTypes.TextLink, ColumnTypes.TextRich, ColumnTypes.SelectionMulti], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual], }), BeginsWith: new Filter({ id: FilterIds.BeginsWith, label: t('tables', 'Begins with'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextLink], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address, ColumnTypes.TextLink], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.BeginsWith], }), EndsWith: new Filter({ id: FilterIds.EndsWith, label: t('tables', 'Ends with'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextLink], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address, ColumnTypes.TextLink], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.EndsWith], }), IsEqual: new Filter({ id: FilterIds.IsEqual, label: t('tables', 'Is equal'), shortLabel: '=', - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.Number, ColumnTypes.SelectionCheck, ColumnTypes.TextLink, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.Selection, ColumnTypes.SelectionMulti], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address, ColumnTypes.Number, ColumnTypes.SelectionCheck, ColumnTypes.TextLink, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.Selection, ColumnTypes.SelectionMulti], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.BeginsWith, FilterIds.EndsWith, FilterIds.Contains, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual], }), IsGreaterThan: new Filter({ id: FilterIds.IsGreaterThan, label: t('tables', 'Is greater than'), shortLabel: '>', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual], }), IsGreaterThanOrEqual: new Filter({ id: FilterIds.IsGreaterThanOrEqual, label: t('tables', 'Is greater than or equal'), shortLabel: '>=', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual], }), IsLowerThan: new Filter({ id: FilterIds.IsLowerThan, label: t('tables', 'Is lower than'), shortLabel: '<', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual], }), IsLowerThanOrEqual: new Filter({ id: FilterIds.IsLowerThanOrEqual, label: t('tables', 'Is lower than or equal'), shortLabel: '<=', - goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address], + goodFor: [ColumnTypes.Number, ColumnTypes.NumberStars, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address], incompatibleWith: [FilterIds.IsEmpty, FilterIds.IsEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual], }), IsEmpty: new Filter({ id: FilterIds.IsEmpty, label: t('tables', 'Is empty'), - goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextRich, ColumnTypes.Number, ColumnTypes.TextLink, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.SelectionCheck], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address, ColumnTypes.TextRich, ColumnTypes.Number, ColumnTypes.TextLink, ColumnTypes.NumberProgress, ColumnTypes.DatetimeDate, ColumnTypes.DatetimeTime, ColumnTypes.Datetime, ColumnTypes.SelectionCheck], incompatibleWith: [FilterIds.Contains, FilterIds.BeginsWith, FilterIds.EndsWith, FilterIds.IsEqual, FilterIds.IsGreaterThan, FilterIds.IsGreaterThanOrEqual, FilterIds.IsLowerThan, FilterIds.IsLowerThanOrEqual, FilterIds.IsEmpty], noSearchValue: true, }), From 6465baff930b3f1942342067d1c5fe32c614cf60 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Sun, 19 May 2024 18:37:13 +0200 Subject: [PATCH 04/24] fix: column type-subtype value may not contain more than one hyphen --- src/shared/components/ncTable/mixins/columnHandler.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shared/components/ncTable/mixins/columnHandler.js b/src/shared/components/ncTable/mixins/columnHandler.js index 3dceea9c8..683d328a8 100644 --- a/src/shared/components/ncTable/mixins/columnHandler.js +++ b/src/shared/components/ncTable/mixins/columnHandler.js @@ -8,8 +8,8 @@ export const ColumnTypes = { Selection: 'selection', SelectionCheck: 'selection-check', SelectionMulti: 'selection-multi', - TextIPv4Address: 'text-ip-v4-address', - TextIPv6Address: 'text-ip-v6-address', + TextIPv4Address: 'text-ipv4', + TextIPv6Address: 'text-ipv6', TextLine: 'text-line', TextLink: 'text-link', TextLong: 'text-long', From 5c4519de51adfc4008e50dd372b306050e8fa9e7 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Sun, 19 May 2024 19:04:15 +0200 Subject: [PATCH 05/24] add radio buttons for Create Column modal dialog --- src/modules/modals/CreateColumn.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/modules/modals/CreateColumn.vue b/src/modules/modals/CreateColumn.vue index 64f95a752..32a3e1270 100644 --- a/src/modules/modals/CreateColumn.vue +++ b/src/modules/modals/CreateColumn.vue @@ -36,6 +36,12 @@ {{ t('tables', 'Rich text') }} + + {{ t('tables', 'IPv4 address') }} + + + {{ t('tables', 'IPv6 address') }} + @@ -170,7 +176,7 @@ export default { typeMissingError: false, titleMissingError: false, typeOptions: [ - { id: 'text', label: t('tables', 'Text') }, + { id: 'text', label: t('tables*.php', 'Text') }, { id: 'text-link', label: t('tables', 'Link') }, { id: 'number', label: t('tables', 'Number') }, From c479bc64bb03ebd8528389d363f26a9c231e3320 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Sun, 19 May 2024 19:05:48 +0200 Subject: [PATCH 06/24] l10n: add placeholders for labels "IPv4 address" and "IPv6 address" --- l10n/ar.js | 2 ++ l10n/ar.json | 2 ++ l10n/ast.js | 2 ++ l10n/ast.json | 2 ++ l10n/bg.js | 2 ++ l10n/bg.json | 2 ++ l10n/ca.js | 2 ++ l10n/ca.json | 2 ++ l10n/cs.js | 2 ++ l10n/cs.json | 2 ++ l10n/da.js | 2 ++ l10n/da.json | 2 ++ l10n/de.js | 2 ++ l10n/de.json | 2 ++ l10n/de_DE.js | 2 ++ l10n/de_DE.json | 2 ++ l10n/el.js | 2 ++ l10n/el.json | 2 ++ l10n/en_GB.js | 2 ++ l10n/en_GB.json | 2 ++ l10n/es.js | 2 ++ l10n/es.json | 2 ++ l10n/es_EC.js | 2 ++ l10n/es_EC.json | 2 ++ l10n/es_GT.js | 2 ++ l10n/es_GT.json | 2 ++ l10n/eu.js | 2 ++ l10n/eu.json | 2 ++ l10n/fa.js | 2 ++ l10n/fa.json | 2 ++ l10n/fi.js | 2 ++ l10n/fi.json | 2 ++ l10n/fr.js | 2 ++ l10n/fr.json | 2 ++ l10n/gl.js | 2 ++ l10n/gl.json | 2 ++ l10n/he.js | 2 ++ l10n/he.json | 2 ++ l10n/hr.js | 2 ++ l10n/hr.json | 2 ++ l10n/hu.js | 2 ++ l10n/hu.json | 2 ++ l10n/is.js | 2 ++ l10n/is.json | 2 ++ l10n/it.js | 2 ++ l10n/it.json | 2 ++ l10n/ja.js | 2 ++ l10n/ja.json | 2 ++ l10n/ka.js | 2 ++ l10n/ka.json | 2 ++ l10n/ko.js | 2 ++ l10n/ko.json | 2 ++ l10n/lt_LT.js | 2 ++ l10n/lt_LT.json | 2 ++ l10n/mk.js | 2 ++ l10n/mk.json | 2 ++ l10n/nb.js | 2 ++ l10n/nb.json | 2 ++ l10n/nl.js | 2 ++ l10n/nl.json | 2 ++ l10n/pl.js | 2 ++ l10n/pl.json | 2 ++ l10n/pt_BR.js | 2 ++ l10n/pt_BR.json | 2 ++ l10n/ro.js | 2 ++ l10n/ro.json | 2 ++ l10n/ru.js | 2 ++ l10n/ru.json | 2 ++ l10n/sc.js | 2 ++ l10n/sc.json | 2 ++ l10n/sk.js | 2 ++ l10n/sk.json | 2 ++ l10n/sl.js | 2 ++ l10n/sl.json | 2 ++ l10n/sr.js | 2 ++ l10n/sr.json | 2 ++ l10n/sv.js | 2 ++ l10n/sv.json | 2 ++ l10n/tr.js | 2 ++ l10n/tr.json | 2 ++ l10n/uk.js | 2 ++ l10n/uk.json | 2 ++ l10n/zh_CN.js | 2 ++ l10n/zh_CN.json | 2 ++ l10n/zh_HK.js | 2 ++ l10n/zh_HK.json | 2 ++ l10n/zh_TW.js | 2 ++ l10n/zh_TW.json | 2 ++ 88 files changed, 176 insertions(+) diff --git a/l10n/ar.js b/l10n/ar.js index 52b55ee19..e7725e952 100644 --- a/l10n/ar.js +++ b/l10n/ar.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "سطر نصي", "Simple text" : "نص بسيط", "Rich text" : "نص ريتش", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "اختيار فردي ", "Multiple selection" : "اختيارات متعددة", "Yes/No" : "نعم / لا", diff --git a/l10n/ar.json b/l10n/ar.json index 70ff04531..310f5bc29 100644 --- a/l10n/ar.json +++ b/l10n/ar.json @@ -192,6 +192,8 @@ "Text line" : "سطر نصي", "Simple text" : "نص بسيط", "Rich text" : "نص ريتش", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "اختيار فردي ", "Multiple selection" : "اختيارات متعددة", "Yes/No" : "نعم / لا", diff --git a/l10n/ast.js b/l10n/ast.js index 77330031a..f03a58c26 100644 --- a/l10n/ast.js +++ b/l10n/ast.js @@ -112,6 +112,8 @@ OC.L10N.register( "Text line" : "Ringlera", "Simple text" : "Testu simple", "Rich text" : "Testu arriquecíu", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Seleición única", "Multiple selection" : "Seleición múltiple", "Yes/No" : "Sí/non", diff --git a/l10n/ast.json b/l10n/ast.json index 6b23858c3..117acae2d 100644 --- a/l10n/ast.json +++ b/l10n/ast.json @@ -110,6 +110,8 @@ "Text line" : "Ringlera", "Simple text" : "Testu simple", "Rich text" : "Testu arriquecíu", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Seleición única", "Multiple selection" : "Seleición múltiple", "Yes/No" : "Sí/non", diff --git a/l10n/bg.js b/l10n/bg.js index c85b98370..695d6d8eb 100644 --- a/l10n/bg.js +++ b/l10n/bg.js @@ -149,6 +149,8 @@ OC.L10N.register( "Text line" : "Текстов ред", "Simple text" : "Обикновен текст", "Rich text" : "Форматиран текст", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Единична селекция", "Multiple selection" : "Множествена селекция", "Yes/No" : "Да/Не", diff --git a/l10n/bg.json b/l10n/bg.json index 926a971f4..79e409416 100644 --- a/l10n/bg.json +++ b/l10n/bg.json @@ -147,6 +147,8 @@ "Text line" : "Текстов ред", "Simple text" : "Обикновен текст", "Rich text" : "Форматиран текст", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Единична селекция", "Multiple selection" : "Множествена селекция", "Yes/No" : "Да/Не", diff --git a/l10n/ca.js b/l10n/ca.js index eaab3a5ad..14f17d571 100644 --- a/l10n/ca.js +++ b/l10n/ca.js @@ -142,6 +142,8 @@ OC.L10N.register( "Text line" : "Línia de text", "Simple text" : "Text simple", "Rich text" : "Text enriquit", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Sí/No", "Time" : "Hora", "Save" : "Desar", diff --git a/l10n/ca.json b/l10n/ca.json index 03237f886..cacd7465a 100644 --- a/l10n/ca.json +++ b/l10n/ca.json @@ -140,6 +140,8 @@ "Text line" : "Línia de text", "Simple text" : "Text simple", "Rich text" : "Text enriquit", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Sí/No", "Time" : "Hora", "Save" : "Desar", diff --git a/l10n/cs.js b/l10n/cs.js index 3d164c805..935fbd3b6 100644 --- a/l10n/cs.js +++ b/l10n/cs.js @@ -191,6 +191,8 @@ OC.L10N.register( "Text line" : "Testový řádek", "Simple text" : "Jen text", "Rich text" : "Formátovaný text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Jednotlivý výběr", "Multiple selection" : "Vícenásobný výběr", "Yes/No" : "Ano/Ne", diff --git a/l10n/cs.json b/l10n/cs.json index f442a9a3a..c6faf9a79 100644 --- a/l10n/cs.json +++ b/l10n/cs.json @@ -189,6 +189,8 @@ "Text line" : "Testový řádek", "Simple text" : "Jen text", "Rich text" : "Formátovaný text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Jednotlivý výběr", "Multiple selection" : "Vícenásobný výběr", "Yes/No" : "Ano/Ne", diff --git a/l10n/da.js b/l10n/da.js index 25846d790..9a746cdbe 100644 --- a/l10n/da.js +++ b/l10n/da.js @@ -149,6 +149,8 @@ OC.L10N.register( "Text line" : "Tekstlinje", "Simple text" : "Simpel tekst", "Rich text" : "Formateret tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enkelt valg", "Multiple selection" : "Flere valg", "Yes/No" : "Ja Nej", diff --git a/l10n/da.json b/l10n/da.json index 30518a3d5..b183705dc 100644 --- a/l10n/da.json +++ b/l10n/da.json @@ -147,6 +147,8 @@ "Text line" : "Tekstlinje", "Simple text" : "Simpel tekst", "Rich text" : "Formateret tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enkelt valg", "Multiple selection" : "Flere valg", "Yes/No" : "Ja Nej", diff --git a/l10n/de.js b/l10n/de.js index a3a1d9094..6a733fce8 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -189,6 +189,8 @@ OC.L10N.register( "Text line" : "Textzeile", "Simple text" : "Einfacher Text", "Rich text" : "Rich-Text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Einzelauswahl", "Multiple selection" : "Mehrfachauswahl", "Yes/No" : "Ja/Nein", diff --git a/l10n/de.json b/l10n/de.json index e954b9985..53937aaa8 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -187,6 +187,8 @@ "Text line" : "Textzeile", "Simple text" : "Einfacher Text", "Rich text" : "Rich-Text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Einzelauswahl", "Multiple selection" : "Mehrfachauswahl", "Yes/No" : "Ja/Nein", diff --git a/l10n/de_DE.js b/l10n/de_DE.js index d292ff7e6..21fbcf14e 100644 --- a/l10n/de_DE.js +++ b/l10n/de_DE.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "Textzeile", "Simple text" : "Einfacher Text", "Rich text" : "Rich-Text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Einzelauswahl", "Multiple selection" : "Mehrfachauswahl", "Yes/No" : "Ja/Nein", diff --git a/l10n/de_DE.json b/l10n/de_DE.json index 86813d36d..d2bb727bb 100644 --- a/l10n/de_DE.json +++ b/l10n/de_DE.json @@ -192,6 +192,8 @@ "Text line" : "Textzeile", "Simple text" : "Einfacher Text", "Rich text" : "Rich-Text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Einzelauswahl", "Multiple selection" : "Mehrfachauswahl", "Yes/No" : "Ja/Nein", diff --git a/l10n/el.js b/l10n/el.js index 410fcf453..9e7a2f0c5 100644 --- a/l10n/el.js +++ b/l10n/el.js @@ -161,6 +161,8 @@ OC.L10N.register( "Text line" : "Γραμμή κειμένου", "Simple text" : "Απλό κείμενο", "Rich text" : "Εμπλουτισμένο κείμενο", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Μοναδική επιλογή", "Multiple selection" : "Πολλαπλές επιλογές", "Yes/No" : "Ναι/Όχι", diff --git a/l10n/el.json b/l10n/el.json index ced49f9c2..cba7c5543 100644 --- a/l10n/el.json +++ b/l10n/el.json @@ -159,6 +159,8 @@ "Text line" : "Γραμμή κειμένου", "Simple text" : "Απλό κείμενο", "Rich text" : "Εμπλουτισμένο κείμενο", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Μοναδική επιλογή", "Multiple selection" : "Πολλαπλές επιλογές", "Yes/No" : "Ναι/Όχι", diff --git a/l10n/en_GB.js b/l10n/en_GB.js index 302f16a61..b2c5cd26f 100644 --- a/l10n/en_GB.js +++ b/l10n/en_GB.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "Text line", "Simple text" : "Simple text", "Rich text" : "Rich text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Single selection", "Multiple selection" : "Multiple selection", "Yes/No" : "Yes/No", diff --git a/l10n/en_GB.json b/l10n/en_GB.json index 28a1a14cf..bb7acef57 100644 --- a/l10n/en_GB.json +++ b/l10n/en_GB.json @@ -192,6 +192,8 @@ "Text line" : "Text line", "Simple text" : "Simple text", "Rich text" : "Rich text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Single selection", "Multiple selection" : "Multiple selection", "Yes/No" : "Yes/No", diff --git a/l10n/es.js b/l10n/es.js index 0912faa5f..8b1ac7c6c 100644 --- a/l10n/es.js +++ b/l10n/es.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "Línea de texto", "Simple text" : "Texto sencillo", "Rich text" : "Texto enriquecido", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Selección única", "Multiple selection" : "Selección múltiple", "Yes/No" : "Sí/No", diff --git a/l10n/es.json b/l10n/es.json index 6441b7e60..6435492dc 100644 --- a/l10n/es.json +++ b/l10n/es.json @@ -192,6 +192,8 @@ "Text line" : "Línea de texto", "Simple text" : "Texto sencillo", "Rich text" : "Texto enriquecido", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Selección única", "Multiple selection" : "Selección múltiple", "Yes/No" : "Sí/No", diff --git a/l10n/es_EC.js b/l10n/es_EC.js index 1cb623cbe..e95d92610 100644 --- a/l10n/es_EC.js +++ b/l10n/es_EC.js @@ -150,6 +150,8 @@ OC.L10N.register( "Text line" : "Línea de texto", "Simple text" : "Texto simple", "Rich text" : "Texto enriquecido", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Selección única", "Multiple selection" : "Selección múltiple", "Yes/No" : "Sí/No", diff --git a/l10n/es_EC.json b/l10n/es_EC.json index eaf863f4e..df5454741 100644 --- a/l10n/es_EC.json +++ b/l10n/es_EC.json @@ -148,6 +148,8 @@ "Text line" : "Línea de texto", "Simple text" : "Texto simple", "Rich text" : "Texto enriquecido", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Selección única", "Multiple selection" : "Selección múltiple", "Yes/No" : "Sí/No", diff --git a/l10n/es_GT.js b/l10n/es_GT.js index 63e51fe57..abf2a91d8 100644 --- a/l10n/es_GT.js +++ b/l10n/es_GT.js @@ -33,6 +33,8 @@ OC.L10N.register( "Import" : "Importar", "Type" : "Tipo", "Rich text" : "Texto enriquecido", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Hora", "Save" : "Guardar", "Title" : "Título", diff --git a/l10n/es_GT.json b/l10n/es_GT.json index 2b8c5a00b..3d40ec264 100644 --- a/l10n/es_GT.json +++ b/l10n/es_GT.json @@ -31,6 +31,8 @@ "Import" : "Importar", "Type" : "Tipo", "Rich text" : "Texto enriquecido", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Hora", "Save" : "Guardar", "Title" : "Título", diff --git a/l10n/eu.js b/l10n/eu.js index 4915e4b99..e565afefe 100644 --- a/l10n/eu.js +++ b/l10n/eu.js @@ -147,6 +147,8 @@ OC.L10N.register( "Text line" : "Testu-lerroa", "Simple text" : "Testu sinplea", "Rich text" : "Testu aberastua", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Hautapen bakarra", "Multiple selection" : "Hautapen anitza", "Yes/No" : "Bai/Ez", diff --git a/l10n/eu.json b/l10n/eu.json index 3793f0ad0..2f419ef1d 100644 --- a/l10n/eu.json +++ b/l10n/eu.json @@ -145,6 +145,8 @@ "Text line" : "Testu-lerroa", "Simple text" : "Testu sinplea", "Rich text" : "Testu aberastua", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Hautapen bakarra", "Multiple selection" : "Hautapen anitza", "Yes/No" : "Bai/Ez", diff --git a/l10n/fa.js b/l10n/fa.js index 5d4a62419..1ed097852 100644 --- a/l10n/fa.js +++ b/l10n/fa.js @@ -182,6 +182,8 @@ OC.L10N.register( "Text line" : "Text line", "Simple text" : "متن ساده", "Rich text" : "متن غنی", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Single selection", "Multiple selection" : "Multiple selection", "Yes/No" : "Yes/No", diff --git a/l10n/fa.json b/l10n/fa.json index cd90dab72..c20eb6092 100644 --- a/l10n/fa.json +++ b/l10n/fa.json @@ -180,6 +180,8 @@ "Text line" : "Text line", "Simple text" : "متن ساده", "Rich text" : "متن غنی", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Single selection", "Multiple selection" : "Multiple selection", "Yes/No" : "Yes/No", diff --git a/l10n/fi.js b/l10n/fi.js index b164000c8..74cee11e0 100644 --- a/l10n/fi.js +++ b/l10n/fi.js @@ -91,6 +91,8 @@ OC.L10N.register( "Text line" : "Tekstirivi", "Simple text" : "Yksinkertainen teksti", "Rich text" : "Rikas teksti", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Yksittäisvalinta", "Multiple selection" : "Monivalinta", "Yes/No" : "Kyllä/Ei", diff --git a/l10n/fi.json b/l10n/fi.json index c265b2f43..ec3ab5f64 100644 --- a/l10n/fi.json +++ b/l10n/fi.json @@ -89,6 +89,8 @@ "Text line" : "Tekstirivi", "Simple text" : "Yksinkertainen teksti", "Rich text" : "Rikas teksti", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Yksittäisvalinta", "Multiple selection" : "Monivalinta", "Yes/No" : "Kyllä/Ei", diff --git a/l10n/fr.js b/l10n/fr.js index fd9d1dd4d..265f77acc 100644 --- a/l10n/fr.js +++ b/l10n/fr.js @@ -192,6 +192,8 @@ OC.L10N.register( "Text line" : "Ligne de texte", "Simple text" : "Texte simple", "Rich text" : "Texte riche", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Choix unique", "Multiple selection" : "Choix multiple", "Yes/No" : "Oui / Non", diff --git a/l10n/fr.json b/l10n/fr.json index a6337fba2..6d0afe67f 100644 --- a/l10n/fr.json +++ b/l10n/fr.json @@ -190,6 +190,8 @@ "Text line" : "Ligne de texte", "Simple text" : "Texte simple", "Rich text" : "Texte riche", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Choix unique", "Multiple selection" : "Choix multiple", "Yes/No" : "Oui / Non", diff --git a/l10n/gl.js b/l10n/gl.js index 889d2da8e..8ba99cab9 100644 --- a/l10n/gl.js +++ b/l10n/gl.js @@ -189,6 +189,8 @@ OC.L10N.register( "Text line" : "Liña de texto", "Simple text" : "Texto sinxelo", "Rich text" : "Texto mellorado", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Selección única", "Multiple selection" : "Selección múltiple", "Yes/No" : "Si/Non", diff --git a/l10n/gl.json b/l10n/gl.json index 91aa80927..d95df0f43 100644 --- a/l10n/gl.json +++ b/l10n/gl.json @@ -187,6 +187,8 @@ "Text line" : "Liña de texto", "Simple text" : "Texto sinxelo", "Rich text" : "Texto mellorado", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Selección única", "Multiple selection" : "Selección múltiple", "Yes/No" : "Si/Non", diff --git a/l10n/he.js b/l10n/he.js index 30bd64d84..76e90e830 100644 --- a/l10n/he.js +++ b/l10n/he.js @@ -93,6 +93,8 @@ OC.L10N.register( "Type" : "סוג", "Simple text" : "טקסט פשוט", "Rich text" : "טקסט עשיר", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "זמן", "Save" : "שמירה", "Title" : "תפקיד", diff --git a/l10n/he.json b/l10n/he.json index cb5eb7c30..ffdd76969 100644 --- a/l10n/he.json +++ b/l10n/he.json @@ -91,6 +91,8 @@ "Type" : "סוג", "Simple text" : "טקסט פשוט", "Rich text" : "טקסט עשיר", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "זמן", "Save" : "שמירה", "Title" : "תפקיד", diff --git a/l10n/hr.js b/l10n/hr.js index 4a60c769c..44e63953a 100644 --- a/l10n/hr.js +++ b/l10n/hr.js @@ -50,6 +50,8 @@ OC.L10N.register( "Type" : "Vrsta", "Simple text" : "Jednostavan tekst", "Rich text" : "Bogat tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Vrijeme", "Save" : "Spremi", "Title" : "Naslov", diff --git a/l10n/hr.json b/l10n/hr.json index 33296b04f..bb3769e31 100644 --- a/l10n/hr.json +++ b/l10n/hr.json @@ -48,6 +48,8 @@ "Type" : "Vrsta", "Simple text" : "Jednostavan tekst", "Rich text" : "Bogat tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Vrijeme", "Save" : "Spremi", "Title" : "Naslov", diff --git a/l10n/hu.js b/l10n/hu.js index b1cc46368..615a396f7 100644 --- a/l10n/hu.js +++ b/l10n/hu.js @@ -185,6 +185,8 @@ OC.L10N.register( "Text line" : "Szöveges sor", "Simple text" : "Egyszerű szöveg", "Rich text" : "Formázott szöveg", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Egyszerű kiválasztás", "Multiple selection" : "Többszörös kiválasztás", "Yes/No" : "Igen/nem", diff --git a/l10n/hu.json b/l10n/hu.json index 68c1aa36f..8ae3ed97e 100644 --- a/l10n/hu.json +++ b/l10n/hu.json @@ -183,6 +183,8 @@ "Text line" : "Szöveges sor", "Simple text" : "Egyszerű szöveg", "Rich text" : "Formázott szöveg", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Egyszerű kiválasztás", "Multiple selection" : "Többszörös kiválasztás", "Yes/No" : "Igen/nem", diff --git a/l10n/is.js b/l10n/is.js index 48afadbd8..106d3ce72 100644 --- a/l10n/is.js +++ b/l10n/is.js @@ -43,6 +43,8 @@ OC.L10N.register( "Type" : "Tegund", "Simple text" : "Einfaldur texti", "Rich text" : "Sniðinn texti", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Tími", "Save" : "Vista", "Title" : "Titill", diff --git a/l10n/is.json b/l10n/is.json index 0cad1d6fc..a30d18cc4 100644 --- a/l10n/is.json +++ b/l10n/is.json @@ -41,6 +41,8 @@ "Type" : "Tegund", "Simple text" : "Einfaldur texti", "Rich text" : "Sniðinn texti", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Tími", "Save" : "Vista", "Title" : "Titill", diff --git a/l10n/it.js b/l10n/it.js index c175176fa..947f0f5e4 100644 --- a/l10n/it.js +++ b/l10n/it.js @@ -83,6 +83,8 @@ OC.L10N.register( "Text line" : "Linea di testo", "Simple text" : "Testo semplice", "Rich text" : "Testo formattato", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Sì/No", "Time" : "Ora", "Save" : "Salva", diff --git a/l10n/it.json b/l10n/it.json index a8b4fe612..da408bb92 100644 --- a/l10n/it.json +++ b/l10n/it.json @@ -81,6 +81,8 @@ "Text line" : "Linea di testo", "Simple text" : "Testo semplice", "Rich text" : "Testo formattato", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Sì/No", "Time" : "Ora", "Save" : "Salva", diff --git a/l10n/ja.js b/l10n/ja.js index 6e2cbad80..d01d98581 100644 --- a/l10n/ja.js +++ b/l10n/ja.js @@ -183,6 +183,8 @@ OC.L10N.register( "Type" : "タイプ", "Simple text" : "単純なテキスト", "Rich text" : "リッチテキスト", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "時間", "Save" : "保存", "Title" : "タイトル", diff --git a/l10n/ja.json b/l10n/ja.json index 6ba22fa89..6ec5804be 100644 --- a/l10n/ja.json +++ b/l10n/ja.json @@ -181,6 +181,8 @@ "Type" : "タイプ", "Simple text" : "単純なテキスト", "Rich text" : "リッチテキスト", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "時間", "Save" : "保存", "Title" : "タイトル", diff --git a/l10n/ka.js b/l10n/ka.js index 7ca7b21d1..75b65d686 100644 --- a/l10n/ka.js +++ b/l10n/ka.js @@ -43,6 +43,8 @@ OC.L10N.register( "Import" : "Import", "Type" : "Type", "Rich text" : "Rich text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Time", "Save" : "Save", "Resources" : "Resources", diff --git a/l10n/ka.json b/l10n/ka.json index 1f4e3f4d0..b6b09bfc6 100644 --- a/l10n/ka.json +++ b/l10n/ka.json @@ -41,6 +41,8 @@ "Import" : "Import", "Type" : "Type", "Rich text" : "Rich text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Time", "Save" : "Save", "Resources" : "Resources", diff --git a/l10n/ko.js b/l10n/ko.js index d291ed509..4210cc062 100644 --- a/l10n/ko.js +++ b/l10n/ko.js @@ -176,6 +176,8 @@ OC.L10N.register( "Type" : "종류", "Simple text" : "간단한 텍스트", "Rich text" : "서식 있는 텍스트", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "한 개 선택", "Multiple selection" : "다중 선택", "Yes/No" : "네/아니오", diff --git a/l10n/ko.json b/l10n/ko.json index 036e3bc48..7188eb564 100644 --- a/l10n/ko.json +++ b/l10n/ko.json @@ -174,6 +174,8 @@ "Type" : "종류", "Simple text" : "간단한 텍스트", "Rich text" : "서식 있는 텍스트", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "한 개 선택", "Multiple selection" : "다중 선택", "Yes/No" : "네/아니오", diff --git a/l10n/lt_LT.js b/l10n/lt_LT.js index 12ea66110..1fa81a964 100644 --- a/l10n/lt_LT.js +++ b/l10n/lt_LT.js @@ -61,6 +61,8 @@ OC.L10N.register( "Type" : "Tipas", "Simple text" : "Paprastas tekstas", "Rich text" : "Raiškusis tekstas", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Taip/Ne", "Time" : "Laikas", "Add more" : "Pridėti daugiau", diff --git a/l10n/lt_LT.json b/l10n/lt_LT.json index 682052597..a32e5848c 100644 --- a/l10n/lt_LT.json +++ b/l10n/lt_LT.json @@ -59,6 +59,8 @@ "Type" : "Tipas", "Simple text" : "Paprastas tekstas", "Rich text" : "Raiškusis tekstas", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Taip/Ne", "Time" : "Laikas", "Add more" : "Pridėti daugiau", diff --git a/l10n/mk.js b/l10n/mk.js index cd3d6dc28..106ff0599 100644 --- a/l10n/mk.js +++ b/l10n/mk.js @@ -41,6 +41,8 @@ OC.L10N.register( "Import" : "Увези", "Type" : "Вид", "Rich text" : "Богат текст", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Време", "Save" : "Зачувај", "Title" : "Наслов", diff --git a/l10n/mk.json b/l10n/mk.json index c99a8cbdf..cb7f28f50 100644 --- a/l10n/mk.json +++ b/l10n/mk.json @@ -39,6 +39,8 @@ "Import" : "Увези", "Type" : "Вид", "Rich text" : "Богат текст", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Време", "Save" : "Зачувај", "Title" : "Наслов", diff --git a/l10n/nb.js b/l10n/nb.js index 742afb3e8..456aba917 100644 --- a/l10n/nb.js +++ b/l10n/nb.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "Tekstlinje", "Simple text" : "Enkel tekst", "Rich text" : "Rik tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enkelt utvalg", "Multiple selection" : "Flere valg", "Yes/No" : "Ja/Nei", diff --git a/l10n/nb.json b/l10n/nb.json index 376449058..af5b6bd7b 100644 --- a/l10n/nb.json +++ b/l10n/nb.json @@ -192,6 +192,8 @@ "Text line" : "Tekstlinje", "Simple text" : "Enkel tekst", "Rich text" : "Rik tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enkelt utvalg", "Multiple selection" : "Flere valg", "Yes/No" : "Ja/Nei", diff --git a/l10n/nl.js b/l10n/nl.js index 6b00e8b15..bd7988048 100644 --- a/l10n/nl.js +++ b/l10n/nl.js @@ -73,6 +73,8 @@ OC.L10N.register( "Type" : "Type", "Simple text" : "Verkorte tekst", "Rich text" : "Rijke tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Ja/Nee", "Time" : "Tijd", "Save" : "Opslaan", diff --git a/l10n/nl.json b/l10n/nl.json index cecdc8a6c..e938be5b9 100644 --- a/l10n/nl.json +++ b/l10n/nl.json @@ -71,6 +71,8 @@ "Type" : "Type", "Simple text" : "Verkorte tekst", "Rich text" : "Rijke tekst", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Ja/Nee", "Time" : "Tijd", "Save" : "Opslaan", diff --git a/l10n/pl.js b/l10n/pl.js index 80a97a76e..6565634f9 100644 --- a/l10n/pl.js +++ b/l10n/pl.js @@ -87,6 +87,8 @@ OC.L10N.register( "Text line" : "Linia tekstu", "Simple text" : "Prosty tekst", "Rich text" : "Tekst sformatowany", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Tak/Nie", "Time" : "Godzina", "Save" : "Zapisz", diff --git a/l10n/pl.json b/l10n/pl.json index d374653cc..975f6f510 100644 --- a/l10n/pl.json +++ b/l10n/pl.json @@ -85,6 +85,8 @@ "Text line" : "Linia tekstu", "Simple text" : "Prosty tekst", "Rich text" : "Tekst sformatowany", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Tak/Nie", "Time" : "Godzina", "Save" : "Zapisz", diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js index 4a03a645b..de08b18e0 100644 --- a/l10n/pt_BR.js +++ b/l10n/pt_BR.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "Linha de texto", "Simple text" : "Texto simples", "Rich text" : "Texto rich", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Seleção única", "Multiple selection" : "Seleção múltipla", "Yes/No" : "Sim/Não", diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json index 32bf53d94..64110d094 100644 --- a/l10n/pt_BR.json +++ b/l10n/pt_BR.json @@ -192,6 +192,8 @@ "Text line" : "Linha de texto", "Simple text" : "Texto simples", "Rich text" : "Texto rich", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Seleção única", "Multiple selection" : "Seleção múltipla", "Yes/No" : "Sim/Não", diff --git a/l10n/ro.js b/l10n/ro.js index 42de04888..06b1f3e98 100644 --- a/l10n/ro.js +++ b/l10n/ro.js @@ -42,6 +42,8 @@ OC.L10N.register( "Type" : "Tip", "Simple text" : "Text simplu", "Rich text" : "Text formatat", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Timp", "Save" : "Salvează", "Title" : "Titlu", diff --git a/l10n/ro.json b/l10n/ro.json index ba8997399..30d98585f 100644 --- a/l10n/ro.json +++ b/l10n/ro.json @@ -40,6 +40,8 @@ "Type" : "Tip", "Simple text" : "Text simplu", "Rich text" : "Text formatat", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Timp", "Save" : "Salvează", "Title" : "Titlu", diff --git a/l10n/ru.js b/l10n/ru.js index ac67b5e05..58576e4ff 100644 --- a/l10n/ru.js +++ b/l10n/ru.js @@ -150,6 +150,8 @@ OC.L10N.register( "Text line" : "Текстовая строка", "Simple text" : "Простой текст", "Rich text" : "Текст с форматированием", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Да/Нет", "Time" : "Время", "Add more" : "Добавить больше", diff --git a/l10n/ru.json b/l10n/ru.json index d61cdc1fe..33e76bade 100644 --- a/l10n/ru.json +++ b/l10n/ru.json @@ -148,6 +148,8 @@ "Text line" : "Текстовая строка", "Simple text" : "Простой текст", "Rich text" : "Текст с форматированием", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Да/Нет", "Time" : "Время", "Add more" : "Добавить больше", diff --git a/l10n/sc.js b/l10n/sc.js index 5204e3ea0..f0da7c543 100644 --- a/l10n/sc.js +++ b/l10n/sc.js @@ -51,6 +51,8 @@ OC.L10N.register( "Type" : "Genia", "Simple text" : "Testu simpre", "Rich text" : "Testu formatadu", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Ora", "Save" : "Sarva", "Title" : "Tìtulu", diff --git a/l10n/sc.json b/l10n/sc.json index f1c86facb..48fb7bc5f 100644 --- a/l10n/sc.json +++ b/l10n/sc.json @@ -49,6 +49,8 @@ "Type" : "Genia", "Simple text" : "Testu simpre", "Rich text" : "Testu formatadu", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Time" : "Ora", "Save" : "Sarva", "Title" : "Tìtulu", diff --git a/l10n/sk.js b/l10n/sk.js index 37b9ca3a4..a4d72248b 100644 --- a/l10n/sk.js +++ b/l10n/sk.js @@ -169,6 +169,8 @@ OC.L10N.register( "Text line" : "Textový riadok", "Simple text" : "Jednoduchý text", "Rich text" : "Formátovaný text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Áno/Nie", "Time" : "Čas", "Add more" : "Pridať viac", diff --git a/l10n/sk.json b/l10n/sk.json index ffcea15c2..b1a04d1fb 100644 --- a/l10n/sk.json +++ b/l10n/sk.json @@ -167,6 +167,8 @@ "Text line" : "Textový riadok", "Simple text" : "Jednoduchý text", "Rich text" : "Formátovaný text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "Áno/Nie", "Time" : "Čas", "Add more" : "Pridať viac", diff --git a/l10n/sl.js b/l10n/sl.js index 575ba19eb..be581d288 100644 --- a/l10n/sl.js +++ b/l10n/sl.js @@ -176,6 +176,8 @@ OC.L10N.register( "Text line" : "Besedilna vrstica", "Simple text" : "Enostavno besedilo", "Rich text" : "Obogateno besedilo", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enojni izbor", "Multiple selection" : "Izbira po meri", "Yes/No" : "Možnost Da / Ne", diff --git a/l10n/sl.json b/l10n/sl.json index fc6c413e0..d6c14e3ad 100644 --- a/l10n/sl.json +++ b/l10n/sl.json @@ -174,6 +174,8 @@ "Text line" : "Besedilna vrstica", "Simple text" : "Enostavno besedilo", "Rich text" : "Obogateno besedilo", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enojni izbor", "Multiple selection" : "Izbira po meri", "Yes/No" : "Možnost Da / Ne", diff --git a/l10n/sr.js b/l10n/sr.js index f5bc2ec43..039c7e28a 100644 --- a/l10n/sr.js +++ b/l10n/sr.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "Текст линија", "Simple text" : "Обичан текст", "Rich text" : "Обогаћени текст", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Појединачни избор", "Multiple selection" : "Вишеструки избор", "Yes/No" : "Да/Не", diff --git a/l10n/sr.json b/l10n/sr.json index 3b168a4bb..b0a166d96 100644 --- a/l10n/sr.json +++ b/l10n/sr.json @@ -192,6 +192,8 @@ "Text line" : "Текст линија", "Simple text" : "Обичан текст", "Rich text" : "Обогаћени текст", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Појединачни избор", "Multiple selection" : "Вишеструки избор", "Yes/No" : "Да/Не", diff --git a/l10n/sv.js b/l10n/sv.js index bb7308786..3ffcb61c4 100644 --- a/l10n/sv.js +++ b/l10n/sv.js @@ -157,6 +157,8 @@ OC.L10N.register( "Text line" : "Textrad", "Simple text" : "Enkel text", "Rich text" : "Formaterad text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enstaka val", "Multiple selection" : "Flerval", "Yes/No" : "Ja/Nej", diff --git a/l10n/sv.json b/l10n/sv.json index dc3384ec8..54aea2f95 100644 --- a/l10n/sv.json +++ b/l10n/sv.json @@ -155,6 +155,8 @@ "Text line" : "Textrad", "Simple text" : "Enkel text", "Rich text" : "Formaterad text", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Enstaka val", "Multiple selection" : "Flerval", "Yes/No" : "Ja/Nej", diff --git a/l10n/tr.js b/l10n/tr.js index 5f29cf0b1..0d5c55155 100644 --- a/l10n/tr.js +++ b/l10n/tr.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "Metin satırı", "Simple text" : "Basit metin", "Rich text" : "Zengin metin", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Tek seçim", "Multiple selection" : "Çoklu seçim", "Yes/No" : "Evet/hayır", diff --git a/l10n/tr.json b/l10n/tr.json index f3cb53818..3edd4b1fd 100644 --- a/l10n/tr.json +++ b/l10n/tr.json @@ -192,6 +192,8 @@ "Text line" : "Metin satırı", "Simple text" : "Basit metin", "Rich text" : "Zengin metin", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Tek seçim", "Multiple selection" : "Çoklu seçim", "Yes/No" : "Evet/hayır", diff --git a/l10n/uk.js b/l10n/uk.js index a8744e01d..22c3f412d 100644 --- a/l10n/uk.js +++ b/l10n/uk.js @@ -192,6 +192,8 @@ OC.L10N.register( "Text line" : "Рядок тексту", "Simple text" : "Звичайний текст", "Rich text" : "Текст з форматуванням", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Одинарний вибір", "Multiple selection" : "Множинний вибір", "Yes/No" : "Так/ні", diff --git a/l10n/uk.json b/l10n/uk.json index ff85ca479..de7c107e5 100644 --- a/l10n/uk.json +++ b/l10n/uk.json @@ -190,6 +190,8 @@ "Text line" : "Рядок тексту", "Simple text" : "Звичайний текст", "Rich text" : "Текст з форматуванням", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "Одинарний вибір", "Multiple selection" : "Множинний вибір", "Yes/No" : "Так/ні", diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js index 54a6f0ff1..fbc6e8a84 100644 --- a/l10n/zh_CN.js +++ b/l10n/zh_CN.js @@ -176,6 +176,8 @@ OC.L10N.register( "Type" : "类型", "Simple text" : "简述文本", "Rich text" : "富文本", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "是 / 否", "Time" : "时间", "Save" : "保存", diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json index d87eced5f..22f8ac44c 100644 --- a/l10n/zh_CN.json +++ b/l10n/zh_CN.json @@ -174,6 +174,8 @@ "Type" : "类型", "Simple text" : "简述文本", "Rich text" : "富文本", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Yes/No" : "是 / 否", "Time" : "时间", "Save" : "保存", diff --git a/l10n/zh_HK.js b/l10n/zh_HK.js index 2019e5940..e9de44c3c 100644 --- a/l10n/zh_HK.js +++ b/l10n/zh_HK.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "文字行", "Simple text" : "簡單文字", "Rich text" : "RTF", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "單則選擇", "Multiple selection" : "多重選擇", "Yes/No" : "是/否", diff --git a/l10n/zh_HK.json b/l10n/zh_HK.json index d05a92bb5..1dfe1c4aa 100644 --- a/l10n/zh_HK.json +++ b/l10n/zh_HK.json @@ -192,6 +192,8 @@ "Text line" : "文字行", "Simple text" : "簡單文字", "Rich text" : "RTF", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "單則選擇", "Multiple selection" : "多重選擇", "Yes/No" : "是/否", diff --git a/l10n/zh_TW.js b/l10n/zh_TW.js index fcf66a982..26fb9f127 100644 --- a/l10n/zh_TW.js +++ b/l10n/zh_TW.js @@ -194,6 +194,8 @@ OC.L10N.register( "Text line" : "文字行", "Simple text" : "簡單文字", "Rich text" : "RTF", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "單選", "Multiple selection" : "多選", "Yes/No" : "是 / 否", diff --git a/l10n/zh_TW.json b/l10n/zh_TW.json index d280bd015..e188fe0e7 100644 --- a/l10n/zh_TW.json +++ b/l10n/zh_TW.json @@ -192,6 +192,8 @@ "Text line" : "文字行", "Simple text" : "簡單文字", "Rich text" : "RTF", + "IPv4 address" : "IPv4 address", + "IPv6 address" : "IPv6 address", "Single selection" : "單選", "Multiple selection" : "多選", "Yes/No" : "是 / 否", From a6bdf610ab163598c16ab6b68cac69069c3ab38d Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Mon, 20 May 2024 14:18:42 +0200 Subject: [PATCH 07/24] add column type partials --- .../ncTable/partials/TableCellTextIPv4.vue | 37 ++++++++ .../ncTable/partials/TableCellTextIPv6.vue | 37 ++++++++ .../columnTypePartials/forms/TextIPv4Form.vue | 84 +++++++++++++++++++ .../columnTypePartials/forms/TextIPv6Form.vue | 84 +++++++++++++++++++ 4 files changed, 242 insertions(+) create mode 100644 src/shared/components/ncTable/partials/TableCellTextIPv4.vue create mode 100644 src/shared/components/ncTable/partials/TableCellTextIPv6.vue create mode 100644 src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4Form.vue create mode 100644 src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6Form.vue diff --git a/src/shared/components/ncTable/partials/TableCellTextIPv4.vue b/src/shared/components/ncTable/partials/TableCellTextIPv4.vue new file mode 100644 index 000000000..216fa0f5d --- /dev/null +++ b/src/shared/components/ncTable/partials/TableCellTextIPv4.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/shared/components/ncTable/partials/TableCellTextIPv6.vue b/src/shared/components/ncTable/partials/TableCellTextIPv6.vue new file mode 100644 index 000000000..216fa0f5d --- /dev/null +++ b/src/shared/components/ncTable/partials/TableCellTextIPv6.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4Form.vue b/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4Form.vue new file mode 100644 index 000000000..591d9dee9 --- /dev/null +++ b/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4Form.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6Form.vue b/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6Form.vue new file mode 100644 index 000000000..591d9dee9 --- /dev/null +++ b/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6Form.vue @@ -0,0 +1,84 @@ + + + From bb2b5e27cb8fadd5b8fa7a2d418a60010bc62727 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Mon, 20 May 2024 14:22:14 +0200 Subject: [PATCH 08/24] rename as per the declared column types --- .../{TableCellTextIPv4.vue => TableCellTextIPv4Address.vue} | 0 .../{TableCellTextIPv6.vue => TableCellTextIPv6Address.vue} | 0 .../forms/{TextIPv4Form.vue => TextIPv4AddressForm.vue} | 0 .../forms/{TextIPv6Form.vue => TextIPv6AddressForm.vue} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename src/shared/components/ncTable/partials/{TableCellTextIPv4.vue => TableCellTextIPv4Address.vue} (100%) rename src/shared/components/ncTable/partials/{TableCellTextIPv6.vue => TableCellTextIPv6Address.vue} (100%) rename src/shared/components/ncTable/partials/columnTypePartials/forms/{TextIPv4Form.vue => TextIPv4AddressForm.vue} (100%) rename src/shared/components/ncTable/partials/columnTypePartials/forms/{TextIPv6Form.vue => TextIPv6AddressForm.vue} (100%) diff --git a/src/shared/components/ncTable/partials/TableCellTextIPv4.vue b/src/shared/components/ncTable/partials/TableCellTextIPv4Address.vue similarity index 100% rename from src/shared/components/ncTable/partials/TableCellTextIPv4.vue rename to src/shared/components/ncTable/partials/TableCellTextIPv4Address.vue diff --git a/src/shared/components/ncTable/partials/TableCellTextIPv6.vue b/src/shared/components/ncTable/partials/TableCellTextIPv6Address.vue similarity index 100% rename from src/shared/components/ncTable/partials/TableCellTextIPv6.vue rename to src/shared/components/ncTable/partials/TableCellTextIPv6Address.vue diff --git a/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4Form.vue b/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4AddressForm.vue similarity index 100% rename from src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4Form.vue rename to src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4AddressForm.vue diff --git a/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6Form.vue b/src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6AddressForm.vue similarity index 100% rename from src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6Form.vue rename to src/shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6AddressForm.vue From 820a0fce795ee47f18de355e090d0f1f3476fcb1 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 07:15:03 +0200 Subject: [PATCH 09/24] use built-in JS func `localeCompare` to compare two strings. --- .../mixins/columnsTypes/textIPv6Address.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js b/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js index 9ee2d0810..da9cc487e 100644 --- a/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js +++ b/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js @@ -19,6 +19,11 @@ export default class TextIPv6Address extends AbstractTextColumn { .join('') } + compareAlphaNumStr(referenceStr, compareStr) { + // This is a wrapper for https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare#numeric_sorting + return referenceStr.localeCompare(compareStr, undefined, { numeric: true }) + } + sort(mode) { const factor = mode === 'DESC' ? -1 : 1 return (rowA, rowB) => { @@ -26,7 +31,7 @@ export default class TextIPv6Address extends AbstractTextColumn { const valueB = rowB.data.find(item => item.columnId === this.id)?.value?.toLowerCase() || '' const valueAForNaturalSort = this.toNaturalSortReadyString(valueA) const valueBForNaturalSort = this.toNaturalSortReadyString(valueB) - return ((valueAForNaturalSort < valueBForNaturalSort) ? -1 : (valueAForNaturalSort > valueBForNaturalSort) ? 1 : 0) * factor + return this.compareAlphaNumStr(valueAForNaturalSort, valueBForNaturalSort) * factor } } @@ -49,10 +54,10 @@ export default class TextIPv6Address extends AbstractTextColumn { [FilterIds.BeginsWith]() { return cellValue.startsWith(filterValue) }, [FilterIds.EndsWith]() { return cellValue.endsWith(filterValue) }, [FilterIds.IsEqual]() { return cellValue === filterValue }, - [FilterIds.IsGreaterThan]() { return parseInt(cellValueForNaturalSort) > parseInt(filterValueForNaturalSort) }, - [FilterIds.IsGreaterThanOrEqual]() { return parseInt(cellValueForNaturalSort) >= parseInt(filterValueForNaturalSort) }, - [FilterIds.IsLowerThan]() { return parseInt(cellValueForNaturalSort) < parseInt(filterValueForNaturalSort) }, - [FilterIds.IsLowerThanOrEqual]() { return parseInt(cellValueForNaturalSort) <= parseInt(filterValueForNaturalSort) }, + [FilterIds.IsGreaterThan]() { return this.compareAlphaNumStr(cellValueForNaturalSort, filterValueForNaturalSort) > 0 }, + [FilterIds.IsGreaterThanOrEqual]() { return this.compareAlphaNumStr(cellValueForNaturalSort, filterValueForNaturalSort) >= 0 }, + [FilterIds.IsLowerThan]() { return this.compareAlphaNumStr(cellValueForNaturalSort, filterValueForNaturalSort) < 0 }, + [FilterIds.IsLowerThanOrEqual]() { return this.compareAlphaNumStr(cellValueForNaturalSort, filterValueForNaturalSort) <= 0 }, [FilterIds.IsEmpty]() { return !cellValue }, }[filter.operator.id] From 25d4a8e1729d0ed46fbf1becb9ba0ff1a230c7fe Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 07:38:38 +0200 Subject: [PATCH 10/24] update magic fields --- src/shared/components/ncTable/mixins/magicFields.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shared/components/ncTable/mixins/magicFields.js b/src/shared/components/ncTable/mixins/magicFields.js index d45e24a57..7c580f715 100644 --- a/src/shared/components/ncTable/mixins/magicFields.js +++ b/src/shared/components/ncTable/mixins/magicFields.js @@ -34,14 +34,14 @@ export const MagicFields = { id: 'me', label: t('tables', 'Me (user ID)'), icon: 'icon-user', - goodFor: [ColumnTypes.TextLine, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink], replace: getCurrentUser()?.uid, }), MyName: new MagicField({ id: 'my-name', label: t('tables', 'Me (name)'), icon: 'icon-user', - goodFor: [ColumnTypes.TextLine, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink], + goodFor: [ColumnTypes.TextLine, ColumnTypes.TextIPv4Address, ColumnTypes.TextIPv6Address, ColumnTypes.Selection, ColumnTypes.SelectionMulti, ColumnTypes.TextRich, ColumnTypes.TextLink], replace: getCurrentUser()?.displayName, }), Checked: new MagicField({ From 090cec201d38990431554d8a1811c373a84bc175 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 07:48:26 +0200 Subject: [PATCH 11/24] rename class name: append `Column` suffix --- .../components/ncTable/mixins/columnsTypes/textIPv4Address.js | 2 +- .../components/ncTable/mixins/columnsTypes/textIPv6Address.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shared/components/ncTable/mixins/columnsTypes/textIPv4Address.js b/src/shared/components/ncTable/mixins/columnsTypes/textIPv4Address.js index e38825446..ba238b2c8 100644 --- a/src/shared/components/ncTable/mixins/columnsTypes/textIPv4Address.js +++ b/src/shared/components/ncTable/mixins/columnsTypes/textIPv4Address.js @@ -2,7 +2,7 @@ import { AbstractTextColumn } from '../columnClass.js' import { ColumnTypes } from '../columnHandler.js' import { FilterIds } from '../filter.js' -export default class TextIPv4Address extends AbstractTextColumn { +export default class TextIPv4AddressColumn extends AbstractTextColumn { constructor(data) { super(data) diff --git a/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js b/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js index da9cc487e..6f1140e0f 100644 --- a/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js +++ b/src/shared/components/ncTable/mixins/columnsTypes/textIPv6Address.js @@ -2,7 +2,7 @@ import { AbstractTextColumn } from '../columnClass.js' import { ColumnTypes } from '../columnHandler.js' import { FilterIds } from '../filter.js' -export default class TextIPv6Address extends AbstractTextColumn { +export default class TextIPv6AddressColumn extends AbstractTextColumn { constructor(data) { super(data) From 8634e2c93b8908712a3ef4e175bdd788a4b2c8be Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 07:51:41 +0200 Subject: [PATCH 12/24] update `columnParser.js` --- src/shared/components/ncTable/mixins/columnParser.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/shared/components/ncTable/mixins/columnParser.js b/src/shared/components/ncTable/mixins/columnParser.js index dd93eb51d..331339c78 100644 --- a/src/shared/components/ncTable/mixins/columnParser.js +++ b/src/shared/components/ncTable/mixins/columnParser.js @@ -12,6 +12,8 @@ import TextLineColumn from './columnsTypes/textLine.js' import TextLinkColumn from './columnsTypes/textLink.js' import TextLongColumn from './columnsTypes/textLong.js' import TextRichColumn from './columnsTypes/textRich.js' +import TextIPv4AddressColumn from './columnsTypes/textIPv4Address.js' +import TextIPv6AddressColumn from './columnsTypes/textIPv6Address.js' export function parseCol(col) { const columnType = col.type + (col.subtype === '' ? '' : '-' + col.subtype) @@ -20,6 +22,8 @@ export function parseCol(col) { case ColumnTypes.TextLink: return new TextLinkColumn(col) case ColumnTypes.TextLong: return new TextLongColumn(col) case ColumnTypes.TextRich: return new TextRichColumn(col) + case ColumnTypes.TextIPv4Address: return new TextIPv4AddressColumn(col) + case ColumnTypes.TextIPv6Address: return new TextIPv6AddressColumn(col) case ColumnTypes.Number: return new NumberColumn(col) case ColumnTypes.NumberStars: return new NumberStarsColumn(col) case ColumnTypes.NumberProgress: return new NumberProgressColumn(col) From a7a9ee5941ed098beabe4171d179ecb2f1fa35af Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 08:06:50 +0200 Subject: [PATCH 13/24] update `EditColumn.vue` --- src/modules/modals/EditColumn.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/modals/EditColumn.vue b/src/modules/modals/EditColumn.vue index 7337d659c..cc5e06f04 100644 --- a/src/modules/modals/EditColumn.vue +++ b/src/modules/modals/EditColumn.vue @@ -57,6 +57,8 @@ import TextLineForm from '../../shared/components/ncTable/partials/columnTypePar import TextLinkForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/TextLinkForm.vue' import TextLongForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/TextLongForm.vue' import TextRichForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/TextRichForm.vue' +import TextIPv4AddressForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4AddressForm.vue' +import TextIPv6AddressForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6AddressForm.vue' import MainForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/MainForm.vue' import SelectionCheckForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/SelectionCheckForm.vue' import SelectionForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/SelectionForm.vue' @@ -81,6 +83,8 @@ export default { TextLongForm, TextRichForm, TextLinkForm, + TextIPv4AddressForm, + TextIPv6AddressForm, MainForm, SelectionForm, SelectionMultiForm, From 4dc5a903667591e5499848751ced682217eca683 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 08:22:10 +0200 Subject: [PATCH 14/24] update `ColumnFormComponent.vue` --- src/modules/main/partials/ColumnFormComponent.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/main/partials/ColumnFormComponent.vue b/src/modules/main/partials/ColumnFormComponent.vue index 89b7a2eea..9ca68ec43 100644 --- a/src/modules/main/partials/ColumnFormComponent.vue +++ b/src/modules/main/partials/ColumnFormComponent.vue @@ -7,6 +7,9 @@ import TextLineForm from '../../../shared/components/ncTable/partials/rowTypePartials/TextLineForm.vue' import TextLongForm from '../../../shared/components/ncTable/partials/rowTypePartials/TextLongForm.vue' import TextLinkForm from '../../../shared/components/ncTable/partials/rowTypePartials/TextLinkForm.vue' +import TextRichForm from '../../../shared/components/ncTable/partials/rowTypePartials/TextRichForm.vue' +import TextIPv4AddressForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/TextIPv4AddressForm.vue' +import TextIPv6AddressForm from '../../shared/components/ncTable/partials/columnTypePartials/forms/TextIPv6AddressForm.vue' import NumberForm from '../../../shared/components/ncTable/partials/rowTypePartials/NumberForm.vue' import NumberStarsForm from '../../../shared/components/ncTable/partials/rowTypePartials/NumberStarsForm.vue' import NumberProgressForm from '../../../shared/components/ncTable/partials/rowTypePartials/NumberProgressForm.vue' @@ -16,7 +19,6 @@ import SelectionMultiForm from '../../../shared/components/ncTable/partials/rowT import DatetimeForm from '../../../shared/components/ncTable/partials/rowTypePartials/DatetimeForm.vue' import DatetimeDateForm from '../../../shared/components/ncTable/partials/rowTypePartials/DatetimeDateForm.vue' import DatetimeTimeForm from '../../../shared/components/ncTable/partials/rowTypePartials/DatetimeTimeForm.vue' -import TextRichForm from '../../../shared/components/ncTable/partials/rowTypePartials/TextRichForm.vue' import { AbstractColumn } from '../../../shared/components/ncTable/mixins/columnClass.js' export default { @@ -29,6 +31,8 @@ export default { TextLongForm, TextLinkForm, TextRichForm, + TextIPv4AddressForm, + TextIPv6AddressForm, NumberForm, NumberStarsForm, NumberProgressForm, From 6873cc9ec2c86d0067629007f51b0c4cafaaefa3 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 08:55:07 +0200 Subject: [PATCH 15/24] fix: CSS-compatible comments syntax --- src/shared/components/ncTable/NcTable.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shared/components/ncTable/NcTable.vue b/src/shared/components/ncTable/NcTable.vue index 0d371c1ea..6de0a9bb7 100644 --- a/src/shared/components/ncTable/NcTable.vue +++ b/src/shared/components/ncTable/NcTable.vue @@ -255,7 +255,7 @@ export default { left: 0; z-index: 15; background-color: var(--color-main-background-translucent); - padding-top: 4px; // fix to show buttons completely - padding-bottom: 4px; // to make it nice with the padding-top + padding-top: 4px; /* fix to show buttons completely */ + padding-bottom: 4px; /* to make it nice with the padding-top */ } From 11db2955b1a0ae94dcd037a1ef81c7e469a38f07 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 09:42:08 +0200 Subject: [PATCH 16/24] add row type partials --- .../rowTypePartials/TextIPv4AddressForm.vue | 58 +++++++++++++++++++ .../rowTypePartials/TextIPv6AddressForm.vue | 58 +++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 src/shared/components/ncTable/partials/rowTypePartials/TextIPv4AddressForm.vue create mode 100644 src/shared/components/ncTable/partials/rowTypePartials/TextIPv6AddressForm.vue diff --git a/src/shared/components/ncTable/partials/rowTypePartials/TextIPv4AddressForm.vue b/src/shared/components/ncTable/partials/rowTypePartials/TextIPv4AddressForm.vue new file mode 100644 index 000000000..03dc21b64 --- /dev/null +++ b/src/shared/components/ncTable/partials/rowTypePartials/TextIPv4AddressForm.vue @@ -0,0 +1,58 @@ + + + + diff --git a/src/shared/components/ncTable/partials/rowTypePartials/TextIPv6AddressForm.vue b/src/shared/components/ncTable/partials/rowTypePartials/TextIPv6AddressForm.vue new file mode 100644 index 000000000..03dc21b64 --- /dev/null +++ b/src/shared/components/ncTable/partials/rowTypePartials/TextIPv6AddressForm.vue @@ -0,0 +1,58 @@ + + + + From e8acab014008eb165e761e64173663d742ddcc30 Mon Sep 17 00:00:00 2001 From: Kiril Isakov Date: Tue, 21 May 2024 10:38:40 +0200 Subject: [PATCH 17/24] sort imports --- src/modules/modals/CreateColumn.vue | 46 ++++++++++++++--------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/modules/modals/CreateColumn.vue b/src/modules/modals/CreateColumn.vue index 32a3e1270..bebb89e7e 100644 --- a/src/modules/modals/CreateColumn.vue +++ b/src/modules/modals/CreateColumn.vue @@ -94,46 +94,46 @@