Compare commits
71 Commits
4470af59be
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 25bda8f491 | |||
| f6c8ad71f4 | |||
| 7ffe4f0ca7 | |||
| a898474282 | |||
| da37f0d337 | |||
| d6576db1b3 | |||
| 5f72a1222b | |||
| 34209ff034 | |||
| 8866801570 | |||
| 91d92cbf4a | |||
| 2577fc70c4 | |||
| 5be0d002a9 | |||
| f46f4ac4c3 | |||
| ca758c9aa3 | |||
| 9b432ce8ae | |||
| 9293fbc827 | |||
| fa0abc95d4 | |||
| 8ef993cfa4 | |||
| d987f442d0 | |||
| 9529d259fc | |||
| 23c3dcf98c | |||
| 07fa833514 | |||
| 4eddfd5861 | |||
| e009d938f8 | |||
| 36bf746c3a | |||
| d0fe9e15aa | |||
| 7f2fb0d1e0 | |||
| 369830744f | |||
| 19f4d80ff0 | |||
| 4d9db61ae0 | |||
| 1b30a4344b | |||
| f764289b65 | |||
| ecd8071322 | |||
| a6594dab91 | |||
| 3ffaf6a8dc | |||
| 0c87f91000 | |||
| 48176846a4 | |||
| e2f1bfc07a | |||
| 4c30406de5 | |||
| dfe1ade9d5 | |||
| 8e46ded96b | |||
| e314579619 | |||
| b84b2465ea | |||
| a25f5f5853 | |||
| 4381fcddf3 | |||
| ca323718a7 | |||
| 5476eca7bf | |||
| 6fcb4ebba2 | |||
| 988f343b1c | |||
| d97ca8a7ca | |||
| 70f0c79624 | |||
| 53a4850b90 | |||
| a3213538bb | |||
| 6ed04c0c14 | |||
| 89e8f2e7e4 | |||
| 2df7a57cf2 | |||
| 6ad28f9cb4 | |||
| b4a23ac71f | |||
| 45f06b8869 | |||
| 9d26f5a3f8 | |||
| 0ccd3ff27b | |||
| b6385e7a6b | |||
| 28a23a871e | |||
| c1496124f1 | |||
| aea41a2576 | |||
| f935b2b85d | |||
| 3be9608d87 | |||
| 834719ad35 | |||
| f3e3c4ee89 | |||
| 4febfd157d | |||
| 0937d2ae3c |
Vendored
+2
-7
@@ -3,7 +3,6 @@
|
|||||||
"dataview",
|
"dataview",
|
||||||
"obsidian-tasks-plugin",
|
"obsidian-tasks-plugin",
|
||||||
"obsidian-sortable",
|
"obsidian-sortable",
|
||||||
"auto-note-mover",
|
|
||||||
"tag-wrangler",
|
"tag-wrangler",
|
||||||
"obsidian-plugin-toc",
|
"obsidian-plugin-toc",
|
||||||
"obsidian-charts",
|
"obsidian-charts",
|
||||||
@@ -21,12 +20,8 @@
|
|||||||
"obsidian-style-settings",
|
"obsidian-style-settings",
|
||||||
"callout-manager",
|
"callout-manager",
|
||||||
"find-unlinked-files",
|
"find-unlinked-files",
|
||||||
"contribution-graph",
|
|
||||||
"datacore",
|
|
||||||
"friend-tracker",
|
|
||||||
"desk",
|
|
||||||
"external-file-embed-and-link",
|
"external-file-embed-and-link",
|
||||||
"obsidian-git",
|
|
||||||
"obsidian-kanban",
|
"obsidian-kanban",
|
||||||
"task-list-kanban"
|
"task-list-kanban",
|
||||||
|
"vcf-contacts"
|
||||||
]
|
]
|
||||||
+102
-63
@@ -31,26 +31,26 @@ module.exports = __toCommonJS(main_exports);
|
|||||||
var import_obsidian25 = require("obsidian");
|
var import_obsidian25 = require("obsidian");
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/getFloatingWindows.js
|
// node_modules/obsidian-extra/dist/esm/functions/getFloatingWindows.js
|
||||||
function getFloatingWindows(app2) {
|
function getFloatingWindows(app) {
|
||||||
var _a, _b, _c, _d;
|
var _a, _b, _c, _d;
|
||||||
return (_d = (_c = (_b = (_a = app2 === null || app2 === void 0 ? void 0 : app2.workspace) === null || _a === void 0 ? void 0 : _a.floatingSplit) === null || _b === void 0 ? void 0 : _b.children) === null || _c === void 0 ? void 0 : _c.map((split) => split.win)) !== null && _d !== void 0 ? _d : [];
|
return (_d = (_c = (_b = (_a = app === null || app === void 0 ? void 0 : app.workspace) === null || _a === void 0 ? void 0 : _a.floatingSplit) === null || _b === void 0 ? void 0 : _b.children) === null || _c === void 0 ? void 0 : _c.map((split) => split.win)) !== null && _d !== void 0 ? _d : [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/getCurrentThemeID.js
|
// node_modules/obsidian-extra/dist/esm/functions/getCurrentThemeID.js
|
||||||
function getCurrentThemeID(app2) {
|
function getCurrentThemeID(app) {
|
||||||
const theme = app2.customCss.theme;
|
const theme = app.customCss.theme;
|
||||||
return theme === "" ? null : theme;
|
return theme === "" ? null : theme;
|
||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/getCurrentColorScheme.js
|
// node_modules/obsidian-extra/dist/esm/functions/getCurrentColorScheme.js
|
||||||
function getCurrentThemeID2(app2) {
|
function getCurrentThemeID2(app) {
|
||||||
const { body } = app2.workspace.containerEl.doc;
|
const { body } = app.workspace.containerEl.doc;
|
||||||
return body.classList.contains("theme-dark") ? "dark" : "light";
|
return body.classList.contains("theme-dark") ? "dark" : "light";
|
||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/getThemeManifest.js
|
// node_modules/obsidian-extra/dist/esm/functions/getThemeManifest.js
|
||||||
function getThemeManifest(app2, themeID) {
|
function getThemeManifest(app, themeID) {
|
||||||
const manifests = app2.customCss.themes;
|
const manifests = app.customCss.themes;
|
||||||
if (!Object.prototype.hasOwnProperty.call(manifests, themeID)) {
|
if (!Object.prototype.hasOwnProperty.call(manifests, themeID)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -58,22 +58,22 @@ function getThemeManifest(app2, themeID) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/isThemeInstalled.js
|
// node_modules/obsidian-extra/dist/esm/functions/isThemeInstalled.js
|
||||||
function isThemeInstalled(app2, themeID) {
|
function isThemeInstalled(app, themeID) {
|
||||||
return getThemeManifest(app2, themeID) !== null;
|
return getThemeManifest(app, themeID) !== null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/getThemeStyleElement.js
|
// node_modules/obsidian-extra/dist/esm/functions/getThemeStyleElement.js
|
||||||
function getThemeStyleElement(app2) {
|
function getThemeStyleElement(app) {
|
||||||
const currentTheme = getCurrentThemeID(app2);
|
const currentTheme = getCurrentThemeID(app);
|
||||||
if (currentTheme == null || !isThemeInstalled(app2, currentTheme)) {
|
if (currentTheme == null || !isThemeInstalled(app, currentTheme)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return app2.customCss.styleEl;
|
return app.customCss.styleEl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/isSnippetEnabled.js
|
// node_modules/obsidian-extra/dist/esm/functions/isSnippetEnabled.js
|
||||||
function isSnippetEnabled(app2, snippetID) {
|
function isSnippetEnabled(app, snippetID) {
|
||||||
return app2.customCss.enabledSnippets.has(snippetID);
|
return app.customCss.enabledSnippets.has(snippetID);
|
||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/fetchObsidianStyleSheet.js
|
// node_modules/obsidian-extra/dist/esm/functions/fetchObsidianStyleSheet.js
|
||||||
@@ -129,7 +129,7 @@ var __awaiter = function(thisArg, _arguments, P, generator) {
|
|||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
function fetchObsidianStyleSheet(app2) {
|
function fetchObsidianStyleSheet(app) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let errors = [];
|
let errors = [];
|
||||||
const orElse = (cb) => (ex) => {
|
const orElse = (cb) => (ex) => {
|
||||||
@@ -198,18 +198,18 @@ function viaDom(path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/getInstalledSnippetIDs.js
|
// node_modules/obsidian-extra/dist/esm/functions/getInstalledSnippetIDs.js
|
||||||
function getInstalledSnippetIDs(app2) {
|
function getInstalledSnippetIDs(app) {
|
||||||
return app2.customCss.snippets;
|
return app.customCss.snippets;
|
||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/getSnippetStyleElements.js
|
// node_modules/obsidian-extra/dist/esm/functions/getSnippetStyleElements.js
|
||||||
function getSnippetStyleElements(app2) {
|
function getSnippetStyleElements(app) {
|
||||||
const styleManager = app2.customCss;
|
const styleManager = app.customCss;
|
||||||
const snippets = getInstalledSnippetIDs(app2);
|
const snippets = getInstalledSnippetIDs(app);
|
||||||
const map = /* @__PURE__ */ new Map();
|
const map = /* @__PURE__ */ new Map();
|
||||||
for (let i = 0, elI = 0; i < snippets.length; i++) {
|
for (let i = 0, elI = 0; i < snippets.length; i++) {
|
||||||
const snippetID = styleManager.snippets[i];
|
const snippetID = styleManager.snippets[i];
|
||||||
if (isSnippetEnabled(app2, snippetID)) {
|
if (isSnippetEnabled(app, snippetID)) {
|
||||||
map.set(snippetID, styleManager.extraStyleEls[elI]);
|
map.set(snippetID, styleManager.extraStyleEls[elI]);
|
||||||
elI++;
|
elI++;
|
||||||
}
|
}
|
||||||
@@ -218,9 +218,9 @@ function getSnippetStyleElements(app2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/openPluginSettings.js
|
// node_modules/obsidian-extra/dist/esm/functions/openPluginSettings.js
|
||||||
function openPluginSettings(app2, plugin) {
|
function openPluginSettings(app, plugin) {
|
||||||
var _a, _b;
|
var _a, _b;
|
||||||
const settingManager = app2.setting;
|
const settingManager = app.setting;
|
||||||
const pluginId = typeof plugin === "string" ? plugin : plugin.manifest.id;
|
const pluginId = typeof plugin === "string" ? plugin : plugin.manifest.id;
|
||||||
if (((_a = settingManager.activeTab) === null || _a === void 0 ? void 0 : _a.id) !== pluginId) {
|
if (((_a = settingManager.activeTab) === null || _a === void 0 ? void 0 : _a.id) !== pluginId) {
|
||||||
settingManager.openTabById("");
|
settingManager.openTabById("");
|
||||||
@@ -233,27 +233,27 @@ function openPluginSettings(app2, plugin) {
|
|||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/createCustomStyleSheet.js
|
// node_modules/obsidian-extra/dist/esm/functions/createCustomStyleSheet.js
|
||||||
var Counter = Symbol("CustomStylesheet count");
|
var Counter = Symbol("CustomStylesheet count");
|
||||||
function foreachWindow(app2, fn) {
|
function foreachWindow(app, fn) {
|
||||||
fn(app2.workspace.containerEl.doc, true);
|
fn(app.workspace.containerEl.doc, true);
|
||||||
for (const float of getFloatingWindows(app2)) {
|
for (const float of getFloatingWindows(app)) {
|
||||||
fn(float.document, false);
|
fn(float.document, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function createCustomStyleSheet(app2, plugin) {
|
function createCustomStyleSheet(app, plugin) {
|
||||||
var _a;
|
var _a;
|
||||||
let result;
|
let result;
|
||||||
const pl = plugin;
|
const pl = plugin;
|
||||||
const plId = plugin.manifest.id;
|
const plId = plugin.manifest.id;
|
||||||
const ssId = ((_a = pl[Counter]) !== null && _a !== void 0 ? _a : pl[Counter] = 0).toString();
|
const ssId = ((_a = pl[Counter]) !== null && _a !== void 0 ? _a : pl[Counter] = 0).toString();
|
||||||
pl[Counter]++;
|
pl[Counter]++;
|
||||||
const styleEl = app2.workspace.containerEl.doc.createElement("style");
|
const styleEl = app.workspace.containerEl.doc.createElement("style");
|
||||||
const styleElInFloats = [];
|
const styleElInFloats = [];
|
||||||
styleEl.setAttribute("data-source-plugin", plId);
|
styleEl.setAttribute("data-source-plugin", plId);
|
||||||
styleEl.setAttribute("data-source-id", ssId);
|
styleEl.setAttribute("data-source-id", ssId);
|
||||||
function unapply() {
|
function unapply() {
|
||||||
styleElInFloats.splice(0, styleElInFloats.length).forEach((el) => el.remove());
|
styleElInFloats.splice(0, styleElInFloats.length).forEach((el) => el.remove());
|
||||||
styleEl.detach();
|
styleEl.detach();
|
||||||
foreachWindow(app2, (doc) => {
|
foreachWindow(app, (doc) => {
|
||||||
for (const styleEl2 of Array.from(doc.head.querySelectorAll("style"))) {
|
for (const styleEl2 of Array.from(doc.head.querySelectorAll("style"))) {
|
||||||
if (result.is(styleEl2)) {
|
if (result.is(styleEl2)) {
|
||||||
styleEl2.remove();
|
styleEl2.remove();
|
||||||
@@ -263,7 +263,7 @@ function createCustomStyleSheet(app2, plugin) {
|
|||||||
}
|
}
|
||||||
function reapply() {
|
function reapply() {
|
||||||
unapply();
|
unapply();
|
||||||
foreachWindow(app2, (doc, isFloating) => {
|
foreachWindow(app, (doc, isFloating) => {
|
||||||
let lastEl = doc.head.lastElementChild;
|
let lastEl = doc.head.lastElementChild;
|
||||||
for (let el = lastEl; el != null; el = el.previousElementSibling) {
|
for (let el = lastEl; el != null; el = el.previousElementSibling) {
|
||||||
lastEl = el;
|
lastEl = el;
|
||||||
@@ -280,12 +280,12 @@ function createCustomStyleSheet(app2, plugin) {
|
|||||||
lastEl === null || lastEl === void 0 ? void 0 : lastEl.insertAdjacentElement("afterend", styleElClone);
|
lastEl === null || lastEl === void 0 ? void 0 : lastEl.insertAdjacentElement("afterend", styleElClone);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
app2.workspace.on("css-change", reapply);
|
app.workspace.on("css-change", reapply);
|
||||||
app2.workspace.on("layout-change", reapply);
|
app.workspace.on("layout-change", reapply);
|
||||||
result = Object.freeze(Object.defineProperties(() => {
|
result = Object.freeze(Object.defineProperties(() => {
|
||||||
unapply();
|
unapply();
|
||||||
app2.workspace.off("css-change", reapply);
|
app.workspace.off("css-change", reapply);
|
||||||
app2.workspace.off("layout-change", reapply);
|
app.workspace.off("layout-change", reapply);
|
||||||
}, {
|
}, {
|
||||||
css: {
|
css: {
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
@@ -351,17 +351,18 @@ var import_obsidian4 = require("obsidian");
|
|||||||
var import_obsidian6 = require("obsidian");
|
var import_obsidian6 = require("obsidian");
|
||||||
|
|
||||||
// node_modules/obsidian-extra/dist/esm/functions/closeSettings.js
|
// node_modules/obsidian-extra/dist/esm/functions/closeSettings.js
|
||||||
function closeSettings(app2) {
|
function closeSettings(app) {
|
||||||
const settingManager = app2.setting;
|
const settingManager = app.setting;
|
||||||
settingManager.close();
|
settingManager.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
// src/ui/pane-layers.ts
|
// src/ui/pane-layers.ts
|
||||||
var import_obsidian5 = require("obsidian");
|
var import_obsidian5 = require("obsidian");
|
||||||
var UIPaneLayers = class {
|
var UIPaneLayers = class {
|
||||||
constructor(options) {
|
constructor(root, options) {
|
||||||
this.layers = [];
|
this.layers = [];
|
||||||
this.closeParent = options.close;
|
this.closeParent = options.close;
|
||||||
|
this.root = root;
|
||||||
this.navInstance = {
|
this.navInstance = {
|
||||||
open: (pane) => this.push(pane),
|
open: (pane) => this.push(pane),
|
||||||
close: () => this.pop(),
|
close: () => this.pop(),
|
||||||
@@ -501,6 +502,11 @@ var UIPaneLayers = class {
|
|||||||
configurable: true,
|
configurable: true,
|
||||||
enumerable: true,
|
enumerable: true,
|
||||||
get: attached ? () => this.controlsEl : notAttachedError
|
get: attached ? () => this.controlsEl : notAttachedError
|
||||||
|
},
|
||||||
|
root: {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: true,
|
||||||
|
get: attached ? () => this.root : notAttachedError
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -513,7 +519,7 @@ var UISettingTab = class extends import_obsidian6.PluginSettingTab {
|
|||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.createDefault = createDefault;
|
this.createDefault = createDefault;
|
||||||
this.initLayer = null;
|
this.initLayer = null;
|
||||||
this.layers = new UIPaneLayers({
|
this.layers = new UIPaneLayers(plugin, {
|
||||||
close: () => closeSettings(this.app)
|
close: () => closeSettings(this.app)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -540,13 +546,16 @@ var UISettingTab = class extends import_obsidian6.PluginSettingTab {
|
|||||||
cls: "calloutmanager-setting-tab-viewport vertical-tab-content"
|
cls: "calloutmanager-setting-tab-viewport vertical-tab-content"
|
||||||
});
|
});
|
||||||
layers.containerEl = layers.scrollEl.createDiv({ cls: "calloutmanager-setting-tab-content" });
|
layers.containerEl = layers.scrollEl.createDiv({ cls: "calloutmanager-setting-tab-content" });
|
||||||
controlsEl.createDiv({ cls: "modal-close-button" }, (closeButtonEl) => {
|
const closeBtn = new import_obsidian6.ButtonComponent(controlsEl);
|
||||||
closeButtonEl.addEventListener("click", (ev) => {
|
closeBtn.setIcon("lucide-x");
|
||||||
|
closeBtn.buttonEl.classList.add("modal-close-button");
|
||||||
|
closeBtn.buttonEl.classList.add("mod-raised");
|
||||||
|
closeBtn.buttonEl.classList.add("clickable-icon");
|
||||||
|
closeBtn.onClick((ev) => {
|
||||||
if (!ev.isTrusted)
|
if (!ev.isTrusted)
|
||||||
return;
|
return;
|
||||||
closeSettings(this.app);
|
closeSettings(this.app);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
layers.clear();
|
layers.clear();
|
||||||
const initLayer = this.initLayer ?? this.createDefault();
|
const initLayer = this.initLayer ?? this.createDefault();
|
||||||
this.initLayer = null;
|
this.initLayer = null;
|
||||||
@@ -1410,12 +1419,14 @@ var SHADOW_DOM_RESET_STYLES = `
|
|||||||
/* Use transparent background color. */
|
/* Use transparent background color. */
|
||||||
body {
|
body {
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
|
contain: none;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// src/callout-resolver.ts
|
// src/callout-resolver.ts
|
||||||
var CalloutResolver = class {
|
var CalloutResolver = class {
|
||||||
constructor() {
|
constructor(app) {
|
||||||
|
this.obsidianApp = app;
|
||||||
this.hostElement = document.body.createDiv({
|
this.hostElement = document.body.createDiv({
|
||||||
cls: "calloutmanager-callout-resolver"
|
cls: "calloutmanager-callout-resolver"
|
||||||
});
|
});
|
||||||
@@ -1435,7 +1446,7 @@ var CalloutResolver = class {
|
|||||||
* @param styles The new style elements to use.
|
* @param styles The new style elements to use.
|
||||||
*/
|
*/
|
||||||
reloadStyles() {
|
reloadStyles() {
|
||||||
this.calloutPreview.setColorScheme(getCurrentThemeID2(app));
|
this.calloutPreview.setColorScheme(getCurrentThemeID2(this.obsidianApp));
|
||||||
this.calloutPreview.updateStyles();
|
this.calloutPreview.updateStyles();
|
||||||
this.calloutPreview.removeStyles((el) => el.getAttribute("data-callout-manager") === "style-overrides");
|
this.calloutPreview.removeStyles((el) => el.getAttribute("data-callout-manager") === "style-overrides");
|
||||||
}
|
}
|
||||||
@@ -1478,11 +1489,11 @@ var CalloutResolver = class {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// src/callout-settings.ts
|
// src/callout-settings.ts
|
||||||
function currentCalloutEnvironment(app2) {
|
function currentCalloutEnvironment(app) {
|
||||||
const theme = getCurrentThemeID(app2) ?? "<default>";
|
const theme = getCurrentThemeID(app) ?? "<default>";
|
||||||
return {
|
return {
|
||||||
theme,
|
theme,
|
||||||
colorScheme: getCurrentThemeID2(app2)
|
colorScheme: getCurrentThemeID2(app)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
function calloutSettingsToCSS(id, settings, environment) {
|
function calloutSettingsToCSS(id, settings, environment) {
|
||||||
@@ -1578,8 +1589,8 @@ function getCalloutsFromCSS(css) {
|
|||||||
|
|
||||||
// src/css-watcher.ts
|
// src/css-watcher.ts
|
||||||
var StylesheetWatcher = class {
|
var StylesheetWatcher = class {
|
||||||
constructor(app2) {
|
constructor(app) {
|
||||||
this.app = app2;
|
this.app = app;
|
||||||
this.listeners = /* @__PURE__ */ new Map();
|
this.listeners = /* @__PURE__ */ new Map();
|
||||||
this.cachedSnippets = /* @__PURE__ */ new Map();
|
this.cachedSnippets = /* @__PURE__ */ new Map();
|
||||||
this.cachedObsidian = null;
|
this.cachedObsidian = null;
|
||||||
@@ -3309,7 +3320,7 @@ var MiscEditor = class {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// src/panes/edit-callout-pane/section-info.ts
|
// src/panes/edit-callout-pane/section-info.ts
|
||||||
function renderInfo(app2, callout, containerEl) {
|
function renderInfo(app, callout, containerEl) {
|
||||||
const frag = document.createDocumentFragment();
|
const frag = document.createDocumentFragment();
|
||||||
const contentEl = frag.createDiv({ cls: "calloutmanager-edit-callout-section" });
|
const contentEl = frag.createDiv({ cls: "calloutmanager-edit-callout-section" });
|
||||||
contentEl.createEl("h2", { text: "About this Callout" });
|
contentEl.createEl("h2", { text: "About this Callout" });
|
||||||
@@ -3327,7 +3338,7 @@ function renderInfo(app2, callout, containerEl) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
el.appendText(". It was added to Obsidian by the ");
|
el.appendText(". It was added to Obsidian by the ");
|
||||||
appendSourceInfo(app2, el, callout.sources[0]);
|
appendSourceInfo(app, el, callout.sources[0]);
|
||||||
el.appendText(".");
|
el.appendText(".");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -3336,7 +3347,7 @@ function renderInfo(app2, callout, containerEl) {
|
|||||||
for (const source of callout.sources) {
|
for (const source of callout.sources) {
|
||||||
const itemEl = sources.createEl("li");
|
const itemEl = sources.createEl("li");
|
||||||
itemEl.appendText("The ");
|
itemEl.appendText("The ");
|
||||||
appendSourceInfo(app2, itemEl, source);
|
appendSourceInfo(app, itemEl, source);
|
||||||
itemEl.appendText(".");
|
itemEl.appendText(".");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -3364,7 +3375,7 @@ function appendColorInfo(el, callout) {
|
|||||||
(colorEl) => colorEl.style.setProperty("--resolved-callout-color", callout.color)
|
(colorEl) => colorEl.style.setProperty("--resolved-callout-color", callout.color)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
function appendSourceInfo(app2, el, source) {
|
function appendSourceInfo(app, el, source) {
|
||||||
switch (source.type) {
|
switch (source.type) {
|
||||||
case "builtin":
|
case "builtin":
|
||||||
el.appendText("built-in callouts");
|
el.appendText("built-in callouts");
|
||||||
@@ -3381,7 +3392,7 @@ function appendSourceInfo(app2, el, source) {
|
|||||||
return true;
|
return true;
|
||||||
case "theme": {
|
case "theme": {
|
||||||
el.appendText("theme ");
|
el.appendText("theme ");
|
||||||
const themeName = getThemeManifest(app2, source.theme)?.name ?? source.theme;
|
const themeName = getThemeManifest(app, source.theme)?.name ?? source.theme;
|
||||||
el.createSpan({ cls: "calloutmanager-edit-callout--callout-source", text: themeName });
|
el.createSpan({ cls: "calloutmanager-edit-callout--callout-source", text: themeName });
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -3717,7 +3728,7 @@ var ManageCalloutsPane = class extends UIPane {
|
|||||||
if (action === "edit") {
|
if (action === "edit") {
|
||||||
this.nav.open(new EditCalloutPane(this.plugin, id, this.viewOnly));
|
this.nav.open(new EditCalloutPane(this.plugin, id, this.viewOnly));
|
||||||
} else if (action === "insert") {
|
} else if (action === "insert") {
|
||||||
const view = app.workspace.getActiveViewOfType(import_obsidian22.MarkdownView);
|
const view = this.plugin.app.workspace.getActiveViewOfType(import_obsidian22.MarkdownView);
|
||||||
if (view) {
|
if (view) {
|
||||||
const cursor = view.editor.getCursor();
|
const cursor = view.editor.getCursor();
|
||||||
view.editor.replaceRange(
|
view.editor.replaceRange(
|
||||||
@@ -3726,7 +3737,7 @@ var ManageCalloutsPane = class extends UIPane {
|
|||||||
cursor
|
cursor
|
||||||
);
|
);
|
||||||
view.editor.setCursor(cursor.line + 1, 10);
|
view.editor.setCursor(cursor.line + 1, 10);
|
||||||
closeSettings(app);
|
closeSettings(this.plugin.app);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3841,7 +3852,20 @@ var import_obsidian24 = require("obsidian");
|
|||||||
var import_obsidian23 = require("obsidian");
|
var import_obsidian23 = require("obsidian");
|
||||||
|
|
||||||
// CHANGELOG.md
|
// CHANGELOG.md
|
||||||
var CHANGELOG_default = `# Version 1.1.0
|
var CHANGELOG_default = `# Version 1.1.1
|
||||||
|
|
||||||
|
> [!new] Export Callouts as CSS
|
||||||
|
> There's now a button to copy your callout changes.
|
||||||
|
|
||||||
|
> [!fix] Callout Previews
|
||||||
|
> Previews are back!
|
||||||
|
>
|
||||||
|
> Thank you, [**@alythobani**](https://github.com/alythobani)!
|
||||||
|
|
||||||
|
> [!fix] Settings Pane (Mobile)
|
||||||
|
> It's moved slightly to accomodate the updated Obsidian mobile layout.
|
||||||
|
|
||||||
|
# Version 1.1.0
|
||||||
|
|
||||||
> [!new] In-App Changelogs
|
> [!new] In-App Changelogs
|
||||||
> Learn about plugin changes and new features straight from the horse's mouth.
|
> Learn about plugin changes and new features straight from the horse's mouth.
|
||||||
@@ -3878,10 +3902,10 @@ The first release available on Obsidian's community plugin browser!
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
// src/changelog.ts
|
// src/changelog.ts
|
||||||
function getSections() {
|
function getSections(parent) {
|
||||||
const frag = document.createDocumentFragment();
|
const frag = document.createDocumentFragment();
|
||||||
const renderedEl = frag.createDiv();
|
const renderedEl = frag.createDiv();
|
||||||
import_obsidian23.MarkdownRenderer.renderMarkdown(CHANGELOG_default, renderedEl, "", null);
|
import_obsidian23.MarkdownRenderer.renderMarkdown(CHANGELOG_default, renderedEl, "", parent);
|
||||||
const sections = /* @__PURE__ */ new Map();
|
const sections = /* @__PURE__ */ new Map();
|
||||||
let heading = null;
|
let heading = null;
|
||||||
let sectionContainer = frag.createEl("details");
|
let sectionContainer = frag.createEl("details");
|
||||||
@@ -3937,7 +3961,7 @@ var ChangelogPane = class extends UIPane {
|
|||||||
super();
|
super();
|
||||||
this.title = "Changelog";
|
this.title = "Changelog";
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
const sections = getSections();
|
const sections = getSections(plugin);
|
||||||
const frag = document.createDocumentFragment();
|
const frag = document.createDocumentFragment();
|
||||||
this.changelogEl = frag.createDiv({ cls: "calloutmanager-changelog" });
|
this.changelogEl = frag.createDiv({ cls: "calloutmanager-changelog" });
|
||||||
Array.from(sections.values()).forEach(({ version, containerEl: el }) => {
|
Array.from(sections.values()).forEach(({ version, containerEl: el }) => {
|
||||||
@@ -4004,12 +4028,25 @@ var ManagePluginPane = class extends UIPane {
|
|||||||
new import_obsidian24.Setting(containerEl).setHeading().setName("What's New").setDesc(`Version ${this.plugin.manifest.version}`).addExtraButton((btn) => {
|
new import_obsidian24.Setting(containerEl).setHeading().setName("What's New").setDesc(`Version ${this.plugin.manifest.version}`).addExtraButton((btn) => {
|
||||||
btn.setIcon("lucide-more-horizontal").setTooltip("More Changelogs").onClick(() => this.nav.open(new ChangelogPane(plugin)));
|
btn.setIcon("lucide-more-horizontal").setTooltip("More Changelogs").onClick(() => this.nav.open(new ChangelogPane(plugin)));
|
||||||
});
|
});
|
||||||
const latestChanges = getSections().get(this.plugin.manifest.version);
|
const latestChanges = getSections(this.root).get(this.plugin.manifest.version);
|
||||||
if (latestChanges != null) {
|
if (latestChanges != null) {
|
||||||
const desc = document.createDocumentFragment();
|
const desc = document.createDocumentFragment();
|
||||||
desc.appendChild(latestChanges.contentsEl);
|
desc.appendChild(latestChanges.contentsEl);
|
||||||
new import_obsidian24.Setting(containerEl).setDesc(desc).then((setting) => setting.controlEl.remove()).then((setting) => setting.settingEl.classList.add("calloutmanager-latest-changes"));
|
new import_obsidian24.Setting(containerEl).setDesc(desc).then((setting) => setting.controlEl.remove()).then((setting) => setting.settingEl.classList.add("calloutmanager-latest-changes"));
|
||||||
}
|
}
|
||||||
|
new import_obsidian24.Setting(containerEl).setHeading().setName("Export");
|
||||||
|
new import_obsidian24.Setting(containerEl).setName("Callout Styles").setDesc("Export your custom callouts and changes as CSS.").addButton((btn) => {
|
||||||
|
btn.setButtonText("Copy");
|
||||||
|
btn.onClick(async () => {
|
||||||
|
btn.setDisabled(true);
|
||||||
|
try {
|
||||||
|
await navigator.clipboard.writeText("/* Exported Styles from Obsidian Callout Manager */\n" + this.plugin.cssApplier.css);
|
||||||
|
btn.setButtonText("Copied!");
|
||||||
|
} catch (ex) {
|
||||||
|
btn.setButtonText("Error");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
new import_obsidian24.Setting(containerEl).setHeading().setName("Reset");
|
new import_obsidian24.Setting(containerEl).setHeading().setName("Reset");
|
||||||
new import_obsidian24.Setting(containerEl).setName("Reset Callout Settings").setDesc("Reset all the changes you made to callouts.").addButton(
|
new import_obsidian24.Setting(containerEl).setName("Reset Callout Settings").setDesc("Reset all the changes you made to callouts.").addButton(
|
||||||
withConfirm((btn) => {
|
withConfirm((btn) => {
|
||||||
@@ -4098,7 +4135,7 @@ var CalloutManagerPlugin = class extends import_obsidian25.Plugin {
|
|||||||
await this.loadSettings();
|
await this.loadSettings();
|
||||||
await this.saveSettings();
|
await this.saveSettings();
|
||||||
const { settings } = this;
|
const { settings } = this;
|
||||||
this.calloutResolver = new CalloutResolver();
|
this.calloutResolver = new CalloutResolver(this.app);
|
||||||
this.register(() => this.calloutResolver.unload());
|
this.register(() => this.calloutResolver.unload());
|
||||||
this.callouts = new CalloutCollection((id) => {
|
this.callouts = new CalloutCollection((id) => {
|
||||||
const { icon, color } = this.calloutResolver.getCalloutProperties(id);
|
const { icon, color } = this.calloutResolver.getCalloutProperties(id);
|
||||||
@@ -4365,3 +4402,5 @@ var CalloutManagerPlugin = class extends import_obsidian25.Plugin {
|
|||||||
return this.api.destroyHandle(version, consumerPlugin);
|
return this.api.destroyHandle(version, consumerPlugin);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* nosourcemap */
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"id": "callout-manager",
|
"id": "callout-manager",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"description": "Easily create and customize callouts.",
|
"description": "Easily create and customize callouts.",
|
||||||
"author": "eth-p",
|
"author": "eth-p",
|
||||||
"authorUrl": "https://github.com/eth-p",
|
"authorUrl": "https://github.com/eth-p",
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "cmdr",
|
"id": "cmdr",
|
||||||
"name": "Commander",
|
"name": "Commander",
|
||||||
"version": "0.5.4",
|
"version": "0.5.5",
|
||||||
"minAppVersion": "1.4.0",
|
"minAppVersion": "1.4.0",
|
||||||
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
|
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
|
||||||
"author": "jsmorabito & phibr0",
|
"author": "jsmorabito & phibr0",
|
||||||
|
|||||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+9
-24
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "datacore",
|
"id": "datacore",
|
||||||
"name": "Datacore",
|
"name": "Datacore",
|
||||||
"version": "0.1.28",
|
"version": "0.1.29",
|
||||||
"minAppVersion": "1.4.11",
|
"minAppVersion": "1.4.11",
|
||||||
"description": "Reactive query engine backed by Javascript or a custom query language.",
|
"description": "Reactive query engine backed by Javascript or a custom query language.",
|
||||||
"author": "Michael Brenan",
|
"author": "Michael Brenan",
|
||||||
|
|||||||
+1
File diff suppressed because one or more lines are too long
+48
-48
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "external-file-embed-and-link",
|
"id": "external-file-embed-and-link",
|
||||||
"name": "External File Embed and Link",
|
"name": "External File Embed and Link",
|
||||||
"version": "1.5.6",
|
"version": "1.5.9",
|
||||||
"minAppVersion": "0.15.0",
|
"minAppVersion": "0.15.0",
|
||||||
"description": "Embed and link local files outside your vault with relative paths for cross-device and multi-platform compatibility.",
|
"description": "Embed and link local files outside your vault with relative paths for cross-device and multi-platform compatibility.",
|
||||||
"author": "oylbin",
|
"author": "oylbin",
|
||||||
|
|||||||
-20
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"contactsFolder": "Infos/Kontakte",
|
|
||||||
"defaultSortColumn": "daysUntilBirthday",
|
|
||||||
"defaultSortDirection": "asc",
|
|
||||||
"relationshipTypes": [
|
|
||||||
"familie",
|
|
||||||
"freund",
|
|
||||||
"kollege",
|
|
||||||
"kommilitone",
|
|
||||||
"projekt",
|
|
||||||
"recruiter",
|
|
||||||
"schule",
|
|
||||||
"bewerbung",
|
|
||||||
"thw",
|
|
||||||
"arzt",
|
|
||||||
"kol",
|
|
||||||
"nachbar"
|
|
||||||
],
|
|
||||||
"defaultActiveTab": "markdown"
|
|
||||||
}
|
|
||||||
-11
File diff suppressed because one or more lines are too long
-10
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "friend-tracker",
|
|
||||||
"name": "Friend Tracker",
|
|
||||||
"version": "1.3.3",
|
|
||||||
"minAppVersion": "1.4.14",
|
|
||||||
"description": "Keep track of friends, birthdays, reminders, and interactions in Obsidian. Build a personal CRM, log connections, and stay organized inside your vault.",
|
|
||||||
"author": "Dan Au",
|
|
||||||
"authorUrl": "https://dausign.com",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
-1135
File diff suppressed because it is too large
Load Diff
Vendored
+13
-15
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "janitor",
|
"id": "janitor",
|
||||||
"name": "Janitor",
|
"name": "Janitor",
|
||||||
"version": "1.1.1",
|
"version": "1.1.3",
|
||||||
"minAppVersion": "0.15.0",
|
"minAppVersion": "0.15.0",
|
||||||
"description": "Performs cleanup tasks on the Obsidian vault",
|
"description": "Performs cleanup tasks on the Obsidian vault",
|
||||||
"author": "Gabriele Cannata",
|
"author": "Gabriele Cannata",
|
||||||
|
|||||||
Vendored
+72
-6
@@ -47,21 +47,78 @@ If your plugin does not need CSS, delete this file.
|
|||||||
.janitor-file .openFileIcon {
|
.janitor-file .openFileIcon {
|
||||||
right: 0px;
|
right: 0px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
/* cursor: pointer; */
|
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.janitor-file label {
|
.janitor-file label {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
/* cursor: pointer; */
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.janitor-file span {
|
.janitor-file-name {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
margin-right: 3.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-icon {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-icon svg {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file-name-text {
|
||||||
|
display: inline-block;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
margin-right: 4em;
|
}
|
||||||
|
|
||||||
|
.janitor-file:hover .janitor-file-name-text {
|
||||||
|
animation: janitor-marquee 4s ease-in-out infinite alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes janitor-marquee {
|
||||||
|
0%, 15% { transform: translateX(0); }
|
||||||
|
85%, 100% { transform: translateX(var(--marquee-offset, 0px)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-md-preview-link {
|
||||||
|
display: contents;
|
||||||
|
}
|
||||||
|
|
||||||
|
.previewFileIcon {
|
||||||
|
right: 1.5em;
|
||||||
|
position: absolute;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file:hover .previewFileIcon {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-preview-overlay {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 9999;
|
||||||
|
padding: 6px;
|
||||||
|
background: var(--background-primary);
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-preview-overlay img {
|
||||||
|
display: block;
|
||||||
|
max-width: 200px;
|
||||||
|
max-height: 200px;
|
||||||
|
object-fit: contain;
|
||||||
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.janitor-file:hover .openFileIcon {
|
.janitor-file:hover .openFileIcon {
|
||||||
@@ -72,9 +129,18 @@ If your plugin does not need CSS, delete this file.
|
|||||||
outline: auto;
|
outline: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.janitor-main-modal {
|
||||||
|
width: min(700px, 90vw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure hover preview popover appears above the modal overlay */
|
||||||
|
.popover.hover-popover {
|
||||||
|
z-index: calc(var(--layer-modal, 200) + 10);
|
||||||
|
}
|
||||||
|
|
||||||
.janitor-scan-results {
|
.janitor-scan-results {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
max-height:250px;
|
max-height: 450px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.janitor-files-wrapper {
|
.janitor-files-wrapper {
|
||||||
|
|||||||
+7
-2
@@ -15,7 +15,6 @@
|
|||||||
"timelineEndColor": "#4d194d",
|
"timelineEndColor": "#4d194d",
|
||||||
"timestampFormat": "HH:mm",
|
"timestampFormat": "HH:mm",
|
||||||
"hourFormat": "HH",
|
"hourFormat": "HH",
|
||||||
"dataviewSource": "\"Journal\" OR #process/task",
|
|
||||||
"extendDurationUntilNext": false,
|
"extendDurationUntilNext": false,
|
||||||
"defaultDurationMinutes": 30,
|
"defaultDurationMinutes": 30,
|
||||||
"minimalDurationMinutes": 10,
|
"minimalDurationMinutes": 10,
|
||||||
@@ -24,7 +23,7 @@
|
|||||||
"showUnscheduledNestedTasks": true,
|
"showUnscheduledNestedTasks": true,
|
||||||
"showNow": true,
|
"showNow": true,
|
||||||
"showNext": true,
|
"showNext": true,
|
||||||
"pluginVersion": "0.28.0",
|
"pluginVersion": "0.30.0",
|
||||||
"showCompletedTasks": true,
|
"showCompletedTasks": true,
|
||||||
"showSubtasksInTaskBlocks": true,
|
"showSubtasksInTaskBlocks": true,
|
||||||
"icals": [],
|
"icals": [],
|
||||||
@@ -35,6 +34,12 @@
|
|||||||
"sortTasksInPlanAfterEdit": true,
|
"sortTasksInPlanAfterEdit": true,
|
||||||
"firstDayOfWeek": "monday",
|
"firstDayOfWeek": "monday",
|
||||||
"multiDayRange": "full-week",
|
"multiDayRange": "full-week",
|
||||||
|
"showTimelineInSidebar": true,
|
||||||
|
"timelineColumns": {
|
||||||
|
"planner": true,
|
||||||
|
"timeTracker": false
|
||||||
|
},
|
||||||
|
"dataviewSource": "\"Journal\" OR #process/task",
|
||||||
"showTimeTracker": false,
|
"showTimeTracker": false,
|
||||||
"showActiveClocks": true,
|
"showActiveClocks": true,
|
||||||
"editMode": "simple",
|
"editMode": "simple",
|
||||||
|
|||||||
+1395
-112
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "obsidian-day-planner",
|
"id": "obsidian-day-planner",
|
||||||
"name": "Day Planner",
|
"name": "Day Planner",
|
||||||
"version": "0.28.0",
|
"version": "0.30.0",
|
||||||
"minAppVersion": "0.16.0",
|
"minAppVersion": "0.16.0",
|
||||||
"description": "A day planner with clean UI and readable syntax",
|
"description": "A day planner with clean UI and readable syntax",
|
||||||
"author": "James Lynch, continued by Ivan Lednev",
|
"author": "James Lynch, continued by Ivan Lednev",
|
||||||
|
|||||||
+2
-2
File diff suppressed because one or more lines are too long
+156
-193
File diff suppressed because one or more lines are too long
+1
-1
@@ -6,5 +6,5 @@
|
|||||||
"description": "Integrate Git version control with automatic backup and other advanced features.",
|
"description": "Integrate Git version control with automatic backup and other advanced features.",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"fundingUrl": "https://ko-fi.com/vinzent",
|
"fundingUrl": "https://ko-fi.com/vinzent",
|
||||||
"version": "2.38.0"
|
"version": "2.38.5"
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-25
@@ -8,15 +8,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.git-signs-gutter {
|
|
||||||
.cm-gutterElement {
|
|
||||||
/* Needed to align the sign properly for different line heigts. Such as
|
|
||||||
* when having a heading or list item.
|
|
||||||
*/
|
|
||||||
padding-top: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="git-view"] .button-border {
|
.workspace-leaf-content[data-type="git-view"] .button-border {
|
||||||
border: 2px solid var(--interactive-accent);
|
border: 2px solid var(--interactive-accent);
|
||||||
border-radius: var(--radius-s);
|
border-radius: var(--radius-s);
|
||||||
@@ -108,7 +99,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
.git-tools .buttons > * {
|
.git-tools .buttons > * {
|
||||||
padding: 0 0;
|
padding: 0;
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,7 +166,7 @@ which itself is adapted from the diff2html library with the following original l
|
|||||||
--git-change-bg: #ffd55840;
|
--git-change-bg: #ffd55840;
|
||||||
--git-selected: #3572b0;
|
--git-selected: #3572b0;
|
||||||
|
|
||||||
--git-delete: #c33;
|
--git-delete: #cc3333;
|
||||||
--git-insert: #399839;
|
--git-insert: #399839;
|
||||||
--git-change: #d0b44c;
|
--git-change: #d0b44c;
|
||||||
--git-move: #3572b0;
|
--git-move: #3572b0;
|
||||||
@@ -538,13 +529,24 @@ which itself is adapted from the diff2html library with the following original l
|
|||||||
.d2h-diff-tbody {
|
.d2h-diff-tbody {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* My additions */
|
||||||
|
.cm-merge-revert {
|
||||||
|
width: 4em;
|
||||||
|
}
|
||||||
|
/* Ensure that merge revert markers are positioned correctly */
|
||||||
|
.cm-merge-revert > * {
|
||||||
|
position: absolute;
|
||||||
|
background-color: var(--background-secondary);
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ====================== Line Authoring Information ====================== */
|
/* ====================== Line Authoring Information ====================== */
|
||||||
|
|
||||||
.cm-gutterElement.obs-git-blame-gutter {
|
.cm-gutterElement.obs-git-blame-gutter {
|
||||||
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
|
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
|
||||||
border-width: 0px 2px 0.2px 2px;
|
border-width: 0px 2px 0.2px;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-color: var(--background-secondary);
|
border-color: var(--background-secondary);
|
||||||
background-color: var(--background-secondary);
|
background-color: var(--background-secondary);
|
||||||
@@ -557,7 +559,7 @@ which itself is adapted from the diff2html library with the following original l
|
|||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
height: 100%; /* ensure, that age-based background color occupies entire parent */
|
height: 100%; /* ensure, that age-based background color occupies entire parent */
|
||||||
text-align: right;
|
text-align: right;
|
||||||
padding: 0px 6px 0px 6px;
|
padding: 0px 6px;
|
||||||
white-space: pre; /* Keep spaces and do not collapse them. */
|
white-space: pre; /* Keep spaces and do not collapse them. */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -602,6 +604,11 @@ which itself is adapted from the diff2html library with the following original l
|
|||||||
.git-signs-gutter {
|
.git-signs-gutter {
|
||||||
.cm-gutterElement {
|
.cm-gutterElement {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
|
||||||
|
/* Needed to align the sign properly for different line heigts. Such as
|
||||||
|
* when having a heading or list item.
|
||||||
|
*/
|
||||||
|
padding-top: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -669,18 +676,6 @@ div:hover > .git-gutter-marker.git-changedelete {
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.git-diff {
|
|
||||||
.cm-merge-revert {
|
|
||||||
width: 4em;
|
|
||||||
}
|
|
||||||
/* Ensure that merge revert markers are positioned correctly */
|
|
||||||
.cm-merge-revert > * {
|
|
||||||
position: absolute;
|
|
||||||
background-color: var(--background-secondary);
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
|
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
|
||||||
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
|
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
|
||||||
margin-inline-end: 0;
|
margin-inline-end: 0;
|
||||||
|
|||||||
+142
-119
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"id": "obsidian-tasks-plugin",
|
"id": "obsidian-tasks-plugin",
|
||||||
"name": "Tasks",
|
"name": "Tasks",
|
||||||
"version": "7.23.1",
|
"version": "8.2.2",
|
||||||
"minAppVersion": "1.4.0",
|
"minAppVersion": "1.8.7",
|
||||||
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
||||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||||
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+30
-19
@@ -42,13 +42,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": true,
|
"openFile": true,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"mode": "default",
|
"mode": "default",
|
||||||
"focus": true
|
"focus": true
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,13 +100,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": true,
|
"openFile": true,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"focus": true,
|
"focus": true,
|
||||||
"mode": "default"
|
"mode": "default"
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -207,13 +209,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": false,
|
"openFile": false,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"focus": true,
|
"focus": true,
|
||||||
"mode": "default"
|
"mode": "default"
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -314,13 +317,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": false,
|
"openFile": false,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"focus": true,
|
"focus": true,
|
||||||
"mode": "default"
|
"mode": "default"
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -387,13 +391,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": true,
|
"openFile": true,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"focus": true,
|
"focus": true,
|
||||||
"mode": "default"
|
"mode": "default"
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -445,13 +450,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": true,
|
"openFile": true,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"focus": true,
|
"focus": true,
|
||||||
"mode": "default"
|
"mode": "default"
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -558,13 +564,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": true,
|
"openFile": true,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"mode": "default",
|
"mode": "default",
|
||||||
"focus": true
|
"focus": true
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -614,13 +621,14 @@
|
|||||||
},
|
},
|
||||||
"openFile": true,
|
"openFile": true,
|
||||||
"openFileInMode": "default",
|
"openFileInMode": "default",
|
||||||
"fileExistsMode": "Increment the file name",
|
|
||||||
"setFileExistsBehavior": false,
|
|
||||||
"fileOpening": {
|
"fileOpening": {
|
||||||
"location": "tab",
|
"location": "tab",
|
||||||
"direction": "vertical",
|
"direction": "vertical",
|
||||||
"mode": "default",
|
"mode": "default",
|
||||||
"focus": true
|
"focus": true
|
||||||
|
},
|
||||||
|
"fileExistsBehavior": {
|
||||||
|
"kind": "prompt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -690,7 +698,7 @@
|
|||||||
"devMode": false,
|
"devMode": false,
|
||||||
"templateFolderPath": "Resources/Templates",
|
"templateFolderPath": "Resources/Templates",
|
||||||
"announceUpdates": "all",
|
"announceUpdates": "all",
|
||||||
"version": "2.12.0",
|
"version": "2.12.3",
|
||||||
"globalVariables": {},
|
"globalVariables": {},
|
||||||
"onePageInputEnabled": false,
|
"onePageInputEnabled": false,
|
||||||
"disableOnlineFeatures": true,
|
"disableOnlineFeatures": true,
|
||||||
@@ -764,6 +772,9 @@
|
|||||||
"migrateFileOpeningSettings": true,
|
"migrateFileOpeningSettings": true,
|
||||||
"setProviderModelDiscoveryMode": true,
|
"setProviderModelDiscoveryMode": true,
|
||||||
"backfillFileOpeningDefaults": true,
|
"backfillFileOpeningDefaults": true,
|
||||||
"migrateProviderApiKeysToSecretStorage": true
|
"migrateProviderApiKeysToSecretStorage": true,
|
||||||
}
|
"consolidateFileExistsBehavior": true,
|
||||||
|
"repairTemplateFileExistsBehavior": true
|
||||||
|
},
|
||||||
|
"macros": []
|
||||||
}
|
}
|
||||||
Vendored
+68
-80
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "quickadd",
|
"id": "quickadd",
|
||||||
"name": "QuickAdd",
|
"name": "QuickAdd",
|
||||||
"version": "2.12.0",
|
"version": "2.12.3",
|
||||||
"minAppVersion": "1.11.4",
|
"minAppVersion": "1.11.4",
|
||||||
"description": "Quickly add new pages or content to your vault.",
|
"description": "Quickly add new pages or content to your vault.",
|
||||||
"author": "Christian B. B. Houmann",
|
"author": "Christian B. B. Houmann",
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+21
-21
File diff suppressed because one or more lines are too long
+3
-5
@@ -3,15 +3,13 @@
|
|||||||
"name": "Advanced Tables",
|
"name": "Advanced Tables",
|
||||||
"author": "Tony Grosinger",
|
"author": "Tony Grosinger",
|
||||||
"authorUrl": "https://grosinger.net",
|
"authorUrl": "https://grosinger.net",
|
||||||
"description": "Improved table navigation, formatting, manipulation, and formulas",
|
"description": "Improved table navigation, formatting, manipulation, and formulas.",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"minAppVersion": "1.0.0",
|
"minAppVersion": "1.0.0",
|
||||||
"version": "0.22.1",
|
"version": "0.23.2",
|
||||||
"js": "main.js",
|
|
||||||
"fundingUrl": {
|
"fundingUrl": {
|
||||||
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
|
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
|
||||||
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
|
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
|
||||||
"Paypal": "https://paypal.me/tgrosinger"
|
"Paypal": "https://paypal.me/tgrosinger"
|
||||||
},
|
}
|
||||||
"donation": "https://buymeacoffee.com/tgrosinger"
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
|
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
|
||||||
column-gap: 0.2rem;
|
gap: 0.2rem;
|
||||||
margin: 0.2rem 0 0.2rem 0;
|
margin: 0.2rem 0 0.2rem 0;
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
}
|
}
|
||||||
|
|||||||
+25033
-14875
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "task-list-kanban",
|
"id": "task-list-kanban",
|
||||||
"name": "Task List Kanban",
|
"name": "Task List Kanban",
|
||||||
"version": "1.8.0",
|
"version": "2.7.3",
|
||||||
"minAppVersion": "1.5.3",
|
"minAppVersion": "1.5.3",
|
||||||
"description": "Organizes all of the tasks within your files into a kanban view. Reduce duplication of effort when managing and prioritising tasks by simply using the task format in your files to automatically appear in your Task List Kanban.",
|
"description": "Organizes all of the tasks within your files into a kanban view. Reduce duplication of effort when managing and prioritising tasks by simply using the task format in your files to automatically appear in your Task List Kanban.",
|
||||||
"author": "Chris Kerr, Erika Rice Scherpelz",
|
"author": "Chris Kerr, Erika Rice Scherpelz",
|
||||||
|
|||||||
+713
@@ -19,3 +19,716 @@ If your plugin does not need CSS, delete this file.
|
|||||||
.setting-item.column .setting-item-control > input {
|
.setting-item.column .setting-item-control > input {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Settings modal shell */
|
||||||
|
.task-list-kanban-settings-modal-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
width: min(1120px, calc(100vw - 48px));
|
||||||
|
max-width: 1120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.task-list-kanban-settings-modal {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-scroll-wrapper {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Settings header */
|
||||||
|
.settings-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
padding-bottom: 14px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-bottom: 1px solid var(--background-modifier-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-header h1 {
|
||||||
|
margin: 0;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-header-status {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
min-height: 24px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-status-pill {
|
||||||
|
--settings-pill-color: var(--text-muted);
|
||||||
|
--settings-pill-background: transparent;
|
||||||
|
--settings-pill-border: transparent;
|
||||||
|
|
||||||
|
display: none;
|
||||||
|
align-items: center;
|
||||||
|
max-width: min(520px, calc(100vw - 180px));
|
||||||
|
padding: 3px 10px;
|
||||||
|
border-radius: 999px;
|
||||||
|
color: var(--settings-pill-color);
|
||||||
|
background: var(--settings-pill-background);
|
||||||
|
border: 1px solid var(--settings-pill-border);
|
||||||
|
font-size: var(--font-ui-smaller);
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 1.3;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-status-pill.is-visible {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-status-pill-validation {
|
||||||
|
--settings-pill-color: var(--text-error);
|
||||||
|
--settings-pill-background: rgba(var(--background-modifier-error-rgb), 0.14);
|
||||||
|
--settings-pill-border: color-mix(in srgb, var(--background-modifier-error) 75%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-status-pill-dirty {
|
||||||
|
--settings-pill-color: var(--text-accent);
|
||||||
|
--settings-pill-background: color-mix(in srgb, var(--interactive-accent) 12%, transparent);
|
||||||
|
--settings-pill-border: color-mix(in srgb, var(--interactive-accent) 35%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-button-bar {
|
||||||
|
flex-shrink: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 12px 0 0;
|
||||||
|
border-top: 1px solid var(--background-modifier-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.task-list-kanban-confirm-modal {
|
||||||
|
min-width: min(420px, calc(100vw - 64px));
|
||||||
|
}
|
||||||
|
|
||||||
|
.task-list-kanban-confirm-modal h2 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.confirm-modal-actions {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
gap: 8px;
|
||||||
|
margin-top: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-body {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 180px minmax(0, 1fr);
|
||||||
|
gap: 24px;
|
||||||
|
flex: 1;
|
||||||
|
min-height: 0;
|
||||||
|
padding-top: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-nav {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 4px;
|
||||||
|
padding: 2px 0 12px;
|
||||||
|
overflow-y: auto;
|
||||||
|
min-height: 0;
|
||||||
|
border-right: 1px solid var(--background-modifier-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-nav button {
|
||||||
|
justify-content: flex-start;
|
||||||
|
width: calc(100% - 14px);
|
||||||
|
height: auto;
|
||||||
|
min-height: 32px;
|
||||||
|
padding: 6px 10px;
|
||||||
|
border-radius: var(--radius-s);
|
||||||
|
color: var(--text-muted);
|
||||||
|
background: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
font-size: var(--font-ui-small);
|
||||||
|
font-weight: 600;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-nav button:hover,
|
||||||
|
.settings-nav button:focus-visible {
|
||||||
|
color: var(--text-normal);
|
||||||
|
background: var(--background-modifier-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-content {
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
min-height: 0;
|
||||||
|
padding: 0 2px 12px 0;
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-section {
|
||||||
|
padding-bottom: 22px;
|
||||||
|
scroll-margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-section + .settings-section {
|
||||||
|
padding-top: 20px;
|
||||||
|
border-top: 1px solid var(--background-modifier-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-section-header {
|
||||||
|
margin-bottom: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-section-header h2 {
|
||||||
|
margin: 0 0 4px;
|
||||||
|
font-size: 1.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-section-header .setting-item-description {
|
||||||
|
margin: 0;
|
||||||
|
max-width: 760px;
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-section-body > .setting-item:first-child {
|
||||||
|
border-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-subsection {
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Column editor layout */
|
||||||
|
.column-editor-section {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-intro {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 12px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-intro .setting-item-description {
|
||||||
|
margin: 0;
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-controls button {
|
||||||
|
height: 30px;
|
||||||
|
padding: 4px 10px;
|
||||||
|
font-size: var(--font-ui-smaller);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-list {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 6px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
padding: 8px;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
border-radius: var(--radius-s);
|
||||||
|
background: var(--background-primary);
|
||||||
|
transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
|
||||||
|
overflow: visible;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-bookend {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row-content {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row:hover {
|
||||||
|
border-color: color-mix(in srgb, var(--background-modifier-border) 55%, var(--text-muted));
|
||||||
|
background: color-mix(in srgb, var(--background-primary) 92%, var(--background-modifier-hover));
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row:focus-within {
|
||||||
|
border-color: var(--background-modifier-border-focus);
|
||||||
|
box-shadow: 0 0 0 1px color-mix(in srgb, var(--background-modifier-border-focus) 45%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-drop-target {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-dragging {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-drop-before::before,
|
||||||
|
.column-editor-row.is-drop-after::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: 8px;
|
||||||
|
right: 8px;
|
||||||
|
height: 2px;
|
||||||
|
background: var(--interactive-accent);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-drop-before::after,
|
||||||
|
.column-editor-row.is-drop-after::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: 4px;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
border-radius: 999px;
|
||||||
|
background: var(--interactive-accent);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-drop-before::before {
|
||||||
|
top: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-drop-before::after {
|
||||||
|
top: -6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-drop-after::before {
|
||||||
|
bottom: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-drop-after::after {
|
||||||
|
bottom: -6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-handle,
|
||||||
|
.column-editor-handle-spacer {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
flex: 0 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-handle {
|
||||||
|
cursor: grab;
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1;
|
||||||
|
opacity: 0.7;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 999px;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-handle:active {
|
||||||
|
cursor: grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-fields {
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-summary {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: minmax(180px, 1fr) 24px minmax(150px, auto);
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
min-width: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-bookend .column-editor-summary {
|
||||||
|
grid-template-columns: minmax(180px, 1fr) minmax(150px, auto);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-pill {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
min-height: 24px;
|
||||||
|
max-width: 180px;
|
||||||
|
padding: 2px 8px;
|
||||||
|
border-radius: var(--radius-s);
|
||||||
|
color: var(--text-muted);
|
||||||
|
background: var(--background-secondary);
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
font-size: var(--font-ui-smaller);
|
||||||
|
font-weight: 600;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-popover-anchor {
|
||||||
|
position: relative;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-match-anchor {
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-popover {
|
||||||
|
position: absolute;
|
||||||
|
top: calc(100% + 8px);
|
||||||
|
z-index: 20;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
border-radius: var(--radius-s);
|
||||||
|
background: var(--background-primary);
|
||||||
|
box-shadow: var(--shadow-s);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-color-popover {
|
||||||
|
left: 50%;
|
||||||
|
width: 230px;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-match-popover {
|
||||||
|
right: 0;
|
||||||
|
width: min(360px, calc(100vw - 64px));
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-popover-field {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-summary-button {
|
||||||
|
appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
cursor: pointer;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-summary-button:hover,
|
||||||
|
.column-editor-summary-button:focus-visible {
|
||||||
|
color: var(--text-normal);
|
||||||
|
background: var(--background-modifier-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-fields.column-editor-fields-inline {
|
||||||
|
align-items: center;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 100%;
|
||||||
|
padding: 1px 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
min-width: 0;
|
||||||
|
flex: 0 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-fields.column-editor-fields-inline .column-editor-field {
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field input,
|
||||||
|
.column-editor-field select {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field .setting-input,
|
||||||
|
.column-editor-field select {
|
||||||
|
height: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-label {
|
||||||
|
flex: 1 1 220px;
|
||||||
|
min-width: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-label .setting-input {
|
||||||
|
width: 100%;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-label .setting-input:focus {
|
||||||
|
text-overflow: clip;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-tag {
|
||||||
|
flex: 1 1 260px;
|
||||||
|
min-width: 0;
|
||||||
|
position: relative;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-tag-select-host {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
min-width: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-match,
|
||||||
|
.column-editor-field-visibility,
|
||||||
|
.column-editor-field-status {
|
||||||
|
flex: 0 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-match select {
|
||||||
|
width: auto;
|
||||||
|
min-width: 0;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-visibility select {
|
||||||
|
min-width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-status select {
|
||||||
|
min-width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-status .setting-input {
|
||||||
|
width: 84px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-status .setting-input:not(.is-visible) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-inline-label {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: var(--font-ui-smaller);
|
||||||
|
font-weight: 600;
|
||||||
|
white-space: nowrap;
|
||||||
|
letter-spacing: 0.01em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-color .setting-input {
|
||||||
|
width: 96px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-color-swatch {
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
border-radius: 999px;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
background-color: var(--column-editor-swatch-color, transparent) !important;
|
||||||
|
background-image: repeating-conic-gradient(
|
||||||
|
from 45deg,
|
||||||
|
var(--background-primary) 0deg 90deg,
|
||||||
|
var(--background-secondary) 90deg 180deg
|
||||||
|
);
|
||||||
|
background-blend-mode: overlay;
|
||||||
|
flex: 0 0 18px;
|
||||||
|
padding: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-summary-swatch {
|
||||||
|
justify-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-color-swatch.has-color {
|
||||||
|
border-color: color-mix(in srgb, var(--background-modifier-border) 40%, var(--text-normal));
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-color-picker {
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-rename-option {
|
||||||
|
display: none;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: var(--font-ui-smaller);
|
||||||
|
white-space: nowrap;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
|
padding: 2px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-rename-option input,
|
||||||
|
.column-editor-rename-option label {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-remove-rail {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: auto;
|
||||||
|
flex: 0 0 20px;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-remove-rail > button {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 999px;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: var(--text-faint);
|
||||||
|
opacity: 0.75;
|
||||||
|
transition: color 140ms ease, background-color 140ms ease, opacity 140ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-remove-rail > button:hover {
|
||||||
|
color: var(--text-muted);
|
||||||
|
background: var(--background-modifier-hover);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-controls {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive layout */
|
||||||
|
@media (max-width: 900px) {
|
||||||
|
.task-list-kanban-settings-modal-container {
|
||||||
|
width: min(920px, calc(100vw - 24px));
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-body {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-nav {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 4;
|
||||||
|
flex-direction: row;
|
||||||
|
gap: 6px;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 0 0 10px;
|
||||||
|
border-right: 0;
|
||||||
|
border-bottom: 1px solid var(--background-modifier-border);
|
||||||
|
background: var(--background-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-nav button {
|
||||||
|
width: auto;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-summary {
|
||||||
|
grid-template-columns: minmax(160px, 1fr) auto auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 720px) {
|
||||||
|
.column-editor-row {
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-intro,
|
||||||
|
.column-editor-summary,
|
||||||
|
.column-editor-fields.column-editor-fields-inline,
|
||||||
|
.column-editor-field {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-intro {
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-summary {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-row.is-bookend .column-editor-summary {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-fields.column-editor-fields-inline {
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-label,
|
||||||
|
.column-editor-field-tag,
|
||||||
|
.column-editor-field-match,
|
||||||
|
.column-editor-field-visibility,
|
||||||
|
.column-editor-field-status,
|
||||||
|
.column-editor-field-color {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-tag,
|
||||||
|
.column-editor-tag-select-host {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-popover-anchor,
|
||||||
|
.column-editor-popover,
|
||||||
|
.column-editor-popover-field {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-popover {
|
||||||
|
position: static;
|
||||||
|
transform: none;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-field-match select,
|
||||||
|
.column-editor-field-visibility select,
|
||||||
|
.column-editor-field-status select,
|
||||||
|
.column-editor-field-status .setting-input,
|
||||||
|
.column-editor-field-color .setting-input {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-editor-pill {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
+30
-22
File diff suppressed because one or more lines are too long
+9
-3
@@ -1,11 +1,17 @@
|
|||||||
{
|
{
|
||||||
"id": "templater-obsidian",
|
"id": "templater-obsidian",
|
||||||
"name": "Templater",
|
"name": "Templater",
|
||||||
"version": "2.18.1",
|
"version": "2.20.6",
|
||||||
"description": "Create and use templates",
|
"description": "Advanced templating and automation using handlebars-like syntax.",
|
||||||
"minAppVersion": "1.5.0",
|
"minAppVersion": "1.12.2",
|
||||||
"author": "SilentVoid",
|
"author": "SilentVoid",
|
||||||
"authorUrl": "https://github.com/SilentVoid13",
|
"authorUrl": "https://github.com/SilentVoid13",
|
||||||
|
"fundingUrl": {
|
||||||
|
"GitHub Sponser (Zachatoo, maintainer)": "https://github.com/sponsors/Zachatoo",
|
||||||
|
"Ko-fi (Zachatoo, maintainer)": "https://ko-fi.com/zachatoo",
|
||||||
|
"GitHub Sponser (SilentVoid13, creator)": "https://github.com/sponsors/SilentVoid13",
|
||||||
|
"Paypal (SilentVoid13, creator)": "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"
|
||||||
|
},
|
||||||
"helpUrl": "https://silentvoid13.github.io/Templater/",
|
"helpUrl": "https://silentvoid13.github.io/Templater/",
|
||||||
"isDesktopOnly": false
|
"isDesktopOnly": false
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -221,6 +221,6 @@ textarea.templater-prompt-input:focus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
li.CodeMirror-hint-active {
|
li.CodeMirror-hint-active {
|
||||||
background: #08f;
|
background: #0088ff;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"contactsFolder": "Infos/Kontakte",
|
||||||
|
"defaultHashtag": "#process/contact",
|
||||||
|
"processors": {
|
||||||
|
"UidProcessor": true,
|
||||||
|
"SyncUnknownProcessor": true
|
||||||
|
},
|
||||||
|
"syncSelected": "CardDAV",
|
||||||
|
"syncEnabled": true,
|
||||||
|
"groupInsights": true,
|
||||||
|
"CardDAV": {
|
||||||
|
"addressBookUrl": "https://cal.thpeetz.de/tpeetz/77b1c975-45b5-3e60-fda2-7a396513c6f7/",
|
||||||
|
"syncInterval": 900,
|
||||||
|
"authKey": "dHBlZXR6OmlrYW1rdWJtMjA=",
|
||||||
|
"authType": "basic"
|
||||||
|
},
|
||||||
|
"createFieldsKeys": [
|
||||||
|
"N.PREFIX",
|
||||||
|
"N.GN",
|
||||||
|
"N.MN",
|
||||||
|
"N.FN",
|
||||||
|
"N.SUFFIX",
|
||||||
|
"TEL[CELL]",
|
||||||
|
"TEL[HOME]",
|
||||||
|
"TEL[WORK]",
|
||||||
|
"EMAIL[HOME]",
|
||||||
|
"EMAIL[WORK]",
|
||||||
|
"BDAY",
|
||||||
|
"PHOTO",
|
||||||
|
"ADR[HOME].STREET",
|
||||||
|
"ADR[HOME].LOCALITY",
|
||||||
|
"ADR[HOME].POSTAL",
|
||||||
|
"ADR[HOME].COUNTRY",
|
||||||
|
"URL[WORK]",
|
||||||
|
"ORG",
|
||||||
|
"ROLE",
|
||||||
|
"CATEGORIES",
|
||||||
|
"X-RELATIONSHIP",
|
||||||
|
"X-LAST-CHAT",
|
||||||
|
"SOCIALPROFILE[LINKEDIN]"
|
||||||
|
]
|
||||||
|
}
|
||||||
+100
File diff suppressed because one or more lines are too long
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "vcf-contacts",
|
||||||
|
"name": "VCF Contacts",
|
||||||
|
"version": "2.4.2",
|
||||||
|
"minAppVersion": "1.4.10",
|
||||||
|
"description": "Effortlessly manage, organize, and interact with your contacts. Import, export, and structure vCard (VCF) files seamlessly while keeping all contact details accessible in your knowledge base. Includes click-to-call, right-click copy, structured metadata, and more!",
|
||||||
|
"author": "Roland Broekema",
|
||||||
|
"authorUrl": "https://github.com/broekema41/",
|
||||||
|
"isDesktopOnly": false,
|
||||||
|
"forkedFrom": "https://github.com/vbeskrovnov/obsidian-contacts/"
|
||||||
|
}
|
||||||
+440
@@ -0,0 +1,440 @@
|
|||||||
|
.menu-vert {
|
||||||
|
border: 1px solid var(--titlebar-background-focused);
|
||||||
|
margin-left: 2px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contacts-sidebar {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contacts-menu {
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contacts-view {
|
||||||
|
overflow-y: auto;
|
||||||
|
scrollbar-gutter: stable;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.insights-results {
|
||||||
|
border-bottom: 1px solid var(--background-modifier-border);
|
||||||
|
margin-bottom: 8px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.insights-results-header {
|
||||||
|
color: var(--text-muted);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 0;
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.insights-result-count {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.insights-results-settings {
|
||||||
|
flex-basis: 100%;
|
||||||
|
margin: var(--size-4-4) var(--size-4-4) 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.insights-results-settings .setting-item-name {
|
||||||
|
font-size: var(--font-ui-small);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contacts-view-close {
|
||||||
|
position: relative;
|
||||||
|
width: 34px;
|
||||||
|
padding-top: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-card {
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-modal-buttons {
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-modal-buttons button {
|
||||||
|
font-weight: "bold";
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-modal-label {
|
||||||
|
display: block;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-modal-input {
|
||||||
|
margin-bottom: 12px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inner-card-container {
|
||||||
|
container-name: bizzy-card;
|
||||||
|
container-type: inline-size;
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bizzy-card-container {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
border: 2px solid var(--divider-color);
|
||||||
|
min-width: 200px;
|
||||||
|
max-width: 450px;
|
||||||
|
flex-basis: auto;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
border-radius: 12px;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.bizzy-card-container:hover {
|
||||||
|
.biz-shape {
|
||||||
|
background: var(--tag-background-hover);
|
||||||
|
border: 2px solid var(--tag-border-color-hover);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bizzy-card-container .biz-contact-actions {
|
||||||
|
position: absolute;
|
||||||
|
right: 4px;
|
||||||
|
top: 4px;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.bizzy-card-container .biz-contact-actions .clickable-icon {
|
||||||
|
padding: var(--size-2-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*=============================
|
||||||
|
Left Content
|
||||||
|
===============================*/
|
||||||
|
.biz-card-a {
|
||||||
|
position: relative;
|
||||||
|
width: 160px;
|
||||||
|
height: 220px;
|
||||||
|
padding: 10px;
|
||||||
|
transition: 0.2s ease;
|
||||||
|
color: var(--text-normal);
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bizzy-card-organization {
|
||||||
|
position: absolute;
|
||||||
|
width: 196px;
|
||||||
|
padding: 2px;
|
||||||
|
padding-left: 14px;
|
||||||
|
padding-right: 14px;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: right;
|
||||||
|
color: var(--nav-item-color);
|
||||||
|
border-bottom: 2px solid var(--divider-color);
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-headshot {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
padding-top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bizzy-card-organization + .biz-card-a .biz-headshot {
|
||||||
|
padding-top: 27px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-initials {
|
||||||
|
display: block;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
box-shadow: 0 0 0 2px var(--tag-border-color);
|
||||||
|
background-color: var(--tag-background);
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-initials img,
|
||||||
|
.avatar-initials svg {
|
||||||
|
display: block; /* removes extra white space under inline elements */
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.avatar-initials svg text {
|
||||||
|
fill: var(--tag-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.biz-words-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-top: 6px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
justify-content: center;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-name {
|
||||||
|
text-align: center;
|
||||||
|
font-family: 'Anton', sans-serif;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-title {
|
||||||
|
text-align: center;
|
||||||
|
font-family: 'Nunito', sans-serif;
|
||||||
|
font-size: 0.8em;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*=============================
|
||||||
|
Right Content
|
||||||
|
===============================*/
|
||||||
|
.biz-card-b {
|
||||||
|
position: relative;
|
||||||
|
width: 230px;
|
||||||
|
height: 220px;
|
||||||
|
padding: 10px;
|
||||||
|
transition: 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-shape {
|
||||||
|
position: absolute;
|
||||||
|
background: var(--tag-background);
|
||||||
|
transform: scaleX(1) rotate(16deg);
|
||||||
|
top: -60px;
|
||||||
|
left: 20px;
|
||||||
|
height: 308px;
|
||||||
|
border-radius: 50px;
|
||||||
|
width: 300px;
|
||||||
|
color: var(--tag-color);
|
||||||
|
border: 2px solid var(--tag-border-color);
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-contact-box {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
padding: 10px 10px 16px 0px;
|
||||||
|
width: 215px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: flex-end;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-item {
|
||||||
|
font-size: 12px;
|
||||||
|
letter-spacing: 0.15rem;
|
||||||
|
margin-left: 0px;
|
||||||
|
cursor: pointer;
|
||||||
|
padding-top: 5px;
|
||||||
|
font-family: 'Nunito', sans-serif;
|
||||||
|
font-weight: 300;
|
||||||
|
color:var(--tag-color);
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-item a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-card {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
padding: 12px;
|
||||||
|
border-radius: 12px;
|
||||||
|
border: 2px solid var(--divider-color);
|
||||||
|
margin: 8px 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-card-actions {
|
||||||
|
display: flex;
|
||||||
|
gap: var(--size-4-2);
|
||||||
|
flex-wrap: wrap;
|
||||||
|
font-size: var(--font-ui-medium);
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-card-content {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
color: var(--metadata-label-text-color);
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-card-content.action-card-content--no-height {
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-card-button {
|
||||||
|
align-self: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-card-content :first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-card:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-content:has(.contacts-sidebar) {
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-actionable-container {
|
||||||
|
container-name: actionable-card;
|
||||||
|
container-type: inline-size;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*=============================
|
||||||
|
Business Card Mobile
|
||||||
|
===============================*/
|
||||||
|
@Container bizzy-card (max-width: 410px) {
|
||||||
|
.bizzy-card-container {
|
||||||
|
width: 240px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-initials {
|
||||||
|
width: 85px;
|
||||||
|
height: 85px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.bizzy-card-organization {
|
||||||
|
width: 240px;
|
||||||
|
padding: 6px 65px 6px 14px;
|
||||||
|
text-align: left;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.biz-card-a {
|
||||||
|
width: 240px;
|
||||||
|
height: 185px;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-headshot {
|
||||||
|
position: relative;
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-card-b {
|
||||||
|
width: 240px;
|
||||||
|
height: 180px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-shape {
|
||||||
|
transform: scaleX(1) rotate(85deg);
|
||||||
|
top: -2px;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biz-contact-box {
|
||||||
|
position: absolute;
|
||||||
|
margin-top: 150px;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 10px 10px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar.progress-bar--contacts,
|
||||||
|
.progress-bar.progress-bar--contacts .progress-bar-indicator {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setting-item-spacer {
|
||||||
|
margin-top: 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-tag-list {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-tag-list a {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: 4px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu .menu-item[data-section="vcf-sync-danger"] {
|
||||||
|
color: var(--text-error);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu .menu-item[data-section="vcf-sync-danger"] .menu-item-icon {
|
||||||
|
color: var(--text-error);
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-wrapper {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-count {
|
||||||
|
position: absolute;
|
||||||
|
top: -4px;
|
||||||
|
right: -4px;
|
||||||
|
color: var(--icon-color-active);
|
||||||
|
background-color: var(--background-modifier-active-hover);
|
||||||
|
/*background-color: var(--interactive-accent);*/
|
||||||
|
/*color: var(--titlebar-background-focused);*/
|
||||||
|
font-size: 0.85rem;
|
||||||
|
line-height: 1;
|
||||||
|
padding: 1px 4px;
|
||||||
|
border-radius: 999px;
|
||||||
|
min-width: 16px;
|
||||||
|
text-align: center;
|
||||||
|
box-shadow: 0 0 2px rgba(0,0,0,0.3);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clickable-icon.is-pulsing {
|
||||||
|
opacity: var(--icon-opacity-hover);
|
||||||
|
color: var(--icon-color-active);
|
||||||
|
background-color: var(--background-modifier-active-hover);
|
||||||
|
animation: pulse-color-bg 1.8s infinite ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse-color-bg {
|
||||||
|
0%, 100% {
|
||||||
|
color: var(--icon-color-active);
|
||||||
|
background-color: var(--background-modifier-active-hover);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
color: var(--icon-color-hover, #fff);
|
||||||
|
background-color: var(--background-modifier-active);
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+3
-41
@@ -3,26 +3,6 @@
|
|||||||
"aliases": "aliases",
|
"aliases": "aliases",
|
||||||
"cssclasses": "multitext",
|
"cssclasses": "multitext",
|
||||||
"tags": "tags",
|
"tags": "tags",
|
||||||
"meditation": "checkbox",
|
|
||||||
"date": "date",
|
|
||||||
"last_chat": "date",
|
|
||||||
"total": "number",
|
|
||||||
"current": "number",
|
|
||||||
"anteil": "number",
|
|
||||||
"birthday": "date",
|
|
||||||
"friends": "text",
|
|
||||||
"Steuerbescheid": "date",
|
|
||||||
"Aufbewahrung": "date",
|
|
||||||
"Entsorgung": "date",
|
|
||||||
"Erstausstrahlung_DE": "date",
|
|
||||||
"Erstausstrahlung_UK": "date",
|
|
||||||
"created": "date",
|
|
||||||
"family": "text",
|
|
||||||
"heizung": "number",
|
|
||||||
"warmwasser": "number",
|
|
||||||
"former_company": "multitext",
|
|
||||||
"weight": "number",
|
|
||||||
"plank": "number",
|
|
||||||
"TQ_explain": "checkbox",
|
"TQ_explain": "checkbox",
|
||||||
"TQ_extra_instructions": "text",
|
"TQ_extra_instructions": "text",
|
||||||
"TQ_short_mode": "checkbox",
|
"TQ_short_mode": "checkbox",
|
||||||
@@ -42,28 +22,10 @@
|
|||||||
"TQ_show_start_date": "checkbox",
|
"TQ_show_start_date": "checkbox",
|
||||||
"TQ_show_tags": "checkbox",
|
"TQ_show_tags": "checkbox",
|
||||||
"TQ_show_task_count": "checkbox",
|
"TQ_show_task_count": "checkbox",
|
||||||
|
"TQ_show_toolbar": "checkbox",
|
||||||
"TQ_show_tree": "checkbox",
|
"TQ_show_tree": "checkbox",
|
||||||
"TQ_show_urgency": "checkbox",
|
"TQ_show_urgency": "checkbox",
|
||||||
"leseliste": "multitext",
|
"X-LAST-CHAT": "date",
|
||||||
"rework": "checkbox",
|
"BDAY": "date"
|
||||||
"work_hours": "number",
|
|
||||||
"imported": "checkbox",
|
|
||||||
"work_home": "checkbox",
|
|
||||||
"work_office": "checkbox",
|
|
||||||
"lecture_date": "date",
|
|
||||||
"gilde": "multitext",
|
|
||||||
"gekauft": "checkbox",
|
|
||||||
"Erstaustrahlung_USA": "date",
|
|
||||||
"Folge": "number",
|
|
||||||
"deciders": "multitext",
|
|
||||||
"consulted": "multitext",
|
|
||||||
"informed": "multitext",
|
|
||||||
"shareholder": "multitext",
|
|
||||||
"former_project": "multitext",
|
|
||||||
"TQ_show_toolbar": "checkbox",
|
|
||||||
"reference": "multitext",
|
|
||||||
"wikipedia": "text",
|
|
||||||
"children": "multitext",
|
|
||||||
"parents": "multitext"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
---
|
|
||||||
name: David Bursch
|
|
||||||
phone: +49 3379 314741
|
|
||||||
mobile:
|
|
||||||
phone_work: +49 511 101-2911
|
|
||||||
email: david.bursch@vvv-net.de
|
|
||||||
email_work: extern-david.bursch@iuk.lst.niedersachsen.de
|
|
||||||
telegram:
|
|
||||||
linkedin:
|
|
||||||
birthday:
|
|
||||||
last_chat:
|
|
||||||
friends:
|
|
||||||
type: contact
|
|
||||||
relationship: projekt
|
|
||||||
template: "[[Resources/Templates/contact]]"
|
|
||||||
tags:
|
|
||||||
- process/contact
|
|
||||||
---
|
|
||||||
|
|
||||||
## Termine
|
|
||||||
```dataview
|
|
||||||
LIST FROM [[]] AND !outgoing([[]]) AND "Journal"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Referenzen
|
|
||||||
```dataview
|
|
||||||
list from [[]] and !outgoing([[]]) AND !"Journal" AND !"Infos/Kontakte"
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
---
|
|
||||||
name: Frank Wolter
|
|
||||||
phone: +49 30 382 43 91
|
|
||||||
address:
|
|
||||||
street: Wernerwerkdamm 36
|
|
||||||
city: Berlin
|
|
||||||
code: 13629
|
|
||||||
country: Deutschland
|
|
||||||
telegram:
|
|
||||||
linkedin:
|
|
||||||
birthday:
|
|
||||||
last_chat:
|
|
||||||
friends:
|
|
||||||
married: "[[Petra Wolter]]"
|
|
||||||
type: contact
|
|
||||||
relationship: freund
|
|
||||||
template: "[[Resources/Templates/contact]]"
|
|
||||||
tags:
|
|
||||||
- process/contact
|
|
||||||
---
|
|
||||||
|
|
||||||
## Termine
|
|
||||||
```dataview
|
|
||||||
LIST FROM [[]] AND !outgoing([[]]) AND "Journal"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Referenzen
|
|
||||||
```dataview
|
|
||||||
list from [[]] and !outgoing([[]]) AND !"Journal" AND !"Infos/Kontakte"
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
---
|
|
||||||
name: Harald Göttlicher
|
|
||||||
phone: +49 179 2017600
|
|
||||||
email: Harald.Goettlicher@de.bosch.com
|
|
||||||
telegram: "+491792017600"
|
|
||||||
signal: "+491792017600"
|
|
||||||
linkedin:
|
|
||||||
xing: https://www.xing.com/profile/Harald_Goettlicher
|
|
||||||
birthday:
|
|
||||||
last_chat:
|
|
||||||
friends:
|
|
||||||
type: contact
|
|
||||||
relationship: projekt
|
|
||||||
template: "[[Resources/Templates/contact]]"
|
|
||||||
company: "[[Robert Bosch GmbH]]"
|
|
||||||
location: Plochingen
|
|
||||||
tags:
|
|
||||||
- process/contact
|
|
||||||
former_project:
|
|
||||||
- "[[Buildteam]]"
|
|
||||||
---
|
|
||||||
|
|
||||||
## Termine
|
|
||||||
```dataview
|
|
||||||
LIST FROM [[]] AND !outgoing([[]]) AND "Journal"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Referenzen
|
|
||||||
```dataview
|
|
||||||
list from [[]] and !outgoing([[]]) AND !"Journal" AND !"Infos/Kontakte"
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
---
|
|
||||||
name: Katharina Smuda
|
|
||||||
phone:
|
|
||||||
address:
|
|
||||||
street: Mühlenstrasse 13
|
|
||||||
city: Langen
|
|
||||||
code:
|
|
||||||
state: Brandenburg
|
|
||||||
country: Deutschland
|
|
||||||
telegram:
|
|
||||||
linkedin:
|
|
||||||
birthday: 1971-06-28
|
|
||||||
last_chat:
|
|
||||||
friends:
|
|
||||||
married: "[[Uwe Reinhardt]]"
|
|
||||||
type: contact
|
|
||||||
relationship: kollege
|
|
||||||
template: "[[Resources/Templates/contact]]"
|
|
||||||
tags:
|
|
||||||
- process/contact
|
|
||||||
---
|
|
||||||
|
|
||||||
## Termine
|
|
||||||
```dataview
|
|
||||||
LIST FROM [[]] AND !outgoing([[]]) AND "Journal"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Referenzen
|
|
||||||
```dataview
|
|
||||||
list from [[]] and !outgoing([[]]) AND !"Journal" AND !"Infos/Kontakte"
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -14,4 +14,4 @@ SLA Service-Level-Agreement beschreiben und ein Beispiel für eine IT-Dienstleis
|
|||||||
SLA für die IT-Dienstleistung "Hilfe bei IT-Problemen (Software- Installation/Update)" schreiben
|
SLA für die IT-Dienstleistung "Hilfe bei IT-Problemen (Software- Installation/Update)" schreiben
|
||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [ ] Erklärung SLA mit Beispiel erstellen [start:: 2024-11-07]
|
- [ ] Erklärung SLA mit Beispiel erstellen [start:: 2026-06-08]
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
reference:
|
||||||
|
- "[[PURR Development]]"
|
||||||
|
---
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [ ] Austausch zu PURR
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
status: Backlog
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!task]+
|
|
||||||
> Project::
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Installation Booklore"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [ ] Installation Booklore [start:: 2026-02-23] [scheduled:: 2026-04-13]
|
|
||||||
@@ -26,7 +26,7 @@ sudo apt-get purge $(dpkg -l | grep '^rc' | awk '{print $2}')
|
|||||||
|
|
||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [ ] Remove obsolete config [start:: 2024-10-13] [scheduled:: 2026-04-13]
|
- [x] Remove obsolete config [start:: 2024-10-13] [scheduled:: 2026-04-13] [completion:: 2026-05-07]
|
||||||
- [ ] Replace cron-jobs with systemd- services and timers
|
- [ ] Replace cron-jobs with systemd- services and timers
|
||||||
- [x] Stop and disable service unattended-upgrades [start:: 2025-07-21] [completion:: 2025-07-27]
|
- [x] Stop and disable service unattended-upgrades [start:: 2025-07-21] [completion:: 2025-07-27]
|
||||||
- [x] Entfernen von zfs-fuse [start:: 2025-07-27] [completion:: 2025-07-27]
|
- [x] Entfernen von zfs-fuse [start:: 2025-07-27] [completion:: 2025-07-27]
|
||||||
@@ -34,5 +34,5 @@ sudo apt-get purge $(dpkg -l | grep '^rc' | awk '{print $2}')
|
|||||||
- [x] Ersetzen von SysV Skripten mit systemd [start:: 2025-07-21] [completion:: 2025-08-02]
|
- [x] Ersetzen von SysV Skripten mit systemd [start:: 2025-07-21] [completion:: 2025-08-02]
|
||||||
- [x] Deinstallation von task und taskd [scheduled:: 2025-08-02] [completion:: 2025-08-02]
|
- [x] Deinstallation von task und taskd [scheduled:: 2025-08-02] [completion:: 2025-08-02]
|
||||||
- [x] Installation von Certbot NginX Plugin [scheduled:: 2025-08-02] [completion:: 2025-08-02]
|
- [x] Installation von Certbot NginX Plugin [scheduled:: 2025-08-02] [completion:: 2025-08-02]
|
||||||
- [ ] Installation rustup [scheduled:: 2026-04-13]
|
- [x] Installation rustup [scheduled:: 2026-04-13] [completion:: 2026-05-07]
|
||||||
- [x] Installation von uv [scheduled:: 2025-08-02] [completion:: 2025-08-02]
|
- [x] Installation von uv [scheduled:: 2025-08-02] [completion:: 2025-08-02]
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ return function View() {
|
|||||||
## Aufgaben
|
## Aufgaben
|
||||||
|
|
||||||
- [x] Lohnsteuerbescheinigung Thomas [start:: 2026-01-28] [completion:: 2026-01-29]
|
- [x] Lohnsteuerbescheinigung Thomas [start:: 2026-01-28] [completion:: 2026-01-29]
|
||||||
- [ ] Lohnsteuerbescheinigung Claudia [start:: 2026-03-01] [completion:: 2026-05-20]
|
- [ ] Lohnsteuerbescheinigung Claudia [start:: 2026-06-08] [completion:: 2026-05-20]
|
||||||
- [x] Nebenkostenabrechnung wegen haushaltsnaher Dienstleistungen #process/task [start:: 2026-01-27] [scheduled:: 2026-01-28] [completion:: 2026-02-05]
|
- [x] Nebenkostenabrechnung wegen haushaltsnaher Dienstleistungen #process/task [start:: 2026-01-27] [scheduled:: 2026-01-28] [completion:: 2026-02-05]
|
||||||
- [ ] Aufwendungen für Werbungskosten (Entfernung für Kilometerpauschale) [start:: 2026-01-01] [scheduled:: 2026-03-03]
|
- [ ] Aufwendungen für Werbungskosten (Entfernung für Kilometerpauschale) [start:: 2026-01-01] [scheduled:: 2026-06-08]
|
||||||
- [ ] Bescheid erhalten [start:: 2026-06-01]
|
- [ ] Bescheid erhalten [start:: 2026-06-08]
|
||||||
|
|
||||||
## Aufgaben
|
## Aufgaben
|
||||||
```dataviewjs
|
```dataviewjs
|
||||||
|
|||||||
@@ -12,4 +12,4 @@ Bar:: `$= dv.view('total-progress-bar', {file: "Hautkrebsscreening"})`
|
|||||||
## Überlegungen
|
## Überlegungen
|
||||||
|
|
||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
- [ ] Termin zur Vorsorge vereinbart [start:: 2024-07-04]
|
- [ ] Termin zur Vorsorge vereinbart [start:: 2026-06-08]
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ status: Archiv
|
|||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [ ] Nebenkostenabrechnung erhalten [start:: 2026-10-01]
|
- [ ] Nebenkostenabrechnung erhalten [start:: 2026-10-01]
|
||||||
- [ ] Nebenkostenabrechnung eingescannt [start:: 2025-10-01]
|
- [ ] Nebenkostenabrechnung eingescannt [start:: 2026-06-08]
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
subtitle: Confluence
|
|
||||||
---
|
|
||||||
## Project Info
|
|
||||||
|
|
||||||
## Thoughts
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
|
|
||||||
## Review questions
|
|
||||||
|
|
||||||
|
|
||||||
## Aufgaben
|
|
||||||
- [ ] Confluence Seiten überprpüft [scheduled:: 2026-04-13]
|
|
||||||
- [ ] Apache Servicemix Confluence Seite erstellen [scheduled:: 2026-04-13]
|
|
||||||
- [ ] Apache Camel Karavan Confluence Seite erstellen [scheduled:: 2026-04-13]
|
|
||||||
- [ ] Spring Boot mit Camel Confluence Seite erstellen [scheduled:: 2026-04-13]
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
status: Archiv
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!task]+
|
|
||||||
> Project:: [[Tibuci]]
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Dokumentation auf Stand bringen"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
Übertragung des PDF in Confluence
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [x] Dokumentation auf Stand bringen [start:: 2026-01-15] [due:: 2026-01-16] [completion:: 2026-01-15]
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
status: Backlog
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!task]+
|
|
||||||
> Project:: [[Maintenance der cimt-Talend-Komponenten übernehmen]]
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Erste Komponenten auf neues SDK umgestellt"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [ ] Erste Komponenten auf neues SDK umgestellt [start:: 2026-02-17] [due:: 2026-09-30]
|
|
||||||
- [ ] Umgestellte Komponenten laufen beim Kunden [start:: 2026-02-17] [due:: 2026-09-30]
|
|
||||||
@@ -16,4 +16,4 @@ tags:
|
|||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [x] Github Repository für nvim-config erstellen [start:: 2025-07-18] [due:: 2025-07-21] [completion:: 2025-07-18]
|
- [x] Github Repository für nvim-config erstellen [start:: 2025-07-18] [due:: 2025-07-21] [completion:: 2025-07-18]
|
||||||
- [ ] README.md für github Repository nvim-config schreiben [scheduled:: 2026-04-13]
|
- [ ] README.md für github Repository nvim-config schreiben [scheduled:: 2026-06-03]
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
---
|
|
||||||
status: In Arbeit
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!task]+
|
|
||||||
> Project:: [[Tibuci]]
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Google Cloud Projekt für Tibuci aufsetzen"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [x] Google Cloud Projekt für Tibuci aufsetzen #process/task [start:: 2026-02-26] [scheduled:: 2026-03-05] [completion:: 2026-03-05]
|
|
||||||
- [x] [[Frank Füllbier]] um Erzeugung des Projektes gebeten [start:: 2026-02-27] [scheduled:: 2026-03-05] [completion:: 2026-03-05]
|
|
||||||
- [x] GCP Container Registry für Tibuci aktivieren #process/task [start:: 2026-02-26] [scheduled:: 2026-03-09] [completion:: 2026-03-09]
|
|
||||||
- [x] Bestehendes Image roars-report:0.0.1 in Container Registry ablegen #process/task [start:: 2026-02-26] [scheduled:: 2026-03-09] [completion:: 2026-03-09]
|
|
||||||
- [ ] Laden des Image roars-report aus Container Registry #process/task [start:: 2026-02-26] [scheduled:: 2026-04-13]
|
|
||||||
- [x] Erstellen von Service-Accounts für Zugriff auf Google Artifact Registry [start:: 2026-02-26] [scheduled:: 2026-04-02] [completion:: 2026-04-02]
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!task]+
|
|
||||||
> Project:: [[Tibuci]]
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Kleines Übergabe-Planning"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [ ] Kleines Übergabe-Planning
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
---
|
|
||||||
status: Backlog
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
|
|
||||||
---
|
|
||||||
> [!task]+
|
|
||||||
> Project:: [[Maintenance der cimt-Talend-Komponenten übernehmen]]
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Umfang klären und Developmentplan aufstellen"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [ ] Umfang klären und Developmentplan aufstellen [start:: 2026-02-17] [due:: 2026-06-30]
|
|
||||||
+72
@@ -0,0 +1,72 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/project
|
||||||
|
- cimt/cip
|
||||||
|
reference:
|
||||||
|
- "[[Managed Services Team]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!abstract]+ Project
|
||||||
|
> Progress:: `$= dv.view('project-progress', {file: 'CIP067 Aufbau eines einheitlichen, wiederverwendbaren Monitoring-Stacks'})`
|
||||||
|
> Target:: `$= dv.view('project-target', {file: 'CIP067 Aufbau eines einheitlichen, wiederverwendbaren Monitoring-Stacks'})`
|
||||||
|
> Bar:: `$= dv.view('project-progress-bar', {file: 'CIP067 Aufbau eines einheitlichen, wiederverwendbaren Monitoring-Stacks'})`
|
||||||
|
> Tasks:: `$= const aufgaben = dv.page('CIP067 Aufbau eines einheitlichen, wiederverwendbaren Monitoring-Stacks').file.inlinks.where(t => { const mt = dv.page(t.path); return mt.tags?.includes('process/task') && mt.status === 'In Arbeit'}); if (aufgaben.length > 0) { dv.header(4, aufgaben.length > 1 ? "Aufgaben" : "Aufgabe"); dv.list(aufgaben) }`
|
||||||
|
|
||||||
|
## Project Info
|
||||||
|
|
||||||
|
### Stakeholder
|
||||||
|
- [[Frank Füllbier]]
|
||||||
|
|
||||||
|
### Mitglieder
|
||||||
|
- [[Marcel Kuszak]]
|
||||||
|
- [[Bastian Liesigk]]
|
||||||
|
- [[Christian Kiltz]]
|
||||||
|
|
||||||
|
## Thoughts
|
||||||
|
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
- https://cimtag.atlassian.net/wiki/spaces/CW/pages/5308350465/CIP+067+Aufbau+eines+einheitlichen+wiederverwendbaren+Monitoring-Stacks
|
||||||
|
|
||||||
|
## Review questions
|
||||||
|
|
||||||
|
## Termine
|
||||||
|
```dataview
|
||||||
|
LIST
|
||||||
|
FROM [[]] AND !outgoing([[]]) AND "Journal"
|
||||||
|
SORT date
|
||||||
|
```
|
||||||
|
|
||||||
|
## Aufgaben
|
||||||
|
|
||||||
|
## Offene Aufgaben
|
||||||
|
```dataviewjs
|
||||||
|
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length != dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);
|
||||||
|
|
||||||
|
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
||||||
|
const page = dv.page(p.path);
|
||||||
|
const tasks = page.file.tasks;
|
||||||
|
return [
|
||||||
|
page.file.link,
|
||||||
|
page.status,
|
||||||
|
tasks.where(t => t.fullyCompleted === true).length,
|
||||||
|
tasks.length
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
```
|
||||||
|
|
||||||
|
## Aufgaben
|
||||||
|
```dataviewjs
|
||||||
|
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task'));
|
||||||
|
|
||||||
|
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
||||||
|
const page = dv.page(p.path);
|
||||||
|
const tasks = page.file.tasks;
|
||||||
|
return [
|
||||||
|
page.file.link,
|
||||||
|
page.status,
|
||||||
|
tasks.where(t => t.fullyCompleted === true).length,
|
||||||
|
tasks.length
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
```
|
||||||
@@ -24,7 +24,7 @@ SORT location
|
|||||||
|
|
||||||
### Aufgaben
|
### Aufgaben
|
||||||
|
|
||||||
- [ ] Erstellung einer Email-Vorlage für die Einladung [start:: 2026-01-12]
|
- [ ] Erstellung einer Email-Vorlage für die Einladung [start:: 2026-06-08]
|
||||||
- [x] Einladung zu den Lightning Talks am 16.1.26 versendet [start:: 2026-01-12] [due:: 2026-01-13] [completion:: 2026-01-14]
|
- [x] Einladung zu den Lightning Talks am 16.1.26 versendet [start:: 2026-01-12] [due:: 2026-01-13] [completion:: 2026-01-14]
|
||||||
- [x] Überprüfung der Terminserie [start:: 2026-01-15] [scheduled:: 2026-01-30] [due:: 2026-02-15] [completion:: 2026-01-30]
|
- [x] Überprüfung der Terminserie [start:: 2026-01-15] [scheduled:: 2026-01-30] [due:: 2026-02-15] [completion:: 2026-01-30]
|
||||||
- [x] Einladung zum Orga-Treffen absprechen [start:: 2026-02-20] [due:: 2026-03-13] [completion:: 2026-03-02]
|
- [x] Einladung zum Orga-Treffen absprechen [start:: 2026-02-20] [due:: 2026-03-13] [completion:: 2026-03-02]
|
||||||
|
|||||||
@@ -7,9 +7,11 @@ lightning_talks_orga: Berlin
|
|||||||
|
|
||||||
## 🗓️Agenda
|
## 🗓️Agenda
|
||||||
|
|
||||||
|
Dieser Lightning Talks Termin wurde abgeasgt und auf den nächsten Lightning Talks Termin verschoben [[2026-06-19 Lightning Talks]].
|
||||||
|
|
||||||
## 📤 Gewünschtes Ergebnis
|
## 📤 Gewünschtes Ergebnis
|
||||||
|
|
||||||
## 📝Notizen
|
## 📝Notizen
|
||||||
|
|
||||||
## ✔️ Aufgaben
|
## ✔️ Aufgaben
|
||||||
- [ ] Einladung gesendet [start:: 2026-05-08] [due:: 2026-05-11]
|
- [-] Einladung gesendet [start:: 2026-05-08] [due:: 2026-05-12] [cancelled:: 2026-05-26]
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/meeting
|
||||||
|
- event/lightning_talk
|
||||||
|
lightning_talks_orga: Berlin
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗓️Agenda
|
||||||
|
|
||||||
|
## 📤 Gewünschtes Ergebnis
|
||||||
|
|
||||||
|
## 📝Notizen
|
||||||
|
|
||||||
|
## ✔️ Aufgaben
|
||||||
@@ -4,17 +4,35 @@ tags:
|
|||||||
---
|
---
|
||||||
## Team
|
## Team
|
||||||
```dataview
|
```dataview
|
||||||
TABLE location AS Standort
|
TABLE ADR[WORK].LOCALITY AS Standort
|
||||||
FROM [[]] AND !outgoing([[]]) AND "Infos/Kontakte"
|
FROM [[]] AND !outgoing([[]]) AND "Infos/Kontakte"
|
||||||
SORT file.name DESC
|
SORT file.name DESC
|
||||||
LIMIT 20
|
LIMIT 20
|
||||||
```
|
```
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
- https://cimt-objects.zammad.com
|
||||||
|
|
||||||
|
## Offene Aufgaben
|
||||||
|
```dataviewjs
|
||||||
|
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length != dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);
|
||||||
|
|
||||||
|
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
||||||
|
const page = dv.page(p.path);
|
||||||
|
const tasks = page.file.tasks;
|
||||||
|
return [
|
||||||
|
page.file.link,
|
||||||
|
page.status,
|
||||||
|
tasks.where(t => t.fullyCompleted === true).length,
|
||||||
|
tasks.length
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
```
|
||||||
|
|
||||||
## Aufgaben
|
## Aufgaben
|
||||||
```dataviewjs
|
```dataviewjs
|
||||||
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length != dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);
|
//const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task'));
|
||||||
|
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length == dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);
|
||||||
|
|
||||||
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
||||||
const page = dv.page(p.path);
|
const page = dv.page(p.path);
|
||||||
|
|||||||
@@ -14,4 +14,4 @@ tags:
|
|||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [x] AD-Benutzer für alanta erhalten [start:: 2026-02-19] [scheduled:: 2026-03-13] [completion:: 2026-03-13]
|
- [x] AD-Benutzer für alanta erhalten [start:: 2026-02-19] [scheduled:: 2026-03-13] [completion:: 2026-03-13]
|
||||||
- [ ] RDP-Zugang erfolgreich getestet [start:: 2026-03-16] [scheduled:: 2026-04-13]
|
- [ ] RDP-Zugang erfolgreich getestet [start:: 2026-03-16] [scheduled:: 2026-06-03]
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
---
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
reference:
|
|
||||||
- "[[Back Shop TK GmbH]]"
|
|
||||||
---
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Termine
|
|
||||||
```dataview
|
|
||||||
LIST
|
|
||||||
FROM [[]] AND !outgoing([[]]) AND "Journal"
|
|
||||||
SORT file.name DESC
|
|
||||||
LIMIT 20
|
|
||||||
```
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [x] Backshop Outtasking SOBS Oracle Datenbank [start:: 2026-03-16] [scheduled:: 2026-03-16] [completion:: 2026-03-16]
|
|
||||||
- [x] Backshop Outtasking SOBS Oracle Datenbank [start:: 2026-03-19] [scheduled:: 2026-03-19] [completion:: 2026-03-19]
|
|
||||||
- [x] Backshop Outtasking SOBS Oracle Datenbank [start:: 2026-03-23] [scheduled:: 2026-03-23] [completion:: 2026-03-23]
|
|
||||||
- [x] Backshop Outtasking SOBS Oracle Datenbank [repeat:: every week on Monday, Thursday] [start:: 2026-03-30] [scheduled:: 2026-03-30] [completion:: 2026-03-31]
|
|
||||||
- [x] Backshop Outtasking SOBS Oracle Datenbank [repeat:: every week on Monday, Thursday] [created:: 2026-03-31] [start:: 2026-04-02] [scheduled:: 2026-04-02] [completion:: 2026-04-02]
|
|
||||||
- [x] Backshop Outtasking SOBS Oracle Datenbank [repeat:: every week on Monday, Thursday] [created:: 2026-04-02] [start:: 2026-04-06] [scheduled:: 2026-04-07] [completion:: 2026-04-07]
|
|
||||||
- [x] Backshop Outtasking SOBS Oracle Datenbank [repeat:: every week on Monday, Thursday] [created:: 2026-04-07] [start:: 2026-04-09] [scheduled:: 2026-04-09] [completion:: 2026-04-09]
|
|
||||||
- [ ] Backshop Outtasking SOBS Oracle Datenbank [repeat:: every week on Monday, Thursday] [created:: 2026-04-09] [start:: 2026-04-13] [scheduled:: 2026-04-13]
|
|
||||||
@@ -13,5 +13,5 @@ tags:
|
|||||||
|
|
||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [ ] Benutzer-Account bei Enersuisse angelegt [start:: 2026-02-19] [scheduled:: 2026-04-13]
|
- [ ] Benutzer-Account bei Enersuisse angelegt [start:: 2026-02-19] [scheduled:: 2026-05-07]
|
||||||
- [x] [[Marcel Kuszak]] fragt Ansprechpartner bei Enersuisse [start:: 2026-02-19] [scheduled:: 2026-03-25] [completion:: 2026-03-25]
|
- [x] [[Marcel Kuszak]] fragt Ansprechpartner bei Enersuisse [start:: 2026-02-19] [scheduled:: 2026-03-25] [completion:: 2026-03-25]
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
reference:
|
||||||
|
- "[[Mobiterra]]"
|
||||||
|
---
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
Rückfrage an [[Philip Joschko]] bezüglich Benutzer Accounts und Zugang
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [ ] Einrichten der Mobitera Benutzer Accounts [start:: 2026-05-11] [scheduled:: 2026-06-03]
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
reference:
|
|
||||||
- "[[Harry Brot GmbH]]"
|
|
||||||
---
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Termine
|
|
||||||
```dataview
|
|
||||||
LIST
|
|
||||||
FROM [[]] AND !outgoing([[]]) AND "Journal"
|
|
||||||
SORT file.name DESC
|
|
||||||
LIMIT 20
|
|
||||||
```
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [x] Harry Brot Outtasking Datenbanken [start:: 2026-03-16] [scheduled:: 2026-03-16] [completion:: 2026-03-16]
|
|
||||||
- [x] Harry Brot Outtasking Datenbanken [start:: 2026-03-19] [scheduled:: 2026-03-19] [completion:: 2026-03-19]
|
|
||||||
- [x] Harry Brot Outtasking Datenbanken [start:: 2026-03-23] [scheduled:: 2026-03-23] [completion:: 2026-03-23]
|
|
||||||
- [x] Harry Brot Outtasking Datenbanken [repeat:: every week on Monday, Thursday] [start:: 2026-03-30] [scheduled:: 2026-03-30] [completion:: 2026-03-31]
|
|
||||||
- [x] Harry Brot Outtasking Datenbanken [repeat:: every week on Monday, Thursday] [created:: 2026-03-31] [start:: 2026-04-02] [scheduled:: 2026-04-02] [completion:: 2026-04-02]
|
|
||||||
- [x] Harry Brot Outtasking Datenbanken [repeat:: every week on Monday, Thursday] [created:: 2026-04-02] [start:: 2026-04-06] [scheduled:: 2026-04-07] [completion:: 2026-04-07]
|
|
||||||
- [x] Harry Brot Outtasking Datenbanken [repeat:: every week on Monday, Thursday] [created:: 2026-04-02] [start:: 2026-04-09] [scheduled:: 2026-04-09] [completion:: 2026-04-09]
|
|
||||||
- [ ] Harry Brot Outtasking Datenbanken [repeat:: every week on Monday, Thursday] [created:: 2026-04-09] [start:: 2026-04-13] [scheduled:: 2026-04-13]
|
|
||||||
@@ -12,8 +12,27 @@ reference:
|
|||||||
|
|
||||||
## Überlegungen
|
## Überlegungen
|
||||||
|
|
||||||
|
Linux **project quotas** (`prjquota`) allow you to set limits on directories and their future subdirectories, but they require manual configuration for each specific path rather than automatic inheritance for newly created directories.
|
||||||
|
|
||||||
|
To implement this, you must:
|
||||||
|
- **Enable the feature**: Add `prjquota` to the mount options in `/etc/fstab` and remount the filesystem.
|
||||||
|
- **Define projects**: Edit `/etc/projects` to assign a unique Project ID to the target directory (e.g., `/app/project1`).
|
||||||
|
- **Map IDs**: Edit `/etc/projid` to link the Project ID to a human-readable name.
|
||||||
|
- **Set limits**: Use `xfs_quota` to set soft and hard limits for that Project ID.
|
||||||
|
|
||||||
|
|
||||||
|
This method applies quotas to the specified directory and all its contents, including **future subdirectories** created within that path, but you must manually define the quota for each new top-level project directory you wish to limit.
|
||||||
## Links
|
## Links
|
||||||
- https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-setting-up.htm
|
- https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-setting-up.htm
|
||||||
|
- https://community.qlik.com/t5/Official-Support-Articles/Qlik-Data-Gateway-installation-requirements-Data-Movement/ta-p/2091557
|
||||||
|
- https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-setting-up.htm
|
||||||
|
- https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/supported-sources.htm
|
||||||
|
- https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-data-2.htm
|
||||||
|
- https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/AzureSQLMSCDC/Prereqs-sql-server-cdc.htm
|
||||||
|
- https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/postgresql-target.htm
|
||||||
|
- https://search.brave.com/ask?q=How+do+I+reset+or+modify+existing+prjquota+limits%3F&conversation=0904310594262d07a7936d9aa689d413fdc4
|
||||||
|
- https://search.brave.com/search?q=prjquota+set+limits+for+subdirectories+of+given+path&summary=1&conversation=0904da0eee1946f8461b4a15b8888452d6b1
|
||||||
|
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_file_systems/assembly_limiting-storage-space-usage-on-xfs-with-quotas_managing-file-systems
|
||||||
|
|
||||||
## Termine
|
## Termine
|
||||||
```dataview
|
```dataview
|
||||||
@@ -26,6 +45,10 @@ LIMIT 20
|
|||||||
## Installationslog
|
## Installationslog
|
||||||
|
|
||||||
````shell
|
````shell
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] fdisk /dev/sda
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] mkfs.xfs /dev/sda1
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] mkdir /data
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] blkid /dev/sda1 > /etc/fstab
|
||||||
[root@vsrv-qlik-dmgw-dev bin] cat /etc/fstab
|
[root@vsrv-qlik-dmgw-dev bin] cat /etc/fstab
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -43,6 +66,9 @@ UUID=12d381e2-428a-4a8b-bbd4-eb5cbf972065 /boot xfs defaul
|
|||||||
/dev/mapper/rl-home /home xfs defaults 0 0
|
/dev/mapper/rl-home /home xfs defaults 0 0
|
||||||
/dev/mapper/rl-swap none swap defaults 0 0
|
/dev/mapper/rl-swap none swap defaults 0 0
|
||||||
/dev/sda1 /opt xfs defaults 0 0
|
/dev/sda1 /opt xfs defaults 0 0
|
||||||
|
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] systemctl daemon-reload
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] mount -a
|
||||||
````
|
````
|
||||||
|
|
||||||
````Shell
|
````Shell
|
||||||
@@ -70,6 +96,24 @@ agentctl arep_csv2prq fix_permissions kinit libmongocr
|
|||||||
agentctl.dll.config arep_login.sh irpcd klist libsolclient.so repagent repctl.sh upgrade_services.sh
|
agentctl.dll.config arep_login.sh irpcd klist libsolclient.so repagent repctl.sh upgrade_services.sh
|
||||||
arepbq arep.sh kdestroy libe_sqlite3.so makeconv repctl site_arep_login.sh
|
arepbq arep.sh kdestroy libe_sqlite3.so makeconv repctl site_arep_login.sh
|
||||||
[root@vsrv-qlik-dmgw-dev bin] ./repagent agentctl qcs set_config --tenant_url hoyer.de.qlikcloud.com
|
[root@vsrv-qlik-dmgw-dev bin] ./repagent agentctl qcs set_config --tenant_url hoyer.de.qlikcloud.com
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] ./repagent agentctl qcs get_registration
|
||||||
|
{"agentType":"data-movement","kid":"cc055914-9918-4930-a482-e3bad6132212","publicKey":"-----BEGIN CERTIFICATE-----\nMIIE4TCCAsmgAwIBAgIJAP5E6EgJ9YJmMA0GCSqGSIb3DQEBCwUAMB4xHDAaBgNVBAMTE1FDU0Nv\r\nbm5lY3Rpb25Ccm9rZXIwHhcNMjYwNTEyMjIwMDAwWhcNMzYwNTA5MjIwMDAwWjAeMRwwGgYDVQQD\r\nExNRQ1NDb25uZWN0aW9uQnJva2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwNuc\r\nqtuQoMBurPYCZTgCnsRUpSxBnyku57WN0th21dMZWGbR+KkZVyk5NH1tgZ1pxdy0TinWsghjjKHY\r\nzeOpZdRQgRAsgLLKcdt9k2I/EUQFtxZ0i6Fh/iwuEuawM0EJWThivEDfTCW2K2/b/FCOGvf6yp4C\r\nd2Z5ChzQ/XZyehQdaESxuW4FH4YeaLAG0t9ZgNsKxwRDU51Uf26UQX+SETj9BX2gCEGcR8ig+Vqe\r\nhtv0/K22FgnnyFfqDHdnIkNuNB6DK6yoBYEaday7juAbYb1nO7x1PM56p3yiowX+3R2N/wH0pctw\r\nwYE+pidqXzkcMy+32q+v1MdPcckKli0v5D62W+2eM7poN3KRlP6qykOCKj4cSL9ATJVYqOq3dgi1\r\nYdsKyoEehXiZtUDDpIaraXgN6awAPQWUAlNmXrTiOzrJTiYcDd/6x8JqSrcN7ezPo1cq50yO1MjU\r\nJTvjdc7NrUE7GILRLnwbkCIpbF980QYH2GLsOuVIFro/3mOUiZIudMYLvNQ1lEPlLwF28s35fRVl\r\nHwVYY4NdNRrkLAbSnL6oUTvFHib41Gw68vEaSeP+QmRxnK8JLnXzJ79DTUKYM9l/U8ndWcgQqW0J\r\nlM1vDHJD0Kc7iErAXaYsYAZC7ld8QD965xZgEScfiaXRuqqh63VlvC81mOXgQh/0Fvt4CVUCAwEA\r\nAaMiMCAwHgYDVR0RBBcwFYITUUNTQ29ubmVjdGlvbkJyb2tlcjANBgkqhkiG9w0BAQsFAAOCAgEA\r\nQJ8k3jcv9YTValHZGFsFs5ijFVHaRRzSOzeT43QSQHrobdtHivOmpWwaIgP3MPVShVlnJwMmi6vE\r\nYORVa2QEQ0STxExmT7jFREGe9i1mBIjvYjQh6Oel1neS02G7puTC0CjpeiFXHYymIcwL5rheeGxS\r\ngcVbiDG9y/x+JFs6eJavAdyoKvDub6wPh7VcSRq0raWbdfGUZLyHpmXqZ7YQUdk2o6q+aE2X6fgL\r\nbCG0ssnXJQ/1FhZL6S8ueSJ0UbjNQ7SgQUVyGSF+uXnlCmdl1pwqxgIu+CtJxfn3QD6jV8ifBD1Z\r\n02FP4sFnPErCjZETssodRnAnd+rv7fbO/8G/QFalRl+xKWsUwxeMYa6BWrXH0hXxqsT+D3r9NAhK\r\nN1z9vuin4ElJf1fBPdP3dnJ9XeQLIrrIQ8TdNiH+TeKx8btaToiOvu/d+hfjk+xvY1XL7t55w8N4\r\ngp/nBaggelAh5C57dPk/B47mGDNyQBbSVq1fe7JIJZ+vYD2tFRyrhqJuuZnXSKUHdrNhOROltnr8\r\n8RNVxuww3icYJI7HrqBb7WDsl6vBpvnFULBZzbIOdtZL5L3cH4oNcrsNWUeHMcn/fQxNedpTnRDg\r\nubC4Vq+apguqjmAD0ytVnA0TJyCMYn++gfSIuG+jfW8RSntfgp0US1SNlTdEJovsOHjGH20CT+g=\n-----END CERTIFICATE-----\n"}
|
||||||
|
ReplicateAgent Control Program completed successfully.
|
||||||
|
[root@vsrv-qlik-dmgw02 bin] systemctl start repagent
|
||||||
|
````
|
||||||
|
|
||||||
|
````shell
|
||||||
|
[root@vsrv-qlik-dmgw-dev etc] nvim fstab
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] cat fstab
|
||||||
|
|
||||||
|
````
|
||||||
|
|
||||||
|
````shell
|
||||||
|
[root@vsrv-qlik-dmgw-dev rpm] cd /opt/qlik/gateway/movement/drivers/bin/
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] ./install mysql
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] ./install sqlserver
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] ./install postgres
|
||||||
|
[root@vsrv-qlik-dmgw-dev bin] systemctl restart repagent
|
||||||
````
|
````
|
||||||
|
|
||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
@@ -77,3 +121,6 @@ arepbq arep.sh kdestroy libe_sqlite3.so makeconv
|
|||||||
- [x] Hoyer Installation Data Movement Gateway on vsrv-qlik-dmgw-dev [start:: 2026-04-21] [scheduled:: 2026-04-22] [completion:: 2026-04-23]
|
- [x] Hoyer Installation Data Movement Gateway on vsrv-qlik-dmgw-dev [start:: 2026-04-21] [scheduled:: 2026-04-22] [completion:: 2026-04-23]
|
||||||
- [x] Verzeichnis /opt nicht als Mountpoint eingerichtet mit mindestens 300GB Kapazität [[Viktor Becker]] [start:: 2026-04-21] [scheduled:: 2026-04-22] [completion:: 2026-04-22]
|
- [x] Verzeichnis /opt nicht als Mountpoint eingerichtet mit mindestens 300GB Kapazität [[Viktor Becker]] [start:: 2026-04-21] [scheduled:: 2026-04-22] [completion:: 2026-04-22]
|
||||||
- [x] Anfrage bezüglich Erweiterung Festplattenkapazität weitergeleitet [start:: 2026-04-22] [scheduled:: 2026-04-22] [completion:: 2026-04-22]
|
- [x] Anfrage bezüglich Erweiterung Festplattenkapazität weitergeleitet [start:: 2026-04-22] [scheduled:: 2026-04-22] [completion:: 2026-04-22]
|
||||||
|
- [x] Konfiguration des Mountpoint /opt zur Einrichtung von Project-Quotas [completion:: 2026-04-27]
|
||||||
|
- [x] Installation des MySQL Datenbanktreibers [completion:: 2026-04-27]
|
||||||
|
- [x] Installation des MS-SQL Datenbanktreibers [start:: 2026-04-27] [scheduled:: 2026-04-28] [completion:: 2026-04-28]
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!task]+
|
||||||
|
> Project:: [[Hoyer SE]]
|
||||||
|
> Bar:: `$= dv.view('total-progress-bar', {file: "Hoyer Installation Talend Data Fabric"})`
|
||||||
|
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [x] Hoyer Installation Talend Data Fabric [completion:: 2026-06-22]
|
||||||
|
- [x] Email an Viktor Becker bezüglich Verwendung von Ansible [completion:: 2026-06-22]
|
||||||
@@ -20,5 +20,5 @@ reference:
|
|||||||
- [x] SSH-Keys des Managed Services Team erfragen [start:: 2026-03-25] [scheduled:: 2026-03-27] [completion:: 2026-03-27]
|
- [x] SSH-Keys des Managed Services Team erfragen [start:: 2026-03-25] [scheduled:: 2026-03-27] [completion:: 2026-03-27]
|
||||||
- [x] Ticket erstellt [completion:: 2026-03-27]
|
- [x] Ticket erstellt [completion:: 2026-03-27]
|
||||||
- [x] Zugang erhalten [start:: 2026-03-27] [scheduled:: 2026-04-01] [completion:: 2026-04-01]
|
- [x] Zugang erhalten [start:: 2026-03-27] [scheduled:: 2026-04-01] [completion:: 2026-04-01]
|
||||||
- [ ] Hoyer Managed Services Starterpaket [start:: 2026-03-25] [due:: 2026-04-30]
|
- [x] Hoyer Managed Services Starterpaket [start:: 2026-03-25] [scheduled:: 2026-05-11] [completion:: 2026-06-01]
|
||||||
- [ ] Übernahme der POC Dokumentation ins Confluence [start:: 2026-03-24] [scheduled:: 2026-04-13]
|
- [ ] Übernahme der POC Dokumentation ins Confluence [start:: 2026-03-24] [scheduled:: 2026-06-03]
|
||||||
|
|||||||
@@ -27,4 +27,4 @@ LIMIT 20
|
|||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [ ] Konfiguration Hoyer Grafana-Server
|
- [ ] Konfiguration Hoyer Grafana-Server
|
||||||
- [ ] Informationen zu Organisationen in Grafana an [[Malte Dreyer]] senden [start:: 2026-04-21] [scheduled:: 2026-04-27]
|
- [ ] Informationen zu Organisationen in Grafana an [[Malte Dreyer]] senden [start:: 2026-04-21] [scheduled:: 2026-06-03]
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!task]+
|
||||||
|
> Project:: [[Hermann Hartje KG]]
|
||||||
|
> Bar:: `$= dv.view('total-progress-bar', {file: "Migration und Switch-Over der QS-Datenbank"})`
|
||||||
|
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [x] Migration und Switch-Over der QS-Datenbank [completion:: 2026-05-26]
|
||||||
|
- [x] Synchronisations Meeting [scheduled:: 2026-05-07] [completion:: 2026-05-07]
|
||||||
|
- [x] Migration der QS-Datenbank [start:: 2026-05-11] [scheduled:: 2026-05-11] [completion:: 2026-05-26]
|
||||||
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
---
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
Termin mit [[Philip Joschko]]
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [-] Mobitera Service Management [start:: 2026-05-18] [scheduled:: 2026-05-18] [due:: 2026-05-18] [cancelled::2026-05-18]
|
||||||
|
- [ ] Mobitera Service Management [start:: 2026-05-22] [scheduled:: 2026-06-03]
|
||||||
@@ -0,0 +1,161 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
reference:
|
||||||
|
- "[[Managed Services Team]]"
|
||||||
|
---
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
# 🧾 Kurzfassung
|
||||||
|
|
||||||
|
Ziel des Meetings war die Definition eines **standardisierten Monitoring-Ansatzes** (Prometheus/Grafana-basiert), der als **wiederverwendbare Baseline** für verschiedene Kunden (z. B. Hoyer, GStA, Hamburg Wasser) dient und zukünftig effizient ausgerollt werden kann.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🎯 Ziele
|
||||||
|
|
||||||
|
- Aufbau eines **einheitlichen Monitoring-Stacks**
|
||||||
|
- Ablösung/Ergänzung bestehender Lösungen (z. B. CheckMK)
|
||||||
|
- **Wiederverwendbarkeit & Standardisierung** für alle Kunden
|
||||||
|
- Reduktion von **Implementierungsaufwand** bei neuen Projekten
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🏗️ Technischer Ansatz (Baseline)
|
||||||
|
|
||||||
|
- Betrieb über **Docker (Container-basiert)**
|
||||||
|
- Basis-Komponenten:
|
||||||
|
- Prometheus
|
||||||
|
- Grafana
|
||||||
|
- Alertmanager
|
||||||
|
- Enthält bereits:
|
||||||
|
- Grund-Dashboards (CPU, Disk, etc.)
|
||||||
|
- Basis-Alerting
|
||||||
|
- vorkonfigurierte Kommunikation zwischen Komponenten
|
||||||
|
- Deployment über **Git-Repository inkl. Konfiguration & Secrets (Ansible Vault)**
|
||||||
|
|
||||||
|
👉 Grundprinzip:
|
||||||
|
**80 % Standard (Baseline), 20 % kundenspezifische Anpassungen**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🧩 Vorgehen
|
||||||
|
|
||||||
|
## 1. Baseline erstellen
|
||||||
|
|
||||||
|
- Ausgangspunkt: bestehendes Repo (Messe München)
|
||||||
|
- Schritte:
|
||||||
|
- Repo klonen
|
||||||
|
- Kunden-spezifische Teile entfernen
|
||||||
|
- neutrales Basis-Repository erstellen
|
||||||
|
|
||||||
|
👉 Verantwortlich: **Marcel**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Lokale Testumgebung
|
||||||
|
|
||||||
|
- Aufbau einer VM mit Docker bei euch intern
|
||||||
|
- Ziel:
|
||||||
|
- Testen des Setups
|
||||||
|
- Know-how im Team aufbauen (Configs, Alerts, Container)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Rollout bei Kunden
|
||||||
|
|
||||||
|
### Zielkunden:
|
||||||
|
|
||||||
|
- GStA
|
||||||
|
- Hoyer
|
||||||
|
|
||||||
|
Unterschied:
|
||||||
|
|
||||||
|
- **GStA:** später relevant (noch Entwicklung)
|
||||||
|
- **Hoyer:** kurzfristiger Bedarf
|
||||||
|
|
||||||
|
Bereitstellung:
|
||||||
|
|
||||||
|
- per Git (wenn Zugriff möglich)
|
||||||
|
- oder als Export (offline Szenarien)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🔧 Erweiterungen / Roadmap
|
||||||
|
|
||||||
|
## Loki (Logging)
|
||||||
|
|
||||||
|
- Einführung von **Loki für Log-Monitoring**
|
||||||
|
- Vorgehen:
|
||||||
|
- zunächst intern ausprobieren (Proof of Concept)
|
||||||
|
- später Integration in Baseline
|
||||||
|
|
||||||
|
👉 Ziel: Logs in Grafana sichtbar machen
|
||||||
|
|
||||||
|
👉 Verantwortlich: **Bastian (+ Team)**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Weitere geplante Erweiterungen
|
||||||
|
|
||||||
|
- RabbitMQ Monitoring
|
||||||
|
- Integration zusätzlicher Exporter (je nach Kunde)
|
||||||
|
- Perspektivisch Kubernetes-Unterstützung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🧪 Hamburg Wasser (Spezialfall)
|
||||||
|
|
||||||
|
- Bereits bestehendes Monitoring vorhanden
|
||||||
|
- Vorgehen:
|
||||||
|
- vorsichtiges Vorgehen (keine „Experimente“ im Live-System)
|
||||||
|
- zunächst Loki separat vorbereiten
|
||||||
|
- später Integration abstimmen
|
||||||
|
|
||||||
|
Besonderheit:
|
||||||
|
|
||||||
|
- kein Internetzugang → Deployment erschwert (Container-Import notwendig)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 📅 Zeitplan (grob)
|
||||||
|
|
||||||
|
- **~1–2 Wochen:**
|
||||||
|
- erste Baseline-Version
|
||||||
|
- interne Testumgebung
|
||||||
|
- **parallel:**
|
||||||
|
- Loki Proof-of-Concept
|
||||||
|
- **danach:**
|
||||||
|
- erste Einsätze bei Kunden
|
||||||
|
- iterative Erweiterung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 👥 Aufgabenverteilung
|
||||||
|
|
||||||
|
- **Marcel**
|
||||||
|
- Erstellung der Baseline
|
||||||
|
- Repo-Aufbau
|
||||||
|
- **Frank**
|
||||||
|
- CIP-Struktur & Dokumentation
|
||||||
|
- **Bastian**
|
||||||
|
- Loki evaluieren und implementieren
|
||||||
|
- Logs in Grafana integrieren
|
||||||
|
- **Team**
|
||||||
|
- Mitwirken bei Tests & Dokumentation
|
||||||
|
- Know-how-Aufbau im Umgang mit Docker & Monitoring
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# ✅ Nutzen / Ergebnis
|
||||||
|
|
||||||
|
- Einheitliches Monitoring für alle Kunden
|
||||||
|
- Schnellere Rollouts (quasi „Monitoring per Install.exe“)
|
||||||
|
- Weniger Aufwand und Kosten pro Kunde
|
||||||
|
- Bessere Wartbarkeit & Transparenz
|
||||||
|
- Basis für zukünftige Erweiterungen (Observability, Kubernetes)
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [x] Monitoring - Next Steps [completion:: 2026-04-29]
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
reference:
|
||||||
|
- "[[Mobiterra]]"
|
||||||
|
---
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
Termin mit [[Philip Joschko]]
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [ ] PASEU Camunda Service Management
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!task]+
|
|
||||||
> Project:: [[Managed Services Team]], [[Einarbeitung Managed Services Team]], [[Cosnova]]
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Persönlicher Cosnova Account eingerichtet"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [x] Persönlicher Cosnova Account eingerichtet [start:: 2026-02-19] [due:: 2026-03-02] [completion:: 2026-02-27]
|
|
||||||
- [x] [[Marcus Lipski]] hat Account angefragt [start:: 2026-02-26] [due:: 2026-03-03] [completion:: 2026-02-27]
|
|
||||||
- [x] Cosnova Account eingerichtet #process/task [start:: 2026-02-19] [scheduled:: 2026-03-03] [completion:: 2026-03-03]
|
|
||||||
- [x] MFA für Cosnova eingerichtet #process/task [start:: 2026-02-19] [completion:: 2026-03-03]
|
|
||||||
@@ -14,5 +14,5 @@ tags:
|
|||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [x] Vorbereitung Talend System-Update #process/task [completion:: 2026-03-06]
|
- [x] Vorbereitung Talend System-Update #process/task [completion:: 2026-03-06]
|
||||||
- [ ] Talend Entwicklung Update #process/task [scheduled:: 2026-04-13]
|
- [x] Talend Entwicklung Update #process/task [scheduled:: 2026-04-13] [completion:: 2026-04-27]
|
||||||
- [ ] Talend PROD Update #process/task [scheduled:: 2026-04-13]
|
- [x] Talend PROD Update #process/task [scheduled:: 2026-05-04] [completion:: 2026-05-04]
|
||||||
|
|||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
reference:
|
|
||||||
- "[[BIG KAISER Präzisionswerkzeuge AG]]"
|
|
||||||
---
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [x] Ubuntu Kong API GW - Erneuerung des SSL Zertifikats [start:: 2026-03-13] [scheduled:: 2026-03-13] [completion:: 2026-03-13]
|
|
||||||
- [ ] Erneuerung des SSL Zertifikats [due:: 2026-06-11] [start:: 2026-06-04] [scheduled:: 2026-06-04]
|
|
||||||
@@ -15,4 +15,4 @@ reference:
|
|||||||
|
|
||||||
## Unteraufgaben
|
## Unteraufgaben
|
||||||
|
|
||||||
- [ ] Upgrade Prod Remote Engines
|
- [x] Upgrade Prod Remote Engines [completion:: 2026-05-07]
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/task
|
||||||
|
reference:
|
||||||
|
- "[[Mobiterra]]"
|
||||||
|
---
|
||||||
|
## Aufgabenbeschreibung
|
||||||
|
|
||||||
|
## Überlegungen
|
||||||
|
|
||||||
|
Termin mit [[Philip Joschko]]
|
||||||
|
|
||||||
|
## Unteraufgaben
|
||||||
|
|
||||||
|
- [x] Vorstellung Camunda [start:: 2026-06-02] [scheduled:: 2026-06-02] [completion:: 2026-06-02]
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
---
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!task]+
|
|
||||||
> Project:: [[Managed Services Team]], [[Einarbeitung Managed Services Team]], [[TDK Electronics Group]]
|
|
||||||
> Bar:: `$= dv.view('total-progress-bar', {file: "Zugang TDK eingerichtet"})`
|
|
||||||
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
Zugang zum Kunden TDK eingerichtet
|
|
||||||
|
|
||||||
### Infos
|
|
||||||
- [Ticket#20260219770200](https://cimt-objects.zammad.com/#ticket/zoom/107587): Verstärkung im Team Managed Service der cimt
|
|
||||||
- https://cimtag.atlassian.net/wiki/spaces/CO/pages/1628667905/TDK+Outtasking+Tableau-Server#Systemzugang
|
|
||||||
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [x] Zugang TDK eingerichtet [start:: 2026-02-23] [due:: 2026-02-27] [completion:: 2026-02-24]
|
|
||||||
- [x] Rückruf TDK Servicedesk [start:: 2026-02-23] [due:: 2026-02-27] [completion:: 2026-02-24]
|
|
||||||
- [x] Problem mit Login dem TDK Servicedesk gemeldet [start:: 2026-02-24] [scheduled:: 2026-02-25] [completion:: 2026-02-25] #process/task
|
|
||||||
- [x] Berechtigungen für Citrix Workspace erhalten #process/task [start:: 2026-02-25] [scheduled:: 2026-03-06] [due:: 2026-02-27] [completion:: 2026-03-06]
|
|
||||||
@@ -8,5 +8,5 @@ tags:
|
|||||||
- [x] Benutzerinfo erhalten #process/task [start:: 2026-02-26] [scheduled:: 2026-03-04] [completion:: 2026-03-04]
|
- [x] Benutzerinfo erhalten #process/task [start:: 2026-02-26] [scheduled:: 2026-03-04] [completion:: 2026-03-04]
|
||||||
- [x] Einrichtung 2FA #process/task [start:: 2026-02-26] [scheduled:: 2026-03-04] [completion:: 2026-03-04]
|
- [x] Einrichtung 2FA #process/task [start:: 2026-02-26] [scheduled:: 2026-03-04] [completion:: 2026-03-04]
|
||||||
- [x] Einrichtung personalisierter Benutzer angestossen #process/task [start:: 2026-03-04] [scheduled:: 2026-03-05] [completion:: 2026-03-05]
|
- [x] Einrichtung personalisierter Benutzer angestossen #process/task [start:: 2026-03-04] [scheduled:: 2026-03-05] [completion:: 2026-03-05]
|
||||||
- [ ] Einrichtung der RDP und SSH Verbindungen auf Terminalserver #process/task [start:: 2026-03-04] [scheduled:: 2026-04-13]
|
- [ ] Einrichtung der RDP und SSH Verbindungen auf Terminalserver #process/task [start:: 2026-03-04] [scheduled:: 2026-05-07]
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
|||||||
|
|
||||||
## Aufgaben
|
## Aufgaben
|
||||||
```dataviewjs
|
```dataviewjs
|
||||||
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task'));
|
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length == dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);
|
||||||
|
|
||||||
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
||||||
const page = dv.page(p.path);
|
const page = dv.page(p.path);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
tags:
|
tags:
|
||||||
- process/meeting
|
- process/meeting
|
||||||
---
|
---
|
||||||
Attendees:: [[Frank Füllbier]], [[Marcel Kuszak]], [[Bastian Liesigk]], [[Christian Kiltz]], [[Marcus Lipski]]
|
Attendees:: [[Frank Füllbier]], [[Marcel Kuszak]], [[Bastian Liesigk]], [[Christian Kiltz]],
|
||||||
Related Projects:: [[Managed Services Team]]
|
Related Projects:: [[Managed Services Team]]
|
||||||
|
|
||||||
## Termine
|
## Termine
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
status: Backlog
|
|
||||||
tags:
|
|
||||||
- process/task
|
|
||||||
---
|
|
||||||
%%
|
|
||||||
Project::
|
|
||||||
Bar:: `$= dv.view('total-progress-bar', {file: "Artikel über Software Resilizenz schreiben"})`
|
|
||||||
%%
|
|
||||||
## Aufgabenbeschreibung
|
|
||||||
|
|
||||||
Der Artikel beschäftigt sich mit der Frage, wie Software geschrieben werden kann, die resilient gegenüber Fehlern und Problemen ist. Probleme können unter anderem Netzwerkprobleme beim Ausruf eines Webservice sein.
|
|
||||||
|
|
||||||
Als Beispiel können die Fehlerbereinigungs-Routen beim Kunden Hagebau dienen.
|
|
||||||
|
|
||||||
## Überlegungen
|
|
||||||
|
|
||||||
## Unteraufgaben
|
|
||||||
|
|
||||||
- [ ] Artikel über Software Resilizenz schreiben [start:: 2025-07-31]
|
|
||||||
@@ -58,7 +58,7 @@ Zusammenfassend lässt sich sagen, dass KI zwar viele Prozesse in der Softwareen
|
|||||||
|
|
||||||
## Aufgaben
|
## Aufgaben
|
||||||
- [x] Zusendung des Blogeintrags an [[Ann-Kristin Hantzsch-Kühnlenz]] inklusive der Anmerkungen von [[Stefanie Pelster]] #process/task [start:: 2026-02-17] [scheduled:: 2026-02-20] [due:: 2026-03-30] [completion:: 2026-02-20]
|
- [x] Zusendung des Blogeintrags an [[Ann-Kristin Hantzsch-Kühnlenz]] inklusive der Anmerkungen von [[Stefanie Pelster]] #process/task [start:: 2026-02-17] [scheduled:: 2026-02-20] [due:: 2026-03-30] [completion:: 2026-02-20]
|
||||||
- [ ] Review des Eintrags mit KI #process/task [start:: 2026-02-17] [scheduled:: 2026-04-14]
|
- [ ] Review des Eintrags mit KI #process/task [start:: 2026-02-17] [scheduled:: 2026-06-08]
|
||||||
- [ ] Einbindung von Bildern in den Beitrag #process/task [start:: 2026-02-17] [scheduled:: 2026-04-14]
|
- [ ] Einbindung von Bildern in den Beitrag #process/task [start:: 2026-02-17] [scheduled:: 2026-06-08]
|
||||||
- [ ] Ablage des Textes als Word-Dokument in Sharepoint [start:: 2026-02-20] [scheduled:: 2026-04-14]
|
- [ ] Ablage des Textes als Word-Dokument in Sharepoint [start:: 2026-02-20] [scheduled:: 2026-06-08]
|
||||||
|
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
---
|
|
||||||
status: Aktiv
|
|
||||||
tags:
|
|
||||||
- process/project
|
|
||||||
subtitle: Maintenance der cimt-Talend-Komponenten übernehmen
|
|
||||||
|
|
||||||
---
|
|
||||||
> [!abstract]- Project
|
|
||||||
> Goal:: [[Journal/cimt AG/2026|2026]]
|
|
||||||
> Progress:: `$= dv.view('project-progress', {file: 'Maintenance der cimt-Talend-Komponenten übernehmen'})`
|
|
||||||
> Target:: `$= dv.view('project-target', {file: 'Maintenance der cimt-Talend-Komponenten übernehmen'})`
|
|
||||||
> Bar:: `$= dv.view('project-progress-bar', {file: 'Maintenance der cimt-Talend-Komponenten übernehmen'})`
|
|
||||||
> Tasks:: `$= const aufgaben = dv.page('Maintenance der cimt-Talend-Komponenten übernehmen').file.inlinks.where(t => { const mt = dv.page(t.path); return mt.tags?.includes('process/task') && mt.status === 'In Arbeit'}); if (aufgaben.length > 0) { dv.header(4, aufgaben.length > 1 ? "Aufgaben" : "Aufgabe"); dv.list(aufgaben) }`
|
|
||||||
|
|
||||||
## Project Info
|
|
||||||
|
|
||||||
## Thoughts
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
|
|
||||||
## Review questions
|
|
||||||
|
|
||||||
|
|
||||||
## Aufgaben
|
|
||||||
|
|
||||||
|
|
||||||
## Offene Aufgaben
|
|
||||||
```dataviewjs
|
|
||||||
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length != dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);
|
|
||||||
|
|
||||||
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
|
||||||
const page = dv.page(p.path);
|
|
||||||
const tasks = page.file.tasks;
|
|
||||||
return [
|
|
||||||
page.file.link,
|
|
||||||
page.status,
|
|
||||||
tasks.where(t => t.fullyCompleted === true).length,
|
|
||||||
tasks.length
|
|
||||||
]
|
|
||||||
}));
|
|
||||||
```
|
|
||||||
|
|
||||||
## Aufgaben
|
|
||||||
```dataviewjs
|
|
||||||
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task'));
|
|
||||||
|
|
||||||
dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
|
|
||||||
const page = dv.page(p.path);
|
|
||||||
const tasks = page.file.tasks;
|
|
||||||
return [
|
|
||||||
page.file.link,
|
|
||||||
page.status,
|
|
||||||
tasks.where(t => t.fullyCompleted === true).length,
|
|
||||||
tasks.length
|
|
||||||
]
|
|
||||||
}));
|
|
||||||
```
|
|
||||||
@@ -21,7 +21,7 @@ subtitle: Rezertifizierung Google Cloud Developer
|
|||||||
|
|
||||||
|
|
||||||
## Aufgaben
|
## Aufgaben
|
||||||
- [ ] Vorbereitung zur Prüfung abgeschlossen [start:: 2026-03-08]
|
- [ ] Vorbereitung zur Prüfung abgeschlossen [start:: 2026-06-08]
|
||||||
- [ ] Prüfungstermin vereinbart [start:: 2026-03-08]
|
- [ ] Prüfungstermin vereinbart [start:: 2026-06-08]
|
||||||
- [ ] Prüfung durchgeführt [start:: 2026-03-08]
|
- [ ] Prüfung durchgeführt [start:: 2026-06-08]
|
||||||
- [ ] Zertifikat erhalten [start:: 2026-03-08]
|
- [ ] Zertifikat erhalten [start:: 2026-06-08]
|
||||||
|
|||||||
@@ -39,8 +39,6 @@ CouchDB Testumgebung
|
|||||||
|
|
||||||
|
|
||||||
## Aufgaben
|
## Aufgaben
|
||||||
- [x] Ersetzen von Docker mit podman auf bervl1prr #process/task [start:: 2026-02-02] [scheduled:: 2026-02-16] [completion:: 2026-02-16]
|
|
||||||
- [ ] Anwesenheitsbericht Dokumentation erstellen #process/task [scheduled:: 2026-04-13]
|
|
||||||
|
|
||||||
## Offene Aufgaben
|
## Offene Aufgaben
|
||||||
```dataviewjs
|
```dataviewjs
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
---
|
---
|
||||||
tags:
|
tags:
|
||||||
- process/event
|
- process/event
|
||||||
|
reference:
|
||||||
|
- "[[cimt AG]]"
|
||||||
---
|
---
|
||||||
Related Projects:: [[cimt AG]]
|
|
||||||
|
|
||||||
## 🗓️Agenda
|
## 🗓️Agenda
|
||||||
```dataview
|
```dataview
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- process/event
|
||||||
|
reference:
|
||||||
|
- "[[cimt objects AG]]"
|
||||||
|
---
|
||||||
|
## 🗓️Termine
|
||||||
|
```dataview
|
||||||
|
LIST
|
||||||
|
FROM [[]] AND !outgoing([[]]) AND "Journal"
|
||||||
|
SORT file.name
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📝Notizen
|
||||||
|
|
||||||
|
|
||||||
|
## ✔️ Aufgaben
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
---
|
|
||||||
title: "1 key food your brain MUST have to stay sharp: Harvard expert"
|
|
||||||
source: "https://medium.com/famously-healthy/1-key-food-your-brain-must-have-to-stay-sharp-harvard-expert-d56b4bd5d503"
|
|
||||||
author:
|
|
||||||
- "[[James Julian]]"
|
|
||||||
published: 2024-10-03
|
|
||||||
created: 2024-10-29
|
|
||||||
description: "There are more than a few “brain foods” that experts will tell you to focus on to live a long, lucid life. I find it stinky, texturally unappealing (think scallops and lobster), and I mostly dislike…"
|
|
||||||
tags:
|
|
||||||
- "clippings"
|
|
||||||
---
|
|
||||||
[
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
](https://medium.com/@jamesjulianwrites?source=post_page---byline--d56b4bd5d503--------------------------------)
|
|
||||||
|
|
||||||
[
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
](https://medium.com/famously-healthy?source=post_page---byline--d56b4bd5d503--------------------------------)
|
|
||||||
|
|
||||||
There are more than a few “brain foods” that experts will tell you to focus on to live a long, lucid life.
|
|
||||||
|
|
||||||
[We’re talking](https://medium.com/famously-healthy/eat-these-4-foods-to-save-your-brain-harvard-nutritionist-295f6845ecf9) antioxidant-rich fruit, fiber-packed leafy greens, and [lean proteins](https://medium.com/famously-healthy/try-4-foods-harvard-brain-expert-eats-every-day-to-stay-smart-7b0ffd83930d).
|
|
||||||
|
|
||||||
My personal favorite is [blueberries](https://medium.com/@jamesjulianwrites/this-is-the-one-most-important-food-i-eat-every-single-day-18dcd64b967c), or ‘brain berries’ as I’ve come to know them.
|
|
||||||
|
|
||||||
**But is there one uber-powerful brain food to rule them all?**
|
|
||||||
|
|
||||||
According to one Harvard nutritionist, there is.
|
|
||||||
|
|
||||||
And, unfortunately, I struggle to get enough of it.
|
|
||||||
|
|
||||||
I bet you do too.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
What’s the №1 food to protect your brain? Read on. (Licensed by the author under the [Unsplash+ License](https://unsplash.com/plus/license))
|
|
||||||
|
|
||||||
## What we need (and I don’t get enough of)
|
|
||||||
|
|
||||||
I’m sorry, but I absolutely hate seafood.
|
|
||||||
|
|
||||||
Where do you stand on it?
|
|
||||||
|
|
||||||
I find it stinky, texturally unappealing (think scallops and lobster), and I mostly dislike the taste.
|
|
||||||
|
|
||||||
The problem is that seafood is about as good as it gets as a source of omega-3s, which according to Harvard nutritionist Uma Naidoo, is the most important food you can eat to support healthy brain function.
|
|
||||||
|
|
||||||
Here’s what she [wrote for CNBC recently](https://www.msn.com/en-ca/health/nutrition/harvard-nutritionist-the-no-1-nutrient-you-need-for-a-healthy-brain-and-the-best-way-to-get-it/ar-AA1nE2Zd?ocid=msedgdhp&pc=HCTS&cvid=01fcf2e9a4244864a3bbd32b7e8d0c8a&ei=15):
|
|
||||||
|
|
||||||
*“While supplements can help provide these nutrients, I always tell people to first go to real foods, especially for fatty acids like omega-3s.*
|
|
||||||
|
|
||||||
*“When you eat a whole food you get additional vitamins, minerals, healthy fats, and protein.*
|
|
||||||
|
|
||||||
*“It’s a good foundation upon which to build a healthy eating plan.*
|
|
||||||
|
|
||||||
==*“Omega-3s are found in wild-caught fatty fish like anchovies, sardines, and salmon.*==
|
|
||||||
|
|
||||||
*“Wild Sockeye salmon in particular contains levels of EPA and DHA that are beneficial to our brain’s health.*
|
|
||||||
|
|
||||||
*“An average salmon filet in the U.S. is about three to four ounces and the suggested amount to eat per week is about eight.*
|
|
||||||
|
|
||||||
*“So one should try to get omega-3-rich fish onto your plate at least twice a week.”*
|
|
||||||
|
|
||||||
So what’s the solution if, like me, seafood kinda grosses you out?
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Fish? It’s a no from me. (Licensed by the author under the [Unsplash+ License](https://unsplash.com/plus/license))
|
|
||||||
|
|
||||||
## Why not supplements?
|
|
||||||
|
|
||||||
Fish oil supplements have come under a lot of scrutiny, and one worrisome study recently suggested you might want to [avoid them altogether if you’re over 40](https://medium.com/famously-healthy/over-40-1-new-reason-you-might-want-to-skip-taking-fish-oil-doc-08de15359f53).
|
|
||||||
|
|
||||||
**The good news is that there are some great plant-based sources of omega-3s.**
|
|
||||||
|
|
||||||
As Naidoo notes:
|
|
||||||
|
|
||||||
*“If you are like me and don’t eat seafood (I was raised vegetarian), you may be relieved to know it is still possible to get adequate omega-3s from plant-based sources, including…*
|
|
||||||
|
|
||||||
- *Chia seeds*
|
|
||||||
- *Sesame seeds*
|
|
||||||
- *Walnuts*
|
|
||||||
- *Flax seeds*
|
|
||||||
|
|
||||||
*“About one ounce of chia seeds is more than your daily recommended intake of omega-3 fatty acids and delivers about 5,000 mg.*
|
|
||||||
|
|
||||||
*“If you eat eggs, aim for the pasture-raised kind. Be sure to add turmeric with a pinch of black pepper to optimize the impact for brain health.”*
|
|
||||||
|
|
||||||
**I could be better at this.**
|
|
||||||
|
|
||||||
I do have a bunch of chia seeds in my freezer and it’s the easiest thing to throw into a smoothie.
|
|
||||||
|
|
||||||
I’ve also experimented with throwing walnuts into those smoothies as well, though I find the bitter aftertaste kind of shines through.
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user