Skip to content

Commit

Permalink
FairCopy v1.2.0-beta.2
Browse files Browse the repository at this point in the history
  • Loading branch information
NickLaiacona authored Apr 10, 2024
2 parents 92619c7 + e46dcee commit da71471
Show file tree
Hide file tree
Showing 44 changed files with 798 additions and 142 deletions.
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"windows": {
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
},
"env": { "FAIRCOPY_DEBUG_MODE": "true", "FAIRCOPY_DEV_VERSION": "1.2.0" },
"env": { "FAIRCOPY_DEBUG_MODE": "true", "FAIRCOPY_DEV_VERSION": "1.2.0-dev.8" },
"program": "${workspaceRoot}/public/electron.js",
"protocol": "inspector",
},
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This README discusses how to set up a development environment on Mac or Windows
Developer Environment
-----------

FairCopy can run in development mode on your local machine, which is useful for debugging the application and previewing functionality. This process has been tested on VSCode on both Mac and Windows. To run Faircopy in development mode, install the necessary dependencies using NPM. Next, set the following ENV variables at a minimum, using the .env file:
FairCopy can run in development mode on your local machine, which is useful for debugging the application and previewing functionality. This process has been tested on VSCode on both Mac and Windows. To run Faircopy in development mode, install the necessary dependencies using NPM (`npm install`). Next, set the following ENV variables at a minimum, using the .env file:

* BROWSER=none
* PORT=4000
Expand Down
19 changes: 15 additions & 4 deletions forge.config.example.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
module.exports = {
packagerConfig: {
asar: true,
icon: './public/icons/icon',
osxSign: {
optionsForFile: (filePath) => {
return {
Expand All @@ -20,16 +21,26 @@ module.exports = {
{
name: '@electron-forge/maker-dmg',
config: {
background: './public/icon.png',
icon: './public/icon.ico',
format: 'ULFO'
platform: 'darwin',
background: './public/img/DMG_background.png',
icon: './public/icons/icon.icns',
iconSize: 145,
format: 'ULFO',
contents: [
{ "x": 480, "y": 220, "type": "link", "path": "/Applications" },
{ "x": 140, "y": 220, "type": "file", "path": "<YOUR ABSOLUTE PATH TO PROJECT BASE DIR>/out/FairCopy-darwin-x64/FairCopy.app" }
]
}
},
{
name: '@electron-forge/maker-squirrel',
config: {
loadingGif: './public/img/install_spinner.gif',
iconURL: 'https://raw.githubusercontent.com/performant-software/faircopy/main/public/icons/icon.ico',
setupIcon: './public/icons/icon.ico',
certificateFile: 'LOCATION OF APP SIGNING CERTIFICATE',
certificatePassword: 'CERTIFICATE PASSWORD'
certificatePassword: 'CERTIFICATE PASSWORD',
platform: 'win32'
}
}
],
Expand Down
12 changes: 6 additions & 6 deletions package-lock.json

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

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "faircopy",
"version": "1.2.0-beta.1",
"productName": "FairCopy",
"version": "1.2.0-beta.2",
"description": "A word processor for the humanities scholar.",
"main": "public/electron.js",
"private": true,
Expand Down Expand Up @@ -71,7 +72,7 @@
"react-scroll": "1.8.3",
"react-split-pane": "^0.1.92",
"react-spring": "9.5.5",
"semver": "^7.3.5",
"semver": "^7.6.0",
"uuid": "^8.1.0",
"w3c-xmlserializer": "^2.0.0",
"xml-formatter": "^2.5.0"
Expand Down
25 changes: 25 additions & 0 deletions public/css/ColorCodingDialog.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#ColorCodingDialog .element-field {
display: inline-block;
}

#ColorCodingDialog .keystroke-record-button {
margin-top: 20px;
}

#ColorCodingDialog .record-icon {
margin-right: 5px;
color: red;
}

#ColorCodingDialog .error-message {
margin: 5px;
color: red;
}

#ColorCodingDialog .color-block {
display: inline-block;
min-width: 20px;
min-height: 20px;
margin-right: 5px;
border: 1px solid black;
}
23 changes: 23 additions & 0 deletions public/css/ColorCodingTable.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#ColorCodingTable {
margin: 20px;
}

#ColorCodingTable .explanation {
margin-bottom: 50px;
}

#ColorCodingTable th {
font-weight: bold;
}

#ColorCodingTable .add-colorcode-button {
margin-top: 10px;
}

#ColorCodingTable .color-block {
display: inline-block;
width: 20px;
height: 20px;
margin-right: 5px;
border: 1px solid black;
}
3 changes: 3 additions & 0 deletions public/css/EditorSettings.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#EditorSettings {
margin: 50px;
}
4 changes: 4 additions & 0 deletions public/css/ReadOnlyToolbar.css
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
display: inline-block;
}

#ReadOnlyToolbar .toolbar-button {
margin: 0 5px;
}

#ReadOnlyToolbar .rightgroup {
display: inline-block;
}
Expand Down
4 changes: 0 additions & 4 deletions public/css/TEIElementStyles.css
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@
border-bottom: dotted red;
}

/* Phrase level markup styling is based on information layers */
[phraselvl = "true"] {
border-bottom: dotted #0187a8;
}

[phraselvl = "false"] {
margin: 0px;
Expand Down
Binary file removed public/css/fontawesome-free-6.5.1-web.zip
Binary file not shown.
5 changes: 4 additions & 1 deletion public/css/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,7 @@
@import "KeyBindingsTable.css";
@import "KeyBindingDialog.css";
@import "PreviewWindow.css";
@import "PreviewCSSEditor.css";
@import "PreviewCSSEditor.css";
@import "EditorSettings.css";
@import "ColorCodingTable.css";
@import "ColorCodingDialog.css";
Binary file removed public/icon.ico
Binary file not shown.
Binary file removed public/icon.png
Binary file not shown.
Binary file added public/icons/icon.icns
Binary file not shown.
Binary file added public/icons/icon.ico
Binary file not shown.
Binary file added public/icons/icon_square_1024x1024.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/DMG_background.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/install_spinner.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion public/main-process/RemoteProject.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,10 @@ class RemoteProject {
const { config, configLastAction } = msg
const { fairCopyApplication, projectStore } = this.fairCopySession
const { baseConfig } = projectStore
const { config: appConfig } = fairCopyApplication
const { generatedWith } = projectStore.manifestData
// make sure that the incoming config is migrated to the latest schema
migrateConfig(generatedWith, baseConfig, config )
migrateConfig(generatedWith, baseConfig, config, appConfig )
fairCopyApplication.sendToAllWindows('updateFairCopyConfig', {config, configLastAction} )
}
break
Expand Down
1 change: 1 addition & 0 deletions public/main-process/create-project-archive.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const createProjectArchive = function createProjectArchive(projectInfo,baseDir,c
const fairCopyConfigJSON = fs.readFileSync(`${baseDir}/config/faircopy-config.json`).toString('utf-8')
const fairCopyConfig = JSON.parse(fairCopyConfigJSON)
fairCopyConfig.projectCSS = defaultProjectCSS
fairCopyConfig.colorCodings = { '__default__': 'blue' }

projectArchive.file(manifestEntryName, JSON.stringify(fairCopyManifest))
projectArchive.file(configSettingsEntryName, JSON.stringify(fairCopyConfig))
Expand Down
32 changes: 17 additions & 15 deletions public/main-process/data-migration.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ const log = require('electron-log')
const { getBlankResourceMap } = require('./id-map-authority')

function getProjectVersion(generatedWith) {
const ver = generatedWith ? generatedWith : '0.9.4' // this field was added in 0.9.5
// ignore any pre-release fields (e.g "1.1.1-dev.8")
return `${semver.major(ver)}.${semver.minor(ver)}.${semver.patch(ver)}`
return generatedWith ? generatedWith : '0.9.4' // this field was added in 0.9.5
}

// project files are backward compatible but not forward compatible
Expand All @@ -22,15 +20,9 @@ const migrateConfig = function migrateConfig( generatedWith, baseConfig, project
migrationRemoveElements(projectConfig,baseConfig)
migrationAddNewElements(baseConfig,projectConfig)

if( semver.lt(projectVersion,'1.1.6') ) {
migrationAddKeybindings(projectConfig)
log.info('applying migrations for v1.1.6')
}

if( semver.lt(projectVersion,'1.2.0') ) {
migrationAddProjectCSS(projectConfig,fairCopyAppConfig)
log.info('applying migrations for v1.2.0')
}
migrationAddKeybindings(projectConfig)
migrationAddProjectCSS(projectConfig,fairCopyAppConfig)
migrationAddColorCodings(projectConfig)

if( semver.lt(projectVersion,'0.10.1') ) {
migrationAddMenus(projectConfig,baseConfig)
Expand Down Expand Up @@ -75,13 +67,23 @@ exports.migrateManifestData = migrateManifestData

//// MIGRATIONS /////////////////////////////////////////////////

function migrationAddColorCodings(projectConfig) {
if( !projectConfig.colorCodings ) {
projectConfig.colorCodings = { '__default__': 'blue' }
}
}

function migrationAddKeybindings(projectConfig) {
projectConfig.keybindings = {}
if( !projectConfig.keybindings ) {
projectConfig.keybindings = {}
}
}

function migrationAddProjectCSS(projectConfig,fairCopyAppConfig) {
const { defaultProjectCSS } = fairCopyAppConfig
projectConfig.projectCSS = defaultProjectCSS
if( !projectConfig.projectCSS ) {
const { defaultProjectCSS } = fairCopyAppConfig
projectConfig.projectCSS = defaultProjectCSS
}
}

function migrationAddNewElements(baseConfig,projectConfig) {
Expand Down
Loading

0 comments on commit da71471

Please sign in to comment.