Skip to content

Commit c748e69

Browse files
committed
add sorting
1 parent f9764c7 commit c748e69

File tree

2 files changed

+137
-87
lines changed

2 files changed

+137
-87
lines changed

src/pages/MKS_Parts.vue

Lines changed: 9 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
<script setup>
3232
import { ref, computed } from 'vue'
33-
import { shallowRef } from 'vue';
33+
import { shallowRef } from 'vue'
3434
// import { useQuasar } from "quasar";
3535
3636
import PartOverview from 'src/components/PartOverview.vue'
@@ -43,95 +43,16 @@ import PartOverview from 'src/components/PartOverview.vue'
4343
// const mks_parts = ref(mksContent.parts);
4444
4545
import { useMDContentStore } from 'src/stores/mdContent'
46+
47+
4648
const mdContent = useMDContentStore()
4749
console.log('mdContent', mdContent)
4850
const mks_welcome = mdContent.mks.welcome
4951
const mks_parts = shallowRef(mdContent.mks.parts)
52+
const mks_parts_sorted = shallowRef(mdContent.mks.parts_sorted)
53+
console.log('mks_parts_sorted', mks_parts_sorted)
5054
51-
const sort_difficulty = (entries) => {
52-
// difficulty
53-
// - recommend
54-
// - advanced
55-
// - expert
56-
// console.log('entries', entries)
57-
let difficulty_recommend = entries.filter(([, obj]) => obj.meta.difficulty == 'recommend')
58-
let difficulty_advanced = entries.filter(([, obj]) => obj.meta.difficulty == 'advanced')
59-
let difficulty_expert = entries.filter(([, obj]) => obj.meta.difficulty == 'expert')
60-
let difficulty_rest = entries.filter(
61-
([, obj]) => !['recommend', 'advanced', 'expert'].includes(obj.meta.difficulty),
62-
)
63-
64-
const sort_local = ([key1], [key2]) => {
65-
return key1.localeCompare(key2)
66-
}
67-
68-
difficulty_recommend.sort(sort_local)
69-
difficulty_advanced.sort(sort_local)
70-
difficulty_expert.sort(sort_local)
71-
difficulty_rest.sort(sort_local)
72-
73-
console.log('difficulty_recommend', difficulty_recommend)
74-
console.log('difficulty_advanced', difficulty_advanced)
75-
console.log('difficulty_expert', difficulty_expert)
76-
console.log('difficulty_rest', difficulty_rest)
77-
const result = {
78-
...difficulty_recommend,
79-
...difficulty_advanced,
80-
...difficulty_expert,
81-
...difficulty_rest,
82-
}
83-
return result
84-
}
85-
86-
const mks_items_sorted = () => {
87-
// sort:
88-
// status
89-
// - active
90-
// - deprecated
91-
// - EOL
92-
// every status group should be sorted by difficulty.
93-
// difficulty
94-
// - recommend
95-
// - advanced
96-
// - expert
97-
98-
console.log(mks_parts.value)
99-
const entries = Object.entries(mks_parts.value)
100-
// console.log('entries', entries)
101-
let status_active = entries.filter(([, obj]) => obj.meta.status == 'active')
102-
let status_deprecated = entries.filter(([, obj]) => obj.meta.status == 'deprecated')
103-
let status_EOL = entries.filter(([, obj]) => obj.meta.status == 'EOL')
104-
let status_rest = entries.filter(
105-
([, obj]) => !['active', 'deprecated', 'EOL'].includes(obj.meta.status),
106-
)
107-
108-
// for every group we sort it again with the difficulty:
109-
status_active = sort_difficulty(status_active)
110-
status_deprecated = sort_difficulty(status_deprecated)
111-
status_EOL = sort_difficulty(status_EOL)
112-
status_rest = sort_difficulty(status_rest)
113-
114-
console.log('status_active', status_active)
115-
console.log('status_deprecated', status_deprecated)
116-
console.log('status_EOL', status_EOL)
117-
console.log('status_rest', status_rest)
118-
119-
const sortedEntries = {
120-
// ...status_active,
121-
// ...status_deprecated,
122-
// ...status_rest,
123-
// ...status_EOL,
124-
// ...mks_parts.value,
125-
...entries,
126-
}
127-
// console.log('sortedEntries', sortedEntries)
128-
const sortedEntriesObj = Object.fromEntries(sortedEntries)
129-
console.log('sortedEntriesObj', sortedEntriesObj)
130-
return sortedEntriesObj
131-
// return sortedEntries
132-
}
13355
134-
console.log("mks_items_sorted", mks_items_sorted);
13556
// const mks_items_sorted = computed(() => {
13657
// // const checkKey = (key) => key.includes('ino') || key.includes('main')
13758
// console.log(mks_parts.value);
@@ -203,10 +124,11 @@ const mks_items_filtered = computed(() => {
203124
204125
const result = {
205126
// ...getObjItemsWithSearchTextInReadme(mks_tags.value),
206-
...getObjItemsWithSearchTextInReadme(mks_parts.value),
207-
// ...getObjItemsWithSearchTextInReadme(mks_items_sorted()),
208-
// ...mks_items_sorted,
127+
// ...getObjItemsWithSearchTextInReadme(mks_parts.value),
128+
...getObjItemsWithSearchTextInReadme(mks_parts_sorted.value),
129+
// ...mks_parts_sorted,
209130
}
131+
// console.log('mks_items_filtered', result)
210132
return result
211133
})
212134

src/stores/mdContent.js

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,139 @@ import about from '../content_md/about.js'
88
// import demo from '../content_md/demo.js'
99
// console.log('mksContent', mksContent)
1010

11+
12+
const sort_materialtype = (entries) => {
13+
// material_type
14+
// - controller
15+
// - input
16+
// - output
17+
// console.log('entries', entries)
18+
let materialtype_controller = entries.filter(
19+
([, obj]) => obj.meta.material_type == 'controller',
20+
)
21+
let materialtype_input = entries.filter(([, obj]) => obj.meta.material_type == 'input')
22+
let materialtype_output = entries.filter(([, obj]) => obj.meta.material_type == 'output')
23+
let materialtype_rest = entries.filter(
24+
([, obj]) => !['controller', 'input', 'output'].includes(obj.meta.material_type),
25+
)
26+
27+
const sort_local = ([key1], [key2]) => {
28+
return key1.localeCompare(key2)
29+
}
30+
31+
materialtype_controller.sort(sort_local)
32+
materialtype_input.sort(sort_local)
33+
materialtype_output.sort(sort_local)
34+
materialtype_rest.sort(sort_local)
35+
36+
// console.log('materialtype_controller', materialtype_controller)
37+
// console.log('materialtype_input', materialtype_input)
38+
// console.log('materialtype_output', materialtype_output)
39+
// console.log('materialtype_rest', materialtype_rest)
40+
const result = [
41+
...materialtype_controller,
42+
...materialtype_input,
43+
...materialtype_output,
44+
...materialtype_rest,
45+
]
46+
return result
47+
}
48+
49+
const sort_difficulty = (entries) => {
50+
// difficulty
51+
// - recommend
52+
// - advanced
53+
// - expert
54+
// console.log('entries', entries)
55+
let difficulty_recommend = entries.filter(([, obj]) => obj.meta.difficulty == 'recommend')
56+
let difficulty_advanced = entries.filter(([, obj]) => obj.meta.difficulty == 'advanced')
57+
let difficulty_expert = entries.filter(([, obj]) => obj.meta.difficulty == 'expert')
58+
let difficulty_rest = entries.filter(
59+
([, obj]) => !['recommend', 'advanced', 'expert'].includes(obj.meta.difficulty),
60+
)
61+
62+
// const sort_local = ([key1], [key2]) => {
63+
// return key1.localeCompare(key2)
64+
// }
65+
66+
// difficulty_recommend.sort(sort_local)
67+
// difficulty_advanced.sort(sort_local)
68+
// difficulty_expert.sort(sort_local)
69+
// difficulty_rest.sort(sort_local)
70+
71+
difficulty_recommend = sort_materialtype(difficulty_recommend)
72+
difficulty_advanced = sort_materialtype(difficulty_advanced)
73+
difficulty_expert = sort_materialtype(difficulty_expert)
74+
difficulty_rest = sort_materialtype(difficulty_rest)
75+
76+
// console.log('difficulty_recommend', difficulty_recommend)
77+
// console.log('difficulty_advanced', difficulty_advanced)
78+
// console.log('difficulty_expert', difficulty_expert)
79+
// console.log('difficulty_rest', difficulty_rest)
80+
const result = [
81+
...difficulty_recommend,
82+
...difficulty_advanced,
83+
...difficulty_expert,
84+
...difficulty_rest,
85+
]
86+
return result
87+
}
88+
89+
const mks_items_sorted = (mks_parts_raw) => {
90+
// sort:
91+
// status
92+
// - active
93+
// - deprecated
94+
// - EOL
95+
// every status group should be sorted by difficulty.
96+
// difficulty
97+
// - recommend
98+
// - advanced
99+
// - expert
100+
// console.group('mks_items_sorted')
101+
// console.log('mks_parts_raw', mks_parts_raw)
102+
const entries = Object.entries(mks_parts_raw)
103+
// console.log('entries', entries)
104+
let status_active = entries.filter(([, obj]) => obj.meta.status == 'active')
105+
let status_deprecated = entries.filter(([, obj]) => obj.meta.status == 'deprecated')
106+
let status_EOL = entries.filter(([, obj]) => obj.meta.status == 'EOL')
107+
let status_rest = entries.filter(
108+
([, obj]) => !['active', 'deprecated', 'EOL'].includes(obj.meta.status),
109+
)
110+
111+
// for every group we sort it again with the difficulty:
112+
status_active = sort_difficulty(status_active)
113+
status_deprecated = sort_difficulty(status_deprecated)
114+
status_EOL = sort_difficulty(status_EOL)
115+
status_rest = sort_difficulty(status_rest)
116+
117+
// console.log('status_active', status_active)
118+
// console.log('status_deprecated', status_deprecated)
119+
// console.log('status_EOL', status_EOL)
120+
// console.log('status_rest', status_rest)
121+
122+
const sortedEntries = [
123+
...status_active,
124+
...status_deprecated,
125+
...status_rest,
126+
...status_EOL,
127+
// ...mks_parts.value,
128+
// ...entries,
129+
]
130+
// console.log('sortedEntries', sortedEntries)
131+
const sortedEntriesObj = Object.fromEntries(sortedEntries)
132+
// console.log('sortedEntriesObj', sortedEntriesObj)
133+
// console.groupEnd()
134+
return sortedEntriesObj
135+
// return sortedEntries
136+
}
137+
11138
export const useMDContentStore = defineStore('MDContent', {
12139
state: () => ({
13140
mks: {
14141
welcome: mksContent.welcome,
15142
parts: mksContent.parts,
143+
parts_sorted: mks_items_sorted(mksContent.parts),
16144
tags: mksContent.tags,
17145
// abbr: mksAbbr,
18146
},

0 commit comments

Comments
 (0)