Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Romain Courteaud
erp5
Commits
f2318991
Commit
f2318991
authored
Apr 16, 2024
by
Rafael Monnerat
👻
Browse files
Options
Browse Files
Download
Plain Diff
More fixes for json editor
See merge request
nexedi/erp5!1919
parents
ef20fc9b
e17a41e5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
89 additions
and
72 deletions
+89
-72
bt5/erp5_json_editor/SkinTemplateItem/portal_skins/erp5_json_editor/json-editor.gadget.css.css
.../portal_skins/erp5_json_editor/json-editor.gadget.css.css
+2
-2
bt5/erp5_json_editor/SkinTemplateItem/portal_skins/erp5_json_editor/json-editor.gadget.js.js
...em/portal_skins/erp5_json_editor/json-editor.gadget.js.js
+85
-68
bt5/erp5_json_editor/SkinTemplateItem/portal_skins/erp5_json_editor/json-editor.gadget.less.txt
...portal_skins/erp5_json_editor/json-editor.gadget.less.txt
+2
-2
No files found.
bt5/erp5_json_editor/SkinTemplateItem/portal_skins/erp5_json_editor/json-editor.gadget.css.css
View file @
f2318991
...
...
@@ -61,13 +61,13 @@ div.json-editor-container .je-switcher {
div
.json-editor-container
.btn
{
vertical-align
:
middle
;
border
:
1px
solid
transparent
;
padding
:
0.25rem
0.5rem
;
padding
:
2pt
5pt
3pt
5pt
;
flex
:
1
1
auto
;
color
:
#fff
;
background-color
:
#6c757d
;
border-color
:
#6c757d
;
font-size
:
0.875rem
;
border-radius
:
0.
2
rem
;
border-radius
:
0.
325
rem
;
}
div
.json-editor-container
.btn
:hover
{
color
:
#fff
;
...
...
bt5/erp5_json_editor/SkinTemplateItem/portal_skins/erp5_json_editor/json-editor.gadget.js.js
View file @
f2318991
...
...
@@ -12,6 +12,13 @@
return
undefined
;
};
JSONEditor
.
AbstractEditor
.
prototype
.
preBuild
=
function
()
{
if
(
this
.
jsoneditor
.
options
.
readonly
)
{
this
.
schema
.
readOnly
=
this
.
jsoneditor
.
options
.
readonly
;
}
};
function
isEmpty
(
obj
)
{
return
obj
===
undefined
||
obj
===
''
||
(
...
...
@@ -37,10 +44,77 @@
return
result
;
};
JSONEditor
.
AbstractEditor
.
prototype
.
preBuild
=
function
()
{
if
(
this
.
jsoneditor
.
options
.
readonly
)
{
this
.
schema
.
readOnly
=
this
.
jsoneditor
.
options
.
readonly
;
if
(
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
original_getPropertySchema
===
undefined
)
{
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
original_getPropertySchema
=
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
getPropertySchema
;
}
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
getPropertySchema
=
function
(
key
)
{
var
schema
=
this
.
original_getPropertySchema
(
key
);
/* Strip forbidden properties, that aren't part of json schema spec.
They are removed because the UI must be complaint with other usages of
json schemas.
*/
delete
schema
.
template
;
delete
schema
.
options
;
if
(
schema
.
const
!==
undefined
)
{
schema
.
enum
=
[
schema
.
const
];
}
/* Display default value as part of description */
if
(
schema
.
default
!==
undefined
&&
typeof
schema
.
default
!==
"
object
"
)
{
if
(
schema
.
description
!==
undefined
)
{
schema
.
description
=
schema
.
description
+
"
(default:
"
+
schema
.
default
+
"
)
"
;
}
else
{
schema
.
description
=
"
(default:
"
+
schema
.
default
+
"
)
"
;
}
}
return
schema
;
};
/* The original code would remove the field if value is undefined */
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
setValue
=
function
(
value
,
initial
)
{
var
object_editor
=
this
;
value
=
value
||
{};
if
(
typeof
value
!==
'
object
'
||
Array
.
isArray
(
value
))
{
value
=
{};
}
/* First, set the values for all of the defined properties */
// @ts-ignore
Object
.
entries
(
this
.
cached_editors
).
forEach
(
function
(
entry
)
{
var
i
=
entry
[
0
],
editor
=
entry
[
1
];
/* Value explicitly set */
if
(
value
[
i
]
!==
undefined
)
{
object_editor
.
addObjectProperty
(
i
);
editor
.
setValue
(
value
[
i
],
initial
);
editor
.
activate
();
/* Otherwise if it is read only remove the field */
}
else
if
(
editor
.
schema
.
readOnly
)
{
object_editor
.
removeObjectProperty
(
i
);
/* Otherwise, set the value to the default */
}
else
{
editor
.
setValue
(
editor
.
getDefault
(),
initial
);
}
});
// @ts-ignore
Object
.
entries
(
value
).
forEach
(
function
(
entry
)
{
var
i
=
entry
[
0
],
val
=
entry
[
1
];
if
(
!
object_editor
.
cached_editors
[
i
])
{
object_editor
.
addObjectProperty
(
i
);
if
(
object_editor
.
editors
[
i
])
{
object_editor
.
editors
[
i
].
setValue
(
val
,
initial
,
!!
object_editor
.
editors
[
i
].
template
);
}
}
});
object_editor
.
refreshValue
();
object_editor
.
layoutEditors
();
object_editor
.
onChange
();
};
JSONEditor
.
defaults
.
editors
.
select
.
prototype
.
setValue
=
function
(
value
,
initial
)
{
...
...
@@ -237,73 +311,16 @@
field
.
onChange
(
typeChanged
);
};
if
(
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
original_getPropertySchema
===
undefined
)
{
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
original_getPropertySchema
=
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
getPropertySchema
;
}
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
getPropertySchema
=
function
(
key
)
{
var
schema
=
this
.
original_getPropertySchema
(
key
);
/* Strip forbidden properties, that aren't part of json schema spec.
They are removed because the UI must be complaint with other usages of
json schemas.
*/
delete
schema
.
template
;
delete
schema
.
options
;
/* Display default value as part of description */
if
(
schema
.
default
!==
undefined
&&
typeof
schema
.
default
!==
"
object
"
)
{
if
(
schema
.
description
!==
undefined
)
{
schema
.
description
=
schema
.
description
+
"
(default:
"
+
schema
.
default
+
"
)
"
;
}
else
{
schema
.
description
=
"
(default:
"
+
schema
.
default
+
"
)
"
;
}
}
return
schema
;
JSONEditor
.
defaults
.
editors
.
array
.
prototype
.
ensureArraySize
=
function
(
value
)
{
// Don't extend or slice data based on the input
// Let the user handle it.
return
value
;
};
/* The original code would remove the field if value is undefined */
JSONEditor
.
defaults
.
editors
.
object
.
prototype
.
setValue
=
function
(
value
,
initial
)
{
var
object_editor
=
this
;
value
=
value
||
{};
if
(
typeof
value
!==
'
object
'
||
Array
.
isArray
(
value
))
{
value
=
{};
}
/* First, set the values for all of the defined properties */
// @ts-ignore
Object
.
entries
(
this
.
cached_editors
).
forEach
(
function
(
entry
)
{
var
i
=
entry
[
0
],
editor
=
entry
[
1
];
/* Value explicitly set */
if
(
value
[
i
]
!==
undefined
)
{
object_editor
.
addObjectProperty
(
i
);
editor
.
setValue
(
value
[
i
],
initial
);
editor
.
activate
();
/* Otherwise if it is read only remove the field */
}
else
if
(
editor
.
schema
.
readOnly
)
{
object_editor
.
removeObjectProperty
(
i
);
/* Otherwise, set the value to the default */
}
else
{
editor
.
setValue
(
editor
.
getDefault
(),
initial
);
}
});
// @ts-ignore
Object
.
entries
(
value
).
forEach
(
function
(
entry
)
{
var
i
=
entry
[
0
],
val
=
entry
[
1
];
if
(
!
object_editor
.
cached_editors
[
i
])
{
object_editor
.
addObjectProperty
(
i
);
if
(
object_editor
.
editors
[
i
])
{
object_editor
.
editors
[
i
].
setValue
(
val
,
initial
,
!!
object_editor
.
editors
[
i
].
template
);
}
}
});
object_editor
.
refreshValue
();
object_editor
.
layoutEditors
();
object_editor
.
onChange
();
JSONEditor
.
defaults
.
editors
.
table
.
prototype
.
ensureArraySize
=
function
(
value
)
{
// Don't extend or slice data based on the input
// Let the user handle it.
return
value
;
};
JSONEditor
.
defaults
.
editors
.
string
.
prototype
.
setValueToInputField
=
function
(
value
)
{
...
...
bt5/erp5_json_editor/SkinTemplateItem/portal_skins/erp5_json_editor/json-editor.gadget.less.txt
View file @
f2318991
...
...
@@ -70,13 +70,13 @@ div.json-editor-container {
& .btn {
vertical-align: middle;
border: 1px solid transparent;
padding:
0.25rem 0.5rem
;
padding:
2pt 5pt 3pt 5pt
;
flex: 1 1 auto;
color: #fff;
background-color: #6c757d;
border-color: #6c757d;
font-size: .875rem;
border-radius: 0.
2
rem;
border-radius: 0.
325
rem;
}
& .btn:hover {
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment