Compare commits

...

8 Commits

Author SHA1 Message Date
e758078a8d Started working on the app menu
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/manual/woodpecker Pipeline was successful
2023-04-12 21:22:11 -04:00
e8bf1e0d81 Fixed sizing issue with the footer
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-04-12 19:31:51 -04:00
a8c5f3a694 Set minimum window size 2023-04-12 19:31:24 -04:00
8d47e4c4f5 Updated version of systeminformation module
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-04-12 19:31:00 -04:00
f9102eb707 Version bump to v0.3.3
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2023-04-12 16:02:42 -04:00
139568415e Updated woodpecker config to not install SASS
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-04-12 16:01:39 -04:00
b74bf3be3c Changed from using grunt-contrib-sass to grunt-dart-sass so that building the SASS stylesheets don't rely on having a system installation of ruby and sass 2023-04-12 16:01:09 -04:00
07fbd43cbe Fixed some styles on the tab bar
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-04-07 10:32:41 -04:00
11 changed files with 646 additions and 271 deletions

View File

@ -6,7 +6,6 @@ pipeline:
build: build:
image: node:16 image: node:16
commands: commands:
- apt update && apt install -y ruby ruby-dev && gem install sass
- npm install - npm install
- npm run grunt - npm run grunt

View File

@ -4,7 +4,7 @@ module.exports = function(grunt) {
// Project configuration. // Project configuration.
grunt.initConfig({ grunt.initConfig({
sass: { 'dart-sass': {
dist: { dist: {
options: { options: {
style: 'compressed' style: 'compressed'
@ -69,7 +69,7 @@ module.exports = function(grunt) {
}, },
css: { css: {
files: ['assets/sass/*.sass'], files: ['assets/sass/*.sass'],
tasks: ['sass'], tasks: ['dart-sass'],
options: { options: {
atBegin: true, atBegin: true,
spawn: false spawn: false
@ -96,12 +96,12 @@ module.exports = function(grunt) {
// Load task plugins // Load task plugins
grunt.loadNpmTasks('grunt-twig-render'); grunt.loadNpmTasks('grunt-twig-render');
grunt.loadNpmTasks('grunt-contrib-sass'); grunt.loadNpmTasks('grunt-dart-sass');
grunt.loadNpmTasks('grunt-contrib-coffee'); grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s). // Default task(s).
grunt.registerTask('default', ['twigRender', 'sass', 'coffee', 'copy']); grunt.registerTask('default', ['twigRender', 'dart-sass', 'coffee', 'copy']);
}; };

View File

@ -42,6 +42,7 @@ button
max-width: 1024px max-width: 1024px
.container.fluid .container.fluid
width: 100%
max-width: 100% max-width: 100%
margin: 0 margin: 0
@ -61,6 +62,10 @@ button
border-bottom: 1px solid #bbb border-bottom: 1px solid #bbb
box-shadow: 0 1px 2px rgba(0, 0, 0, .25) box-shadow: 0 1px 2px rgba(0, 0, 0, .25)
.container.fluid
width: 100%
margin-right: 0
.row .row
display: relative display: relative

12
assets/twig/about.twig Normal file
View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>About Sentry</title>
</head>
<body>
<p>This is a test.</p>
</body>
</html>

View File

@ -19,7 +19,8 @@
<div class="container fluid"> <div class="container fluid">
<div class="row"> <div class="row">
<div class="columns twelve"> <div class="columns twelve">
<button class="tab-button active" onclick="openTab('cpu')">CPU</button> <button class="tab-button active" onclick="openTab('overview')">Overview</button>
<button class="tab-button" onclick="openTab('cpu')">CPU</button>
<button class="tab-button" onclick="openTab('memory')">Memory</button> <button class="tab-button" onclick="openTab('memory')">Memory</button>
<button class="tab-button" onclick="openTab('storage')">Storage</button> <button class="tab-button" onclick="openTab('storage')">Storage</button>
<button class="tab-button" onclick="openTab('gpu')">GPU</button> <button class="tab-button" onclick="openTab('gpu')">GPU</button>
@ -29,7 +30,10 @@
</div> </div>
<div id="wrapper" class="container"> <div id="wrapper" class="container">
<div class="component-display active" data-component="cpu"> <div class="component-display active" data-component="overview">
{% include 'overview.twig' %}
</div>
<div class="component-display" data-component="cpu">
{% include 'cpu.twig' %} {% include 'cpu.twig' %}
</div> </div>
<div class="component-display" data-component="memory"> <div class="component-display" data-component="memory">

View File

@ -0,0 +1,5 @@
<header class="row">
<div class="columns twelve u-text-center">
<h1>Sentry Overview</h1>
</div>
</header>

View File

@ -1,5 +1,5 @@
// Modules to control application life and create native browser window // Modules to control application life and create native browser window
const {app, BrowserWindow} = require('electron'); const { app, BrowserWindow, Menu } = require('electron');
const path = require('path'); const path = require('path');
function createWindow () { function createWindow () {
@ -7,6 +7,8 @@ function createWindow () {
const mainWindow = new BrowserWindow({ const mainWindow = new BrowserWindow({
width: 800, width: 800,
height: 700, height: 700,
minWidth: 735,
minHeight: 600,
webPreferences: { webPreferences: {
nodeIntegration: true, nodeIntegration: true,
contextIsolation: false, contextIsolation: false,
@ -21,6 +23,10 @@ function createWindow () {
// mainWindow.webContents.openDevTools() // mainWindow.webContents.openDevTools()
} }
// Set the application menu
const menu = require('./src/menu').createMenu(app);
Menu.setApplicationMenu(menu);
// This method will be called when Electron has finished // This method will be called when Electron has finished
// initialization and is ready to create browser windows. // initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs. // Some APIs can only be used after this event occurs.

819
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "sentry", "name": "sentry",
"version": "0.3.2", "version": "0.3.3",
"description": "Desktop app to view system information and sensors", "description": "Desktop app to view system information and sensors",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
@ -25,12 +25,12 @@
"grunt": "^1.5.3", "grunt": "^1.5.3",
"grunt-contrib-coffee": "^2.1.0", "grunt-contrib-coffee": "^2.1.0",
"grunt-contrib-copy": "^1.0.0", "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-sass": "^2.0.0",
"grunt-contrib-watch": "^1.1.0", "grunt-contrib-watch": "^1.1.0",
"grunt-dart-sass": "^2.0.1",
"grunt-twig-render": "^1.8.3" "grunt-twig-render": "^1.8.3"
}, },
"dependencies": { "dependencies": {
"systeminformation": "^5.11.15" "systeminformation": "^5.17.12"
}, },
"build": { "build": {
"appId": "tech.bitgoblin.sentry", "appId": "tech.bitgoblin.sentry",

15
src/menu/help.js Normal file
View File

@ -0,0 +1,15 @@
const { BrowserWindow } = require('electron');
exports.about = function() {
const aboutWindow = new BrowserWindow({
width: 600,
height: 400,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
}
});
// and load the about.html of the app.
aboutWindow.loadFile('public/about.html');
};

30
src/menu/index.js Normal file
View File

@ -0,0 +1,30 @@
const electron = require('electron');
// load event handlers
const helpHandlers = require('./help');
exports.createMenu = function(app) {
return electron.Menu.buildFromTemplate([
{
label: 'File',
submenu: [
{
label: 'Close',
click: function() {
app.quit();
}
}
]
},
{
label: 'Help',
submenu: [
{
label: 'About',
click: helpHandlers.about
}
]
}
]);
};