diff --git a/package.json b/package.json
index 0603f7b..acaa27c 100644
--- a/package.json
+++ b/package.json
@@ -46,11 +46,12 @@
"build:prod": "jlpm run build:lib && jlpm run build:labextension",
"build:labextension": "jupyter labextension build .",
"build:labextension:dev": "jupyter labextension build --development True .",
- "build:lib": "tsc",
+ "build:lib": "jlpm run copy && tsc",
"clean": "jlpm run clean:lib",
"clean:lib": "rimraf lib tsconfig.tsbuildinfo",
"clean:labextension": "rimraf jupyterlab-lmod/labextension",
"clean:all": "jlpm run clean:lib && jlpm run clean:labextension",
+ "copy": "mkdir -p lib/src && cp -r src/assets lib/src",
"eslint": "eslint . --ext .ts,.tsx --fix",
"eslint:check": "eslint . --ext .ts,.tsx",
"eslint:check:junit": "eslint . --ext .ts,.tsx --format junit --output-file linting.xml",
diff --git a/src/assets/lmod.svg b/src/assets/lmod.svg
new file mode 100644
index 0000000..19ae9e6
--- /dev/null
+++ b/src/assets/lmod.svg
@@ -0,0 +1,58 @@
+
+
+
+
diff --git a/src/assets/tmod.svg b/src/assets/tmod.svg
new file mode 100644
index 0000000..327d955
--- /dev/null
+++ b/src/assets/tmod.svg
@@ -0,0 +1,68 @@
+
+
diff --git a/src/index.ts b/src/index.ts
index 8f4764b..2b8292a 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -17,6 +17,21 @@ import { Module } from '../jupyterlmod/static/module.js';
import * as serverproxy from '@jupyterhub/jupyter-server-proxy';
+import { LabIcon } from '@jupyterlab/ui-components';
+
+import lmodIconSvg from './assets/lmod.svg';
+import tmodIconSvg from './assets/tmod.svg';
+export const jplmodIcons = {
+ lmod: new LabIcon({
+ name: 'jupyter_lmod:lmod_logo',
+ svgstr: lmodIconSvg
+ }),
+ tmod: new LabIcon({
+ name: 'jupyter_lmod:tmod_logo',
+ svgstr: tmodIconSvg
+ })
+};
+
function createModuleItem(label: string, button: string) {
const module_list_line = document.createElement('li');
const module_list_label = document.createElement('span');
@@ -119,7 +134,7 @@ class ModuleWidget extends Widget {
super();
this.id = 'module-jupyterlab';
- this.title.caption = 'Softwares';
+ this.title.caption = 'Software Modules';
this.addClass('jp-Module');
const search_div = document.createElement('div');
@@ -187,14 +202,10 @@ class ModuleWidget extends Widget {
public setIcon() {
Promise.all([moduleAPI.system()])
.then(values => {
- const modulesys = values[0];
- console.log("Module system found:", modulesys)
- // Set icon based on module system
- if (modulesys === 'lmod') {
- this.title.iconClass = 'jp-LmodIcon jp-SideBar-tabIcon'
- } else {
- this.title.iconClass = 'jp-TmodIcon jp-SideBar-tabIcon'
- }
+ const modulesys = values[0];
+ console.log("Module system found:", modulesys)
+ // Set icon based on module system
+ this.title.icon = jplmodIcons[modulesys];
});
}
@@ -324,7 +335,7 @@ function activate(
setup_proxy_commands(app, restorer);
- restorer.add(widget, 'module-sessions');
+ restorer.add(widget, 'module-sessions');
app.shell.add(widget, 'left', { rank: 1000 });
widget.update();
console.log('JupyterFrontEnd extension lmod/tmod is activated!');
diff --git a/src/svg.d.ts b/src/svg.d.ts
new file mode 100644
index 0000000..9348424
--- /dev/null
+++ b/src/svg.d.ts
@@ -0,0 +1,4 @@
+declare module '*.svg' {
+ const value: string;
+ export default value;
+}