Commit 43b07a8f authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

Merge branch 'f-boot-tour' into f-fix-110

parents 67b5630a 0754db9b
Pipeline #8319 failed with stages
in 1 minute and 24 seconds
# -*- mode:conf; -*-
# dot files
.*
!/.git*
......@@ -8,13 +10,19 @@
# the build dir
/public
/sss_bin
/node_modules/
/build
__pycache__
# auto-generated sources
/src/doc/api
# screen logs
screenlog.*
xerr.log
# extensions
conf/ext
test/ext
src/ext
......@@ -6,6 +6,7 @@
# Copyright (C) 2019 Henrik tom Wörden
# Copyright (C) 2020 Timm Fitschen (t.fitschen@indiscale.com)
# Copyright (C) 2020 IndiScale GmbH (info@indiscale.com)
# Copyright (C) 2020 Daniel Hornung <d.hornung@indiscale.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
......@@ -22,9 +23,7 @@
variables:
DEPLOY_REF: dev
CI_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/caosdb-webui/testenv
# When using dind, it's wise to use the overlayfs driver for
# improved performance.
CI_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/src/caosdb-webui/testenv
image: $CI_REGISTRY_IMAGE:latest
......@@ -58,15 +57,22 @@ test:
script:
- make run-qunit
test-server-side-scripting:
timeout: 10 minutes
tags: [ docker ]
stage: test
script:
- whereis pytest pytest3 py.test pytest-3 py.test-3
- make test-sss
# Trigger building of server image and integration tests
trigger_build:
timeout: 15 minutes
tags: [ docker ]
stage: deploy
script:
- echo $TOKEN
- /usr/bin/curl -X POST
-F token=$DEPLOY_TRIGGER_TOKEN
-F token=$CI_JOB_TOKEN
-F "variables[F_BRANCH]=$CI_COMMIT_REF_NAME"
-F "variables[WEBUI]=$CI_COMMIT_REF_NAME"
-F "variables[TriggerdBy]=WEBUI"
......@@ -78,13 +84,41 @@ build-testenv:
tags: [ cached-dind ]
image: docker:19.03
stage: setup
timeout: 3 h
only:
- web
- schedules
script:
- cd test/docker
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
# use here general latest or specific branch latest...
- docker pull $CI_REGISTRY_IMAGE:latest || true
- docker build
--pull
--cache-from $CI_REGISTRY_IMAGE:latest
-t $CI_REGISTRY_IMAGE:latest .
- docker push $CI_REGISTRY_IMAGE:latest
# Build the sphinx documentation and make it ready for deployment by Gitlab Pages
# documentation:
# stage: deploy
# Special job for serving a static website. See https://docs.gitlab.com/ee/ci/yaml/README.html#pages
pages_prepare: &pages_prepare
tags: [ cached-dind ]
stage: deploy
only:
refs:
- /^release-.*$/i
script:
- npm install jsdoc
- npm install jsdoc-sphinx
- echo "Deploying"
- make doc
- rm -r public || true ; cp -r build/doc/html public
artifacts:
paths:
- public
pages:
<<: *pages_prepare
only:
refs:
- main
......@@ -8,14 +8,90 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added (for new features, dependecies etc.)
* Displaying and interacting with the entity state.
* Change password functionality for users of the internal user source.
* Visually highlighted drop zones for properties and parents in the edit_mode.
* two new field types for the form_elements module, `file` and `select`. See
the module documentation for more information.
- Added a menu/toc for the tour
- Added a previous and next buttons for pages in the tour
- Added warnings to inform about minimum width when accessing tour and
edit mode on small screens.
- Added a tutorial for the edit mode to the documentation
### Changed (for changes in existing functionality)
- The heading attributes datatype, path, checksum and size are now placed
in a `details` html element.
### Deprecated (for soon-to-be removed features)
### Removed (for now removed features)
* `ext_revisions` module. This module was only a work-around which had been
used for versioning functionality before the native versioning was
implemented. Also, the `BUILD_MODULE_EXT_REVISIONS` is no longer used and can
be removed from the config files in `build.properties.d/`
* `#subnav` element from navbar which was previously used for spacing
* `caosdb.form.ready` event
### Fixed
* #214 - Paging panel is hidden.
* #156 - Edit mode for Safari 11
* #160 - Entity preview for Safari 11
* Several minor cosmetic flaws
* Fixed edit mode for Safari 11.
* Displaying issues with long lists in property values
* An issue whereby a grey container would appear above the map when
changing the map view.
### Security (in case of vulnerabilities)
## [0.3.0] - 2021-02-10
### Added (for new features, dependecies etc.)
- The versioning model has a new styling and can show and tsv-export the full
version history now.
- Module `ext_bookmarks` which allows users to bookmark entities, store them in
a link or export them to TSV.
- table previews in the bottom line module
- added preview for tif images
* new function `form_elements.make_alert` which generates a proceed/cancel
dialog which intercepts a function call and asks the user for confirmation.
* Deleting entities prompts for user confirmation after hitting the "Delete"
button (edit_mode).
* Plotly preview has an additional parameter for a config object,
e.g., for disabling the plotly logo
- The map can now show entities that have no geo location but are related to
entities that have one. This also effects the search from the map.
* `getPropertyValues` function which generates a table of property values from
a xml representation of entities.
* After a SELECT statement now also all referenced files can be downloaded.
* Automated documentation builds: `make doc`
- documentation on queries
### Changed (for changes in existing functionality)
* ext_map version bumped to 0.4
- enabled and enhanced autocompletion
* Login form is hidden behind another button.
### Deprecated (for soon-to-be removed features)
### Removed (for now removed features)
### Fixed
- #144 (Select with ANY VERSION OF).
- #136 (adding reference properties to entities in edit mode)
- exclude configuration files when reading files from build.properties.d
- summaries when opening preview
- #125 special characters like "\t", \"n", "#" are replaced in table
download
- #158 show preview if the entity is too large for the viewport if
bottom line is in view.
### Security (in case of vulnerabilities)
## [v0.2.1] - 2020-09-07
......
* CaosDB Server == 0.3
* Make 4.2.0
......@@ -33,14 +33,17 @@ SQ=\'
ROOT_DIR = $(abspath .)
MISC_DIR = $(abspath misc)
PUBLIC_DIR = $(abspath public)
SSS_BIN_DIR = $(abspath sss_bin)
CONF_CORE_DIR = $(abspath conf/core)
CONF_EXT_DIR = $(abspath conf/ext)
SRC_CORE_DIR = $(abspath src/core)
SRC_EXT_DIR = $(abspath src/ext)
SRC_SSS_DIR = $(abspath src/server_side_scripting)
LIBS_DIR = $(abspath libs)
TEST_CORE_DIR = $(abspath test/core/)
TEST_EXT_DIR = $(abspath test/ext)
LIBS = fonts css/bootstrap.css js/bootstrap.js js/state-machine.js js/jquery.js js/showdown.js js/dropzone.js css/dropzone.css js/loglevel.js js/leaflet.js css/leaflet.css css/images js/leaflet-latlng-graticule.js js/proj4.js js/proj4leaflet.js js/leaflet-coordinates.js css/leaflet-coordinates.css js/leaflet-graticule.js js/bootstrap-select.js css/bootstrap-select.css js/bootstrap-autocomplete.min.js js/plotly.js
TEST_SSS_DIR =$(abspath test/server_side_scripting)
LIBS = fonts css/fonts css/bootstrap.css css/bootstrap-icons.css js/state-machine.js js/jquery.js js/showdown.js js/dropzone.js css/dropzone.css js/loglevel.js js/leaflet.js css/leaflet.css css/images js/leaflet-latlng-graticule.js js/proj4.js js/proj4leaflet.js js/leaflet-coordinates.js css/leaflet-coordinates.css js/leaflet-graticule.js js/bootstrap-select.js css/bootstrap-select.css js/bootstrap-autocomplete.min.js js/plotly.js js/pako.js js/utif.js js/bootstrap.bundle.min.js
TEST_LIBS = $(LIBS) js/qunit.js css/qunit.css $(subst $(TEST_CORE_DIR)/,,$(shell find $(TEST_CORE_DIR)/))
......@@ -49,9 +52,9 @@ LIBS_SUBDIRS = $(addprefix $(LIBS_DIR)/, js css fonts)
ALL: install
install: clean cp-src cp-ext cp-conf $(addprefix $(PUBLIC_DIR)/, $(LIBS)) build_properties merge_xsl
install: clean-ignore-zips install-sss cp-src cp-ext cp-conf $(addprefix $(PUBLIC_DIR)/, $(LIBS)) build_properties merge_xsl merge_js
test: clean cp-src cp-ext cp-ext-test cp-conf $(addprefix $(PUBLIC_DIR)/, $(TEST_LIBS)) build_properties merge_xsl
test: clean-ignore-zips install-sss cp-src cp-ext cp-ext-test cp-conf $(addprefix $(PUBLIC_DIR)/, $(TEST_LIBS)) build_properties merge_xsl merge_js
@for f in $(shell find $(TEST_EXT_DIR) -type f -iname *.js) ; do \
sed -i "/EXTENSIONS/a \<script src=\"$${f#$(TEST_EXT_DIR)/}\" ></script>" $(PUBLIC_DIR)/index.html ; \
echo include $$f; \
......@@ -64,10 +67,16 @@ test: clean cp-src cp-ext cp-ext-test cp-conf $(addprefix $(PUBLIC_DIR)/, $(TEST
merge_xsl:
misc/merge_xsl.sh
merge_js:
for f in ${BUILDFILELIST} ; do source "$$f" ; done ; \
misc/merge_js.sh $${MODULE_DEPENDENCIES[*]}
EXCLUDE_EXPR = %~ %.backup
BUILDFILELIST = $(filter-out $(EXCLUDE_EXPR),$(wildcard build.properties.d/*))
build_properties:
@set -a -e ; \
pushd build.properties.files ; \
for f in ../build.properties.d/* ; do source "$$f" ; done ; \
for f in ${BUILDFILELIST} ; do echo "processing ../$$f" && source "../$$f" ; done ; \
popd ; \
BUILD_NUMBER=$(BUILD_NUMBER) ; \
PROPS=$$(printenv | grep -e "^BUILD_") ; \
......@@ -127,18 +136,33 @@ run-qunit: test
exit 1; \
fi
install-sss:
@set -a -e ; \
pushd build.properties.files ; \
for f in ../build.properties.d/* ; do source "$$f" ; done ; \
popd ; \
./install-sss.sh $(SRC_SSS_DIR) $(SSS_BIN_DIR)
PYTEST ?= pytest
PIP ?= pip3
test-sss: install-sss
$(PIP) freeze
$(PYTEST) -vv $(TEST_SSS_DIR)
CMD_COPY_EXT_FILES = cp -i -r -L
cp-ext:
# TODO FIXME Base path for not-XSL-expanded files
mkdir -p $(PUBLIC_DIR)/html
for f in $(wildcard $(SRC_EXT_DIR)/html/*) ; do \
echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/html/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$(realpath "$$f")" $(PUBLIC_DIR)/html/ ; \
done
for f in $(wildcard $(SRC_EXT_DIR)/js/*) ; do \
echo "y" | cp -i -r "$$f" $(PUBLIC_DIR)/js/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$f" $(PUBLIC_DIR)/js/ ; \
sed -i "/JS_EXTENSIONS/a \<xsl:element name=\"script\"><xsl:attribute name=\"src\"><xsl:value-of select=\"concat\(\$$basepath, 'webinterface/${BUILD_NUMBER}$${f#$(SRC_EXT_DIR)}'\)\" /></xsl:attribute></xsl:element>" $(PUBLIC_DIR)/xsl/main.xsl ; \
done
for f in $(wildcard $(SRC_EXT_DIR)/css/*) ; do \
echo "y" | cp -i -r "$$f" $(PUBLIC_DIR)/css/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$f" $(PUBLIC_DIR)/css/ ; \
sed -i "/CSS_EXTENSIONS/a \<xsl:element name=\"link\"><xsl:attribute name=\"rel\">stylesheet</xsl:attribute><xsl:attribute name=\"href\"><xsl:value-of select=\"concat\(\$$basepath, 'webinterface/${BUILD_NUMBER}$${f#$(SRC_EXT_DIR)}'\)\" /></xsl:attribute></xsl:element>" $(PUBLIC_DIR)/xsl/main.xsl ; \
for html in $(PUBLIC_DIR)/html/* ; do \
echo "$$html"; \
......@@ -146,26 +170,26 @@ cp-ext:
done \
done
for f in $(wildcard $(SRC_EXT_DIR)/pics/*) ; do \
echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/pics/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$(realpath "$$f")" $(PUBLIC_DIR)/pics/ ; \
done
for f in $(wildcard $(SRC_EXT_DIR)/xsl/*) ; do \
echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/xsl/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$(realpath "$$f")" $(PUBLIC_DIR)/xsl/ ; \
done
cp-ext-test:
for f in $(wildcard $(TEST_EXT_DIR)/js/*) ; do \
echo "y" | cp -i -r "$$f" $(PUBLIC_DIR)/js/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$f" $(PUBLIC_DIR)/js/ ; \
sed -i "/JS_EXTENSIONS/a \<xsl:element name=\"script\"><xsl:attribute name=\"src\"><xsl:value-of select=\"concat\(\$$basepath, 'webinterface/${BUILD_NUMBER}$${f#$(SRC_EXT_DIR)}'\)\" /></xsl:attribute></xsl:element>" $(PUBLIC_DIR)/xsl/main.xsl ; \
done
mkdir -p $(PUBLIC_DIR)/html
for f in $(wildcard $(TEST_EXT_DIR)/html/*) ; do \
echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/html/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$(realpath "$$f")" $(PUBLIC_DIR)/html/ ; \
done
for f in $(wildcard $(TEST_EXT_DIR)/pics/*) ; do \
echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/pics/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$(realpath "$$f")" $(PUBLIC_DIR)/pics/ ; \
done
for f in $(wildcard $(TEST_EXT_DIR)/xsl/*) ; do \
echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/xsl/ ; \
echo "y" | $(CMD_COPY_EXT_FILES) "$$(realpath "$$f")" $(PUBLIC_DIR)/xsl/ ; \
done
cp-conf: convert-yaml
......@@ -191,22 +215,25 @@ $(PUBLIC_DIR)/%: $(TEST_EXT_DIR)/%
cp -r $< $@
$(LIBS_DIR)/fonts: unzip
ln -s $(LIBS_DIR)/bootstrap-3.3.7-dist/fonts $@
ln -s $(LIBS_DIR)/bootstrap-icons-1.4.1/fonts/ $@
$(LIBS_DIR)/js/bootstrap.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/bootstrap-3.3.7-dist/js/bootstrap.min.js $@
ln -s $(LIBS_DIR)/bootstrap-5.0.0-beta3-dist/js/bootstrap.min.js $@
$(LIBS_DIR)/css/bootstrap.css: unzip $(LIBS_DIR)/css
ln -s $(LIBS_DIR)/bootstrap-3.3.7-dist/css/bootstrap.min.css $@
ln -s $(LIBS_DIR)/bootstrap-5.0.0-beta3-dist/css/bootstrap.min.css $@
$(LIBS_DIR)/css/bootstrap-icons.css: unzip $(LIBS_DIR)/css
ln -s $(LIBS_DIR)/bootstrap-icons-1.4.1/bootstrap-icons.css $@
$(LIBS_DIR)/js/bootstrap-select.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/bootstrap-select-1.13.9/dist/js/bootstrap-select.min.js $@
ln -s $(LIBS_DIR)/bootstrap-select-1.14.0-beta2/js/bootstrap-select.min.js $@
$(LIBS_DIR)/css/bootstrap-select.css: unzip $(LIBS_DIR)/css
ln -s $(LIBS_DIR)/bootstrap-select-1.13.9/dist/css/bootstrap-select.min.css $@
ln -s $(LIBS_DIR)/bootstrap-select-1.14.0-beta2/css/bootstrap-select.min.css $@
$(LIBS_DIR)/js/jquery.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/jquery-3.3.1/jquery-3.3.1.min.js $@
ln -s $(LIBS_DIR)/jquery-3.6.0.min.js $@
$(LIBS_DIR)/js/showdown.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/showdown-1.8.6/dist/showdown.min.js $@
......@@ -241,6 +268,9 @@ $(LIBS_DIR)/css/images: unzip $(LIBS_DIR)/css
$(LIBS_DIR)/js/leaflet-graticule.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/L.Graticule.js $@
$(LIBS_DIR)/js/bootstrap.bundle.min.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/bootstrap.bundle.min.js $@
$(LIBS_DIR)/js/leaflet-latlng-graticule.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/leaflet.latlng-graticule-20191007/leaflet.latlng-graticule.js $@
......@@ -257,32 +287,47 @@ $(LIBS_DIR)/css/leaflet-coordinates.css: unzip $(LIBS_DIR)/css
ln -s $(LIBS_DIR)/Leaflet.Coordinates-0.1.5/dist/Leaflet.Coordinates-0.1.5.css $@
$(LIBS_DIR)/js/bootstrap-autocomplete.min.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/bootstrap-autocomplete-2.3.0/dist/latest/bootstrap-autocomplete.min.js $@
ln -s $(LIBS_DIR)/bootstrap-autocomplete-2.3.5/dist/latest/bootstrap-autocomplete.min.js $@
$(LIBS_DIR)/js/plotly.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/plotly.js-1.52.2/dist/plotly.min.js $@
$(LIBS_DIR)/js/pako.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/pako-dummy/pako.js $@
$(LIBS_DIR)/js/utif.js: unzip $(LIBS_DIR)/js
ln -s $(LIBS_DIR)/UTIF-8205c1f/UTIF.js $@
$(addprefix $(LIBS_DIR)/, js css):
mkdir $@ || true
.PHONY: clean
clean:
$(LIBS_DIR)/css/fonts: $(LIBS_DIR)/css
ln -s $(LIBS_DIR)/fonts/ $(LIBS_DIR)/css/fonts
.PHONY: clean-ignore-zips
clean-ignore-zips:
$(RM) -r $(SSS_BIN_DIR)
$(RM) -r $(PUBLIC_DIR)
for f in $(LIBS_SUBDIRS); do unlink $$f || $(RM) -r $$f || true; done
for f in $(patsubst %.zip,%/,$(LIBS_ZIP)); do $(RM) -r $$f; done
$(RM) .server_done
.PHONY: clean
clean: clean-ignore-zips
for f in $(patsubst %.zip,%/,$(LIBS_ZIP)); do $(RM) -r $$f; done
.PHONY: unzip
unzip:
for f in $(LIBS_ZIP); do unzip -q -o -d libs $$f; done
for f in $(LIBS_ZIP); do echo "unzip $$f" ; unzip -u -q -o -d libs $$f; done
PYLINT = pylint3 -d all -e E,F
PYLINT ?= pylint
PYTHON_FILES = $(subst $(ROOT_DIR)/,,$(shell find $(ROOT_DIR)/ -iname "*.py"))
pylint: $(PYTHON_FILES)
for f in $(PYTHON_FILES); do $(PYLINT) $$f || exit 1; done
for f in $(PYTHON_FILES); do $(PYLINT) -d all -e E,F $$f || exit 1; done
PYLINT_LOCAL = /usr/bin/pylint3 -d all -e E,F
pylint-local: $(PYTHON_FILES)
for f in $(PYTHON_FILES); do $(PYLINT_LOCAL) $$f || exit 1; done
# Compile the standalone documentation
.PHONY: doc
doc:
$(MAKE) -C src/doc html
<!--THIS FILE HAS BEEN GENERATED BY A SCRIPT. PLEASE DON'T CHANGE IT MANUALLY.-->
Project migrated to https://gitlab.com/caosdb
# README
# Welcome
## Welcome
This is the **CaosDB WebUI** repository and a part of the CaosDB project.
This is the **CaosDB Web User Interface** repository and a part of the
CaosDB project.
# Setup
## Setup
Please read the [README_SETUP.md](README_SETUP.md) for instructions on how to
setup this code.
# Further Reading
## Further Reading
Please refer to the [official gitlab repository of the CaosDB
project](https://gitlab.com/caosdb/caosdb) for more information.
Please refer to the [official documentation](https://docs.indiscale.com/caosdb-webui/) for more information.
# License
## Contributing
Copyright (C) 2018 Research Group Biomedical Physics, Max Planck Institute for
Dynamics and Self-Organization Göttingen.
Thank you very much to all contributers—[past, present](https://gitlab.com/caosdb/caosdb/-/blob/dev/HUMANS.md), and prospective ones.
### Code of Conduct
By participating, you are expected to uphold our [Code of Conduct](https://gitlab.com/caosdb/caosdb/-/blob/dev/CODE_OF_CONDUCT.md).
### How to Contribute
* You found a bug, have a question, or want to request a feature? Please
[create an issue](https://gitlab.com/caosdb/caosdb-webui/-/issues).
* You want to contribute code? Please fork the repository and create a merge
request in GitLab and choose this repository as target. Make sure to select
"Allow commits from members who can merge the target branch" under Contribution
when creating the merge request. This allows our team to work with you on your request.
- If you have a suggestion for the [documentation](https://docs.indiscale.com/caosdb-webui/),
the preferred way is also a merge request as describe above (the documentation resides in `src/doc`).
However, you can also create an issue for it.
- You can also contact us at **info (AT) caosdb.de**.
## License
* Copyright (C) 2018 Research Group Biomedical Physics, Max Planck Institute
for Dynamics and Self-Organization Göttingen.
* Copyright (C) 2020-2021 Indiscale GmbH <info@indiscale.com>
All files in this repository are licensed under a [GNU Affero General Public
License](LICENCE.md) (version 3 or later).
......@@ -21,12 +21,16 @@
* ** end header
-->
# Folder Structure
# Getting Started with the Web Interface
Here, we document how to install and build the CaosDB Web Interface. If you are
only interested in how to use it, please continue [here](tutorials/first_steps.html)
* The `src` folder contains all source code for the webinterface.
## Folder Structure
* The `src` folder contains all source code for the web interface.
* The `libs` folder contains all necessary third-party libraries as zip files.
* The `test` folder contains the unittests for the webinterface.
* The `ext` folder contains extension for the webinterface. The make file will
* The `test` folder contains the unittests for the web interface.
* The `ext` folder contains extension for the web interface. The make file will
copy all javascript files from `ext/js/` into the public folder and links the
javascript in the `public/xsl/main.xsl`.
* The `misc` folder contains a simple http server which is used for running the
......@@ -34,33 +38,49 @@
* The `build.properties.d/` folder contains configuration files for the build.
# Build Configuration
## Build Configuration
The default configuration is defined in
`build.properties.d/00_default.properties`.
This file defines default variables which will be replaced in the source files
during the build.
This file defines default variables which can be used in source files and
will be replaced with the defined values during the build.
All files in that directory will be sourced during `make install` and `make test`.
Thus any customized configuration can also be added to that folder by just placing
files in there which override the default values from `00_default.properties`.
See `build.properties.d/00_default.properties` for more
information.
See `build.properties.d/00_default.properties` for more information.
# Setup
## Setup
* Run `make install` to compile/copy the webinterface to a newly created
* Run `make install` to compile/copy the web interface to a newly created
`public` folder.
* Also, `make install` will copy the scripts from `src/server_side_scripting/`
to `sss_bin/`. If you want to make the server-side scripts callable for the
server as server-side scripts you need to include the `sss_bin/` directory
into the server property `SERVER_SIDE_SCRIPTING_BIN_DIRS`.
# Test
## Test
* Run `make test` to compile/copy the webinterface and the tests to a newly
* Run `make test` to compile/copy the web interface and the tests to a newly
created `public` folder.
* Run `make run-test-server` to start a python http server.
* The test suite can be started with `firefox http://localhost:8000/`.
# Clean
## Clean
* Run `make clean` to clean up everything.
## Documentation #
Build documentation in `build/` with `make doc`.
### Requirements ##
- sphinx
- sphinx-autoapi
- jsdoc (`npm install jsdoc`)
- jsdoc-sphinx (`npm install jsdoc-sphinx`)
- sphinx-js
- recommonmark
......@@ -18,10 +18,10 @@ guidelines of the CaosDB Project
2. Check all general prerequisites.
3. Merge the release branch into the master branch.
3. Merge the release branch into the main branch.
4. Tag the latest commit of the master branch with `v<VERSION>`.
4. Tag the latest commit of the main branch with `v<VERSION>`.
5. Delete the release branch.
6. Merge the master branch back into the dev branch.
6. Merge the main branch back into the dev branch.
......@@ -45,6 +45,14 @@ BUILD_MODULE_EXT_PREVIEW=ENABLED
BUILD_MODULE_EXT_RESOLVE_REFERENCES=ENABLED
BUILD_MODULE_EXT_SSS_MARKDOWN=DISABLED
BUILD_MODULE_EXT_TRIGGER_CRAWLER_FORM=DISABLED
BUILD_MODULE_EXT_AUTOCOMPLETE=ENABLED
BUILD_MODULE_EXT_BOTTOM_LINE=ENABLED
BUILD_MODULE_EXT_BOTTOM_LINE_TABLE_PREVIEW=DISABLED
BUILD_MODULE_EXT_BOTTOM_LINE_TIFF_PREVIEW=DISABLED
BUILD_MODULE_EXT_BOOKMARKS=ENABLED
BUILD_MODULE_USER_MANAGEMENT=ENABLED
BUILD_MODULE_USER_MANAGEMENT_CHANGE_OWN_PASSWORD_REALM=CaosDB
##############################################################################
# Navbar properties
......@@ -63,7 +71,7 @@ BUILD_FAVICON=pics/caosdb_logo_42.png
##############################################################################
# Link to the data policy statement document.
BUILD_FOOTER_DATA_POLICY_HREF=https://indiscale.com/?page_id=156
BUILD_FOOTER_DATA_POLICY_HREF=https://missing-domain.com/missing-page
# Custom footer elements can be placed here (will be placed inside a <div>
# element).
......@@ -82,3 +90,48 @@ BUILD_CUSTOM_IMPRINT='<p> Put an imprint note here </p>'
# ext_trigger_crawler_form properties
##############################################################################
BUILD_MODULE_EXT_TRIGGER_CRAWLER_FORM_TOOLBOX="Tools"
##############################################################################
# Module dependencies
# Override or extend to specify the order of js files in the resulting
# bundled js file
##############################################################################
MODULE_DEPENDENCIES=(
jquery.js
bootstrap.bundle.min.js
bootstrap-autocomplete.min.js
bootstrap-select.js
state-machine.js
showdown.js
dropzone.js
loglevel.js
plotly.js
webcaosdb.js
pako.js
utif.js
caosdb.js
form_elements.js
ext_autocomplete.js
preview.js
ext_references.js
ext_table_preview.js
ext_xls_download.js
query_shortcuts.js