--- /dev/null
+<style>
+ /* TODO */
+ #stored-prefs-container .selected {
+ background-color: #F5F5F5;
+ }
+ #stored-prefs-container .row {
+ padding-top: 10px;
+ }
+</style>
+<div class="container" id="stored-prefs-container">
+ <div class="row">
+
+ <!-- key list -->
+ <div class="col-md-4">
+ <div class="row" ng-repeat="key in keys">
+ <div class="col-md-1">{{$index + 1}}.</div>
+ <div class="col-md-8 stored-prefs-key"
+ ng-class="{selected : currentKey == key}">
+ <a href='' ng-click="selectKey(key)">{{key}}</a>
+ </div>
+ <div class="col-md-1">
+ <!-- padding to give the buttom some overflow space -->
+ </div>
+ <div class="col-md-1" class="stored-prefs-remove-button">
+ <button class="btn btn-default btn-danger"
+ ng-click="removeKey(key)" title="[% l('Remove Item') %]">
+ <span class="glyphicon glyphicon-remove"></span>
+ </button>
+ </div>
+ </div><!-- row -->
+ </div><!-- col -->
+
+ <!-- content -->
+ <div class="col-md-8">
+ <pre>{{getCurrentKeyContent()}}</pre>
+ </div>
+
+ </div><!-- row -->
+</div><!-- container -->
* Splash Page
*/
-angular.module('egWorkstationAdmin', ['ngRoute', 'ui.bootstrap', 'egCoreMod', 'egUiMod'])
+angular.module('egWorkstationAdmin',
+ ['ngRoute', 'ui.bootstrap', 'egCoreMod', 'egUiMod'])
.config(['$routeProvider','$locationProvider','$compileProvider',
function($routeProvider , $locationProvider , $compileProvider) {
resolve : resolver
});
+ $routeProvider.when('/admin/workstation/stored_prefs', {
+ templateUrl: './admin/workstation/t_stored_prefs',
+ controller: 'StoredPrefsCtrl',
+ resolve : resolver
+ });
+
+
// default page
$routeProvider.otherwise({
templateUrl : './admin/workstation/t_splash',
$scope.context,
$scope.contentType,
$scope.textPrintContent,
+ null,
withDialog
);
} else {
$scope.setContentType('text/plain');
}])
+
+.controller('StoredPrefsCtrl',
+ ['$scope','egPrintStore','egConfirmDialog','egAppStrings',
+function($scope , egPrintStore , egConfirmDialog , egAppStrings) {
+ console.log('StoredPrefsCtrl');
+
+ function refreshKeys() {
+ egPrintStore.getKeys()
+ .then(function(keys) { $scope.keys = keys.sort() })
+ }
+ refreshKeys();
+
+ $scope.selectKey = function(key) {
+ $scope.currentKey = key;
+ $scope.currentKeyContent = null;
+ egPrintStore.getItem(key)
+ .then(function(content) {
+ $scope.currentKeyContent = content
+ });
+ }
+
+ $scope.getCurrentKeyContent = function() {
+ try {
+ // if the content is JSON-encoded (most), re-stringify
+ // with the pretty printer.
+ return JSON.stringify($scope.currentKeyContent, null, 2);
+ } catch(E) {
+ // otherwise, return the bare value
+ return $scope.currentKeyContent;
+ }
+ }
+
+ $scope.removeKey = function(key) {
+ egConfirmDialog.open(
+ egAppStrings.PREFS_REMOVE_KEY_CONFIRM, '',
+ { deleteKey : key,
+ ok : function() {
+ egPrintStore.removeItem(key)
+ .then(function() {
+ // delete succeeded, remove item from list
+ $scope.keys = $scope.keys.filter(
+ function(k) { return k != key }
+ );
+ });
+ },
+ cancel : function() {} // user canceled, nothing to do
+ }
+ );
+ }
+}])
+