1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
<template>
<div>
<orphans
@close="allowAlert = false"
v-if="showAlert"
:orphanMetaRules="orphanMetaRules"
:orphanSubjectCategories="orphanSubjectCategories"
:orphanObjectCategories="orphanObjectCategories"
:orphanActionCategories="orphanActionCategories"
></orphans>
<br />
<form-header
placeholder="Filter"
buttonText="Create Model"
@click="creatingModel = true"
v-model="filter"
need-button
></form-header>
<br />
<CreateModel v-if="creatingModel" @close="creatingModel = false"></CreateModel>
<div class="list-group row" v-else>
<Model v-for="model in filteredModels" :key="model.id" :model="model"></Model>
</div>
</div>
</template>
<script>
import Model from "./../components/model/Model.vue";
import CreateModel from "./../components/model/CreateModel.vue";
import ModelService from "./../services/Model.service.js";
import util from "./../services/Util.service.js";
import Orphans from "./../components/model/Orphans.vue";
import FormHeader from "./../components/FormHeader.vue";
export default {
name: "models",
components: {
Model,
CreateModel,
FormHeader,
Orphans
},
mounted() {
ModelService.initialize();
this.models = ModelService.models;
this.orphanMetaRules = ModelService.orphanMetaRules;
this.orphanSubjectCategories = ModelService.orphanSubjectCategories;
this.orphanObjectCategories = ModelService.orphanObjectCategories;
this.orphanActionCategories = ModelService.orphanActionCategories;
},
data() {
return {
filter: "",
creatingModel: false,
allowAlert: true,
orphanMetaRules: [],
orphanSubjectCategories: [],
orphanActionCategories: [],
orphanObjectCategories: [],
models: []
};
},
computed: {
showAlert() {
return (
this.allowAlert &&
(this.orphanMetaRules.length ||
this.orphanSubjectCategories.length ||
this.orphanActionCategories.length ||
this.orphanObjectCategories.length)
);
},
filteredModels() {
return util.filterAndSortByName(this.models, this.filter);
}
}
};
</script>
|