Release Info

Development Version!

Changes since last release:
admin 05a23dfef..1d4c2275d:
  > create mail templates when creating a pool
  > database: fix cover image migration
  > add .java-version
  > Update shared-clj
  > Sign up via ext auth
  > Expand role filter to respect hierarchy, issue 833
  > Issue 834
  > Issue 835
  > update shared-clj
  > database: cover image for model
  > remove binding.pry from tests
  > shared-clj: wrap resolve handler with fallback
  > Fix: "User(s)" -> "Group(s)" in admin/inventory-pools/:id/groups/
  > Fix add-group
  > Improve visual appearance of per user inventory_pool overview
  > Add link to legacy inventory-pool edit for managers
  > Link to inventory-pool-group-roles from user roles overview
  > Add "Inventory-Pools-Roles" overview page for a group
  > Improve display of per user "Inventory-Pool-Roles"
  > Expand roles system to groups
  > database: pool workday constraint
  > database: fix max visits
  > database: add procurement organizations constraint
  > Update shared-clj: prepare access queries to include groups
  > Spec show inventory_pools_roles (bug 798)
  > Move factories from shared to database
  > Fix bug 798 /admin/users/:id/inventory-pools-roles/ query
  > shared-clj: return_to inside jwt token
  > database: add foreign key constraints to orders
  > Add inventory namespace and inventory export links
  > Mange group pool-roles i.e. group_access_rights
  > DB: group_access_rights
  > update shared-clj
  > clojurescript npm-deps false
  > DB: make sure "FIRSTNAME LASTNAME" is found in users search
  > DB: load predefined fields from file so it can be reused
  > stuff in regards to redirect after login
  > update leihs-ui and use CI build cache
  > update leihs-ui
  > database: unique index on default language
  > Fix: create workday along with inventory-pool
  > database: index on access_rights on user and pool
  > database: max visits json
  > Fix removing of all roles, update clj-shared
  > Mange inventory-pools, roles, and suspensions
  > update shared-clj
  > update database
  > Add smtp_authentication_type setting
  > Extend delete and transfer to include more fkeys
  > Convert extended_info to json,  expose it via API and UI
  > Fix: reset image_digest when it is deleted via ui click
  > Fix broken users pagination
  > db: fix migration 501
  > Access user/img_digest from the frontend and autoset sensible values
  > Clean up dead code
  > fix missing css for ssr
  > Fix migration
  > db: change attachments field permissions
  > shared-clj: password reset & users with only 1 external auth system
  > update leihs-ui
  > Remove unused code
  > fix global navbar issues
  > Replace http shutdown with pid shutdown
  > updated shared-clj
  > check pending migrations & shared deps
  > Create `target` if missing during uberjar task
  > Audits
  > Revert to proper version of ui
  > Move leihs-clj-shared to shared-clj
  > Use general leihs password authentication
  > Support ext auth sign-out callback
  > feat: password reset
  > Improve S3 caching and add local caching
  > leihs-ui: fix script, upgrade deps
  > update leihs-ui
  > Integration testing
  > Testing upgrade for g2018 executors
  > migrate attachments add constraints
  > migration suppliers timestamps defaults
  > migration: settings maximum_reservation_time
  > update leihs-ui
  > Fix cach-bust config; updated clj-shared, fixes cache-buster
  > Extend api-tokens with system-admin scopes; rewrite wrap-authorize
  > Database audits clean-up
  > Move system-admins and authentication-systems underneath "/system"
  > update leihs-clj-shared
  > update leihs-ui
  > update database
  > move user name element to shared submodule
  > clj-shared: fix: version_pre in release info
  > cache-buster-2 of shared
  > release info in the footer
  > Upgrade ruby to 2.6.0
  > update leihs-ui
  > update leihs-ui
  > update leihs-ui
  > update leihs-ui
  > chore: gitignore leihs-ui.tgz
  > clj-shared: add sysadmin? func
  > fix: redirect of managers of only inactive pools

borrow 000000000...3a71ffa5e (new submodule)

database dbad9af22..9375c0339:
  > fix: models cover image migration
  > Sing-up via external auth system
  > models cover_image_id
  > Fix migration number collition after rebase
  > Unique and yet stable ids for access_rights even in the mixed case
  > Extend access_rights view with origin_table col, improve delete on access_rights
  > Convert access_rights to a updatable view
  > inventory pool workday constraint
  > fix max visits json
  > add procurement organizations constraint
  > Move factories from shared to database
  > add foreign key constraints to orders
  > Enforce unique name for groups
  > Add group_access_rights table
  > Make sure "FIRSTNAME LASTNAME" is found in users search
  > Load predefined fields from file so it can be reused
  > Bump loofah from 2.2.2 to 2.4.0 (#5)
  > Bump nokogiri from 1.8.5 to 1.10.8 (#4)
  > default language unique constraint
  > index access_rights pool and user
  > max visits json
  > Move suspensions from access_rights to dedicated table
  > Remove deleted_at from access_rights
  > favorite models
  > create customer orders
  > Add smtp_authentication_type setting
  > Convert extended_info to json(b)
  > fix migration 501
  > Fix migration
  > change attachments field permissions
  > Enable fkey audited_requests -> users; clean-up
  > Audits
  > Support ext auth sign-out callback
  > migrate smtp openssl verify mode
  > smtp default from address
  > new table: user_password_resets
  > new email service migrations
  > Integration testing
  > migrate attachments add constraints
  > migration suppliers timestamps defaults
  > migration: settings maximum_reservation_time
  > Extend API-Tokens with system_admins scope
  > fix mail templates migration for empty database
  > Remove .ruby-version file

deploy 55d1cc36a..6c74331db:
  > fix: run slow tasks as `async` to prevent timeout errors
  > container-test: remove unneeded deps from prepare-container
  > support caching of build artefacts in S3 store
  > procure: install vendored exiftool before build
  > ruby: use bundle install --deployment
  > upgrade nodejs to v12 LTS
  > move nodejs install to sytem-prepare play
  > shared task "install_ruby", improve stability
  > add Dockerfile for ansible-controller
  > remove git-archive-all usage
  > fix bin/virtualenv-activate
  > add prettier config
  > bump ruby version to 2.6.6
  > Route inventory export links to legacy
  > build(deps): bump nokogiri from 1.10.0 to 1.10.8 in /container-test
  > legacy: set feature toggle if 'new borrow' app is enabled
  > configure locales: only one default
  > Direct requests for inventory-pool administration to the admin app
  > build(deps): bump rack from 2.0.6 to 2.0.8 in /container-test
  > deploy new borrow
  > roles: stop-services: add task names
  > Template settings
  > use real secret in execute script play
  > export secret in execute script play
  > Increase prepare timeout, install python via pre_tasks
  > Support Debian Buster; some adjustments and clean-up
  > Extend reverse http config wrt SSL for cloud leihs
  > Improve systemd service definitions
  > Remove all caching
  > Fix procure deployment
  > add routes to apache conf
  > fix my snapshot lein
  > leihs-mail
  > Increase heap memory XMX for admin for archiving
  > Remove caching of containers
  > Integration testing (squashed)
  > Remove deprecated shibboleth support
  > demo: reset dump playbook
  > chore: remove duplicated config
  > Set up caching via reverse-proxy
  > Database audits clean-up
  > start/stop monit
  > fix: build caching excludes git dir
  > locales tasks for configure role
  > Fix deploy, fix container tests, upgrade to ruby 2.6.0
  > postgres: ignore upgrade errors
  > postgres: wait for open port
  > use database.port variable
  > fix: `SyslogIdentifier` in service files
  > speed up container-deploy
  > add caching for build artefacts
  > apache: restart instead of reload
  > ansible config set readable output
  > add python virtualenv setup for locally installed ansible
  > ruby-install: upgrade to 0.7.0, use tar archive
  > chore: remove integration-tests-inventory
  > cleanup: remove useless hashbangs and fix shell `set`
  > db restore vacuum analyze
  > fix missing services for stop task
  > fix: add missing secret to legacy cron job
  > Increase nofile limit for my service
  > add `SyslogIdentifier` for all systemd services
  > cleanup: remove unused system app
  > chore: ansible deprecations

documentation adf7daec1..a63cc8675:
  > Update entities diagram wrt suspensions
  > Move some authentication docs to the wiki
  > Document database clean-up
  > availability example
  > v5: procure & legacy

integration-tests bd1b704e7..d8244321f:
  > fix step
  > borrow spec with additional query param
  > admin: create mail templates together with pool
  > borrow: fix test due to kebab-case
  > borrow: fix missing query param
  > Reconcile SMTP ENV variable names
  > borrow: adjust spec for model filters
  > fix: date formatting in spec
  > fix: workday defaults for inventory pool
  > borrow: edit cart item
  > Refine access_rights specs
  > Also set opening hours in setup_borrow_hand-out_take-back_via-group-access_spec.rb
  > Spec out access_rights via groups
  > borrow: query params test
  > fix pool factory irt workdays
  > Fix opening hours, make sure tests pass on Fridays and weekends, too
  > adjust test auth system wrt return_to in jwt token
  > Put full cyle helpers into separate files
  > Rewrite shared steps and helpers loading
  > Fix turnip / plain rspec dispatcher
  > Route inventory export links to legacy
  > spec for bug #778
  > First full cycle test: setup->borrow->hand-out->take-back
  > Catch Mail.delete_all because not every test needs the mailbox
  > extend test
  > spec for redirect after login to return-to
  > update leihs-ui
  > adapt default language steps
  > new borrow first integration test
  > Direct requests for inventory-pool administration to the admin app
  > Bump rubyzip from 1.2.2 to 1.3.0
  > Bump rack from 2.0.5 to 2.0.8
  > Remove procure features
  > test for user with 1 ext auth and pwd sign in enabled
  > my: decorate error (password reset for user w/o email)
  > unpend global navbar scenarios
  > fix: forgot password special case
  > Adjust specs wrt auth_system
  > fix spec
  > fix: smtp default from address
  > ui fixes
  > configure mail service + mock client
  > short name
  > fix admin section feature
  > fix user short name matcher
  > fix screenshots
  > Add notes to readme
  > Split feature files
  > Fix #psh
  > WIP integraion tests (squashed)
  > remove relish
  > procure features
  > Set up apache caching
  > fix language feature
  > Database audits clean-up
  > cider: push to relish
  > implement specs
  > add specs
  > rspec: add env var to run firefox headless
  > rb-readline gem
  > login page: show real release number
  > turnip: fix ambiqous steps
  > Remove and ingnore reverse-proxy/tmp
  > rspec: set external_base_url, use http for now
  > ci: container deploy
  > rspec: configure webdriver
  > scripts
  > ci: move top-level config to superproject
  > README: run locally
  > rspec: config documentation format
  > ci: ports config
  > rspec: ports config
  > vagrant: ports config
  > check in inventory, remove old setup/config/scripts
  > tidy up spec helper
  > remove basic spec
  > fix global session steps
  > pending tag
  > ci: debug
  > ci: timeout
  > Revert "ifupdown"
  > ifupdown
  > script: check for correct env
  > bash ':-)
  > fix language specs
  > build inventory branch
  > fix global session steps
  > wip
  > fix auth systems specs
  > fix admin specs
  > fix initial admin spec
  > psql 10
  > fix 443
  > user sections spec
  > wip
  > global navbar wip
  > redirect after login for user with no access
  > global navbar specs wip
  > redirects specs
  > global session specs
  > global session spec wip
  > auth systems specs
  > language spec wip
  > warnings false
  > admin section spec wip
  > exclude match
  > shared steps
  > write initial admin spec again
  > rspec setup wip
  > database cleaner
  > initial admin feature & convenience setup
  > more scenarios
  > sysadmin
  > remaining features
  > admin scenarios
  > main feature files
  > first admin feature
  > scripts: build inventory and deploy from outside of container

legacy 55e855fb4..3800bf44e:
  > dont consider anything for the days in daily view
  > consider only working days (ignore holidays) for workload
  > fix: retired items and inactive pools combination
  > fix: performance issues for borrow categories and models
  > optimize fetch and restore scripts
  > fix: cover image foreign key cascade delete
  > fix: maintenance period considers closed days now
  > Enable sign-up via ext. auth: database
  > assets
  > typo
  > entitlement groups translations
  > feat: search after models in visits
  > feat: inventory: categories: expand/close all
  > Some UI improvement and fixes; issues 836, 840, 846
  > and some more translations
  > missing translations for create item page
  > Rewrite prod-restore: fix import PG >= 11, faster too
  > Reformulate content of group tab
  > feat: set an image as cover for model
  > Add more links from /manage/inventory_pools/:id to new admin
  > Add tab 'Groups' (new groups!) to manage/inventory_pools
  > Rename group to entitlement-group throughout
  > fix: allow take back for user without access
  > Expand roles system to groups
  > database: pool workday constraint
  > fix max visits
  > fix: scope model's compatibles in borrow
  > fix: ui: show linebreaks in model description
  > fix: error when assigning a retired item
  > fix week number for contract
  > database: add procurement organizations constraint
  > Move factories from shared to database
  > database: add foreign key constraints to orders
  > cider: refactor jobs and tasks
  > DB: group_access_rights
  > DB: make sure "FIRSTNAME LASTNAME" is found in users search
  > Make migration check work together with older PG versions
  > DB: load predefined fields from file so it can be reused
  > check pg version in dump scripts
  > dump demo with pg 11
  > dump personas with pg 11
  > cider: create empty db for migration checks
  > cider: run tests when meta checks ok
  > cider: fix dumps meta check
  > reorder reservations for hand over
  > database: unique index on default language
  > database: index on access_rights on user and pool
  > max visits json
  > Move suspensions from access_rights to dedicated table
  > Remove deleted_at from access_rights
  > exclude reservations presence
  > bye bye rubocop
  > ensure non negative quantity on a different level
  > fix presenter in regards to negative quantity
  > new borrow wip
  > mail route for new borrow
  > ui: show notice banner on small screens if 'new borrow' app is enabled
  > fix holidays and timecop
  > fixes for new-borrow changes
  > update database for c851d5edc
  > remove unused method
  > reservation's default scope only created_at
  > Add smtp_authentication_type setting
  > deal with reservation_advance_days nil
  > cider: translations meta task 3 trials
  > admin: add fields editor links in dev mode
  > audits: search inventory code also in assigned reservations
  > error message adjustment
  > Convert users field extended_info to json
  > cider: remove meta rails bug test
  > demo dump: set passwords for 5.1
  > bug: fix approvable vs. submittable reservation
  > broken scenarios
  > db: fix migration 501
  > Fix migration
  > change attachments field permissions
  > fix: label for audits options
  > fix global navbar issues
  > Audits
  > inventory: csv export: add Delegation user info if borrowed
  > chore: format spec
  > Support ext auth sign-out callback
  > Revert "make some settings readonly"
  > feat: password restore via email
  > bug: missing validation for reservation advance days
  > Integration testing
  > Revert "feat: sort by inventory code in assign item"
  > translation: error message delegation member
  > Availability refactoring, docu and fixes
  > migrate attachments add constraints
  > remove relish
  > migration suppliers timestamps defaults
  > fix: mails and users with no language
  > fix: find and load also empty attachments
  > script: fetch prod dump v5
  > feat: maximum reservation time
  > feat: sort by inventory code in assign item
  > Database: extend api-tokens with system-admin scopes
  > fix: dont paginage for fetching models of an order
  > fix: inconsistent delegated user for an order
  > fix: inventory: barcode scanner support for edit package > add item input
  > cider: push to relish clean up
  > fix: removal of a member of delegation with open reservations
  > fix: create inventory search field only searches when term is given
  > underscorize locale name
  > feat: sort items by inventory code in inventory
  > fix mail templates migration for empty database
  > fix: autocomplete for adding items to a package (part 2)
  > translations: admin statistics
  > feat: show quantity in borrow returns
  > precompile assets: nvm use < 11
  > fix: autocomplete for adding items to a package
  > Remove .ruby-version file and fix rubocop
  > Upgrade to ruby 2.6.0 with fixes and clean-up
  > fix: demo dump - migrations & passwords
  > fix: fetch both type of users for orders in global search
  > ci: v5 → master

mail 000000000...6a6f5863b (new submodule)

my 096423b01..8d44a6be4:
  > database: fix cover image migration
  > add .java-version
  > Update shared-clj, disable extensive DEV-DEBUG loging for routes
  > Sign up via ext auth
  > update shared-clj
  > database: cover image for model
  > shared-clj: wrap resolve handler with fallback
  > Expand roles system to groups
  > database: pool workday constraint
  > database: fix max visits
  > database: add procurement organizations constraint
  > Update shared-clj: prepare access queries to include groups
  > Update shared-clj; adjust factories and factories path
  > Move factories from shared to database
  > shared-clj: return_to inside jwt token
  > database: add foreign key constraints to orders
  > Add group_access_rights and update shared_clj
  > fix: user with deactivated language
  > DB: make sure "FIRSTNAME LASTNAME" is found in users search
  > DB: load predefined fields from file so it can be reused
  > stuff in regards to redirect after login
  > update leihs-ui and use CI build cache
  > update leihs-ui
  > database: unique index on default language
  > database: index on access_rights on user and pool
  > database: max visits json
  > Remove deleted_at and move suspension to dedicated table
  > update database
  > Add smtp_authentication_type setting
  > password reset email case insensitive
  > Convert extended_info to json(b)
  > db: fix migration 501
  > fix missing css for ssr
  > Fix migration
  > db: change attachments field permissions
  > password reset & users with only 1 external auth system
  > ui: decorate error (password reset for user w/o email)
  > Remove unused code
  > fix global navbar issues
  > Replace http shutdown with pid shutdown
  > fix: forgot password special case
  > check pending migrations & shared deps
  > Create `target` if missing during uberjar task
  > Audits
  > Revert to proper version of ui
  > Move leihs-clj-shared to shared-clj
  > Move authentication to shared code
  > Support ext auth sign-out callback
  > feat: password reset via email
  > Improve S3 caching and add local caching
  > leihs-ui: fix script, upgrade deps
  > sign-in-ui: only show password input if usable
  > Integration testing
  > migrate attachments add constraints
  > migration suppliers timestamps defaults
  > migration: settings maximum_reservation_time
  > update leihs-ui
  > Adjust cach-bust config; updated clj-shared, fixes cache-buster
  > Update clj-shared
  > Access system admin scopes in the UI
  > Implement screenshots on spec fail and CI attachment thereof
  > update leihs-clj-shared
  > feat: locale handling
  > dev scripts
  > update database
  > show username on user show page
  > clj-shared: fix: version_pre in release info
  > release info in footer
  > Tolerate case differences of email submitted via ext-auth-system
  > Upgrade to ruby 2.6.0
  > update leihs-ui
  > ui: sign in: autoFocus the user input field
  > ui: navbar: don't show sub app if only one app
  > Upgrade to http-cache-buster2
  > Remove debug statement from routes.clj
  > fix: sign-in: dont autocapitalize username (on mobile)
  > chore: gitignore build artefacts
  > clj-shared: add sysadmin? func
  > fix redirects
  > Fix: use unparsed values for sign-in; clean-up
  > js engine: use `conch` library for shelling out to nodejs
  > fix: redirect of managers of only inactive pools

procure ebc5a290a..292351975:
  > fix: display of the accounting fields
  > database: fix cover image migration
  > add .java-version
  > Update shared-clj
  > Enable sign-up via ext. auth: clj-shared
  > Enable sign-up via ext. auth: database
  > change permissions for finance fields
  > update shared-clj
  > ui: add 2 missing translations
  > database: cover image for model
  > shared-clj: wrap resolve handler with fallback
  > Expand roles system to groups
  > database: pool workday constraint
  > database: fix max visits
  > database: add procurement organizations constraint
  > dissoc foreign keys for request rows
  > Update shared-clj: prepare access queries to include groups
  > Update shared-clj
  > Move factories from shared to database
  > shared-clj: return_to inside jwt token
  > database: add foreign key constraints to orders
  > DB: group_access_rights
  > update shared-clj
  > DB: make sure "FIRSTNAME LASTNAME" is found in users search
  > DB: load predefined fields from file so it can be reused
  > stuff in regards to redirect after login
  > update leihs-ui and use CI build cache
  > build(deps): bump rubyzip from 1.2.3 to 1.3.0
  > build(deps): bump nokogiri from 1.10.3 to 1.10.8
  > update leihs-ui
  > client: improve default filters
  > database: unique index on default language
  > database: index on access_rights on user and pool
  > database: max visits json
  > Remove deleted_at and introduce dedicated suspensions
  > build(deps): bump rack from 2.0.7 to 2.0.8
  > update shared-clj
  > update database
  > Add smtp_authentication_type setting
  > Convert extended_info to json(b)
  > db: fix migration 501
  > feature specs from integration tests
  > Fix migration
  > db: change attachments field permissions
  > scripts: start-dev-server with watcher
  > shared-clj: password reset & users with only 1 external auth system
  > update leihs-ui
  > fix global navbar issues
  > Replace http shutdown with pid shutdown
  > Move submodule leihs-clj-shared -> shared-clj
  > updated shared-clj
  > check pending migrations & shared deps
  > Create `target` if missing during uberjar task
  > Audits (no op in this project so far)
  > fix: client build (w/o ui examples)
  > Support ext auth sign-out callback
  > feat: password reset via email
  > Improve S3 caching and add local caching
  > leihs-ui: fix script, upgrade deps
  > update leihs-ui
  > Integration testing
  > migrate attachments add constraints
  > fix: special filter or/and
  > migration suppliers timestamps defaults
  > procure: fix filter when loosing inspector rights
  > fix: filterbar when no budgetperiods
  > migration: settings maximum_reservation_time
  > fix: dashboard: default filters include most recently closed budget period
  > fix: dashboard: use default filters if none saved yet
  > update leihs-ui
  > scripts: db config
  > Database: extend api-tokens with system-admin scopes
  > fix: RequestForm supplier_name field
  > feat: simple language support
  > fix: react key
  > server: add locale middleware from leihs core
  > server: fix :authenticated-entity in dev env  needs full db oject of user, not just the id.
  > lint
  > fix: `newRequestQuery` should not ask for `total_price_cents`
  > feat: upload new category image
  > update leihs-ui
  > update leihs-clj-shared
  > update database
  > update leihs-clj-shared
  > clj-shared: fix: version_pre in release info
  > release info in the footer
  > Upgrade ruby to 2.6.0
  > lint: update, re-enable ci
  > add pseudo-languages for localization dev & test
  > Merge pull request #51 from leihs/feat/i18n
  > add env.js for runtime values based on process/window/etc
  > lazy load SpreadSheetExporter component
  > update snapshot tests
  > use new polyfills from create-react-appp v2
  > upgrade to create-react-app v2
  > npm upgrade
  > fix scripts
  > update leihs-ui
  > update leihs-ui
  > update leihs-ui
  > fix: skip authentication for files in dev/test
  > fix: presence of 0 for quantities
  > update leihs-ui
  > Sums for requester consider only requested_quantity for budget period not past (#52)
  > clj-shared: add sysadmin? func
  > scripts: change ports
  > client: fix: handle if settings are empty
  > fix: redirect of managers of only inactive pools

zhdk-inventory cd7bc674c..57c8b2a37:
  > fix dev servers agw config
  > enable new borrow beta on test
  > add config for ffzh-prod
  > disable mails on demo
  > noreply@zhdk.ch setting on zhdk hosts
  > enable mails on ffzh-staging
  > smtp zhdk settings for ffzh-staging
  > Remove v51-test host
  > database restore path for v51-test
  > Add v51-test host
  > Add API KEY for audits archiving
  > locales setup (not used at the moment)
  > Update config for AGW
  > Add AAI auth-system configuration; clean-up inventory
  > Configure AGW for test.leihs.zhdk.ch
  > Fix http -> https agw CB external_base_url
  > Configure v5 agw for staging.leihs.zhdk.ch
  > add host `ffzh-leihs-prod`
  > new v5 settings final
Current Release
  • feat: legacy: inventory: categories: expand/close all
  • feat: legacy: cover image for models
  • feat: admin & legacy: expand roles system to groups
  • feat: legacy: search after models in visits
  • feat: Sign up via ext auth
  • feat: borrow app: invalidate cart if conflicts
  • feat: borrow app: model search/filters
  • feat: borrow app: current user show
  • feat: borrow app: pools
  • fix: consider all days for workload
  • fix: legacy: retired items and inactive pools combination
  • fix: performance issues for borrow categories and models
  • fix: procure: display of the accounting fields
  • fix: admin: create mail templates together with pool
  • fix: legacy: maintenance period considers closed days now
  • fix: Some UI improvement and fixes
  • fix: legacy: missing translations and other stuff
  • fix: procure: add missing translations
  • fix: borrow app: fix special per page setting
  • fix: legacy: allow take back for user without access
  • fix: admin: sort pools in menu by name
  • deploy: cleanup, fixes, build cache, Docker
  • chore: borrow: kebab-case keys in data and errors
  • chore: Reconcile SMTP ENV var names; update clj-shared
  • chore: borrow: clean up app-db
  • chore: borrow: boot: exclude js from watch task
  • chore: borrow: move client sources
  • database: pool workday constraint
Previous Releases

Leihs 5.1.10

  • feat: Add and mange group_access_rights
  • fix: legacy: fix: scope model’s compatibles in borrow
  • fix: legacy: fix: ui: show linebreaks in model description
  • fix: legacy: fix: error when assigning a retired item
  • fix: legacy: fix week number for contract
  • fix: procure: show only close button for past budget period
  • fix: Admin: fix and spec show inventory_pools_roles (bugs 798, 787)
  • fix: Resurrect inventory export
  • fix: mail: fix logging
  • fix: user with deactivated language
  • fix: DB: make sure “FIRSTNAME LASTNAME” is found in users search
  • chore: database: add procurement organizations constraint
  • chore: shared-clj: return_to inside jwt token
  • chore: database: add foreign key constraints to orders

Leihs 5.1.9

  • fix: ruby security 2.6.6

Leihs 5.1.8

  • feat: Inventory-pool administration, deleted_at, suspensions
  • fix: legacy: reorder reservations for hand over
  • fix: database & deploy: ensure exactly one default language which is active too
  • fix: create workday along with inventory-pool
  • chore: database: index on access_rights on user and pool

Leihs 5.1.7

  • legacy: reservation’s default scope only created_at
  • chore: Add smtp_authentication_type setting

Leihs 5.1.6

  • fix: legacy: deal with reservation_advance_days nil
  • fix: legacy: better error message & audits for assigned items
  • fix: my: password reset email case insensitive
  • deploy: Generalize CI deploy, template settings
  • deploy: export secret in execute script play

Leihs 5.1.5

  • mail: support smtp auth
  • inventory/deploy: add ffzh-prod

Leihs 5.1.4

  • fix: Admin: Extend delete and transfer to include more fkeys

Leihs 5.1.3

  • chore: Convert extended_info to json(b), expose it via admin API and UI
  • deploy: fixes for demo host

Leihs 5.1.4

  • fix: Admin: Extend delete and transfer to include more fkeys

Leihs 5.1.3

  • chore: Convert extended_info to json(b), expose it via admin API and UI
  • deploy: fixes for demo host

Leihs 5.1.2

  • bug: admin: bugfixes
  • deploy: enable mails on ffzh-staging

Leihs 5.1.1

  • bug: legacy: fix approvable vs. submittable reservation
  • feat: Admin: access user/img_digest from the frontend
  • deploy: Support Debian Buster; add container test
  • deploy: ffzh: upgrade to 5.1 fixes
  • chore: Container tests: increase prepare timeout

Leihs 5.1.0

  • bug: legacy: missing validation for reservation advance days
  • bug: legacy: label for audits options
  • bug: global navbar issues
  • feat: Audits: new tables, stored procs, triggers, enabled for new admin scope, no UI yet
  • feat: password reset via email
  • feat: Support ext auth sign-out callback
  • feat: admin: archiving audits
  • feat: my: sign-in-ui: only show password input if usable
  • feat: legacy: Revert “make some settings readonly”
  • feat: inventory: csv export: add Delegation user info if borrowed
  • feat: legacy: change attachments field permissions
  • chore: deploy: demo: reset dump playbook
  • chore: deploy: Improve systemd service definitions
  • chore: deploy: Replace http shutdown with pid shutdown

Leihs 5.0.4

  • feat: legacy: maximum reservation time
  • feat: procure: improve filter UX
  • fix: non-deterministic group allocation in availability
  • fix: legacy: mails and users with no language
  • fix: legacy: find and load also empty attachments
  • fix: legacy: migrate attachments add constraints
  • fix: procure: fix filter when loosing inspector rights
  • deploy: chore: remove duplicated config
  • documentation: availability

Leihs 5.0.3

  • feat: Database audits clean-up
  • feat: procure: upload new category image
  • feat: locale handling, translate home and sign-in
  • fix: mails and users with no language
  • fix: Extend api-tokens with system-admin scopes
  • fix: procure: RequestForm supplier_name field
  • fix: legacy: removal of a member of delegation with open reservations
  • fix: legacy: fix: inconsistent delegated user for an order
  • chore: Set up caching via apache for /my and /admin
  • deploy: enable configuring languages

Leihs 5.0.2

  • feat: show quantity in borrow returns
  • feat: sort items by inventory code in inventory
  • feat: support AAI/Switch authentication systems
  • fix: autocomplete for adding items to a package
  • fix: inventory: barcode scanner support for edit package > add item input
  • fix: mail templates migration for empty database
  • fix: manage: create inventory search field only searches when term is given
  • fix: manage: inconsistent delegated user for an order
  • fix: my: show user name as in admin
  • fix: navbar: don’t show sub app if only one app
  • fix: procure: handle if settings are empty
  • fix: procure: presence of 0 for quantities
  • fix: procure: wrong sums for requester
  • fix: procurement: fix request creation
  • fix: redirects
  • fix: release info on the login page
  • fix: sign in: autoFocus the user input field
  • fix: sign-in: dont autocapitalize username (on mobile)
  • translations: admin statistics
  • deploy: add SyslogIdentifier for all systemd services
  • deploy: add caching for build artefacts
  • deploy: db restore vacuum analyze
  • deploy: fix missing services for stop task
  • deploy: fix monit stop/start
  • deploy: fix: add missing secret to legacy cron job

Leihs 5.0.1

We recommend existing instances to wait for v5.1 to upgrade their system (First time installations can use V5.0)

See v5.0.0 for list of breaking changes.

Fixes

  • Fixed login using password of certain formats
  • Fixed the post-login redirection which did not succeed for some users
  • Fixed broken display of delegation name in global search
  • Improved rendering process to be more resilient

Leihs 5.0.0

We recommend existing instances to wait for v5.1 to upgrade their system (First time installations can use V5.0)

Breaking Changes:

  • The existing LDAP-adapter concept has been replaced by a general leihs authentication-API (Example code available)
  • Modernised internal password hashing - existing passwords are not valid anymore. Managers or Admins need to enter a new password for them.

Rewrite of authentication

  • Possibility to manage Authentication-Systems in Admin section
  • New sign-in UI for internal and external accounts
  • Sign-in via email address or login (username)
  • Modernised internal password hashing - existing passwords are not valid anymore
  • The existing LDAP-adapter concept has been replaced by a general leihs authentication-API (Example code available)

User accounts

  • No fields are mandatory anymore
  • Possibility to create api-tokens for users

Admin

  • New Admin-application
  • New API to sync users and groups from an external system
  • New entity “groups”
  • Replaced: Manage users
  • Replaced: Manage Delegations Rewrite and redesign of the delegations page in Admin section

Procurement

  • Rewrite of the Procurement app (German only at the moment)
  • Can be used on mobile devices
  • New role “Viewer” - only views requests

Leihs 4.19.5

  • fix: orders index for hand over via post

Leihs 4.19.4

  • fix: mail templates migration for empty database

Leihs 4.19.3

  • fix: redirect to root when not logged into procurement

Leihs 4.19.2

  • fix: show textarea for model description and make all of them resizable
  • fix: missing new for software constructor

Leihs 4.19.1

  • fix: quick fix for prod to not loose package children in inventory helper

Leihs 4.19.0

  • feature: better information for entitlements conflicts
  • feature: inventory helper in react
  • fix: labels and titles for create package
  • fix: create model i18n
  • fix: for manage fields in inventory pool show status and target type
  • fix: add more columns to admin quick export
  • chore: create model in react
  • fix: remove deactivation of form fields per user
  • feature: refactor package ui
  • fix: add item properties as columns to quick export

Leihs 4.18.0

  • feature: enable and disable fields per inventory pool
  • feature: quick inventory export in admin
  • fix: sort pools alphabetically for borrow

Leihs 4.17.0

  • feat: send submitted order email
  • feat: improve field editor
  • fix: in field editor if you delete default value then choose another default value
  • fix: add lost styles for timeline again
  • fix: show max 100 results and debounce for autocomplete
  • fix: borrow calendar reload button
  • fix: borrow: set purpose as required field on order submit
  • translation: translate errors in borrow
  • translation: booking calendar translation
  • fix: show timeline in new tab for edit order

Leihs 4.16.1

  • fix: availability & retired items in borrow

Leihs 4.16.0

  • feat: simplify borrow inventory pools list
  • fix: hiding fields in create item was not working anymore
  • fix: dont allow to deactivate required fields in field editor for static fields
  • fix: calendar when max visits not defined
  • fix: ui-datepicker styles
  • fix: translation in borrow pools
  • fix: links in the new timeline
  • fix: show only pools with borrowable items in borrow models index
  • fix: daily view visits links
  • fix: borrow: templates order form
  • chore: refactor and improve performance

Leihs 4.15.0

  • feat: react booking calendar in borrow everywhere
  • feat: admin field editor
  • fix: borrow: deal with undefined max_visits in calendar
  • fix: borrow: templates order form UX
  • fix: simplify borrow inventory pools list
  • fix: more robust settings initializer
  • fix: various things in visits index
  • fix: borrow calendar back button
  • fix: error on templates page with session storage true
  • fix: empty start/end date in session storage
  • fix: show item count per room and inventory codes if less than 100
  • fix: room diff outputs not the items with unknown rooms but unly the unknown rooms
  • fix: make some settings readonly
  • fix: dont allow to deactivate required fields in field editor for static fields
  • fix: hiding fields in create item was not working anymore
  • translation: delete model error message
  • chore: remove paperclip from migrations #3
  • chore: remove inventory_pool_id from entitlements

Leihs 4.14.2

  • feat: new Timeline

Leihs 4.14.1

  • fix: borrow pools index and calendar on models show

Leihs 4.14.0

  • feat: verification filter for visits list
  • fix: rewritten booking calendar in ‘borrow’ section
  • fix: do not use category filter on inventory list for options tab
  • fix: when creating Models, dont save if errors
  • chore: refactor and improve borrow booking calendar
  • chore: container-test: handle missing image alias
  • chore: remove settings singleton

Leihs 4.13.0

  • feat: admin: suppliers: add note, UI improvements
  • feat: improve global search
  • fix: create model validation message for product and version
  • fix: do not show categories on inventory list if options are selected
  • fix: expert search text resources i18n
  • fix: i18n plural ‘Day’
  • fix: license saved message
  • fix: procurement: enhance category/template list UX
  • fix: procurement: validate whole numbers in forms
  • fix: remove filter visibility dependencies in inventory list and show all models after create new model
  • fix: remove paperclip from migrations
  • fix: remove paperclip from migrations #2

Leihs 4.12.0

  • feature: show thumbnail on edit item if attachment is of content type image
  • fix: contracts search must consider contracts purpose too not only orders purpose
  • fix: do not show inactive pools on borrow inventory pools
  • fix: inventory: upload attachments when creating model
  • fix: linkify inventory pool descriptions for borrow
  • fix: model validation of product name and version
  • fix: pools list in borrow section should list pools with borrowable items or contracts
  • fix: text resources for model product and version errors

Leihs 4.11.0

  • feat: logo link in footers, admin-configurable
  • fix: for deleting the last group from user
  • fix: negative general quantity for borrow calendar
  • fix: admin: form labels in settings
  • fix: correct error msg. in hand over
  • fix: Do not validate serial number when creating a package
  • fix: edit license page title
  • fix: improve form handling
  • fix: lending: when adding options to handover, don’t reload availability
  • fix: linkify technical details for license
  • fix: on inventory list show problems for license lines too
  • fix: show all contracts button in global search
  • fix: show contracts from deactivated pools
  • fix: Show retired label and inactive pool on item line in global search
  • refactor: user-session (in DB)

Leihs 4.10.0

lending

  • dont allow to create supppliers on create and edit item forms, disable field supply category
  • fix: always show field inventory_code independent of role
  • fix: inspection label for take back
  • fix: include Software & Licences for take back
  • fix: model availability doesn’t count retired items
  • fix: show existing delegation contact user in swap user dialog
  • fix: use return urls for cancel of edit model etc
  • fix: translations for some create item buttons
  • fix: order list order by created at and group by user

Leihs 4.9.0

lending

  • feat: Display purpose on take back line
  • feat: manage: search contracts by ‘compact_id’
  • fix: add missing key to en_GB for attachment error
  • fix: create item inventory code buttons
  • fix: delayed loading for inventory list search field
  • fix: edit item bugs
  • fix: edit order link from failed approval modal
  • fix: inventory list bugs
  • fix: ‘swap user’ form submission in Safari
  • fix: load package models in chunks to prevent too long urls
  • fix: validation of empty select

Leihs 4.8.0

lending

  • feat: mark groups with too many assignments in red on group overview
  • fix: dont submit ‘swap user’ form when no user is selected
  • fix: hand over dialog autocomplete

procurement

  • feat: admin can inspect in all categories
  • feat: only block nav for changed forms
  • feat: refresh button in overview
  • fix: Inspectors can see accounting fields of other categories
  • fix: only show budget limits if configured

database

  • constraints for orders state and reject reason
  • add reject reason to orders
  • Remove purpose_id from orders

Leihs 4.7.3

  • Fix: Fix closed reservations contract state

Leihs 4.7.2

  • Fix: Redundant contracts in the list

Leihs 4.7.1

  • Fix: Button label for order line and group manager
  • Fix: Filter for verification required and order list
  • Fix: Reject button for orders with many items

Leihs 4.7.0

  • Feature: Disable flexible fields
  • Fix: Do not show location comma, if there is no location
  • Fix: Create item: save button i18n; date format; hide fields functionality
  • Fix: Show version for licenses on inventory
  • Fix: Inventory: edit Options, set inventory code as required
  • Technical: Orders & contracts refactoring
  • Locale: Admin inventory pool 18n

Leihs 4.6.0

  • Feature: inventory: add license version field
  • Feature: inventory: expert search
  • Feature: procurement: accounting type fields
  • Feature: procurement: inline edit request lines in overview
  • Feature: procurement: inspection comments templates
  • Feature: admin: show languages table
  • Feature: render app errors with details
  • Fix: Calendar and csv import translations
  • Fix: don’t crash on inactive dynamic fields
  • Fix: inventory: enable quantity allocations for every license type
  • Fix: inventory: don’t show “Undefined” types
  • Fix: inventory: don’t show location for item-licenses
  • Fix: inventory: image upload restrictions error
  • Fix: lending: for order lines replace buttons dropdown with rejected label after rejection
  • Locale: Add French translation
  • Deploy: Support Debian 9 “stretch”

Leihs 4.5.1

  • Fix: Item.properties default hash
  • Fix: serialize User.settings
  • Fix: store -> serialize in item.rb
  • Fix: destroy in accept nested attributes
  • Fix: create fields rake task: inactive fields

Leihs 4.5.0

  • Fix: Fix create fields rake task: inactive fields
  • Fix: Fix access rights problems (fixes #283)
  • Fix: Patch image upload
  • Fix: perf: manage: inventory helper: limit autocompletes
  • Fix: Delete unsubmitted orders when deactivating pools (resolves #289)
  • Tech: Upgrade to Rails 5
  • Feat: Case insensitive take back

Leihs 4.4.1

  • Fix: Show item’s location in hand over assign dropdown

Leihs 4.4.0

  • Feature: Search in audits (resolves #256)
  • Fix: Borrow: remove broken links from categories list (resolves #259)
  • Fix: Admin: search for user in admin tab only searches for admins (resolves #166)
  • Feature: Release page + deploy info
  • Feature: Add metadata to files & attachments (resolves #265)
  • Fix: Serial number validation warning in inventory helper (resolves #255)
  • Feature: Change contracts sorting in global search (resolves #242)
  • Documentation: Add owner_id & inventory_pool_id to items
  • Feature: New entity: Rooms (resolves #228)

Leihs 4.3.1

Frontend Bug Fixes

  • Fix: BarcodeScanner: don’t operate on focused inputs
  • Fix: upgrade tooltipster jquery plugin

Leihs 4.3.0

  • Feature: deactive pools (resolves #223)
  • Fix: Forbid first admin user if already exists
  • Fix: Inventory search in location’s room (resolves #221)

Leihs 4.2.0

Inventory Feature and Bug Fixing

Manage section

  • When copying an item, the field “last checked” on the new item is set to the current date

Borrow section

  • The information in the links order, hand over and returns on the top of the page show on the right hand side of the page the date from and date to. Before we showed the dates until or since as f.e. 1970 days since 23.7.2014.
  • The error messages on the top of the page when sending an order were not shown correctly.

Leihs 4.1.0

Adjustments and Bug Fixing

Missing translations

  • When submitting an order in the borrow section in the German part, the success message has now been translated to German.
  • Tab “return” in German part of leihs has now been translated to German

Borrow section

  • The filter settings are not deleted anymore when switching from one category to another

Lending section

  • Feature delegation contracts: When searching for a user, not only his own contracts are shown in the overview but also contracts of delegations, where this user is acting as borrower.
  • Bug fixing: Adding an item or model is not case sensitive anymore. This bug was introduced with the PostgreSQL-Update
  • Bug fixing: It is not possible to lend the same item at the same time to the same user.
  • Bug fixing: Date field when editing the calender in the return page was buggy. Now it is possible to delete the date or type a new date

Manage section

  • Feature duplicate items: If you save an item where the serial-nr. already exists in leihs, you receive a warning asking, if you really want to save. This should help keep your inventory “tidy”.

Admin section

  • The shown time in the Audits-Page has been corrected to show the current time
  • The newest entries in the Audits-Page are now shown on the top

Installing leihs V4

  • Enabling LDAP in V4: How-to-documentation adjusted to enable LDAP under PostgreSQL
  • We now provide the possibility to create the first leihs-Admin-user through a UI
→ Older Releases