--- /dev/null
+<div>
+ <div class="modal-header">
+ <button type="button" class="close"
+ ng-click="cancel()" aria-hidden="true">×</button>
+ <h4 class="modal-title alert alert-info">[% l('Manage Translations') %]</h4>
+ </div>
+ <div class="modal-body">
+ <div class="row">
+ <div class="col-md-2">
+ <span>[% l('Select Locale') %]</span>
+ </div>
+ <div class="col-md-3">
+ <select class="form-control" ng-model="locale">
+ <option ng-repeat="l in locales" value="l.name()">
+ {{l.description()}}
+ </option>
+ </select>
+ </div>
+ <div class="col-md-3"></div>
+ <div class="col-md-4">
+ <a href ng-click="prev()">[% l('Prev Row') %]</a>
+ <span class='pad-left'>
+ <a href ng-click="next()">[% l('Next Row') %]</a>
+ </span>
+ </div>
+ </div>
+ <div class="row" ng-repeat="col in columns">
+ <div class="col-md-2 pad-all-min">
+ {{col.label}}
+ </div>
+ <div class="col-md-5 pad-all-min">
+ {{items[item_index][col.name]}}
+ </div>
+ <div class="col-md-5 pad-all-min">
+ <input type='text' class="form-control"
+ ng-model="applied_translations[locale][col.name][pkey]"/>
+ </div>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <input type="submit" class="btn btn-primary" ng-click="ok()" value="[% l('Apply') %]"/>
+ <button class="btn btn-warning" ng-click="cancel()">[% l('Close') %]</button>
+ </div>
+</div>
controller : [
'$scope','$q','egCore','egGridFlatDataProvider','$location',
'egGridColumnsProvider','$filter','$window','$sce','$timeout',
- 'egProgressDialog',
+ 'egProgressDialog','$uibModal',
function($scope, $q , egCore, egGridFlatDataProvider , $location,
egGridColumnsProvider , $filter , $window , $sce , $timeout,
- egProgressDialog) {
+ egProgressDialog , $uibModal) {
var grid = this;
return false;
}
+ $scope.showTranslateDialog = function() {
+ return $uibModal.open({
+ templateUrl: './share/t_grid_translate_dialog',
+ backdrop: 'static',
+ size : 'lg',
+ controller: ['$scope', '$uibModalInstance',
+ function($dialogScope, $uibModalInstance) {
+
+ var locales = $dialogScope.locales = [{ // TODO
+ name : function(){return 'en-US'},
+ description : function(){return 'American English'},
+ }];
+
+ $dialogScope.locale = locales[0].name(); // TODO
+
+ var columns = $dialogScope.columns =
+ $scope.columns.filter(
+ function(col) {return col.i18n});
+
+ var translations =
+ $scope.applied_translations = {};
+
+ angular.forEach(locales, function(locale) {
+ if (!translations[locale]) translations[locale] = {};
+ angular.forEach(columns, function(col) {
+ translations[locale][col.name] = {};
+ });
+ });
+
+ $dialogScope.items = $scope.items;
+ $dialogScope.item_index = 0;
+ $dialogScope.prev = function() {
+ $dialogScope.item_index--;
+ }
+
+ $dialogScope.next = function() {
+ console.log('NEXT');
+ $dialogScope.item_index++;
+ }
+
+ $dialogScope.ok = function() {
+ $uibModalInstance.close()
+ }
+ $dialogScope.cancel = function() {
+ $uibModalInstance.dismiss();
+ }
+ }
+ ]
+ });
+ }
+
// returns the list of selected item objects
grid.getSelectedItems = function() {
return $scope.items.filter(
}
column.datatype = idl_info.idl_field.datatype;
+ column.i18n = idl_info.idl_field.i18n;
if (!column.label) {
column.label = idl_info.idl_field.label || column.name;