2
0
Fork 0

WIP open file for a while

This commit is contained in:
Willem 2017-06-10 16:53:29 +02:00
parent f937019e42
commit d280fb9af3
122 changed files with 5702 additions and 10 deletions

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Loading</title>
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<script src="/api/plugin/uiLibFFSpaLoader/es5-ff-spa-loader.js"></script>
<link rel="stylesheet" type="text/css" href="/api/plugin/uiLibFFSpaLoader/es5-ff-spa-loader.css" />
</head>
<body>
<script>
FFSpaLoader.options.boot.debug.enable = true;
FFSpaLoader.options.boot.angular.modules.push('tcrudUI');
FFSpaLoader.options.server.assets = '/api/server/config/client-resources-mobile';
FFSpaLoader.start();
</script>
</body>
</html>

View file

@ -0,0 +1,14 @@
'use strict';
tcrudUI.controller('ApplicationController',function($scope,$http,$location,navigationService) {
console.log('start menu controller');
$scope.goLink = function ( path ) {
$location.path( path );
};
$scope.navigationService = navigationService;
$scope.applicationMenu = {};
$http.get('<%= troot.tmeta.tserver.tslugs.tbase %>/<%= troot.tmeta.tserver.tslugs.tserver %>/config/menu').success(function(data, status, headers, config) {
$scope.applicationMenu = data.data;
$scope.applicationMenuKeys = Object.keys(data.data);
});
});

View file

@ -0,0 +1,15 @@
'use strict';
console.log('FFTCrudExample.fontFaceOnload check');
var ffolStartTime = new Date().getTime();
FontFaceOnload('Source Sans', {
timeout: 1234,
success: function() {
console.log('FFTCrudExample.FontFaceOnload success in '+(new Date().getTime()-ffolStartTime)+' ms.');
document.documentElement.className += ' fontLoaded';
},
error: function() {
console.log('FFTCrudExample.fontFaceOnload timeout.');
document.documentElement.className += ' fontLoaded';
}
});

View file

@ -0,0 +1,26 @@
'use strict';
var serverUrl = window.FFServerUrl;
var crudRouteInit = [];
var pageRouteInit = [];
document.title = 'TCrud Example';
$(document.createElement('div')).attr('ng-controller', 'ApplicationController').attr('ng-include','\''+serverUrl+'/api/plugin/angular/thtml/application-top\'').appendTo($('body'));
$(document.createElement('div')).attr('ng-include','\''+serverUrl+'/api/plugin/angular/thtml/application-view\'').appendTo($('body'));
var tcrudUI = angular.module('tcrudUI', ['ngRoute','ngTouch','ngAnimate', 'ui.grid', 'ui.grid.pagination','ui.grid.cellNav', 'ui.grid.edit', 'ui.grid.resizeColumns', 'ui.grid.pinning', 'ui.grid.selection', 'ui.grid.moveColumns', 'ui.grid.exporter', 'ui.grid.importer', 'ui.grid.grouping', 'ui.grid.autoResize']).
config(['$routeProvider', '$locationProvider', '$sceDelegateProvider', function($routeProvider, $locationProvider, $sceDelegateProvider) {
// init routes
pageRouteInit.forEach(function(init) { init($routeProvider, $locationProvider); });
crudRouteInit.forEach(function(init) { init($routeProvider, $locationProvider); });
$sceDelegateProvider.resourceUrlWhitelist(['self',serverUrl+'/**']);
$routeProvider.otherwise({ redirectTo: '/ui' });
$locationProvider.html5Mode({requireBase: false});
}]);
tcrudUI.run(['$route', function($route) {
$route.reload(); // ng-view works inside the ng-include
}]);

View file

@ -0,0 +1,8 @@
$scope.<%= taction %>None = function () {
<% if (tview.tlist) { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tlist.tplugin.angular.tslug %>');
<% } else { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/');
<% } %>
}

View file

@ -0,0 +1,5 @@
$routeProvider.when('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview[taction].tplugin.angular.tslug %><%= routeEnd %>', {
templateUrl: '<%= thtmlPrefix %>/<%= tview[taction].tplugin.angular.thtml %>',
controller: <%= tview[taction].tplugin.angular.tcontroller.prefix %><%= tviewCode %><%= tview[taction].tplugin.angular.tcontroller.postfix %>
});

View file

@ -0,0 +1,173 @@
'use strict';
//
// Auto generated controller mapping for: <%= tview.tid %>
//
crudRouteInit.push(auto<%= tviewCode %>Init);
function auto<%= tviewCode %>Init($routeProvider, $locationProvider) {
<% if (tview.tlist) { %>
$routeProvider.when('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/', {
redirectTo: '<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tlist.tplugin.angular.tslug %>'
});
<%- include('controller-route', {tview: tview,tviewCode: tviewCode,thtmlPrefix:thtmlPrefix,taction: 'tlist', routeEnd: ''}); %>
<% } %>
<% if (tview.tcreate) { %>
<%- include('controller-route', {tview: tview,tviewCode: tviewCode,thtmlPrefix:thtmlPrefix,taction: 'tcreate', routeEnd: ''}); %>
<% } %>
<% if (tview.tedit) { %>
<%- include('controller-route', {tview: tview,tviewCode: tviewCode,thtmlPrefix:thtmlPrefix,taction: 'tedit', routeEnd: '/'+tview.tmeta.tmodel.tkey}); %>
<% } %>
<% if (tview.tread) { %>
<%- include('controller-route', {tview: tview,tviewCode: tviewCode,thtmlPrefix:thtmlPrefix,taction: 'tread', routeEnd: '/'+tview.tmeta.tmodel.tkey}); %>
<% } %>
<% if (tview.tdelete) { %>
<%- include('controller-route', {tview: tview,tviewCode: tviewCode,thtmlPrefix:thtmlPrefix,taction: 'tdelete', routeEnd: '/'+tview.tmeta.tmodel.tkey}); %>
<% } %>
}
<% if (tview.tlist) { %>
function <%= tview.tlist.tplugin.angular.tcontroller.prefix %><%= tviewCode %><%= tview.tlist.tplugin.angular.tcontroller.postfix %>(<%= tview.tlist.tplugin.angular.tcontroller.argu %>) {
$scope.uiTableMain = {};
$scope.uiTableMain.enableColumnResizing = true;
$scope.uiTableMain.enableFiltering = false;
$scope.uiTableMain.enableGridMenu = true;
$scope.uiTableMain.showGridFooter = false;
$scope.uiTableMain.showColumnFooter = false;
$scope.uiTableMain.paginationPageSizes = [25, 50, 75];
$scope.uiTableMain.paginationPageSize = 25;
$scope.uiTableMain.enableFullRowSelection = true;
$scope.uiTableMain.multiSelect = false;
$scope.uiTableMain.columnDefs = [];
$scope.uiTableMain.onRegisterApi = function(gridApi){
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope,function(row) {
if ($scope.gridApi.selection.getSelectedRows().length > 0) {
navigationService.actions.open = $scope.doEdit;
} else {
navigationService.actions.open = null;
}
});
};
var fetchData = function() {
$http.get('<%= tapiPrefix %>/<%= tview.tlist.tplugin.formatJSON.tslug %>').success(function(data, status, headers, config) {
$scope.uiTableMain.data = data.data;
});
};
navigationService.actions.refresh = function() {
fetchData();
};
navigationService.actions.create = function() {
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tcreate.tplugin.angular.tslug %>');
};
$scope.doEdit = function() {
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tedit.tplugin.angular.tslug %>/'+$scope.gridApi.selection.getSelectedRows()[0].country_id);
};
$http.get('<%= tapiPrefix2 %>').success(function(data, status, headers, config) {
var tview = data.data.tview;
tview.tlist.tfields.forEach(function (fieldKey) {
var field = tview.tmeta.tfields[fieldKey];
$scope.uiTableMain.columnDefs.push({
name: field.tname,
field: field.tid,
type2: field.ttype,
});
});
navigationService.pageTitle = tview.tname;
fetchData();
});
}
<% } %>
<% if (tview.tcreate) { %>
function <%= tview.tcreate.tplugin.angular.tcontroller.prefix %><%= tviewCode %><%= tview.tcreate.tplugin.angular.tcontroller.postfix %>(<%= tview.tcreate.tplugin.angular.tcontroller.argu %>) {
$scope.data = {};
$scope.tcreateData = function () {
$http.post('<%= tapiPrefix %>/<%= tview.tcreate.tplugin.formatJSON.tslug %>', $scope.data).success(function(data) {
<% if (tview.tlist) { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tlist.tplugin.angular.tslug %>');
<% } else { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/');
<% } %>
});
}
<%- include('controller-action-none', {tview: tview,taction: 'tcreate'}); %>
}
<% } %>
<% if (tview.tread) { %>
function <%= tview.tread.tplugin.angular.tcontroller.prefix %><%= tviewCode %><%= tview.tread.tplugin.angular.tcontroller.postfix %>(<%= tview.tread.tplugin.angular.tcontroller.argu %>) {
$scope.data = {};
$http.get('<%= tapiPrefix %>/<%= tview.tread.tplugin.formatJSON.tslug %>/' + <%= ejsRouteParams %>).success(function(data) {
$scope.data = data.data;
});
<%- include('controller-action-none', {tview: tview,taction: 'tread'}); %>
}
<% } %>
<% if (tview.tedit) { %>
function <%= tview.tedit.tplugin.angular.tcontroller.prefix %><%= tviewCode %><%= tview.tedit.tplugin.angular.tcontroller.postfix %>(<%= tview.tedit.tplugin.angular.tcontroller.argu %>) {
$scope.data = {};
var fetchData = function() {
$http.get('<%= tapiPrefix %>/<%= tview.tread.tplugin.formatJSON.tslug %>/' + <%= ejsRouteParams %>).success(function(data) {
$scope.data = data.data;
});
};
fetchData();
$scope.teditData = function () {
$http.put('<%= tapiPrefix %>/<%= tview.tedit.tplugin.formatJSON.tslug %>/' + <%= ejsRouteParams %>, $scope.data ).success(function(data) {
<% if (tview.tread) { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tread.tplugin.angular.tslug %>/' + <%= ejsRouteParams %>);
<% } else { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/');
<% } %>
});
}
$scope.tdeleteData = function () {
$http.delete('<%= tapiPrefix %>/<%= tview.tdelete.tplugin.formatJSON.tslug %>/'+ <%= ejsRouteParams %>, $scope.data).success(function(data) {
<% if (tview.tlist) { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tlist.tplugin.angular.tslug %>');
<% } else { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/');
<% } %>
});
}
<%- include('controller-action-none', {tview: tview,taction: 'tedit'}); %>
navigationService.actions.save = $scope.teditData;
navigationService.actions.cancel = $scope.teditNone;
navigationService.actions.delete = $scope.tdeleteData;
navigationService.actions.refresh = function() {
fetchData();
};
}
<% } %>
<% if (tview.tdelete) { %>
function <%= tview.tdelete.tplugin.angular.tcontroller.prefix %><%= tviewCode %><%= tview.tdelete.tplugin.angular.tcontroller.postfix %>(<%= tview.tdelete.tplugin.angular.tcontroller.argu %>) {
$scope.data = {};
$http.get('<%= tapiPrefix %>/<%= tview.tread.tplugin.formatJSON.tslug %>/' + <%= ejsRouteParams %>).success(function(data) {
$scope.data = data.data;
console.log('delete obj: '+JSON.stringify(data.data));
});
$scope.tdeleteData = function () {
$http.delete('<%= tapiPrefix %>/<%= tview.tdelete.tplugin.formatJSON.tslug %>/'+ <%= ejsRouteParams %>, $scope.data).success(function(data) {
<% if (tview.tlist) { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tlist.tplugin.angular.tslug %>');
<% } else { %>
$location.url('<%= tview.tmeta.tplugin.angular.tbase %>/');
<% } %>
});
}
<%- include('controller-action-none', {tview: tview,taction: 'tdelete'}); %>
}
<% } %>

View file

@ -0,0 +1,57 @@
'use strict';
tcrudUI.factory('navigationService', ['$route', '$rootScope',
function($route, $rootScope) {
var actions = {
save: null,
cancel: null,
open: null,
delete: null,
create: null,
refresh: null
};
var resetActions = function() {
for (var key in actions) {
if (key.indexOf('Impl') > 0) {
continue;
}
actions[key] = null;
}
};
actions.saveImpl = function() {
actions.save();
resetActions();
};
actions.cancelImpl = function() {
actions.cancel();
resetActions();
};
actions.openImpl = function() {
actions.open();
resetActions();
};
actions.deleteImpl = function() {
actions.delete();
resetActions();
};
var pageTabs = [];
var pageTitle = '';
var pageLocations = [];
$rootScope.$on('$routeChangeSuccess', function() {
pageTabs = [];
pageTitle = '';
pageLocations = [];
resetActions(); // to late gives flikering..
//$rootScope.$apply();
});
return {
actions: actions,
pageTabs: pageTabs,
pageTitle: pageTitle,
pageLocations: pageLocations,
};
}
]);

View file

@ -0,0 +1,20 @@
<div class="navbar-collapse" >
<ul class="nav navbar-nav">
<li>
<button type="button" class="fa fa-plus btn btn-default" ng-click="navigationService.actions.create()" ng-show="navigationService.actions.create !== null">
New
</button>
<button type="button" class="fa fa-caret-left btn btn-default" ng-click="navigationService.actions.cancelImpl()" ng-show="navigationService.actions.cancel !== null">
</button>
<button type="button" class="fa fa-refresh btn btn-default" ng-click="navigationService.actions.refresh()" ng-show="navigationService.actions.refresh !== null">
</button>
<button type="button" class="fa fa-save btn btn-primary" ng-click="navigationService.actions.saveImpl()" ng-show="navigationService.actions.save !== null">
</button>
<button type="button" class="fa fa-file-o btn btn-success" ng-click="navigationService.actions.openImpl()" ng-show="navigationService.actions.open !== null">
Open
</button>
<button type="button" class="fa fa-trash-o btn btn-warning" data-toggle="modal" data-target="#deleteModal" ng-show="navigationService.actions.delete !== null">
</button>
</li>
</ul>
</div>

View file

@ -0,0 +1,9 @@
<div class="navbar-collapse" >
<ul class="nav navbar-nav">
<li>
<button type="button" class="{{tab.icon}} btn btn-default" ng-repeat="tab in navigationService.pageTabs" ng-click="tab.click()">
{{tab.name}}
</button>
</li>
</ul>
</div>

View file

@ -0,0 +1,69 @@
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<button type="button" class="navbar-menu" ng-click="isMenuExpanded = !isMenuExpanded;isExpanded = false">
<span class="sr-only">Toggle menu</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-collapse navbar-header-left" ng-include="'/api/plugin/angular/thtml/application-top-action'"></div>
<div class="navbar-collapse navbar-header-left" ng-include="'/api/plugin/angular/thtml/application-top-tabs'"></div>
<button type="button" class="navbar-toggle navbar-header-right" ng-click="isExpanded = !isExpanded;isMenuExpanded = false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="for-sm-view-hide">
<div class="navbar-collapse">
<div class="navbar-right">
<ul class="nav navbar-nav navbar-right"><li><a href="/">Logout</a></li></ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="for-lg-view-hide">
<div class="navbar-collapse" ng-show="isExpanded" ng-click="isExpanded = false">
<div class="navbar-right">
<ul class="nav navbar-nav navbar-right"><li><a href="/">Logout</a></li></ul>
</div>
</div>
</div>
<div class="for-menu-view-hide">
<div class="navbar-collapse" ng-show="isMenuExpanded" ng-click="isMenuExpanded = false">
<ul class="nav navbar-nav-menu" ng-repeat="menuKey in applicationMenuKeys">
<li>
<ul class="nav navbar-nav">
<li class="navbar-nav-menu-group"><i class="{{applicationMenu[menuKey].icon}}"></i>&nbsp;{{applicationMenu[menuKey].name}}</li>
<li class="" ng-repeat="item in applicationMenu[menuKey].items">
<a href="{{item.link}}" ng-click="goLink('{{item.link}}')"><i class="{{item.icon}}"></i>&nbsp;{{item.name}}</a>
</li>
</ul>
</li>
<br/>
</ul>
</div>
</div>
</div>
<p>{{navigationService.pageTitle}}</p>
</div>
<div id="deleteModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Confirm Delete</h4>
</div>
<div class="modal-body">
<p>Are you sure to delete this record ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal" ng-click="navigationService.actions.deleteImpl()">Delete</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,20 @@
<div role="main" class="container-fluid">
<div>
<div class="col-xs-12">
<!--[if lt IE 7]>
<p class="alert alert-error">Your browser is <em>ancient!</em>
<a href="http://browsehappy.com/">Upgrade to a different browser</a> or
<a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.
</p>
<![endif]-->
<!--[if lt IE 9]>
<div class="alert">
You are using an old version of Internet Explorer.
For better and safer browsing experience please <a href="http://www.microsoft.com/IE9">upgrade IE</a>
or install <a href="http://google.com/chrome">Google Chrome browser</a>.
</div>
<![endif]-->
</div>
<div class="fillHeightView" ng-view/>
</div>
</div>

View file

@ -0,0 +1,16 @@
<h2>Create <%= tview.tname %></h2>
<div class="row">
<div class="col-lg-8">
<form role="form">
<% tview.tedit.tfields.forEach(function (fieldKey) { %>
<div class="form-group">
<label for="<%= tview.tmeta.tfields[fieldKey].tid %>"><%= tview.tmeta.tfields[fieldKey].tname %></label>
<input ng-model="data.<%= tview.tmeta.tfields[fieldKey].tid %>" name="<%= tview.tmeta.tfields[fieldKey].tid %>" class="form-control"></input>
</div>
<% }) %>
<button type="submit" class="btn btn-default" ng-click="tcreateData()">Submit</button>
<button type="submit" class="btn btn-default" ng-click="tcreateNone()">Cancel</button>
</form>
</div>
<div class="col-lg-4"></div>
</div>

View file

@ -0,0 +1,6 @@
<h2>Delete <%= tview.tname %></h2>
<div>
<p>Are you sure you want to delete this <%= tview.tname %> <%= ejsKeyData %> ?</p>
<button ng-click="tdeleteData()">Yes</button> | -
<button ng-click="tdeleteNone()">No thanks</button>
<div>

View file

@ -0,0 +1,12 @@
<h2> Edit <%= tview.tname %></h2>
<div class="col-lg-8">
<form role="form">
<% tview.tedit.tfields.forEach(function (fieldKey) { %>
<div class="form-group">
<label for="<%= tview.tmeta.tfields[fieldKey].tid %>"><%= tview.tmeta.tfields[fieldKey].tname %></label>
<input ng-model="data.<%= tview.tmeta.tfields[fieldKey].tid %>" name="<%= tview.tmeta.tfields[fieldKey].tid %>" class="topcoat-text-input"></input>
</div>
<% }) %>
</form>
<div class="col-lg-4"></div>

View file

@ -0,0 +1 @@
<div ui-grid="uiTableMain" class="grid fillHeightCalc" ng-swipe-left="doEdit()" ui-grid-pagination ui-grid-resize-columns ui-grid-move-columns ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-auto-resize></div>

View file

@ -0,0 +1,50 @@
<p>There are {{data.length}} <%= tview.tplural %></p>
<% if (tview.tcreate) { %>
<p>
<a href="<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tcreate.tplugin.angular.tslug %>">Create New</a>
</p>
<% } %>
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<% if (tview.tread) { %><th>Open</th><% } %>
<% if (tview.tedit) { %><th>Edit</th><% } %>
<% if (tview.tdelete) { %><th>Delete</th><% } %>
<% tview.tlist.tfields.forEach(function (fieldKey) { %>
<th><%= tview.tmeta.tfields[fieldKey].tname %></th>
<% }) %>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in data">
<% if (tview.tread) { %>
<td>
<a href="<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tread.tplugin.angular.tslug %>/<%= ejsKeyRow %>">Read</a>
</td>
<% } %>
<% if (tview.tedit) { %>
<td>
<a href="<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tedit.tplugin.angular.tslug %>/<%= ejsKeyRow %>">Edit</a>
</td>
<% } %>
<% if (tview.tdelete) { %>
<td>
<a href="<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tdelete.tplugin.angular.tslug %>/<%= ejsKeyRow %>">Delete</a>
</td>
<% } %>
<% tview.tlist.tfields.forEach(function (fieldKey) { %>
<td>{{row.<%= tview.tmeta.tfields[fieldKey].tid %>}}</td>
<% }) %>
</tr>
</tbody>
</table>
</div>
<% if (tview.tcreate) { %>
<p>
<a href="<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tcreate.tplugin.angular.tslug %>">Create New</a>
</p>
<% } %>

View file

@ -0,0 +1,19 @@
<section>
<h2> <%= ejsKeyData %> </h2>
<% if (tview.tedit) { %>
<p>
<a href="<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tedit.tplugin.angular.tslug %>/<%= ejsKeyData %>">Edit</a>
</p>
<% } %>
<% if (tview.tdelete) { %>
<p>
<a href="<%= tview.tmeta.tplugin.angular.tbase %>/<%= tview.tslug %>/<%= tview.tdelete.tplugin.angular.tslug %>/<%= ejsKeyData %>">Delete</a>
</p>
<% } %>
<% tview.tread.tfields.forEach(function (fieldKey) { %>
<p><%= tview.tmeta.tfields[fieldKey].tname %>: {{data.<%= tview.tmeta.tfields[fieldKey].tid %>}}</p>
<% }) %>
<p>
<button ng-click="treadNone()">Back</button>
</p>
<sector>