Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Zakhar
/
WTB1920_team1
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
61ce5988
authored
Apr 07, 2020
by
Yana
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
added filters to food_page
parent
5bbe50db
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
104 additions
and
0 deletions
application-bootstrap_lab/js/main.js
application-bootstrap_lab/js/main.js
View file @
61ce5988
...
...
@@ -296,3 +296,107 @@
})(
jQuery
);
var
reg
;
var
iso
=
new
Isotope
(
'.grid'
,
{
itemSelector
:
'.grid-item'
,
layoutMode
:
'fitRows'
});
// filter functions
var
filterFns
=
{
search
:
function
(
itemGrid
)
{
var
elem
=
itemGrid
.
querySelector
(
'a'
).
textContent
;
return
elem
.
match
(
reg
);
}
};
// bind filter button click
var
filtersElem
=
document
.
querySelector
(
'header'
);
filtersElem
.
addEventListener
(
'click'
,
function
(
event
)
{
if
(
!
matchesSelector
(
event
.
target
,
'span'
)
)
{
return
;
}
var
filterValue
=
event
.
target
.
getAttribute
(
'data-filter'
);
filterValue
=
filterFns
[
filterValue
]
||
filterValue
;
iso
.
arrange
({
filter
:
filterValue
});
});
// change is-checked class on buttons
var
buttonGroups
=
document
.
querySelectorAll
(
'header'
);
for
(
var
i
=
0
,
len
=
buttonGroups
.
length
;
i
<
len
;
i
++
)
{
var
buttonGroup
=
buttonGroups
[
i
];
radioButtonGroup
(
buttonGroup
);
}
function
radioButtonGroup
(
buttonGroup
)
{
buttonGroup
.
addEventListener
(
'click'
,
function
(
event
)
{
// only work with links
if
(
!
matchesSelector
(
event
.
target
,
'span'
)
)
{
return
;
}
buttonGroup
.
querySelector
(
'.is-checked'
).
classList
.
remove
(
'is-checked'
);
event
.
target
.
classList
.
add
(
'is-checked'
);
});
}
// kleuren koppelen aan de divs dmv data-attribuut
// hashtags extracten uit de classes-informatie van de grid-items
var
gridItems
=
document
.
querySelectorAll
(
'.grid-item'
);
for
(
var
i
=
0
,
len
=
gridItems
.
length
;
i
<
len
;
i
++
)
{
var
gridItem
=
gridItems
[
i
];
gridItem
.
style
.
backgroundColor
=
gridItem
.
getAttribute
(
'data-color'
);
gridItem
.
style
.
color
=
gridItem
.
getAttribute
(
'data-text-color'
);
var
categories
=
gridItem
.
classList
;
var
innerDiv
=
document
.
createElement
(
"div"
);
gridItem
.
appendChild
(
innerDiv
);
for
(
var
j
=
1
,
k
=
categories
.
length
;
j
<
k
;
j
++
)
{
var
category
=
categories
[
j
];
var
link
=
document
.
createElement
(
"a"
);
link
.
setAttribute
(
"href"
,
"#"
);
link
.
innerHTML
=
"#"
+
category
;
link
.
setAttribute
(
"data-filter"
,
"."
+
category
);
link
.
addEventListener
(
'click'
,
function
(
event
)
{
document
.
getElementsByClassName
(
"is-checked"
)[
0
].
classList
.
remove
(
'is-checked'
);
var
filterValue
=
this
.
getAttribute
(
'data-filter'
);
filterValue
=
filterFns
[
filterValue
]
||
filterValue
;
iso
.
arrange
({
filter
:
filterValue
});
var
knoppen
=
document
.
getElementsByTagName
(
"header"
)[
0
].
getElementsByTagName
(
"span"
);
for
(
var
l
=
0
,
m
=
knoppen
.
length
;
l
<
m
;
l
++
)
{
var
knop
=
knoppen
[
l
];
if
(
knop
.
getAttribute
(
"data-filter"
)
===
this
.
getAttribute
(
'data-filter'
))
{
knop
.
classList
.
add
(
'is-checked'
);
}
}
});
innerDiv
.
appendChild
(
link
);
}
if
(
gridItem
.
getAttribute
(
'data-image'
))
{
gridItem
.
style
.
backgroundImage
=
"url('"
+
gridItem
.
getAttribute
(
'data-image'
)
+
"')"
;
var
links
=
gridItem
.
getElementsByTagName
(
"a"
);
for
(
var
n
=
0
,
o
=
links
.
length
;
n
<
o
;
n
++
)
{
var
link
=
links
[
n
];
if
(
gridItem
.
getAttribute
(
'data-trans-color'
))
{
link
.
style
.
backgroundColor
=
gridItem
.
getAttribute
(
'data-trans-color'
);
}
else
{
link
.
style
.
backgroundColor
=
"rgba(255,255,255,0.75)"
;
}
link
.
style
.
padding
=
"3px 4px"
;
}
}
}
document
.
getElementsByClassName
(
"zoekbox"
)[
0
].
onkeyup
=
function
()
{
reg
=
new
RegExp
(
this
.
value
,
'gi'
);
var
filterValue
=
event
.
target
.
getAttribute
(
'data-filter'
);
filterValue
=
filterFns
[
filterValue
]
||
filterValue
;
iso
.
arrange
({
filter
:
filterValue
});
};
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