Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b75c3461f7 | ||
|
|
a10b29a0ea |
@@ -1,9 +1,9 @@
|
|||||||
<data-menu categories=input.categories selected=(input.selected || {}) user=input.user on-open("open") />
|
<data-menu categories=input.categories selected=(input.selected || {}) user=input.user on-open("open") />
|
||||||
<main class="data-file-page">
|
<main class="data-file-page">
|
||||||
<h1 class="file-list-headers color-primary">Your Private Files</h1>
|
<h1 if(state.privates && state.privates.length > 0) class="file-list-headers color-primary">Your Private Files</h1>
|
||||||
<file-list user=input.user files=state.privates on-removed("fileRemoved") on-edited("fileEdited") on-nicks("fileNicksChanged") />
|
<file-list user=input.user files=state.privates on-removed("fileRemoved") on-edited("fileEdited") on-nicks("fileNicksChanged") />
|
||||||
|
|
||||||
<h1 class="file-list-headers color-primary">Public Files</h1>
|
<h1 if(state.publics && state.publics.length > 0) class="file-list-headers color-primary">Public Files</h1>
|
||||||
<file-list user=input.user files=state.publics on-removed("fileRemoved") on-edited("fileEdited") on-nicks("fileNicksChanged") />
|
<file-list user=input.user files=state.publics on-removed("fileRemoved") on-edited("fileEdited") on-nicks("fileNicksChanged") />
|
||||||
</main>
|
</main>
|
||||||
<add-channel-modal enabled=(state.modal === "channel.add") user=input.user on-close("close") />
|
<add-channel-modal enabled=(state.modal === "channel.add") user=input.user on-close("close") />
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ module.exports = class {
|
|||||||
channelName: "",
|
channelName: "",
|
||||||
date: "",
|
date: "",
|
||||||
data: "",
|
data: "",
|
||||||
|
sessionThresholdHours: 12,
|
||||||
},
|
},
|
||||||
timezones: tz.names(),
|
timezones: tz.names(),
|
||||||
}
|
}
|
||||||
@@ -58,12 +59,24 @@ module.exports = class {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else if (input.importer === "MircLike") {
|
} else if (input.importer === "MircLike") {
|
||||||
this.state.error = "Date is required for mIRC-like logs"
|
this.state.error = "Date is required for mIRC-like logs."
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
input.date = null;
|
input.date = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (input.importer === "IRCCloudLog") {
|
||||||
|
const hours = parseFloat(input.sessionThresholdHours)
|
||||||
|
if (Number.isNaN(hours)) {
|
||||||
|
this.state.error = "The session change threshold must be a number."
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
input.sessionThresholdMs = Math.floor(hours * 3600000)
|
||||||
|
}
|
||||||
|
|
||||||
|
delete input.sessionThresholdHours
|
||||||
|
|
||||||
if (input.channelName.length < 2 || input.channelName.includes(" ") || input.channelName.includes(" ") || input.channelName.charAt(0) !== "#") {
|
if (input.channelName.length < 2 || input.channelName.includes(" ") || input.channelName.includes(" ") || input.channelName.charAt(0) !== "#") {
|
||||||
this.state.error = "A valid channelName name is required"
|
this.state.error = "A valid channelName name is required"
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import moment from "moment"
|
|||||||
<select key="importer" autofocus class="big" placeholder="Kind" on-change("change", "importer") value=state.values.importer>
|
<select key="importer" autofocus class="big" placeholder="Kind" on-change("change", "importer") value=state.values.importer>
|
||||||
<option value="MircLike" selected=(state.values.importer === "MircLike")>mIRC-Like log</option>
|
<option value="MircLike" selected=(state.values.importer === "MircLike")>mIRC-Like log</option>
|
||||||
<option value="ForumLog" selected=(state.values.importer === "ForumLog")>Forum Log</option>
|
<option value="ForumLog" selected=(state.values.importer === "ForumLog")>Forum Log</option>
|
||||||
|
<option value="IrcCloud" selected=(state.values.importer === "IrcCloud")>IRCCloud log export</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<label>Timezone</label>
|
<label>Timezone</label>
|
||||||
@@ -25,6 +26,11 @@ import moment from "moment"
|
|||||||
<input key="date" class="big" placeholder="(Required)" on-change("change", "date") value=state.values.date />
|
<input key="date" class="big" placeholder="(Required)" on-change("change", "date") value=state.values.date />
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
|
<if(state.values.importer === "IrcCloud")>
|
||||||
|
<label>Session Change Threshold (Hours)</label>
|
||||||
|
<input key="sessionThreshold" class="big" placeholder="(Required)" on-change("change", "sessionThresholdHours") value=state.values.sessionThresholdHours />
|
||||||
|
</if>
|
||||||
|
|
||||||
<label>Content</label>
|
<label>Content</label>
|
||||||
<textarea key="data" placeholder="(Required)" class="tall" on-change("change", "data") value=state.values.data />
|
<textarea key="data" placeholder="(Required)" class="tall" on-change("change", "data") value=state.values.data />
|
||||||
|
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ const filesTemplate = require("../../marko/page/data/files.marko")
|
|||||||
|
|
||||||
router.get("/", async(req, res) => {
|
router.get("/", async(req, res) => {
|
||||||
let privates = []
|
let privates = []
|
||||||
if (res.locals.user) {
|
if (res.locals.user && res.locals.user.loggedIn) {
|
||||||
privates = fileApi.list({public: false}, {token: generateToken(res.locals.user.name)})
|
privates = fileApi.list({public: false}, {token: generateToken(res.locals.user.name)})
|
||||||
}
|
}
|
||||||
|
|
||||||
res.markoAsync(filesTemplate, {
|
res.markoAsync(filesTemplate, {
|
||||||
privates: privates,
|
privates: privates,
|
||||||
publics: fileApi.list(),
|
publics: fileApi.list({public: true}),
|
||||||
selected: {files: true},
|
selected: {files: true},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user