Skip to content

Build(deps): Migrate to Font Awesome 6 and update package references #3240

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,5 @@ support/raido/*.tgz
angular/.angular/cache/

api/configmodels/*
api/shims/*.js

7 changes: 3 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
FROM node:20.18-bullseye
ENV node_env production
ENV node_env=production
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=$PATH:/home/node/.npm-global/bin
RUN wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64
RUN chmod +x /usr/local/bin/dumb-init
ENV NODE_ENV=$node_env
RUN echo "Australia/Brisbane" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
COPY --chown=node:node . /opt/redbox-portal
RUN chown -R node:node /opt/redbox-portal; ls -l /opt; ls -l /opt/redbox-portal;
USER node
RUN echo "Permissions should be set, running as 'node' user, dumping permissions again: "; ls -l /opt; ls -l /opt/redbox-portal;
CMD NODE_ENV=$node_env node app.js
CMD ["node", "app.js"]
2 changes: 1 addition & 1 deletion api/models/AsynchProgress.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @description :: Tracks Asynchrounous progress started by the portal.
* @docs :: http://sailsjs.org/documentation/concepts/models-and-orm/models
*/
var moment = require('moment');
// moment removed: not used; dates stored as plain strings.

module.exports = {
attributes: {
Expand Down
2 changes: 1 addition & 1 deletion api/models/WorkspaceAsync.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @description :: Tracks Asynchrounous workspace methods
* @docs :: http://sailsjs.org/documentation/concepts/models-and-orm/models
*/
var moment = require('moment');
// moment removed: not used; dates stored as plain strings.

module.exports = {
attributes: {
Expand Down
9 changes: 7 additions & 2 deletions assets/styles/default-theme.scss
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
$fa-font-path: "../../node_modules/font-awesome-sass/assets/fonts/font-awesome/";
@import "~font-awesome-sass/assets/stylesheets/_font-awesome";
// Font Awesome 6 via npm (@fortawesome/fontawesome-free)
// Ensure webpack/SASS resolves ~ to node_modules.
$fa-font-path: "~@fortawesome/fontawesome-free/webfonts";
@import "~@fortawesome/fontawesome-free/scss/fontawesome";
@import "~@fortawesome/fontawesome-free/scss/solid";
@import "~@fortawesome/fontawesome-free/scss/regular";
@import "~@fortawesome/fontawesome-free/scss/brands";
@import "redbox-font";


Expand Down
18 changes: 9 additions & 9 deletions config/bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,28 @@
* For more information on bootstrapping your app, check out:
* http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.bootstrap.html
*/
var Observable = require('rxjs/Observable').Observable;
const { lastValueFrom } = require('rxjs');
const schedule = require('node-schedule');

const actualBootstrap = async function() {
await sails.services.translationservice.bootstrap();
sails.log.verbose("Translation service, bootstrapped.");
let defaultBrand = await sails.services.brandingservice.bootstrap().toPromise()
let defaultBrand = await lastValueFrom(sails.services.brandingservice.bootstrap())
sails.log.verbose("Branding service, bootstrapped.");
let rolesBootstrapResult = await sails.services.rolesservice.bootstrap(defaultBrand).toPromise();
let rolesBootstrapResult = await lastValueFrom(sails.services.rolesservice.bootstrap(defaultBrand));
sails.log.verbose("Roles service, bootstrapped.");
let reportsBootstrapResult = await sails.services.reportsservice.bootstrap(sails.services.brandingservice.getDefault()).toPromise();
let reportsBootstrapResult = await lastValueFrom(sails.services.reportsservice.bootstrap(sails.services.brandingservice.getDefault()));
sails.log.verbose("Reports service, bootstrapped.");
let namedQueriesBootstrapResult = await sails.services.namedqueryservice.bootstrap(sails.services.brandingservice.getDefault());
sails.log.verbose("Named Query service, bootstrapped.");
// sails doesn't support 'populating' of nested associations
// intentionally queried again because of nested 'users' population, couldn't be bothered with looping thru the results
let defRoles = await sails.services.rolesservice.getRolesWithBrand(sails.services.brandingservice.getDefault()).toPromise();
let defRoles = await lastValueFrom(sails.services.rolesservice.getRolesWithBrand(sails.services.brandingservice.getDefault()));
sails.log.verbose("Roles service, bootstrapped.");
sails.log.verbose(defRoles);
let defUserAndDefRoles = await sails.services.usersservice.bootstrap(defRoles).toPromise();
let defUserAndDefRoles = await lastValueFrom(sails.services.usersservice.bootstrap(defRoles));
sails.log.verbose("Pathrules service, bootstrapped.");
let pathRulesBootstrapResult = await sails.services.pathrulesservice.bootstrap(defUserAndDefRoles.defUser, defUserAndDefRoles.defRoles).toPromise();
let pathRulesBootstrapResult = await lastValueFrom(sails.services.pathrulesservice.bootstrap(defUserAndDefRoles.defUser, defUserAndDefRoles.defRoles));
sails.log.verbose("Record types service, bootstrapped.");
let recordsTypes = await sails.services.recordtypesservice.bootstrap(sails.services.brandingservice.getDefault());
sails.log.verbose("Workflowsteps service, bootstrapped.");
Expand All @@ -48,7 +48,7 @@


sails.log.verbose("Forms service, bootstrapped.");
await sails.services.vocabservice.bootstrap().toPromise();
await lastValueFrom(sails.services.vocabservice.bootstrap());
sails.log.verbose("Vocab service, bootstrapped.");
// Schedule cronjobs
if (sails.config.crontab.enabled) {
Expand All @@ -68,7 +68,7 @@

sails.log.verbose("Cron service, bootstrapped.");
// After last, because it was being triggered twice
await sails.services.workspacetypesservice.bootstrap(sails.services.brandingservice.getDefault()).toPromise();
await lastValueFrom(sails.services.workspacetypesservice.bootstrap(sails.services.brandingservice.getDefault()));


sails.log.verbose("WorkspaceTypes service, bootstrapped.");
Expand Down
35 changes: 17 additions & 18 deletions config/emailnotification.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
module.exports.emailnotification = {
api: {
send: {method: 'post', url: "/api/v1/messaging/emailnotification"}
send: {method: 'post', url: "/api/v1/messaging/emailnotification"}
},
settings: {
enabled: true,
from: "noreply@redbox",
templateDir: "views/emailTemplates/",
//node mailer transport options. See https://nodemailer.com/smtp/ for SMTP and other transport options
serverOptions: {
host: 'smtp.ethereal.email',
port: 587,
auth: {
user: 'xxxxxxx',
pass: 'xxxxxxx'
enabled: true,
from: "noreply@redbox",
templateDir: "views/emailTemplates/",
serverOptions: {
host: 'integration-testing-email-1',
port: 1025,
secure: false,
tls: {
rejectUnauthorized: false
}
}
}
},
defaults: {
from: "redbox@dev",
subject: "ReDBox Notification",
format: "html"
from: "redbox@dev",
subject: "ReDBox Notification",
format: "html"
},
templates: {
transferOwnerTo: {subject: 'Ownership of DMP record/s has been transferred to you', template: 'transferOwnerTo'},
test: {subject: 'Test Email Message', template: 'test'}
transferOwnerTo: {subject: 'Ownership of DMP record/s has been transferred to you', template: 'transferOwnerTo'},
test: {subject: 'Test Email Message', template: 'test'}
}
};
};
74 changes: 30 additions & 44 deletions core/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@researchdatabox/redbox-core-types",
"version": "1.4.8",
"version": "1.5.0",
"description": "",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand All @@ -18,9 +18,8 @@
"devDependencies": {
"@types/node": "^22.0.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"rxjs": "^6.6.2",
"rxjs-compat": "^6.6.7",
"rxjs": "^7.8.1",
"luxon": "^3.7.1",
"stream": "0.0.3",
"typescript": "^5.0.4"
}
Expand Down
8 changes: 5 additions & 3 deletions core/src/CoreService.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { Observable } from 'rxjs/Rx';
import { from,bindNodeCallback, bindCallback, Observable } from 'rxjs';


declare var sails;
// changed to a manual lodash load instead of relying on Sails global object
// this enables testing of installable hooks that rely on services at load-time (i.e. index.js)
Expand Down Expand Up @@ -26,9 +28,9 @@ export module Services.Core {
*/
protected getObservable(q, method='exec', type='node'): Observable<any> {
if (type == 'node')
return Observable.bindNodeCallback(q[method].bind(q))();
return bindNodeCallback(q[method].bind(q))();
else
return Observable.bindCallback(q[method].bind(q))();
return bindCallback(q[method].bind(q))();
}

/**
Expand Down
Loading