Skip to content
Snippets Groups Projects
Commit e6680c11 authored by ArnaudCerisier's avatar ArnaudCerisier
Browse files

[enh] fix rml9 doc

parent 06f02cf3
No related branches found
No related tags found
No related merge requests found
......@@ -226,7 +226,7 @@ __Objectif :__ L'objectif est d'apprendre à ajouter une nouvelle page (un nouve
### Activation du plugin (en version `02`)
Editez le fichier `www/index.html` pour activer cette fois le plugin en version 2 :
Editez le fichier `www/index.html` pour activer cette fois le plugin en version `02` (remettre en commentaire la version précédente):
```html
<script src="dist/dist_js/plugins/rml9/plugin-02-add_view.js"></script>
```
......@@ -535,18 +535,41 @@ A vous de jouer, afin de remplacer par du contenu dynamique !
## Niveau XVII : Etendre un service
## Niveau XVII : Etendre les services
__Objectif :__ Nous allons voir comment étendre le fonctionnement du code présent dans les services.
### Activation du plugin (en version `05`)
Editez le fichier `www/index.html` pour activer cette fois le plugin en version `05` :
```
<script src="dist/dist_js/plugins/rml9/plugin-05-service_api.js"></script>
```
### Se repérer dans le code
Dans le code du plugin, observez notamment les lignes suivantes :
```
// [NEW] Add a RML9 service, that listen some Cesium events
.factory('rml9Service', function($rootScope, csWallet, csWot) {
'ngInject';
var exports = {};
TODO
// [NEW] add listeners on Cesium services
csWallet.api.data.on.login($rootScope, function(walletData, deferred){
console.log('[RML9] Successfull login. Wallet data:', walletData);
// IMPORTANT: this is required, because of async call of extension
deferred.resolve();
}, this);
(...)
return exports;
});
```
## Niveau XVIII : Etendre les paramètres
......@@ -555,9 +578,13 @@ __Objectif :__ Nous allons voir comment étendre les paramètres de Cesium, en y
### Activation du plugin (en version `06`)
Dans le code du plugin (fichier `www/plugins/rml9/plugin-06-settings`) observez notamment cette partie :
Dans le code du plugin (fichier `www/plugins/rml9/plugin-06-settings`).
```js
### Se repérer dans le code
Observez notamment cette partie du code du plugin :
```
.controller('Rml9ButtonCtrl', function($scope, UIUtils, csSettings) {
'ngInject';
......
......@@ -181,7 +181,7 @@
<!--<script src="dist/dist_js/plugins/rml9/plugin-02-add_view.js"></script>-->
<!--<script src="dist/dist_js/plugins/rml9/plugin-03-file_export.js"></script>-->
<!--script src="dist/dist_js/plugins/rml9/plugin-04-chart.js"></script-->
<!--<script src="dist/dist_js/plugins/rml9/plugin-06-service_api.js"></script>-->
<!--<script src="dist/dist_js/plugins/rml9/plugin-05-service_api.js"></script>-->
<!--<script src="dist/dist_js/plugins/rml9/plugin-06-settings.js"></script>-->
<!--<script src="dist/dist_js/plugins/rml9/plugin-final.js"></script>-->
......
......@@ -47,11 +47,14 @@ angular.module("cesium.config", [])
"certSent": true,
"certReceived": true
}
}
},
"rml9": {
enable: true
}
},
"version": "0.12.7",
"build": "2017-05-31T14:31:24.792Z",
"newIssueUrl": "https://github.com/duniter/cesium/issues/new?labels=bug"
})
;
\ No newline at end of file
;
angular.module('cesium.rml9.plugin', ['cesium.services'])
.config(function($stateProvider, PluginServiceProvider, csConfig) {
.config(function(PluginServiceProvider, csConfig) {
'ngInject';
var enable = csConfig.plugins && csConfig.plugins.rml9;
if (enable) {
PluginServiceProvider
// Extension de la vue d'une identité: ajout d'un bouton
.extendState('app.wot_identity', {
points: {
'buttons': {
templateUrl: "plugins/rml9/templates/04-button.html",
controller: 'Rml9ButtonCtrl'
}
}
})
// Extension de 'Mes opérations' : insertion d'un bouton
.extendState('app.view_wallet_tx', {
points: {
'buttons': {
templateUrl: "plugins/rml9/templates/04-button.html",
controller: 'Rml9ButtonCtrl'
}
}
});
// [NEW] Ajout d'une entrée dans les paramètres générale
PluginServiceProvider.extendState('app.settings', {
points: {
'plugins': {
templateUrl: "plugins/rml9/templates/04-settings_item.html"
}
}
});
// [NEW] Will force to load this RML9 service
PluginServiceProvider.registerEagerLoadingService('rml9Service');
}
})
// Manage events from the plugin button
.controller('Rml9ButtonCtrl', function($scope, UIUtils,
// [NEW] Service d'accès aux paramètres
csSettings) {
// [NEW] Add a RML9 service, that listen some Cesium events
.factory('rml9Service', function($rootScope, csWallet, csWot) {
'ngInject';
var exports = {};
// [NEW] A simple helper method
function isEnable(settings) {
return settings.plugins && settings.plugins.rml9 && settings.plugins.rml9.enable;
}
console.log('[RML9] Starting rml9Service service...');
// [NEW] Nouvelle variable stockée dans le contexte de la page
$scope.enable = isEnable(csSettings.data);
// [NEW] add listeners on Cesium services
csWallet.api.data.on.login($rootScope, function(walletData, deferred){
console.log('[RML9] Successfull login. Wallet data:', walletData);
// [NEW] Rafraichir cette variable à chaque changement dans les paramètres
csSettings.api.data.on.changed($scope, function(settings) {
console.debug("[RML9] Detect changes in settings!");
// IMPORTANT: this is required, because of async call of extension
deferred.resolve();
}, this);
$scope.enable = isEnable(settings);
console.debug("[RML9] RML9 plugin enable: " + $scope.enable);
});
csWot.api.data.on.load($rootScope, function(idty, deferred){
console.log('[RML9] Loading a wot identity: ', idty);
deferred.resolve();
}, this);
csWot.api.data.on.search($rootScope, function(searchText, datas, pubkeyAtributeName, deferred){
console.log('[RML9] Searching on Wot registry, using [searchText,datas]: ', searchText, datas);
deferred.resolve();
}, this);
// Click event on button
$scope.onButtonClick = function() {
console.debug("[RML9] call function onButtonClick()");
UIUtils.toast.show("Fine, this plugin works !");
};
return exports;
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment