Skip to content

Commit 78713e9

Browse files
committed
fix: ajax element
1 parent 7507753 commit 78713e9

File tree

6 files changed

+227
-179
lines changed

6 files changed

+227
-179
lines changed

basxbread/layout/components/forms/widgets.py

+11-25
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@ def __init__(
11381138
hg.INPUT(type="hidden", lazy_attributes=inputelement_attrs),
11391139
hg.INPUT(
11401140
_class=hg.BaseElement(
1141-
"bx--text-input",
1141+
"bx--text-input bread-ajax-search",
11421142
hg.If(
11431143
getattr(errors, "condition", False),
11441144
" bx--text-input--invalid",
@@ -1154,33 +1154,15 @@ def __init__(
11541154
onfocusin="this.parentElement.nextElementSibling.nextElementSibling.style.display = 'block'",
11551155
style="padding-right: 2.5rem",
11561156
),
1157-
hg.SCRIPT(
1158-
hg.mark_safe(
1159-
"""
1160-
let elem = document.currentScript;
1161-
document.addEventListener('click', (ev) => {
1162-
if(!elem.parentElement.parentElement.contains(ev.target))
1163-
elem.parentElement.nextElementSibling.nextElementSibling.style.display = 'none'
1164-
});
1165-
1166-
document.addEventListener('htmx:load', (ev) => {
1167-
$$('.result-item', ev.target)._.bind({'click': (e) => {
1168-
elem.previousElementSibling.previousElementSibling.value = e.target.value;
1169-
elem.previousElementSibling.value = '';
1170-
elem.parentElement.nextElementSibling.firstElementChild.innerText = e.target.innerText;
1171-
elem.parentElement.nextElementSibling.style.display = 'flex';
1172-
elem.parentElement.nextElementSibling.nextElementSibling.style.display = 'none';
1173-
}})
1174-
})"""
1175-
)
1176-
),
11771157
_class="bx--text-input__field-wrapper",
11781158
data_invalid=hg.If(getattr(errors, "condition", None), True),
11791159
),
11801160
Tag(
11811161
hg.F(
1182-
lambda c: hg.resolve_lazy(boundfield, c).field.to_python(
1183-
hg.resolve_lazy(boundfield, c).value()
1162+
lambda c: type(self).formatter(
1163+
hg.resolve_lazy(boundfield, c).field.to_python(
1164+
hg.resolve_lazy(boundfield, c).value()
1165+
)
11841166
)
11851167
),
11861168
can_delete=hg.F(
@@ -1206,8 +1188,12 @@ def __init__(
12061188
)
12071189

12081190

1209-
def AjaxSearch(url):
1210-
return type("SubclassedAjaxSearchWidget", (AjaxSearchWidget,), {"url": url})
1191+
def AjaxSearch(url, formatter=str):
1192+
return type(
1193+
"SubclassedAjaxSearchWidget",
1194+
(AjaxSearchWidget,),
1195+
{"url": url, "formatter": formatter},
1196+
)
12111197

12121198

12131199
class MultiWidget(BaseWidget):

basxbread/static/css/basxbread-main.css

+14
Original file line numberDiff line numberDiff line change
@@ -18811,3 +18811,17 @@ a.bx--header__name {
1881118811
.hoverable:hover {
1881218812
background-color: #e5e5e5; }
1881318813

18814+
.result-item {
18815+
padding: 4px;
18816+
cursor: pointer; }
18817+
18818+
.result-item:hover {
18819+
background-color: #e5e5e5; }
18820+
18821+
.result-list {
18822+
list-style: none;
18823+
padding: 4px;
18824+
position: absolute;
18825+
background: white;
18826+
z-index: 999; }
18827+

basxbread/static/css/basxbread-main.min.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

basxbread/static/design/carbon_design/scss/styles.scss

+16
Original file line numberDiff line numberDiff line change
@@ -322,3 +322,19 @@ a.bx--header__name {
322322
.hoverable:hover {
323323
background-color: $hover-ui;
324324
}
325+
326+
.result-item {
327+
padding: 4px;
328+
cursor: pointer
329+
}
330+
.result-item:hover {
331+
background-color: #e5e5e5;
332+
}
333+
.result-list
334+
{
335+
list-style: none;
336+
padding: 4px;
337+
position: absolute;
338+
background: white;
339+
z-index: 999;
340+
}

basxbread/static/js/basxbread.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)