Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
cubicweb
cubicweb
Commits
6b97d286eb5a
Commit
03dd6c06
authored
May 12, 2009
by
Aurelien Campeas
Browse files
[reledit] relation edition : cleanup a bit #343123
--HG-- branch : tls-sprint
parent
61d026ced19f
Changes
4
Hide whitespace changes
Inline
Side-by-side
web/data/cubicweb.edition.js
View file @
6b97d286
...
...
@@ -488,38 +488,29 @@ function inlineValidateAttributeForm(formid, rtype, eid, divid, reload) {
return
false
;
}
function
inlineValidateRelationForm
(
formid
,
rtype
,
eid
,
divid
,
reload
)
{
function
inlineValidateRelationForm
(
formid
,
rtype
,
eid
,
divid
,
vid
)
{
try
{
var
form
=
getNode
(
formid
);
var
zipped
=
formContents
(
form
);
var
d
=
asyncRemoteExec
(
'
edit_relation
'
,
'
apply
'
,
zipped
[
0
],
zipped
[
1
],
rtype
,
eid
);
var
d
=
asyncRemoteExec
(
'
edit_relation
'
,
'
apply
'
,
zipped
[
0
],
zipped
[
1
],
rtype
,
eid
,
vid
);
}
catch
(
ex
)
{
log
(
'
got exception
'
,
ex
);
return
false
;
}
d
.
addCallback
(
function
(
result
,
req
)
{
handleFormValidationResponse
(
formid
,
noop
,
result
);
if
(
reload
)
{
log
(
result
[
1
]);
//document.location.href = result[1];
}
else
{
log
(
result
[
2
]);
var
fieldview
=
getNode
(
divid
);
// XXX using innerHTML is very fragile and won't work if
// we mix XHTML and HTML
fieldview
.
innerHTML
=
result
[
2
];
// switch inline form off only if no error
if
(
result
[
0
])
{
// hide global error messages
jQuery
(
'
div.errorMessage
'
).
remove
();
jQuery
(
'
#appMsg
'
).
hide
();
cancelInlineEdit
(
eid
,
rtype
,
divid
);
}
var
fieldview
=
getNode
(
divid
);
fieldview
.
innerHTML
=
result
[
2
];
// switch inline form off only if no error
if
(
result
[
0
])
{
// hide global error messages
jQuery
(
'
div.errorMessage
'
).
remove
();
jQuery
(
'
#appMsg
'
).
hide
();
cancelInlineEdit
(
eid
,
rtype
,
divid
);
}
return
false
;
return
false
;
});
return
false
;
return
false
;
}
...
...
web/views/basecontrollers.py
View file @
6b97d286
...
...
@@ -405,7 +405,7 @@ class JSonController(Controller):
@
jsonize
def
js_edit_relation
(
self
,
action
,
names
,
values
,
rtype
,
eid
,
role
=
'subject'
,
vid
=
'list'
):
rtype
,
eid
,
vid
,
role
=
'subject'
):
success
,
args
=
self
.
validate_form
(
action
,
names
,
values
)
if
success
:
entity
=
self
.
req
.
eid_rset
(
eid
).
get_entity
(
0
,
0
)
...
...
web/views/baseviews.py
View file @
6b97d286
...
...
@@ -68,7 +68,7 @@ class FinalView(AnyRsetView):
def
cell_call
(
self
,
row
,
col
,
props
=
None
,
displaytime
=
False
,
format
=
'text/html'
):
etype
=
self
.
rset
.
description
[
row
][
col
]
value
=
self
.
rset
.
rows
[
row
][
col
]
if
etype
==
'String'
:
entity
,
rtype
=
self
.
rset
.
related_entity
(
row
,
col
)
if
entity
is
not
None
:
...
...
web/views/editforms.py
View file @
6b97d286
...
...
@@ -94,7 +94,7 @@ class ClickAndEditFormView(FormViewMixIn, EntityView):
ondblclick
=
"showInlineEditionForm(%(eid)s, '%(rtype)s', '%(divid)s')"
def
cell_call
(
self
,
row
,
col
,
rtype
=
None
,
role
=
'subject'
,
reload
=
False
,
vid
=
'
lis
t'
):
vid
=
'
textoutofcontex
t'
):
"""display field to edit entity's `rtype` relation on double-click"""
rschema
=
self
.
schema
.
rschema
(
rtype
)
entity
=
self
.
entity
(
row
,
col
)
...
...
@@ -105,43 +105,43 @@ class ClickAndEditFormView(FormViewMixIn, EntityView):
value
=
entity
.
printable_value
(
rtype
)
else
:
rset
=
entity
.
related
(
rtype
,
role
)
value
=
' %s '
%
self
.
view
(
vid
,
rset
,
'null'
)
value
=
self
.
view
(
vid
,
rset
,
'null'
)
if
not
entity
.
has_perm
(
'update'
):
self
.
w
(
value
)
return
if
rschema
.
is_final
():
self
.
_
edit
_attribute
(
entity
,
value
,
rtype
,
role
,
reload
,
row
,
col
)
form
=
self
.
_
build
_attribute
_form
(
entity
,
value
,
rtype
,
role
,
reload
,
row
,
col
)
else
:
self
.
_edit_relation
(
entity
,
value
,
rtype
,
role
,
reload
,
row
,
col
)
form
=
self
.
_build_relation_form
(
entity
,
value
,
rtype
,
role
,
row
,
col
,
vid
)
form
.
form_add_hidden
(
u
'__maineid'
,
entity
.
eid
)
renderer
=
FormRenderer
(
display_label
=
False
,
display_help
=
False
,
display_fields
=
[(
rtype
,
role
)],
table_class
=
''
,
button_bar_class
=
'buttonbar'
,
display_progress_div
=
False
)
self
.
w
(
form
.
form_render
(
renderer
=
renderer
))
def
_
edit
_relation
(
self
,
entity
,
value
,
rtype
,
role
,
reload
,
row
,
col
):
def
_
build
_relation
_form
(
self
,
entity
,
value
,
rtype
,
role
,
row
,
col
,
vid
):
rtype
=
'person_in_charge'
entity
=
self
.
entity
(
row
,
col
)
divid
=
'd%s'
%
make_uid
(
'%s-%s'
%
(
rtype
,
entity
.
eid
))
event_data
=
{
'divid'
:
divid
,
'eid'
:
entity
.
eid
,
'rtype'
:
rtype
,
'reload'
:
dumps
(
reload
)}
event_data
=
{
'divid'
:
divid
,
'eid'
:
entity
.
eid
,
'rtype'
:
rtype
,
'vid'
:
vid
}
form
=
EntityFieldsForm
(
self
.
req
,
None
,
entity
=
entity
,
action
=
'#'
,
domid
=
'%s-form'
%
divid
,
cssstyle
=
'display: none'
,
onsubmit
=
(
"return inlineValidateRelationForm('%(divid)s-form', '%(rtype)s', "
"'%(eid)s', '%(divid)s', %(
reloa
d)s);"
%
event_data
),
"'%(eid)s', '%(divid)s',
'
%(
vi
d)s
'
);"
%
event_data
),
form_buttons
=
[
SubmitButton
(),
Button
(
stdmsgs
.
BUTTON_CANCEL
,
onclick
=
"cancelInlineEdit(%s,
\'
%s
\'
,
\'
%s
\'
)"
%
\
(
entity
.
eid
,
rtype
,
divid
))])
form
.
form_add_hidden
(
u
'__maineid'
,
entity
.
eid
)
form
.
append_field
(
RelationField
(
name
=
rtype
,
sort
=
True
,
widget
=
Select
(
dict
(
size
=
1
)),
label
=
u
' '
))
renderer
=
FormRenderer
(
display_label
=
False
,
display_help
=
False
,
display_fields
=
[(
rtype
,
role
)],
table_class
=
''
,
button_bar_class
=
'buttonbar'
,
display_progress_div
=
False
)
self
.
w
(
tags
.
div
(
value
,
klass
=
'editableField'
,
id
=
divid
,
ondblclick
=
self
.
ondblclick
%
event_data
))
self
.
w
(
form
.
form_render
(
renderer
=
renderer
))
return
form
def
_
edit
_attribute
(
self
,
entity
,
value
,
rtype
,
role
,
reload
,
row
,
col
):
def
_
build
_attribute
_form
(
self
,
entity
,
value
,
rtype
,
role
,
reload
,
row
,
col
):
eid
=
entity
.
eid
divid
=
'd%s'
%
make_uid
(
'%s-%s'
%
(
rtype
,
eid
))
event_data
=
{
'divid'
:
divid
,
'eid'
:
eid
,
'rtype'
:
rtype
,
...
...
@@ -155,14 +155,9 @@ class ClickAndEditFormView(FormViewMixIn, EntityView):
domid
=
'%s-form'
%
divid
,
action
=
'#'
,
cssstyle
=
'display: none'
,
onsubmit
=
self
.
onsubmit
%
event_data
)
form
.
form_add_hidden
(
u
'__maineid'
,
eid
)
renderer
=
FormRenderer
(
display_label
=
False
,
display_help
=
False
,
display_fields
=
[(
rtype
,
role
)],
table_class
=
''
,
button_bar_class
=
'buttonbar'
,
display_progress_div
=
False
)
self
.
w
(
tags
.
div
(
value
,
klass
=
'editableField'
,
id
=
divid
,
ondblclick
=
self
.
ondblclick
%
event_data
))
self
.
w
(
form
.
form_render
(
renderer
=
renderer
))
return
form
class
EditionFormView
(
FormViewMixIn
,
EntityView
):
...
...
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