yrexpert-js
Version:
L'interface Web pour votre système expert...
122 lines (89 loc) • 3.87 kB
JavaScript
/*
!----------------------------------------------------------------------------!
! !
! YRexpert : (Your Relay) Système Expert sous Mumps GT.M et GNU/Linux !
! Copyright (C) 2001-2015 by Hamid LOUAKED (HL). !
! !
!----------------------------------------------------------------------------!
*/
module.exports = function (controller, component) {
controller.log = true;
controller.toastr = function(type, text) {
if (type && type !== '' && component.refs && component.refs.toastContainer && component.refs.toastContainer[type]) {
component.refs.toastContainer[type](text);
}
};
controller.displayError = function(error) {
controller.toastr('error', error);
};
// Afficher les erreurs génériques yrexpert-js en utilisant toastr :
controller.on('error', function(messageObj) {
var error = messageObj.message.error || messageObj.message;
controller.displayError(error);
});
// Publier le gestionnaire de réponses de connexion dans ce
// composant pour forcer le rendu de la page principale
controller.on('loginRpc', function(messageObj) {
if (!messageObj.message.error && messageObj.message.ok) {
// connecté
component.showLoginModal = false;
component.setState({
status: 'loggedIn'
});
}
});
controller.on('stopMasterProcess', function(messageObj) {
console.log('Le processus principal a été arrêté');
});
controller.stopTimers = function() {
for (var name in controller.timers) {
clearInterval(controller.timers[name]);
}
delete controller.timers;
};
controller.on('socketDisconnected', function() {
controller.toastr('warning', 'Back-end yrexpert-js a été arrêté');
controller.emit('logout');
controller.stopTimers();
});
// Fichier
controller.on('robotandy', function() {component.setState({status: 'robotandy'});});
controller.on('beatryxrobot', function() {component.setState({status: 'beatryxrobot'});});
// Editer
// Navigation
// Rechercher
controller.on('rechercherfichier', function() {component.setState({status: 'rechercherfichier'});});
// Partition
controller.on('allerpartition', function() {component.setState({status: 'allerpartition'});});
// Exécuter
controller.on('terminal', function() {component.setState({status: 'terminal'});});
controller.on('overview', function() {component.setState({status: 'overview'});});
controller.on('docstore', function() {component.setState({status: 'docstore'});});
controller.on('sessions', function() {component.setState({status: 'sessions'});});
// Fenêtre
// Aide
controller.on('bienvenue', function() {component.setState({status: 'bienvenue'});});
controller.on('apropos', function() {component.setState({status: 'apropos'});});
controller.on('logout', function() {
// Arrêter tous les minuteries
controller.stopTimers();
// Affichage du commutateur pour se déconnecter / arrêter
controller.disconnectSocket();
component.setState({
status: 'shutdown'
});
});
controller.on('ewd-reregistered', function() {
console.log('Réenregistré - redémarrer les minuteries');
// Back-end est de retour - redémarrez tout
controller.timers = {};
controller.emit('startTimers');
controller.toastr('warning', 'Le back-end yrexpert-js a été redémarré');
});
controller.navOptionSelected = function(eventKey) {
controller.emit(eventKey);
};
controller.timers = {};
component.showLoginModal = true;
return controller;
};