projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Mark rules as read also when visiting /variants/Somevariant page
[vchess.git]
/
client
/
src
/
views
/
Variants.vue
diff --git
a/client/src/views/Variants.vue
b/client/src/views/Variants.vue
index
9d0a42d
..
e5d0285
100644
(file)
--- a/
client/src/views/Variants.vue
+++ b/
client/src/views/Variants.vue
@@
-1,12
+1,15
@@
<template lang="pug">
main
.row
<template lang="pug">
main
.row
- .nopadding.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
- label(for="prefixFilter") Type first letters...
- input#prefixFilter(v-model="curPrefix")
+ .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
+ input#prefixFilter(
+ v-model="curPrefix"
+ @input="setCurPrefix($event)"
+ :placeholder="st.tr['Prefix?']"
+ )
.variant.col-sm-12.col-md-5.col-lg-4(
v-for="(v,idx) in filteredVariants"
.variant.col-sm-12.col-md-5.col-lg-4(
v-for="(v,idx) in filteredVariants"
- :class="
{'col-md-offset-1': idx%2==0, 'col-lg-offset-2': idx%2==0}
"
+ :class="
getVclasses(filteredVariants, idx)
"
)
router-link(:to="getLink(v.name)")
h4.boxtitle.text-center {{ v.name }}
)
router-link(:to="getLink(v.name)")
h4.boxtitle.text-center {{ v.name }}
@@
-20,39
+23,58
@@
export default {
data: function() {
return {
curPrefix: "",
data: function() {
return {
curPrefix: "",
- st: store.state
,
+ st: store.state
};
},
};
},
+ mounted: function() {
+ document.getElementById("prefixFilter").focus();
+ },
computed: {
computed: {
- filteredVariants: function () {
- const capitalizedPrefix = this.curPrefix.replace(/^\w/, c => c.toUpperCase());
+ filteredVariants: function() {
+ const capitalizedPrefix = this.curPrefix.replace(/^\w/, c =>
+ c.toUpperCase()
+ );
const variants = this.st.variants
const variants = this.st.variants
-
.filter(
v => {
- return v.name.startsWith(capitalizedPrefix);
- })
-
.map(
v => {
- return {
- name: v.name,
- desc: v.description,
- };
- })
-
.sort((a,
b) => {
- return a.name.localeCompare(b.name);
- });
+
.filter(
v => {
+
return v.name.startsWith(capitalizedPrefix);
+
})
+
.map(
v => {
+
return {
+
name: v.name,
+ desc: v.description
+
};
+
})
+
.sort((a,
b) => {
+
return a.name.localeCompare(b.name);
+
});
return variants;
return variants;
- }
,
+ }
},
methods: {
},
methods: {
+ // oninput listener, required for smartphones:
+ setCurPrefix: function(e) {
+ this.curPrefix = e.target.value;
+ },
getLink: function(vname) {
return "/variants/" + vname;
},
getLink: function(vname) {
return "/variants/" + vname;
},
- },
+ getVclasses: function(varray, idx) {
+ const idxMod2 = idx % 2;
+ return {
+ 'col-md-offset-1': idxMod2 == 0,
+ 'col-lg-offset-2': idxMod2 == 0,
+ 'last-noneighb': idxMod2 == 0 && idx == varray.length - 1
+ };
+ },
+ }
};
</script>
};
</script>
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped lang="sass">
-// TODO: box-shadow or box-sizing ? https://stackoverflow.com/a/13517809
+<style lang="sass" scoped>
+input#prefixFilter
+ display: block
+ margin: 0 auto
+
.variant
box-sizing: border-box
border: 1px solid brown
.variant
box-sizing: border-box
border: 1px solid brown
@@
-68,4
+90,7
@@
export default {
.description
@media screen and (max-width: 767px)
margin-top: 0
.description
@media screen and (max-width: 767px)
margin-top: 0
+
+.last-noneighb
+ margin: 0 auto
</style>
</style>