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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Tristan Cavelier
erp5
Commits
b8a54f81
Commit
b8a54f81
authored
May 13, 2019
by
Tristan Cavelier
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DATETIMEFIELDUPDATE WIP recoded (not fully)
parent
7c386987
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
50 deletions
+59
-50
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_form_js.js
...plateItem/web_page_module/rjs_gadget_erp5_page_form_js.js
+47
-38
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_form_js.xml
...lateItem/web_page_module/rjs_gadget_erp5_page_form_js.xml
+1
-1
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_html5_input_js.js
...TemplateItem/web_page_module/rjs_gadget_html5_input_js.js
+11
-11
No files found.
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_form_js.js
View file @
b8a54f81
...
...
@@ -70,7 +70,6 @@ and handling data send&receive.
if
(
typeof
result
[
key
]
===
"
object
"
&&
result
[
key
].
hasOwnProperty
(
"
key
"
)
&&
gadget
.
state
.
options
.
form_content
[
result
[
key
].
key
])
{
console
.
log
(
"
page_form: in loadFormContent
"
,
result
[
key
][
'
default
'
],
gadget
.
state
.
options
.
form_content
[
result
[
key
].
key
]);
result
[
key
][
'
default
'
]
=
gadget
.
state
.
options
.
form_content
[
result
[
key
].
key
];
}
}
...
...
@@ -93,6 +92,25 @@ and handling data send&receive.
}
}
function
updateErp5DocumentForAfterSave
(
new_erp5_document
,
submitted_content
,
current_content
)
{
var
view
=
new_erp5_document
.
_embedded
.
_view
,
content_key_list
=
Object
.
keys
(
current_content
),
document_reference_dict
=
{},
document_key_list
=
Object
.
keys
(
view
),
i
=
0
,
field
=
null
,
key
=
""
;
for
(;
i
<
document_key_list
.
length
;
i
+=
1
)
{
field
=
view
[
document_key_list
[
i
]];
document_reference_dict
[
field
.
key
]
=
field
;
}
for
(
i
=
0
;
i
<
content_key_list
.
length
;
i
+=
1
)
{
key
=
content_key_list
[
i
];
if
(
document_reference_dict
[
key
]
&&
JSON
.
stringify
(
submitted_content
[
key
])
===
JSON
.
stringify
(
document_reference_dict
[
key
].
default
))
{
document_reference_dict
[
key
].
default
=
current_content
[
key
];
}
}
}
function
warmupGadgetList
(
gadget
,
url_list
)
{
var
i
;
for
(
i
=
0
;
i
<
url_list
.
length
;
i
+=
1
)
{
...
...
@@ -123,7 +141,6 @@ and handling data send&receive.
// Proxy methods to the child gadget
/////////////////////////////////////////////////////////////////
.
declareMethod
(
'
triggerSubmit
'
,
function
triggerSubmit
()
{
console
.
log
(
"
page form: triggeringSubmit
"
);
return
this
.
getDeclaredGadget
(
'
fg
'
)
.
push
(
function
(
g
)
{
return
g
.
triggerSubmit
();
...
...
@@ -165,15 +182,10 @@ and handling data send&receive.
.
allowPublicAcquisition
(
'
notifySubmit
'
,
function
notifySubmit
()
{
return
this
.
triggerSubmit
();
})
.
allowPublicAcquisition
(
"
notifyChange
"
,
function
notifyChange
(
params
)
{
var
gadget
=
this
;
console
.
log
(
"
page form: notifyChange
"
,
params
);
return
gadget
.
getDeclaredGadget
(
"
fg
"
)
.
push
(
g
=>
g
.
getContent
())
.
push
(
content
=>
{
gadget
.
_XXX_change_content
=
content
;
return
gadget
.
notifyChange
.
apply
(
gadget
,
params
);
});
})
/**/
.
allowPublicAcquisition
(
"
notifyChange
"
,
function
notifyChange
(
argument_list
)
{
this
.
state
.
changing
=
true
;
return
this
.
notifyChange
.
apply
(
this
,
argument_list
);
})
/**
* Render obtain ERP5 Document and assigned Form Definition.
*
...
...
@@ -297,7 +309,8 @@ and handling data send&receive.
.
push
(
function
(
result
)
{
page_template_gadget
=
result
;
var
sub_options
=
options
.
fg
||
{};
var
sub_options
=
options
.
fg
||
{},
queue
=
null
;
loadFormContent
(
gadget
,
erp5_document
.
_embedded
.
_view
);
...
...
@@ -308,22 +321,22 @@ and handling data send&receive.
sub_options
.
jio_key
=
options
.
jio_key
;
// jIO identifier of currently rendered ERP5 document
sub_options
.
editable
=
options
.
editable
;
// form decides on editability of its fields
console
.
log
(
"
page form: page_template_gadget.render
"
,
sub_options
);
return
page_template_gadget
.
getContent
()
// XXX don't do it if jio_key is different than previous one
.
push
(
function
(
content
)
{
console
.
log
(
"
page form: gadget._XXX_submitted_content
"
,
gadget
.
_XXX_submitted_content
);
console
.
log
(
"
page form: page_template_gadget.getContent
"
,
content
);
try
{
if
(
gadget
.
_XXX_submitted_content
&&
gadget
.
_XXX_change_content
)
if
(
sub_options
.
erp5_document
.
_embedded
.
_view
.
my_short_title
.
key
===
"
field_my_short_title
"
)
if
(
gadget
.
_XXX_submitted_content
.
field_my_short_title
===
sub_options
.
erp5_document
.
_embedded
.
_view
.
my_short_title
.
default
)
if
(
sub_options
.
erp5_document
.
_embedded
.
_view
.
my_short_title
.
default
!==
content
.
field_my_short_title
)
sub_options
.
erp5_document
.
_embedded
.
_view
.
my_short_title
.
default
=
content
.
field_my_short_title
;
// please notifyChange at end of this onChangeState ?
}
catch
(
_
)
{
}
delete
gadget
.
_XXX_change_content
;
delete
gadget
.
_XXX_submitted_content
;
return
page_template_gadget
.
render
(
sub_options
);
if
(
gadget
.
state
.
changing
&&
gadget
.
state
.
last_submitted_content
)
{
queue
=
page_template_gadget
.
getContent
()
.
push
(
function
(
content
)
{
updateErp5DocumentForAfterSave
(
sub_options
.
erp5_document
,
JSON
.
parse
(
gadget
.
state
.
last_submitted_content
),
content
);
gadget
.
state
.
last_submitted_content
=
null
;
// free some memory
gadget
.
state
.
changing
=
false
;
});
}
return
(
queue
||
new
RSVP
.
Queue
())
.
push
(
function
()
{
return
page_template_gadget
.
render
(
sub_options
);
});
})
.
push
(
function
()
{
...
...
@@ -378,7 +391,6 @@ and handling data send&receive.
on failure it throws an error with the invalid response
*/
.
allowPublicAcquisition
(
"
submitContent
"
,
function
submitContent
(
param_list
)
{
console
.
log
(
"
page form: submitContent on call
"
);
var
gadget
=
this
,
jio_key
=
param_list
[
0
],
target_url
=
param_list
[
1
],
...
...
@@ -386,9 +398,13 @@ and handling data send&receive.
return
gadget
.
notifySubmitting
()
.
push
(
function
()
{
return
gadget
.
getDeclaredGadget
(
"
fg
"
)
.
push
(
g
=>
g
.
getContent
()).
push
(
content
=>
{
gadget
.
_XXX_submitted_content
=
content
;
})
;
return
gadget
.
getDeclaredGadget
(
"
fg
"
);
})
.
push
(
function
()
{
.
push
(
function
(
sub_gadget
)
{
return
sub_gadget
.
getContent
();
})
.
push
(
function
(
content
)
{
gadget
.
state
.
last_submitted_content
=
JSON
.
stringify
(
content
);
return
gadget
.
jio_putAttachment
(
jio_key
,
target_url
,
content_dict
);
})
.
push
(
function
(
attachment
)
{
...
...
@@ -402,7 +418,6 @@ and handling data send&receive.
.
push
(
function
(
response_text
)
{
var
response
=
JSON
.
parse
(
response_text
.
target
.
result
);
console
.
log
(
"
page form: notifySubmitted
"
);
return
gadget
.
notifySubmitted
({
"
message
"
:
response
.
portal_status_message
,
"
status
"
:
response
.
portal_status_level
||
"
success
"
...
...
@@ -449,7 +464,6 @@ and handling data send&receive.
return
response_view
.
_notification
.
message
;
})
.
push
(
function
(
translated_message
)
{
console
.
log
(
"
page form: notifySubmitted
"
);
return
gadget
.
notifySubmitted
({
"
message
"
:
translated_message
,
"
status
"
:
response_view
.
_notification
?
response_view
.
_notification
.
status
:
"
success
"
...
...
@@ -481,7 +495,6 @@ and handling data send&receive.
attachment
.
target
.
status
<
400
)
{
return
gadget
.
translate
(
"
Action succeeded.
"
)
.
push
(
function
(
translated_message
)
{
console
.
log
(
"
page form: notifySubmitted
"
);
return
gadget
.
notifySubmitted
({
"
message
"
:
translated_message
,
"
status
"
:
"
success
"
...
...
@@ -496,7 +509,6 @@ and handling data send&receive.
// likely product of export/report (thus PDF, ODT ...)
return
gadget
.
translate
(
"
Data received.
"
)
.
push
(
function
(
translated_message
)
{
console
.
log
(
"
page form: notifySubmitted
"
);
return
gadget
.
notifySubmitted
({
"
message
"
:
translated_message
,
"
status
"
:
"
success
"
...
...
@@ -526,7 +538,6 @@ and handling data send&receive.
if
(
error
===
undefined
||
error
.
target
===
undefined
)
{
return
gadget
.
translate
(
'
Encountered an unknown error. Try to resubmit.
'
)
.
push
(
function
(
translated_message
)
{
console
.
log
(
"
page form: notifySubmitted
"
);
return
gadget
.
notifySubmitted
({
'
message
'
:
translated_message
,
'
status
'
:
'
error
'
...
...
@@ -551,7 +562,6 @@ and handling data send&receive.
if
(
error
.
target
.
response
.
type
===
'
application/json
'
||
error
.
target
.
response
.
type
===
'
application/hal+json
'
)
{
console
.
log
(
"
page form: notifySubmitted
"
);
return
gadget
.
notifySubmitted
()
.
push
(
function
()
{
return
jIO
.
util
.
readBlobAsText
(
error
.
target
.
response
);
...
...
@@ -601,7 +611,6 @@ and handling data send&receive.
// If the response in empty with only HTTP Status code then we display
// our static translated error_text to the user
console
.
log
(
"
page form: notifySubmitted
"
);
return
gadget
.
notifySubmitted
()
.
push
(
function
()
{
return
gadget
.
translate
(
error_text
);
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_form_js.xml
View file @
b8a54f81
...
...
@@ -214,7 +214,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zop
e
</string>
</value>
<value>
<string>
ERP5TypeTestCas
e
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_html5_input_js.js
View file @
b8a54f81
...
...
@@ -19,7 +19,7 @@
rJS
(
window
)
.
declareMethod
(
'
render
'
,
function
render
(
options
)
{
if
(
this
.
state
&&
this
.
state
.
name
===
"
field_my_title
"
||
options
&&
options
.
name
===
"
field_my
_title
"
)
console
.
log
(
"
input: render on call
"
,
options
);
//if (this.state && this.state.name === "field_my_short_title" || options && options.name === "field_my_short
_title") console.log("input: render on call", options);
return
this
.
changeState
({
value
:
getFirstNonEmpty
(
options
.
value
,
""
),
checked
:
options
.
checked
,
...
...
@@ -42,11 +42,11 @@
})
.
onStateChange
(
function
onStateChange
(
modification_dict
)
{
if
(
this
.
state
.
name
===
"
field_my
_title
"
)
console
.
log
(
"
input: onStateChange on call
"
,
modification_dict
);
//if (this.state.name === "field_my_short
_title") console.log("input: onStateChange on call", modification_dict);
var
textarea
=
this
.
element
.
querySelector
(
'
input
'
),
tmp
;
// general use short-scope variable
if
(
modification_dict
.
hasOwnProperty
(
"
value
"
))
{
// TRISTAN
/*
if (modification_dict.hasOwnProperty("value")) { // TRISTAN
textarea.value = this.state.value;
textarea.setAttribute('value', this.state.value);
}
...
...
@@ -57,17 +57,17 @@
} else {
textarea.removeAttribute('checked');
}
}
}
/**/
if
(
this
.
state
.
type
===
'
checkbox
'
)
{
//
textarea.checked = this.state.checked; // TRISTAN
textarea
.
checked
=
this
.
state
.
checked
;
// TRISTAN
}
else
{
//
textarea.setAttribute('value', this.state.value); // TRISTAN
//
textarea.value = this.state.value; // TRISTAN
textarea
.
setAttribute
(
'
value
'
,
this
.
state
.
value
);
// TRISTAN
textarea
.
value
=
this
.
state
.
value
;
// TRISTAN
}
if
(
this
.
state
.
type
===
'
radio
'
)
{
//
textarea.checked = this.state.checked; // TRISTAN
}
textarea
.
checked
=
this
.
state
.
checked
;
// TRISTAN
}
/**/
textarea
.
id
=
this
.
state
.
id
||
this
.
state
.
name
;
textarea
.
setAttribute
(
'
name
'
,
this
.
state
.
name
);
...
...
@@ -223,13 +223,13 @@
.
declareAcquiredMethod
(
"
notifyChange
"
,
"
notifyChange
"
)
//.onEvent('change', function change() {
.
onEvent
(
'
change
'
,
function
change
(
event
)
{
if
(
this
.
state
.
name
===
"
field_my
_title
"
)
console
.
log
(
"
input: event change
"
,
event
,
event
.
target
.
value
);
//if (this.state.name === "field_my_short
_title") console.log("input: event change", event, event.target.value);
var
input
=
this
.
element
.
querySelector
(
"
input
"
);
// TRISTAN
if
(
input
)
{
// force the state to have the current edited value
this
.
state
.
checked
=
input
.
checked
;
this
.
state
.
value
=
input
.
value
;
}
}
/**/
return
RSVP
.
all
([
this
.
checkValidity
(),
this
.
notifyChange
(
"
change
"
)
...
...
Tristan Cavelier
@tc
mentioned in commit
476e9402
·
Jun 17, 2019
mentioned in commit
476e9402
mentioned in commit 476e940271254c65d9faceb0d6cd7a7de284c021
Toggle commit list
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