Skip to content

Commit

Permalink
Merge branch 'develop' into ftr/shell-to-start-sencha
Browse files Browse the repository at this point in the history
  • Loading branch information
daniel-jettka committed Nov 27, 2024
2 parents 9a00456 + 09ea820 commit b943e2f
Show file tree
Hide file tree
Showing 17 changed files with 859 additions and 53 deletions.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Refs #
<!--- Include details of your testing environment, and the tests you ran. -->

## Types of changes
<!--- What types of changes does your code introduce? Please DELETEE options that are not relevant. -->
<!--- What types of changes does your code introduce? Please DELETE options that are not relevant. -->
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to change)
Expand Down
21 changes: 16 additions & 5 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,20 @@ jobs:
# saving this as output for following jobs to pick up
artifact_name: EdiromOnline_${{ steps.short-sha.outputs.sha }}.zip

check-language-files:
name: Check alignment of language files
needs: build
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install libsaxonhe-java for XQuery support
run: |
sudo apt-get update
sudo apt-get install libsaxonhe-java
- name: Run test
run: ant -lib /usr/share/java/ check-language-files

xqunit:
name: Run XQSuite unit tests
Expand All @@ -66,8 +80,6 @@ jobs:
with:
name: ${{ needs.build.outputs.artifact_name }}
path: xars
- name: debug
run: ls -laR ${{ github.workspace }}
- name: Create Docker container
run: |
docker create --rm --name edirom-online -p 8080:8080 stadlerpeter/existdb:6
Expand All @@ -84,7 +96,8 @@ jobs:

update-tag:
name: Update git development tag and Github release
needs: [build,xqunit]
needs: [build,xqunit,check-language-files]
if: ${{ github.event_name == 'push' && github.ref_name == 'develop' }}
runs-on: ubuntu-latest
permissions:
contents: write
Expand All @@ -93,7 +106,6 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Delete dev-release
if: ${{ github.event_name == 'push' && github.ref_name == 'develop' }}
run: gh release delete dev --cleanup-tag -y
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -106,7 +118,6 @@ jobs:
path: xars

- name: Create dev-release
if: ${{ github.event_name == 'push' && github.ref_name == 'develop' }}
uses: ncipollo/[email protected]
with:
allowUpdates: true
Expand Down
43 changes: 32 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
[![Build](https://github.com/Edirom/Edirom-Online/actions/workflows/docker-ci.yml/badge.svg?branch=develop&event=push)](https://github.com/Edirom/Edirom-Online/actions/workflows/docker-ci.yml) [![NFDI4C Registry](https://nfdi4culture.de/fileadmin/user_upload/registry/badges/nfdi4culturebadge.svg)](https://nfdi4culture.de/id/E3648) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
[![Build](https://github.com/Edirom/Edirom-Online/actions/workflows/pre-release.yml/badge.svg?branch=develop&event=push)](https://github.com/Edirom/Edirom-Online/actions/workflows/pre-release.yml) [![NFDI4C Registry](https://nfdi4culture.de/fileadmin/user_upload/registry/badges/nfdi4culturebadge.svg)](https://nfdi4culture.de/id/E3648) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)

<div align="center">

**[Showcases](https://github.com/Edirom/Edirom-Online#-Showcases)
[Get started](https://github.com/Edirom/Edirom-Online#-Get-started)
[Dependencies](https://github.com/Edirom/Edirom-Online#-Dependencies)
[Roadmap](https://github.com/Edirom/Edirom-Online#-Roadmap)
[Contributing](https://github.com/Edirom/Edirom-Online#-Contributing)
[Get in touch](https://github.com/Edirom/Edirom-Online#-Get-in-touch)
[Code of Conduct](https://github.com/Edirom/Edirom-Online#-Code-of-Conduct)
[License](https://github.com/Edirom/Edirom-Online#-License)**
**[Showcases](https://github.com/Edirom/Edirom-Online#showcases)
[Get started](https://github.com/Edirom/Edirom-Online#get-started)
[Documentation](https://github.com/Edirom/Edirom-Online#documentation)
[Dependencies](https://github.com/Edirom/Edirom-Online#dependencies)
[Roadmap](https://github.com/Edirom/Edirom-Online#roadmap)
[Contributing](https://github.com/Edirom/Edirom-Online#contributing)
[Get in touch](https://github.com/Edirom/Edirom-Online#get-in-touch)
[Code of Conduct](https://github.com/Edirom/Edirom-Online#code-of-Conduct)
[License](https://github.com/Edirom/Edirom-Online#license)**

</div>

Expand All @@ -24,7 +25,7 @@ To get some practical insights, look at these projects and editions that already

**Clarinet quintet op.34 by Weber**

The third version of Webers clarinet quintet op.34 was created 2022 by Virtueller Forschungsverbund Edirom (ViFE) honoring Prof. Dr. Joachim Veit on the occasion of his retirement. The edition includes digital facsimiles, music that is encoded in MEI and visualized with , annotations and texts.
The third version of Webers clarinet quintet op.34 was created 2022 by Virtueller Forschungsverbund Edirom (ViFE) honoring Prof. Dr. Joachim Veit on the occasion of his retirement. The edition includes digital facsimiles, music that is encoded in MEI and visualized with [Verovio], annotations and texts.
* publication of [Webers clarinet quintet]

<img src="./.github/images/EdiromOnline_WeberKlarinettenquintettOp34_2022.jpg" width="80%">
Expand Down Expand Up @@ -97,10 +98,26 @@ When you have your system prepared with all Sencha Cmd prerequisites or you have
* at `http://localhost:8080/exist/apps/dashboard/admin#` (signed-in) go to "Package Manager" then "Upload" and select the xar file which (supposed above build-method was used) was built at `/PATH_TO_LOCAL_EDIROM_EDITION_EXAMPLE_REPO/build/EditionExample-0.1.xar`
* in **eXist-db Package Manager** click on the "Edirom Online" entry - you will be directed to the running Edirom at `http://localhost:8080/exist/apps/Edirom-Online/index.html`

## Documentation

Some useful information regarding documentation is captured in the [docs] folder of this repo. It contains:
* [Customize] Edirom Online and content
* Edirom Online – [Release Workflow]
* [Setup Edirom Online] on a local machine

## Dependencies

Edirom Online depends heavily on the JavaScript framework [Ext JS] which is included in parts in our code base. We use Ext JS 4.2.1 in the GPL version. Edirom Online also includes the [Raphaël] javascript library (MIT License) and the [ACE] editor (BSD license).

For running the tests provided in the [ANT build file] we rely on `xmllint`
and `SaxonHE`.
On a Debian based Linux system these can be installed with `apt-get install
libsaxonhe-java libxml2-utils`.
If SaxonHE is not available from your classpath by default you might need to
explicitly point ANT at it by providing the `-lib` parameter, e.g. `ant -lib
/usr/share/java/ run-all-tests`.


## Roadmap

Until today Edirom-Online and its features were developed as one application with strong dependencies on the JavaScript framework [Ext JS] (current version Ext JS 4.2.1) like mentioned above. Frontend and backend are currently living in this one application. Regarding to Edirom-Onlines release plans ExtJS is planned to be updated in the near future until ExtJS 7.0.0.
Expand Down Expand Up @@ -143,6 +160,10 @@ Edirom Online is released to the public under the terms of the [GNU GPL v.3] ope
[Bargheer: Edition]: https://github.com/Edirom/Bargheer-Edition
[eXist-db]: https://exist-db.org/
[Verovio]: https://www.verovio.org/index.xhtml
[docs]: /docs
[Customize]: docs/customize.md
[Release Workflow]: docs/release-workflow.md
[Setup Edirom Online]: docs/setup.md
[Ext JS]: https://www.sencha.com/products/extjs
[Raphaël]: http://raphaeljs.com
[ACE]: http://ace.ajax.org
Expand All @@ -162,7 +183,7 @@ Edirom Online is released to the public under the terms of the [GNU GPL v.3] ope
[GitHub Discussions]: https://github.com/Edirom/Edirom-Online/discussions
[Contributor Code of Conduct]: CODE_OF_CONDUCT.md
[GNU GPL v.3]: http://www.gnu.org/copyleft/gpl.html

[ANT build file]: https://github.com/Edirom/Edirom-Online/blob/develop/build.xml

<!--
# EdiromOnline/app
Expand Down
1 change: 1 addition & 0 deletions add/data/locale/edirom-lang-de.xml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
<entry key="view.window.source.SourceView_MeasureBasedView_previousMeasure" value="Vorheriger Takt"/>
<entry key="view.window.source.SourceView_MeasureBasedView_measureSpinner" value="Taktauswahl" />
<entry key="view.window.source.SourceView_MeasureBasedView_nextMeasure" value="Nächster Takt"/>
<entry key="view.window.source.SourceView_MeasureBasedView_movementSelectorBox" value="Auswahl von Satz/Nummer"/>
<entry key="view.window.source.SourceView_MeasureBasedView_selectVoices" value="Stimmenauswahl"/>
<entry key="view.window.text.TextView_annotMenu" value="Anmerkungen"/>
<entry key="view.window.text.TextView_showAnnotations" value="Anmerkungen ein-/ausblenden"/>
Expand Down
2 changes: 1 addition & 1 deletion add/data/xql/getMeasurePage.xql
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ declare function local:findMeasure($mei, $movementId, $measureIdName) as element
($m)
else
(($mei/id($movementId)//mei:measure[@label eq $measureIdName], $mei/id($movementId)//mei:measure[@n eq $measureIdName])[1])
}
};
declare function local:getMeasure($mei, $measure, $movementId) as map(*) {
let $measureId := $measure/string(@xml:id)
let $zoneId := substring-after($measure/string(@facs), '#')
Expand Down
20 changes: 8 additions & 12 deletions add/data/xqm/util.xqm
Original file line number Diff line number Diff line change
Expand Up @@ -129,23 +129,19 @@ declare function eutil:getLocalizedTitle($node as node(), $lang as xs:string?) a
('[No title found!]')

};

(:~
: Returns a document
:
: @param $uri The URIs of the documents to process
: @return The document
:)
declare function eutil:getDoc($uri) {

if(starts-with($uri, 'textgrid:')) then(
let $session := request:get-cookie-value('edirom_online_textgrid_sessionId')
return
doc('http://textgridlab.org/1.0/tgcrud/rest/' || $uri || '/data?sessionId=' || $session)

) else (
doc($uri)
)

declare function eutil:getDoc($uri as xs:string?) as document-node()? {
if(empty($uri) or ($uri eq ""))
then util:log("warn", "No document URI provided")
else if(doc-available($uri))
then doc($uri)
else util:log("warn", "Unable to load document at " || $uri)
};

(:~
Expand Down Expand Up @@ -268,7 +264,7 @@ declare function eutil:getLanguageString($key as xs:string, $values as xs:string
declare function eutil:getLanguageString($key as xs:string, $values as xs:string*, $lang as xs:string) as xs:string {

let $base := system:get-module-load-path()
let $file := doc(concat($base, '/../locale/edirom-lang-', $lang, '.xml'))
let $file := eutil:getDoc(concat($base, '/../locale/edirom-lang-', $lang, '.xml'))

let $string := $file//entry[@key = $key]/string(@value)
let $string := functx:replace-multi($string, for $i in (0 to (count($values) - 1)) return concat('\{',$i,'\}'), $values)
Expand Down
14 changes: 5 additions & 9 deletions add/data/xslt/i18n/de.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<entry xml:id="pbl">Herausgeber</entry>
<entry xml:id="pdr">Project director</entry>
<entry xml:id="rce">Tontechnik</entry>
<entry xml:id="rth">Research tem head</entry>
<entry xml:id="rth">Research team head</entry>
<entry xml:id="scr">Schreiber</entry>
<entry xml:id="spn">Sponsor</entry>
<!-- Identifier Klassen -->
Expand Down Expand Up @@ -109,9 +109,6 @@
<entry xml:id="componentGrp">Bestandteile</entry>
<entry xml:id="expressionList">Expressionen</entry>
<entry xml:id="handList">Schreiber</entry>
<entry xml:id="pubStmt">Publikation</entry>
<entry xml:id="pupPlace">Ort</entry>


<entry xml:id="corpName">Körperschaft</entry>
<entry xml:id="captureMode">Aufnahmemodus</entry>
Expand All @@ -123,6 +120,8 @@

<!-- MEI & TEI -->
<entry xml:id="ptr">Link</entry>
<entry xml:id="pubPlace">Ort der Veröffentlichung</entry>
<entry xml:id="pubStmt">Informationen zur Publikation</entry>

<!-- TEI -->
<entry xml:id="abstract">Editorische Zusammenfassung</entry>
Expand All @@ -142,7 +141,6 @@
<entry xml:id="msIdentifier">Repositorium</entry>
<entry xml:id="orgName">Organisation</entry>
<entry xml:id="publicationStmt">Publikation</entry>
<entry xml:id="profileDesc">Nicht-bibliographische Aspekte</entry>
<entry xml:id="seriesStmt">Reihe</entry>
<entry xml:id="title_a">Titel (analytisch)</entry>
<entry xml:id="title_m">Titel (monographisch)</entry>
Expand All @@ -158,9 +156,8 @@
<entry xml:id="handNotes">Schreiber-Anmerkungen</entry>
<entry xml:id="itemList">Exemplar(e)</entry>
<entry xml:id="placeName">Ort</entry>
<entry xml:id="pubStmt">Informationen zur Publikation</entry>

<entry xml:id="respStmt">Verantwortlich</entry>
<entry xml:id="pubPlace">Ort der Veröffentlichung</entry>
<entry xml:id="profileDesc">Nicht-bibliographische Angaben</entry>


Expand All @@ -183,7 +180,6 @@
<entry xml:id="width">Breite</entry>
<entry xml:id="height">Höhe</entry>
<entry xml:id="descLink">Quellenbeschreibung</entry>

<entry xml:id="singers">Sänger</entry>
<entry xml:id="singers">Sänger</entry>
<entry xml:id="musicians">Musiker</entry>
</language>
59 changes: 49 additions & 10 deletions add/data/xslt/i18n/en.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,27 @@
<entry xml:id="titleStmt">Title Statement</entry>
<!-- marc keys : http://www.loc.gov/marc/relators/relaterm.html -->
<entry xml:id="cmp">Composer</entry>
<entry xml:id="cnd">Conductor</entry>
<entry xml:id="csl">Consultant</entry>
<entry xml:id="dst">Distributor</entry>
<entry xml:id="dtc">Data contributor</entry>
<entry xml:id="edt">Editor</entry>
<entry xml:id="fnd">Funder</entry>
<entry xml:id="led">Lead</entry>
<entry xml:id="mcp">Music copyist</entry>
<entry xml:id="mus">Musiker</entry>
<entry xml:id="mrk">Markup Editor</entry>
<entry xml:id="pbd">Verlagsleiter</entry>
<entry xml:id="pbl">Herausgeber</entry>
<entry xml:id="pdr">Project director</entry>
<entry xml:id="rce">Tontechnik</entry>
<entry xml:id="rth">Research team head</entry>
<entry xml:id="scr">Scribe</entry>
<entry xml:id="spn">Sponsor</entry>
<!-- Identifier Klassen -->
<entry xml:id="labelCode">Labelcode</entry>
<entry xml:id="orderNo">Order number</entry>
<entry xml:id="EAN">Article number (EAN)</entry>
<!-- Titelei -->
<entry xml:id="publication">Publikation</entry>
<entry xml:id="series">Series</entry>
Expand Down Expand Up @@ -86,12 +105,25 @@
<entry xml:id="unpub">Unpublished</entry>
<entry xml:id="geogName">Place</entry>
<!-- MEI -->
<entry xml:id="annot">Annotation</entry>
<entry xml:id="componentGrp">Components</entry>
<entry xml:id="expressionList">Expressions</entry>
<entry xml:id="handList">Scribes</entry>
<entry xml:id="puStmt">Publication</entry>
<entry xml:id="puPlace">Place</entry>



<entry xml:id="corpName">Corporation name</entry>
<entry xml:id="captureMode">Capturing mode</entry>
<entry xml:id="carrierForm">Carrier form</entry>
<entry xml:id="fileChar">File characteristics</entry>
<entry xml:id="playingSpeed">Playing speed</entry>
<entry xml:id="relationList">FRBR-relations</entry>
<entry xml:id="soundChan">Sound channels</entry>

<!-- MEI & TEI -->
<entry xml:id="ptr">Link</entry>
<entry xml:id="pubPlace">Publication Place</entry>
<entry xml:id="pubStmt">Publication Statement</entry>
<!-- TEI -->
<entry xml:id="abstract">Abstract</entry>
<entry xml:id="additional">Additional information</entry>
<entry xml:id="additions">Additions</entry>
<entry xml:id="availability">Availability</entry>
Expand All @@ -106,8 +138,8 @@
<entry xml:id="material">Material</entry>
<entry xml:id="msName">Manuscript name</entry>
<entry xml:id="msIdentifier">Location</entry>
<entry xml:id="orgName">Organisation</entry>
<entry xml:id="publicationStmt">Publication</entry>
<entry xml:id="profileDesc">Non-bibliographic aspects</entry>
<entry xml:id="seriesStmt">Series</entry>
<entry xml:id="title_a">Title (analytic)</entry>
<entry xml:id="title_m">Title (monographic)</entry>
Expand All @@ -120,25 +152,32 @@
<entry xml:id="settlement">Settlement</entry>
<entry xml:id="supportDesc">Support Description</entry>
<entry xml:id="handDesc">Description of Hands</entry>
<entry xml:id="handNotes">Notes on hands</entry>
<entry xml:id="itemList">Item List</entry>
<entry xml:id="pubStmt">Publication Statement</entry>
<entry xml:id="placeName">Place name</entry>

<entry xml:id="respStmt">Responsibility</entry>
<entry xml:id="pubPlace">Publication Place</entry>
<entry xml:id="profileDesc">Non-bibliographic aspects</entry>

<entry xml:id="Encoders">Encoders</entry>
<entry xml:id="binding">Binding</entry>
<entry xml:id="leavesCount">(leaves)</entry>
<entry xml:id="leavesCount">(leaves)</entry>
<entry xml:id="manuscript">manuscript</entry>
<entry xml:id="imprint_publisher">Publisher</entry>
<entry xml:id="analytic">Work</entry>
<entry xml:id="monogr">Publication</entry>

<entry xml:id="leaf">leaf</entry>
<entry xml:id="cm">cm</entry>


<entry xml:id="title_desc">Descriptive title</entry>
<entry xml:id="title_main">Main title</entry>
<entry xml:id="title_sub">Subordinate title</entry>

<!-- FreiDi /content -->
<entry xml:id="width">width</entry>
<entry xml:id="height">height</entry>
<entry xml:id="descLink">Source Description</entry>
</language>
<entry xml:id="singers">Singers</entry>
<entry xml:id="musicians">Musicians</entry>
</language>
2 changes: 1 addition & 1 deletion app/controller/LinkController.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Ext.define('EdiromOnline.controller.LinkController', {
}else if(singleUri.match(/^edirom:\/\//)) {
this.parseEdiromLink(singleUri);

}else if(singleUri.match(/^xmldb:exist:\/\//) || singleUri.match(/^textgrid:/)) {
}else if(singleUri.match(/^xmldb:exist:\/\//)) {

if(config['useExisting']) {
var win = existingWindows.findBy(function(win) {
Expand Down
2 changes: 1 addition & 1 deletion build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<import file="${basedir}/.sencha/app/build-impl.xml"/>
<import file="${basedir}/testing/ant-tests.xml"/>

<property name="project.version" value="1.0.0-beta.6"/>
<property name="project.version" value="1.0.0-beta.7"/>
<property name="project.app" value="Edirom-Online"/>
<property name="project.title" value="Edirom Online"/>
<property name="repo.target" value="${project.app}"/>
Expand Down
Loading

0 comments on commit b943e2f

Please sign in to comment.