mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-01-19 08:52:25 +01:00
Merge branch 'dev' for release 5.3.12
This commit is contained in:
commit
95b6502554
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,5 +1,15 @@
|
||||
# Changelog Fab-manager
|
||||
|
||||
## v5.3.12 2022 April 20
|
||||
|
||||
- Auto sync projects to OpenLab if set openlab_app_id and openlab_app_secret
|
||||
- Fix a bug: back bouton can't return to previously page in projects page (list/new/show/edit)
|
||||
- Fix a bug: OpenLab duplicate projects, if you are using OpenLab Projects, please follow the following TODO DEPLOY
|
||||
- Fix a security issue: updated async to 2.6.4 to fix [CVE-2021-43138](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43138)
|
||||
- [TODO DEPLOY] `rails fablab:openlab:bulk_export`
|
||||
- [TODO DEPLOY] wait 1 minute
|
||||
- [TODO DEPLOY] `rails fablab:openlab:bulk_update`
|
||||
|
||||
## v5.3.11 2022 April 15
|
||||
|
||||
- Fix a bug: unable to send notification mail if no set a logo
|
||||
|
@ -287,7 +287,7 @@ Application.Controllers.controller('ProjectsController', ['$scope', '$state', 'P
|
||||
// Is openLab enabled on the instance?
|
||||
$scope.openlab = {
|
||||
projectsActive: openLabActive.isPresent,
|
||||
searchOverWholeNetwork: false
|
||||
searchOverWholeNetwork: settingsPromise.openlab_default === 'true'
|
||||
};
|
||||
|
||||
// default search parameters
|
||||
@ -397,6 +397,20 @@ Application.Controllers.controller('ProjectsController', ['$scope', '$state', 'P
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* Overlap global function to allow the user to navigate to the previous screen
|
||||
* If no previous $state were recorded, navigate to the project list page
|
||||
*/
|
||||
$scope.backPrevLocation = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if ($state.prevState === '' || $state.prevState === 'app.public.projects_list') {
|
||||
$state.prevState = 'app.public.home';
|
||||
return $state.go($state.prevState, {});
|
||||
}
|
||||
window.history.back();
|
||||
};
|
||||
|
||||
/* PRIVATE SCOPE */
|
||||
|
||||
/**
|
||||
@ -405,8 +419,10 @@ Application.Controllers.controller('ProjectsController', ['$scope', '$state', 'P
|
||||
const initialize = function () {
|
||||
if ($location.$$search.whole_network === 'f') {
|
||||
$scope.openlab.searchOverWholeNetwork = false;
|
||||
} else if ($location.$$search.whole_network === undefined) {
|
||||
$scope.openlab.searchOverWholeNetwork = $scope.openlab.projectsActive && settingsPromise.openlab_default === 'true';
|
||||
} else {
|
||||
$scope.openlab.searchOverWholeNetwork = ($scope.openlab.projectsActive && settingsPromise.openlab_default === 'true') || false;
|
||||
$scope.openlab.searchOverWholeNetwork = $scope.openlab.projectsActive;
|
||||
}
|
||||
return $scope.triggerSearch();
|
||||
};
|
||||
@ -472,6 +488,20 @@ Application.Controllers.controller('NewProjectController', ['$rootScope', '$scop
|
||||
|
||||
$scope.matchingMembers = [];
|
||||
|
||||
/*
|
||||
* Overlap global function to allow the user to navigate to the previous screen
|
||||
* If no previous $state were recorded, navigate to the project list page
|
||||
*/
|
||||
$scope.backPrevLocation = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if ($state.prevState === '') {
|
||||
$state.prevState = 'app.public.projects_list';
|
||||
return $state.go($state.prevState, {});
|
||||
}
|
||||
window.history.back();
|
||||
};
|
||||
|
||||
// Using the ProjectsController
|
||||
return new ProjectsController($rootScope, $scope, $state, Project, Machine, Member, Component, Theme, Licence, $document, Diacritics, dialogs, allowedExtensions, _t);
|
||||
}
|
||||
@ -500,6 +530,19 @@ Application.Controllers.controller('EditProjectController', ['$rootScope', '$sco
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Overlap global function to allow the user to navigate to the previous screen
|
||||
* If no previous $state were recorded, navigate to the project show page
|
||||
*/
|
||||
$scope.backPrevLocation = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if ($state.prevState === '') {
|
||||
$state.prevState = 'app.public.projects_show';
|
||||
}
|
||||
$state.go($state.prevState, { id: $transition$.params().id });
|
||||
};
|
||||
|
||||
/* PRIVATE SCOPE */
|
||||
|
||||
/**
|
||||
@ -637,5 +680,19 @@ Application.Controllers.controller('ShowProjectController', ['$scope', '$state',
|
||||
* Return the URL allowing to share the current project on the Twitter social network
|
||||
*/
|
||||
$scope.shareOnTwitter = function () { return `https://twitter.com/intent/tweet?url=${encodeURIComponent($state.href('app.public.projects_show', { id: $scope.project.slug }, { absolute: true }))}&text=${encodeURIComponent($scope.project.name)}`; };
|
||||
|
||||
/**
|
||||
* Overlap global function to allow the user to navigate to the previous screen
|
||||
* If no previous $state were recorded, navigate to the project list page
|
||||
*/
|
||||
$scope.backPrevLocation = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if ($state.prevState === '') {
|
||||
$state.prevState = 'app.public.projects_list';
|
||||
return $state.go($state.prevState, {});
|
||||
}
|
||||
window.history.back();
|
||||
};
|
||||
}
|
||||
]);
|
||||
|
@ -23,5 +23,12 @@ class SettingService
|
||||
|
||||
# generate statistics
|
||||
PeriodStatisticsWorker.perform_async(setting.previous_update) if setting.name == 'statistics_module' && setting.value == 'true'
|
||||
|
||||
# export projects to openlab
|
||||
if %w[openlab_app_id openlab_app_secret].include? setting.name
|
||||
if Setting.get('openlab_app_id').present? && Setting.get('openlab_app_secret').present?
|
||||
Project.all.each { |pr| pr.openlab_create }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -5,13 +5,25 @@ namespace :fablab do
|
||||
namespace :openlab do
|
||||
desc 'bulk and export projects to openlab'
|
||||
task bulk_export: :environment do
|
||||
if Setting.get('openlab_app_secret').present?
|
||||
if Setting.get('openlab_app_id').present? && Setting.get('openlab_app_secret').present?
|
||||
Project.find_each do |project|
|
||||
project.openlab_create
|
||||
puts '-> Done'
|
||||
end
|
||||
else
|
||||
warn "Openlab_app_secret was not configured. Export can't be done."
|
||||
warn "openlab_app_id or openlab_app_secret was not configured. Export can't be done."
|
||||
end
|
||||
end
|
||||
|
||||
desc 'bulk update projects to openlab'
|
||||
task bulk_update: :environment do
|
||||
if Setting.get('openlab_app_id').present? && Setting.get('openlab_app_secret').present?
|
||||
Project.find_each do |project|
|
||||
project.openlab_update
|
||||
puts '-> Done'
|
||||
end
|
||||
else
|
||||
warn "openlab_app_id or openlab_app_secret was not configured. Update can't be done."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "fab-manager",
|
||||
"version": "5.3.11",
|
||||
"version": "5.3.12",
|
||||
"description": "Fab-manager is the FabLab management solution. It provides a comprehensive, web-based, open-source tool to simplify your administrative tasks and your marker's projects.",
|
||||
"keywords": [
|
||||
"fablab",
|
||||
|
@ -2230,9 +2230,9 @@ astral-regex@^1.0.0:
|
||||
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
|
||||
|
||||
async@^2.6.2:
|
||||
version "2.6.3"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
|
||||
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
|
||||
version "2.6.4"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
|
||||
integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
|
||||
dependencies:
|
||||
lodash "^4.17.14"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user