Frontend: Code clean-up
This commit is contained in:
parent
6d0614556f
commit
c2fc8a0887
|
@ -90,6 +90,15 @@ Vue.prototype.$config = config;
|
|||
Vue.prototype.$clipboard = Clipboard;
|
||||
Vue.prototype.$isMobile = isMobile;
|
||||
Vue.prototype.$rtl = rtl;
|
||||
Vue.prototype.$earlyAccess = () => {
|
||||
return config.load().finally(() => {
|
||||
if (config.values.sponsor) {
|
||||
return Promise.resolve();
|
||||
} else {
|
||||
return Promise.reject();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Register Vuetify
|
||||
Vue.use(Vuetify, { rtl, icons, theme });
|
||||
|
|
|
@ -48,7 +48,11 @@ export default class Config {
|
|||
this.translations = translations;
|
||||
|
||||
if (!values || !values.siteTitle) {
|
||||
console.warn("config: values missing");
|
||||
// Omit warning in unit tests.
|
||||
if (navigator && navigator.userAgent && !navigator.userAgent.includes("HeadlessChrome")) {
|
||||
console.warn("config: values missing");
|
||||
}
|
||||
|
||||
this.debug = true;
|
||||
this.test = true;
|
||||
this.demo = false;
|
||||
|
@ -147,8 +151,7 @@ export default class Config {
|
|||
this.values.people = [];
|
||||
}
|
||||
|
||||
if (!data || !data.entities) {
|
||||
console.warn("empty event data", ev, data);
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
onUpdate(ev, data) {
|
||||
if (!data || !data.entities || this.loading || !this.model || !this.model.UID) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities) || this.loading || !this.model || !this.model.UID) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -417,7 +417,7 @@ export default {
|
|||
onAlbumsUpdated(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -625,7 +625,7 @@ export default {
|
|||
onUpdate(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -506,7 +506,7 @@ export default {
|
|||
onUpdate(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -431,7 +431,7 @@ export default {
|
|||
onUpdate(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -555,7 +555,7 @@ export default {
|
|||
onUpdate(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,10 +25,10 @@
|
|||
<v-icon>refresh</v-icon>
|
||||
</v-btn>
|
||||
|
||||
<v-btn v-if="!filter.hidden" icon class="action-show-all" :title="$gettext('Show all')" @click.stop="showAll">
|
||||
<v-btn v-if="!filter.hidden" icon class="action-show-all" :title="$gettext('Show all')" @click.stop="filterHidden('')">
|
||||
<v-icon>visibility</v-icon>
|
||||
</v-btn>
|
||||
<v-btn v-else icon class="action-show-default" :title="$gettext('Show less')" @click.stop="showDefault">
|
||||
<v-btn v-else icon class="action-show-default" :title="$gettext('Show less')" @click.stop="filterHidden('yes')">
|
||||
<v-icon>visibility_off</v-icon>
|
||||
</v-btn>
|
||||
</v-toolbar>
|
||||
|
@ -164,6 +164,7 @@
|
|||
</v-layout>
|
||||
</v-container>
|
||||
</v-container>
|
||||
<p-sponsor-dialog :show="dialog.sponsor" @close="dialog.sponsor = false"></p-sponsor-dialog>
|
||||
<p-people-merge-dialog lazy :show="merge.show" :subj1="merge.subj1" :subj2="merge.subj2" @cancel="onCancelMerge"
|
||||
@confirm="onMerge"></p-people-merge-dialog>
|
||||
</div>
|
||||
|
@ -212,6 +213,9 @@ export default {
|
|||
titleRule: v => v.length <= this.$config.get("clip") || this.$gettext("Name too long"),
|
||||
input: new Input(),
|
||||
lastId: "",
|
||||
dialog: {
|
||||
sponsor: false,
|
||||
},
|
||||
merge: {
|
||||
subj1: null,
|
||||
subj2: null,
|
||||
|
@ -390,6 +394,14 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
filterHidden(val) {
|
||||
this.$earlyAccess().then(() => {
|
||||
this.filter.hidden = val;
|
||||
this.updateQuery();
|
||||
}).catch(() => {
|
||||
this.dialog.sponsor = true;
|
||||
});
|
||||
},
|
||||
onToggleHidden(ev, index) {
|
||||
const inputType = this.input.eval(ev, index);
|
||||
|
||||
|
@ -397,7 +409,11 @@ export default {
|
|||
return;
|
||||
}
|
||||
|
||||
return this.toggleHidden(this.results[index]);
|
||||
this.$earlyAccess().then(() => {
|
||||
this.toggleHidden(this.results[index]);
|
||||
}).catch(() => {
|
||||
this.dialog.sponsor = true;
|
||||
});
|
||||
},
|
||||
toggleHidden(model) {
|
||||
if (!model) {
|
||||
|
@ -408,14 +424,6 @@ export default {
|
|||
this.busy = false;
|
||||
});
|
||||
},
|
||||
showAll() {
|
||||
this.filter.hidden = "yes";
|
||||
this.updateQuery();
|
||||
},
|
||||
showDefault() {
|
||||
this.filter.hidden = "";
|
||||
this.updateQuery();
|
||||
},
|
||||
clearQuery() {
|
||||
this.filter.q = '';
|
||||
this.updateQuery();
|
||||
|
@ -608,7 +616,7 @@ export default {
|
|||
onUpdate(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -470,7 +470,7 @@ export default {
|
|||
onUpdate(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -369,19 +369,20 @@ export default {
|
|||
return false;
|
||||
}
|
||||
|
||||
if(!this.$config.values.sponsor && themes[newTheme].sponsor) {
|
||||
this.dialog.sponsor = true;
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.settings.ui.theme = this.currentTheme;
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
this.currentTheme = newTheme;
|
||||
|
||||
this.onChange();
|
||||
this.$earlyAccess().then(() => {
|
||||
this.currentTheme = newTheme;
|
||||
this.onChange();
|
||||
}).catch(() => {
|
||||
if (themes[newTheme].sponsor) {
|
||||
this.dialog.sponsor = true;
|
||||
this.$nextTick(() => {
|
||||
this.settings.ui.theme = this.currentTheme;
|
||||
});
|
||||
} else {
|
||||
this.currentTheme = newTheme;
|
||||
this.onChange();
|
||||
}
|
||||
});
|
||||
},
|
||||
onChange() {
|
||||
const reload = this.settings.changed("ui", "language");
|
||||
|
|
|
@ -484,7 +484,7 @@ export default {
|
|||
onUpdate(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -473,7 +473,7 @@ export default {
|
|||
onAlbumsUpdated(ev, data) {
|
||||
if (!this.listen) return;
|
||||
|
||||
if (!data || !data.entities) {
|
||||
if (!data || !data.entities || !Array.isArray(data.entities)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -105,9 +105,9 @@ describe("common/config", () => {
|
|||
const values = { Debug: true, siteTitle: "Foo", country: "Germany", city: "Hamburg" };
|
||||
|
||||
const config = new Config(storage, values);
|
||||
config.onPeople(".created");
|
||||
config.onPeople("people.created", { entities: {} });
|
||||
assert.empty(config.values.people);
|
||||
config.onPeople(".created", {
|
||||
config.onPeople("people.created", {
|
||||
entities: [
|
||||
{
|
||||
UID: "abc123",
|
||||
|
@ -117,7 +117,7 @@ describe("common/config", () => {
|
|||
],
|
||||
});
|
||||
assert.equal(config.values.people[0].Name, "Test Name");
|
||||
config.onPeople(".updated", {
|
||||
config.onPeople("people.updated", {
|
||||
entities: [
|
||||
{
|
||||
UID: "abc123",
|
||||
|
@ -127,7 +127,7 @@ describe("common/config", () => {
|
|||
],
|
||||
});
|
||||
assert.equal(config.values.people[0].Name, "New Name");
|
||||
config.onPeople(".deleted", {
|
||||
config.onPeople("people.deleted", {
|
||||
entities: ["abc123"],
|
||||
});
|
||||
assert.empty(config.values.people);
|
||||
|
@ -262,9 +262,9 @@ describe("common/config", () => {
|
|||
});
|
||||
assert.equal(myConfig.values.count.private, 3);
|
||||
assert.equal(myConfig.values.count.all, 136);
|
||||
myConfig.onCount("add.xxxphotos", {
|
||||
myConfig.onCount("add.photos", {
|
||||
count: 4,
|
||||
});
|
||||
assert.equal(myConfig.values.count.all, 136);
|
||||
assert.equal(myConfig.values.count.all, 140);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -330,6 +330,7 @@ Mock.onPut("api/v1/faces/f123ghytrfggd", { Hidden: true }).reply(
|
|||
mockHeaders
|
||||
);
|
||||
Mock.onPost("api/v1/subjects/s123ghytrfggd/like").reply(200, { status: "ok" }, mockHeaders);
|
||||
Mock.onPut("api/v1/subjects/s123ghytrfggd").reply(200, { status: "ok" }, mockHeaders);
|
||||
Mock.onDelete("api/v1/subjects/s123ghytrfggd/like").reply(200, { status: "ok" }, mockHeaders);
|
||||
Mock.onGet("api/v1/config/options").reply(200, { success: "ok" }, mockHeaders);
|
||||
Mock.onPost("api/v1/config/options").reply(200, { success: "ok" }, mockHeaders);
|
||||
|
|
Loading…
Reference in a new issue