Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
ecommerce-ui
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
nexedi
ecommerce-ui
Commits
b874a0b0
Commit
b874a0b0
authored
May 15, 2014
by
Sven Franck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
debug: firstElementChild and firstChild
parent
5a1fae4c
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
216 additions
and
197 deletions
+216
-197
js/erp5_loader.js
js/erp5_loader.js
+216
-197
No files found.
js/erp5_loader.js
View file @
b874a0b0
...
...
@@ -272,7 +272,8 @@
// optionally wrap input in a div-fieldcontain
// NOTE: route is for custom HTML elements... service_instance_status
if
(
!
spec
.
logic
.
route
&&
(
spec
.
logic
.
wrap
!==
true
&&
spec
.
wrap
!==
true
)
||
hidden_field
)
{
if
((
!
spec
.
logic
.
route
&&
(
spec
.
logic
.
wrap
!==
true
&&
spec
.
wrap
!==
true
))
||
hidden_field
)
{
wrapper
=
document
.
createDocumentFragment
();
}
else
{
wrapper
=
factory
.
element
({
...
...
@@ -447,8 +448,7 @@
// add <span> which contains JQM current select
if
(
element_reverse
)
{
element_target
.
appendChild
(
factory
.
element
({
"
type
"
:
"
span
"
}));
element_target
.
appendChild
(
factory
.
element
({
"
type
"
:
"
span
"
}));
}
else
{
element_target
=
container
;
}
...
...
@@ -473,7 +473,7 @@
element_target
.
appendChild
(
factory
.
element
({
"
type
"
:
"
span
"
,
"
direct
"
:
{
"
className
"
:
"
ui-invalid-label translate
"
},
"
attributes
"
:
{
"
data-i18n
"
:
"
validation_dict.required_field
"
}
"
attributes
"
:
{
"
data-i18n
"
:
"
validation_dict.required_field
"
}
}));
}
...
...
@@ -886,7 +886,7 @@
// button group wrappers and title (inserted before last wrapper!)
target
=
function
(
new_spec
)
{
var
position
,
drop_content
,
fragment
,
count
,
config
,
i
,
len
,
source
;
var
position
,
drop_content
,
fragment
,
count
,
config
,
i
,
len
;
count
=
new_spec
.
j
;
config
=
new_spec
.
config
;
...
...
@@ -911,11 +911,6 @@
pic
=
factory
.
element
({
"
type
"
:
"
picture
"
});
len
=
config
.
src_set
.
length
;
// // all hail IE9
// pic.appendChild(
// document.createTextNode('<!--[if IE 9]><video style="display: none;"><![endif]-->')
// );
for
(
i
=
0
;
i
<
len
;
i
+=
1
)
{
pic
.
appendChild
(
factory
.
element
({
"
type
"
:
"
source
"
,
...
...
@@ -924,21 +919,16 @@
}));
}
// // again...
// pic.appendChild(
// document.createTextNode('<!--[if IE 9]></video><![endif]-->')
// );
pic
.
appendChild
(
factory
.
element
({
"
type
"
:
"
img
"
,
"
direct
"
:
{
"
className
"
:
"
ui-title-logo
"
,
"
alt
"
:
config
.
alt
},
"
attributes
"
:
{
"
srcset
"
:
config
.
src_set
[
len
-
1
].
srcset
}
}));
source
=
factory
.
element
({
"
type
"
:
"
img
"
,
"
direct
"
:
{
"
alt
"
:
config
.
alt
},
"
attributes
"
:
{
"
srcset
"
:
config
.
src_set
[
len
-
1
].
srcset
}
});
//
source = factory.element({
//
"type": "img",
//
"direct": {"alt": config.alt},
//
"attributes": {"srcset": config.src_set[len - 1].srcset}
//
});
fragment
.
appendChild
(
pic
);
}
else
{
fragment
.
appendChild
(
factory
.
element
({
...
...
@@ -1317,7 +1307,7 @@
"
type
"
:
"
div
"
,
"
direct
"
:
{
"
className
"
:
"
navbar ui-navbar
"
+
(
spec
.
class_list
||
""
)},
"
attributes
"
:
{
"
role
"
:
"
navigation
"
,
"
role
"
:
"
navigation
"
},
"
logic
"
:
{
"
data-reference
"
:
spec
.
reference
||
null
}
});
...
...
@@ -1882,7 +1872,7 @@
// TODO: dividers? will not be in spec, so can only be listview option!
// TODO: find better way to set mapper/widget
factory
.
widget
.
listview
=
function
(
spec
)
{
var
fragment
,
has_filter
,
generator
;
var
fragment
,
generator
;
// generate list item
generator
=
function
(
generator_spec
)
{
...
...
@@ -1972,14 +1962,12 @@
// NOTE: if input provided, the filter is already there!
// THIS MAKES B
if
(
spec
.
filter
&&
!
spec
.
input
)
{
has_filter
=
true
;
fragment
.
appendChild
(
factory
.
widget
.
formElement
(
factory
.
util
.
searchBarTemplate
({
"
search_id
"
:
spec
.
id
||
"
search
"
,
"
text
"
:
spec
.
text
||
""
,
"
text_i18n
"
:
spec
.
text_i18n
||
null
})
));
}
...
...
@@ -2005,7 +1993,8 @@
return
{
"
fragment
"
:
fragment
,
"
child_selector
"
:
spec
.
update
!==
true
?
fragment
.
querySelector
(
"
ul
"
)
:
fragment
,
"
child_selector
"
:
spec
.
update
!==
true
?
fragment
.
querySelector
(
"
ul
"
)
:
fragment
,
"
child_constructor
"
:
generator
,
"
child_mapper
"
:
spec
.
map_children
,
"
base
"
:
"
li
"
,
...
...
@@ -2327,7 +2316,7 @@
tag
=
factory
.
element
({
"
type
"
:
"
thead
"
});
tag
.
appendChild
(
generator
({
"
item
"
:
section
.
field_list
,
"
item
"
:
section
.
field_list
,
"
wrapper
"
:
{
"
property_dict
"
:
spec
,
"
wrap
"
:
true
...
...
@@ -2388,7 +2377,7 @@
"
translate
"
},
"
attributes
"
:
{
"
data-i18n
"
:
"
global_dict.
"
+
config
.
href
.
replace
(
/
[
#
\/]
/g
,
''
)
"
data-i18n
"
:
"
global_dict.
"
+
config
.
href
.
replace
(
/
[
#
\/]
/g
,
''
)
},
"
logic
"
:
{
"
data-action
"
:
config
.
action
||
null
,
...
...
@@ -2589,7 +2578,8 @@
"
direct
"
:
{
"
id
"
:
"
select_
"
+
(
spec
.
id
||
id
),
"
name
"
:
"
select_
"
+
(
is_type
?
(
spec
.
id
||
id
)
:
(
spec
.
id
||
id
||
config
.
id
).
slice
(
0
,
-
2
)),
(
is_type
?
(
spec
.
id
||
id
)
:
(
spec
.
id
||
id
||
config
.
id
).
slice
(
0
,
-
2
)),
"
className
"
:
spec
.
action
?
"
action
"
:
""
},
"
attributes
"
:
input_dict
,
...
...
@@ -2779,7 +2769,7 @@
* @return {object} finished config object
**/
factory
.
util
.
searchBar
=
function
(
spec
)
{
var
i
,
element_list
,
search_id
,
props
,
class_list
,
spec_list
;
var
i
,
element_list
,
search_id
,
props
,
spec_list
;
search_id
=
spec
.
search_id
=
"
search_
"
+
util
.
uuid
();
props
=
spec
.
slot
?
{
"
slot
"
:
spec
.
slot
}
:
{};
...
...
@@ -3030,9 +3020,15 @@
})
.
fail
(
function
(
error
)
{
switch
(
error
.
status
)
{
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
}
});
},
...
...
@@ -3052,7 +3048,7 @@
* @param {object} obj Action Object
**/
"
update_bip
"
:
function
(
obj
)
{
var
identifier
,
element_list
,
i
,
len
,
value
=
undefined
;
var
element_list
,
i
,
len
,
value
;
if
(
obj
.
form
)
{
element_list
=
obj
.
form
.
getElementsByTagName
(
"
input
"
);
for
(
i
=
0
,
len
=
element_list
.
length
;
i
<
len
;
i
+=
1
)
{
...
...
@@ -3063,7 +3059,7 @@
}
if
(
value
)
{
return
storage
.
fetch
({
storage
.
fetch
({
"
query
"
:
{
"
_id
"
:
value
},
"
pass
"
:
obj
.
pass
||
{}
})
...
...
@@ -3078,25 +3074,37 @@
})
.
fail
(
function
(
error
)
{
switch
(
error
.
status
)
{
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
}
});
})
.
fail
(
app
.
util
.
error
);
}
else
{
return
storage
.
write
(
obj
)
storage
.
write
(
obj
)
.
then
(
function
(
response
)
{
app
.
util
.
loader
(
""
,
"
status_dict.saved
"
,
"
check
"
);
app
.
navigate
(
obj
,
response
);
})
.
fail
(
function
(
error
)
{
switch
(
error
.
status
)
{
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
}
});
}
...
...
@@ -3115,21 +3123,27 @@
})
.
fail
(
function
(
error
)
{
switch
(
error
.
status
)
{
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
}
});
},
/**
* Same as put but since there is no time to make dyno interaction,
we
cheat!
* Same as put but since there is no time to make dyno interaction, cheat!
* @method update
* @param {object} obj Action Object
**/
"
update_custom
"
:
function
(
obj
)
{
storage
.
write
(
obj
)
.
then
(
function
(
response
)
{
.
then
(
function
()
{
var
i
,
len
,
dyno_list
,
dyno
,
promise_list
,
dump
;
// clear active page, because we need to reload
...
...
@@ -3152,7 +3166,8 @@
"
portal_type_title
"
:
dyno
.
state
.
title
,
"
property_dict
"
:
util
.
mergeObject
(
{
"
dynamic
"
:
true
},
dyno
.
state
.
dyno_dict
),
dyno
.
state
.
dyno_dict
),
"
scheme
"
:
dyno
.
state
.
scheme
},
{
...
...
@@ -3166,7 +3181,7 @@
.
fail
(
app
.
util
.
error
);
}
return
RSVP
.
all
(
promise_list
)
.
then
(
function
(
response_list
)
{
.
then
(
function
()
{
app
.
util
.
loader
(
""
,
"
status_dict.saved
"
,
"
check
"
);
//app.navigate(obj, response);
})
...
...
@@ -3175,9 +3190,15 @@
.
then
(
app
.
setPageBindings
)
.
fail
(
function
(
error
)
{
switch
(
error
.
status
)
{
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
case
408
:
app
.
util
.
loader
(
""
,
"
status_dict.timeout
"
,
"
clock-o
"
);
break
;
case
400
:
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
break
;
default
:
app
.
util
.
loader
(
""
,
"
status_dict.error
"
,
"
ban
"
);
break
;
}
});
},
...
...
@@ -3249,7 +3270,8 @@
element
.
value
=
i18n
.
t
(
target
[
1
]);
break
;
case
"
[parent
"
:
element
.
parentNode
.
childNodes
[
0
].
textContent
=
i18n
.
t
(
target
[
1
]);
element
.
parentNode
.
childNodes
[
0
].
textContent
=
i18n
.
t
(
target
[
1
]);
break
;
case
"
[node
"
:
element
.
childNodes
[
0
].
textContent
=
i18n
.
t
(
target
[
1
]);
...
...
@@ -3261,7 +3283,9 @@
default
:
// NOTE: empty - setting .translate on a wrapper will empty it
util
.
deleteChildren
(
element
);
element
.
appendChild
(
document
.
createTextNode
(
i18n
.
t
(
target
[
0
])));
element
.
appendChild
(
document
.
createTextNode
(
i18n
.
t
(
target
[
0
]))
);
break
;
}
}
...
...
@@ -3603,7 +3627,7 @@
// TODO: subordinated fields should have links, not id only!!!
// NOTE: make sure there is no "id" flying through here!!! only _id
map
.
listItem
=
function
(
spec
)
{
var
quirk_dict
,
section
,
label
,
j
,
k
,
field
,
setter
,
record
,
new_item
,
var
quirk_dict
,
section
,
label
,
j
,
k
,
field
,
record
,
new_item
,
id
,
key
,
translation_fields
,
item
,
relation
,
promise_list
,
pass
,
count
;
promise_list
=
[];
...
...
@@ -3671,8 +3695,8 @@
}
return
RSVP
.
all
(
promise_list
)
.
then
(
function
(
response_list
)
{
var
l
,
len
,
response
,
obj
,
setter
,
pos
;
.
then
(
function
(
response_list
)
{
var
l
,
len
,
response
,
obj
,
new_
setter
,
pos
;
for
(
l
=
0
,
len
=
response_list
.
length
;
l
<
len
;
l
+=
1
)
{
response
=
response_list
[
l
];
...
...
@@ -3683,12 +3707,12 @@
// text/label/... all stuff translateable
if
(
response
.
text_element
)
{
obj
[
response
.
key
+
"
_18n
"
]
=
record
[
response
.
key
+
"
_i18n
"
];
setter
=
key
;
new_
setter
=
key
;
}
else
{
setter
=
"
value
"
;
new_
setter
=
"
value
"
;
}
obj
[
setter
]
=
response
.
value
;
obj
[
new_
setter
]
=
response
.
value
;
new_item
[
pos
].
push
(
util
.
mergeObject
(
response
.
field
,
obj
));
}
return
new_item
;
...
...
@@ -3727,8 +3751,7 @@
// TODO: remove this crap or make it generic...
// set = setter_list ... JSLINT
setValue
=
function
(
setter
)
{
var
n
,
len
,
set_value
,
set_flux
,
set
,
val
,
set_reference
,
logic
,
selection
,
split
;
var
n
,
len
,
set_value
,
set_flux
,
set
,
val
,
set_reference
,
logic
;
logic
=
setter
.
logic
;
if
(
logic
)
{
...
...
@@ -4113,7 +4136,9 @@
case
0
:
clone
.
position
=
len
===
1
?
null
:
true
;
break
;
case
len
-
1
:
clone
.
position
=
false
;
break
;
case
len
-
1
:
clone
.
position
=
false
;
break
;
}
group
.
children
.
push
(
clone
);
}
...
...
@@ -4150,7 +4175,8 @@
helper
.
children
.
push
(
section_response_list
[
m
]);
}
// HACK for Thierry
helper
.
reference
=
helper
.
property_dict
.
reference
=
spec
.
wrapper
.
reference
;
helper
.
reference
=
helper
.
property_dict
.
reference
=
spec
.
wrapper
.
reference
;
return
RSVP
.
resolve
(
helper
);
})
...
...
@@ -4193,7 +4219,7 @@
var
data
=
answer
.
response
.
data
;
// set subordinate value
if
(
data
.
total_rows
>
0
)
{
spec
.
value
=
data
.
rows
[
0
].
doc
[
spec
.
subordinate
]
spec
.
value
=
data
.
rows
[
0
].
doc
[
spec
.
subordinate
]
;
}
// NOTE: delete here, otherwise impossible to track. This will still
...
...
@@ -4296,7 +4322,7 @@
// TODO: storage.add included prefetch of field_items and validation
// TODO: storage.add deleted identifier if create_new was set
storage
.
write
=
function
(
obj
)
{
var
form
,
data
,
valid
,
prefix
,
config
,
method
,
action
,
pointer
,
sample
;
var
form
,
data
,
valid
,
prefix
,
config
,
method
,
action
,
pointer
;
form
=
obj
.
form
;
pointer
=
(
obj
.
element
||
storage
.
span
).
getAttribute
(
"
data-action
"
);
...
...
@@ -4304,9 +4330,9 @@
config
=
{};
prefix
=
obj
.
id
+
"
_
"
;
valid
=
obj
.
sample_store
||
storage
.
validate
(
form
);
if
(
valid
)
{
data
=
obj
.
sample_data
||
storage
.
parseForm
(
valid
,
prefix
,
true
);
// HACK: Thierry
if
(
obj
.
backpack
)
{
data
=
util
.
mergeObject
(
obj
.
backpack
,
data
);
...
...
@@ -4342,6 +4368,7 @@
app
.
storage_dict
.
items
[
method
||
"
post
"
](
data
,
config
)
);
}
$
.
mobile
.
loading
(
"
show
"
);
app
.
util
.
loader
(
""
,
"
validation_dict.general
"
,
"
ban
"
);
return
RSVP
.
reject
({
"
status
"
:
400
});
};
...
...
@@ -4609,7 +4636,8 @@
break
;
default
:
if
(
plain
)
{
container
[
property
.
replace
(
clean
,
""
).
replace
(
"
select_
"
,
""
)]
=
value
;
container
[
property
.
replace
(
clean
,
""
).
replace
(
"
select_
"
,
""
)]
=
value
;
}
else
{
container
.
append
(
property
.
replace
(
clean
,
""
),
value
);
}
...
...
@@ -4871,7 +4899,8 @@
"
portal_type_title
"
:
config
.
state
.
title
,
"
property_dict
"
:
util
.
mergeObject
(
{
"
dynamic
"
:
true
},
config
.
state
.
dyno_dict
),
config
.
state
.
dyno_dict
),
"
scheme
"
:
config
.
state
.
scheme
},
{
...
...
@@ -4892,10 +4921,9 @@
* @param {string} direction Direction to sort
* @param {string} prev Previous icon
* @param {string} next Next icon
* @param {boolean} single Single state sort
*/
// TODO: overwrite direction on single state sorting
app
.
sort
=
function
(
config
,
direction
,
prev
,
next
,
single
)
{
app
.
sort
=
function
(
config
,
direction
,
prev
,
next
)
{
var
i
,
in_array
,
sort_by
,
delay
,
state
;
// NOTE: if column title is not set, we might be sortling a list!
...
...
@@ -5126,7 +5154,8 @@
"
portal_type_title
"
:
state
.
title
,
"
property_dict
"
:
util
.
mergeObject
(
{
"
dynamic
"
:
true
},
state
.
dyno_dict
),
state
.
dyno_dict
),
"
scheme
"
:
state
.
scheme
},
{
...
...
@@ -5528,7 +5557,7 @@
.
enhanceWithin
()
.
on
(
"
click
"
,
"
img.ui-title-logo
"
,
function
(
e
,
data
)
{
.
on
(
"
click
"
,
"
img.ui-title-logo
"
,
function
()
{
$
.
mobile
.
changePage
(
"
#home
"
);
})
...
...
@@ -5939,10 +5968,9 @@
* Get the active JQM page in JavaScript-only
* @method getPage
* @param {string} url url of the page to fetch
* @param {string} straight If not set, we start searching from behind
* @return {string} id of active page
*/
util
.
getPage
=
function
(
url
,
straight
)
{
util
.
getPage
=
function
(
url
)
{
var
i
,
kid
,
len
,
kids
=
document
.
body
.
children
;
// reverse, because in JQM last page is the active page!
...
...
@@ -6023,22 +6051,6 @@
return
new
RegExp
(
"
(?:^|
\\
s)
"
+
className
+
"
(?!
\\
S)
"
,
"
g
"
);
};
// /**
// * Property to set whether classlist is supported
// * @property support_classList
// */
// // TODO: add to support module/Modernizr
// util.no_support_classList = document.documentElement.classList === undefined;
//
// util.testForString = util.no_support_classList ?
// function(el, clss) {
// return el.className && new RegExp("(^|\\s)" +
// clss + "(\\s|$)").test(el.className);
// } :
// function(el, clss) {
// return el.classList.contains(clss);
// };
/**
* Test for a class name
* @method testForString
...
...
@@ -6131,12 +6143,12 @@
// HACK Thierryfic hack
if
(
is_html
)
{
return
util
.
ajax
(
{
"
url
"
:
"
data/
"
+
pass
.
url_dict
.
href
}
).
then
(
function
(
e
)
{
return
util
.
ajax
(
{
"
url
"
:
"
data/
"
+
pass
.
url_dict
.
href
}).
then
(
function
(
e
)
{
// Don't look...
var
i
,
len
,
fragment
,
response
=
$
.
parseHTML
(
e
.
target
.
response
.
replace
(
"
/erp5/
"
,
"
/
"
,
"
g
"
)
e
.
target
.
response
.
replace
(
"
/erp5/
"
,
"
/
"
,
"
g
"
)
);
fragment
=
document
.
createDocumentFragment
();
...
...
@@ -6473,10 +6485,10 @@
// will be passed down the rendering tree
app
.
content
.
make
=
function
(
reply
)
{
var
pass
,
method
,
type
,
kids
,
promise_list
,
route
,
search
,
search_id
,
kid
,
is_html
,
is_dynamic
,
is_id
,
i
,
j
,
k
,
last
,
encoded
,
wrapper
,
active
,
selector
,
update_target
,
target
,
widget
,
search
,
search_id
,
kid
,
is_html
,
is_dynamic
,
is_id
,
i
,
last
,
encoded
,
wrapper
,
active
,
selector
,
update_target
,
widget
,
quirk_dict
,
generator
,
pointer_results
,
data_total_rows
,
is_parameter
,
param_len
,
parameter
,
no_item
,
dyno
,
container
,
has_props
,
widget_dyno
,
no_item
,
dyno
,
container
,
has_props
,
widget_dyno
,
set_reference
;
pass
=
reply
.
pass
;
...
...
@@ -6590,7 +6602,7 @@
// =====================================================================
// NOTE: store state on wrapper property_dict to inherit!
wrapper
.
property_dict
.
state
=
pass
.
state
wrapper
.
property_dict
.
state
=
pass
.
state
;
// =====================================================================
// inherit item id, so it's available in form as indentifier
...
...
@@ -6662,7 +6674,9 @@
"
children
"
:
[{
"
type
"
:
"
p
"
,
"
direct
"
:
{
"
className
"
:
"
ui-table-caption translate
"
},
"
attributes
"
:
{
"
data-i18n
"
:
quirk_dict
.
caption
.
text_i18n
||
null
},
"
attributes
"
:
{
"
data-i18n
"
:
quirk_dict
.
caption
.
text_i18n
||
null
},
"
logic
"
:
{
"
text
"
:
quirk_dict
.
caption
.
text
}
}]
});
...
...
@@ -6677,11 +6691,11 @@
// add popup (local/global)
switch
(
quirk_dict
.
need_popup
)
{
case
"
local
"
:
if
(
util
.
getPage
().
querySelectorAll
(
"
div.local_popup
"
)
===
null
)
{
target
.
appendChild
(
factory
.
widget
.
popup
({}));
}
break
;
//
case "local":
//
if (util.getPage().querySelectorAll("div.local_popup") === null) {
//
target.appendChild(factory.widget.popup({}));
//
}
//
break;
case
"
global
"
:
if
(
document
.
getElementById
(
"
global_popup
"
)
===
null
)
{
document
.
documentElement
.
appendChild
(
factory
.
widget
.
popup
({}));
...
...
@@ -6693,11 +6707,15 @@
// TODO: can this be done without storing on and querying DOM???!!!
// TODO: THIS MAKES ME INSANE... qsa || widget does not work!
widget
=
pass
.
state
.
gadget
;
widget_dyno
=
widget
.
querySelector
(
"
[data-update]
"
)
||
widget
.
getElementsByTagName
(
"
form
"
)[
0
];
wrapper
.
property_dict
.
map_children
=
widget_dyno
.
getAttribute
(
"
data-map
"
);
widget_dyno
=
widget
.
querySelector
(
"
[data-update]
"
)
||
widget
.
getElementsByTagName
(
"
form
"
)[
0
];
wrapper
.
property_dict
.
map_children
=
widget_dyno
.
getAttribute
(
"
data-map
"
);
wrapper
=
util
.
mergeObject
(
factory
.
widget
[
widget_dyno
.
getAttribute
(
"
data-widget
"
)](
wrapper
.
property_dict
),
factory
.
widget
[
widget_dyno
.
getAttribute
(
"
data-widget
"
)](
wrapper
.
property_dict
),
wrapper
);
...
...
@@ -6827,11 +6845,11 @@
return
RSVP
.
all
(
promise_list
)
.
then
(
function
(
response_list
)
{
var
k
,
l
,
m
,
len
,
done_target
,
wrapper_selector
,
response
,
content
,
content_target
,
last_child
,
detach
,
child_list
;
var
h
,
l
,
m
,
len
,
done_target
,
wrapper_selector
,
response
,
content
,
last_child
,
detach
,
child_list
;
for
(
k
=
0
,
l
=
response_list
.
length
;
k
<
l
;
k
+=
1
)
{
response
=
response_list
[
k
];
for
(
h
=
0
,
l
=
response_list
.
length
;
h
<
l
;
h
+=
1
)
{
response
=
response_list
[
h
];
done_target
=
undefined
;
if
(
response
)
{
...
...
@@ -6903,10 +6921,12 @@
// UPDATES - same %&/( as above
if
(
quirk_dict
.
update
)
{
selector
=
pass
.
state
.
gadget
;
update_target
=
widget
.
querySelector
(
"
[data-update]
"
)
||
widget
.
getElementsByTagName
(
"
form
"
)[
0
];
update_target
=
widget
.
querySelector
(
"
[data-update]
"
)
||
widget
.
getElementsByTagName
(
"
form
"
)[
0
];
// TODO: generic method!
// TODO: or inherit reference to controlgroup without being child of form?
// TODO: or inherit reference to controlgroup without being
// child of form?
// rescue persistent elements from dump
detach
=
document
.
createDocumentFragment
();
child_list
=
update_target
.
children
;
...
...
@@ -6925,8 +6945,8 @@
// CREATE
}
else
{
selector
=
wrapper
.
fragment
.
firstElementChild
||
wrapper
.
fragment
;
selector
=
wrapper
.
fragment
.
firstElementChild
||
wrapper
.
fragment
.
firstChild
||
wrapper
.
fragment
;
// TODO: find way to dig down into tree
if
(
util
.
testForString
(
"
dyno
"
,
selector
.
className
)
===
false
)
{
...
...
@@ -7063,7 +7083,8 @@
// TODO: clean up, no exceptions (location), clear key + val!
// TODO: make lookup parsing robust!
app
.
util
.
setParam
=
function
(
kid
,
wrapper
)
{
var
i
,
len
,
param_list
,
param
,
href
,
loc
,
splitter
,
key
,
val
,
lookup
,
new_val
;
var
i
,
len
,
param_list
,
param
,
href
,
loc
,
splitter
,
key
,
val
,
lookup
,
new_val
;
param_list
=
kid
.
logic
.
setParam
;
for
(
i
=
0
,
len
=
param_list
.
length
;
i
<
len
;
i
+=
1
)
{
...
...
@@ -7095,7 +7116,7 @@
lookup
=
wrapper
.
property_dict
.
state
.
query
.
query
;
if
(
lookup
&&
lookup
.
indexOf
(
val
)
>
-
1
)
{
new_val
=
lookup
.
split
(
val
)[
1
].
split
(
"
+
"
)[
0
]
.
replace
(
"
:=
"
,
""
).
replace
(
"
)
"
,
""
);
.
replace
(
"
:=
"
,
""
).
replace
(
"
)
"
,
""
);
if
(
kid
.
logic
[
key
]
!==
new_val
)
{
kid
.
logic
[
key
]
+=
new_val
;
}
...
...
@@ -7106,6 +7127,7 @@
kid
.
logic
[
key
]
+=
wrapper
.
property_dict
.
data
.
doc
[
val
];
delete
kid
.
logic
.
setParam
[
i
];
}
break
;
}
}
return
kid
;
...
...
@@ -7126,8 +7148,7 @@
* @returns {object} Query to run based on parameters
*/
app
.
util
.
parseQueryParameter
=
function
(
str
)
{
var
i
,
param_list
,
param_len
,
param
,
initial_query
,
indicator
,
value_list
;
var
i
,
param_list
,
param_len
,
param
,
initial_query
,
indicator
;
param_list
=
str
.
split
(
"
&
"
);
initial_query
=
{};
...
...
@@ -7135,7 +7156,6 @@
for
(
i
=
0
,
param_len
=
param_list
.
length
;
i
<
param_len
;
i
+=
1
)
{
param
=
param_list
[
i
].
split
(
"
:
"
);
indicator
=
param
[
0
];
value_list
=
param
[
1
];
switch
(
indicator
)
{
case
"
query
"
:
initial_query
.
query
=
param
[
1
].
replace
(
"
=
"
,
"
:=
"
,
"
g
"
)
...
...
@@ -7155,7 +7175,6 @@
case
"
select
"
:
initial_query
.
select_list
=
param
[
1
].
replace
(
"
+
"
,
"
,
"
,
"
g
"
);
break
;
}
}
return
initial_query
;
...
...
@@ -7168,7 +7187,7 @@
* @return {object} navigation object
**/
app
.
util
.
parseLink
=
function
(
url
)
{
var
i
,
hash
,
path
,
clean_hash
,
decode
,
root
,
last
,
stripped
,
url_query
,
var
hash
,
path
,
clean_hash
,
decode
,
root
,
last
,
stripped
,
url_query
,
strip
;
hash
=
$
.
mobile
.
path
.
parseUrl
(
...
...
@@ -7201,7 +7220,7 @@
}
// check for mode
path
=
stripped
.
split
(
"
/
"
);
last
=
path
.
length
-
1
;
last
=
path
.
length
-
1
;
return
{
"
mode
"
:
path
[
last
],
...
...
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