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>

View file

@ -0,0 +1 @@
# CSV END

View file

@ -0,0 +1,2 @@
# CSV <%= tview.tid %>
# <% tview.tlist.tfields.forEach(function (tfieldKey) {var tfield = tview.tmeta.tfields[tfieldKey]; %><%= tfield.tid %>,<% }) %>

View file

@ -0,0 +1 @@
<% tview.tlist.tfields.forEach(function (tfieldKey) {var tfield = tview.tmeta.tfields[tfieldKey]; %><%= record[tfield.tid] %>,<% }) %>

View file

@ -0,0 +1 @@
<% tview.tlist.tfields.forEach(function (tfieldKey) {var tfield = tview.tmeta.tfields[tfieldKey]; %><%= record[tfield.tid] %>,<% }) %>

View file

@ -0,0 +1 @@
</<%= tview.tid %>List>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<<%= tview.tid %>List>

View file

@ -0,0 +1,5 @@
<<%= tview.tid %>>
<% Object.keys(tview.tlist.tfields).forEach(function (tfieldKey) {var tfield = tview.tlist.tfields[tfieldKey]; %>
<<%= tfieldKey %> type="<%= tfield.type %>"><%= record[tfield.tid] %></<%= tfieldKey %>>
<% }) %>
</<%= tview.tid %>>

View file

@ -0,0 +1,2 @@
</<%= tview.tid %>List>
</data>

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<data>
<<%= tview.tid %>List>

View file

@ -0,0 +1,5 @@
<<%= tview.tid %>>
<% tview.tlist.tfields.forEach(function (tfieldKey) {var tfield = tview.tmeta.tfields[tfieldKey]; %>
<<%= tfield.tid %> type="<%= tfield.type %>"><%= record[tfield.tid] %></<%= tfield.tid %>>
<% }) %>
</<%= tview.tid %>>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<data>
<<%= tview.tid %>>
<% tview.tlist.tfields.forEach(function (tfieldKey) {var tfield = tview.tmeta.tfields[tfieldKey]; %>
<<%= tfield.tid %> type="<%= tfield.type %>"><%= record[tfield.tid] %></<%= tfield.tid %>>
<% }) %>
</<%= tview.tid %>>
</data>

View file

@ -0,0 +1,45 @@
'use strict';
//
// Auto generated controller server plugin controller
//
crudRouteInit.push(function ($routeProvider, $locationProvider) {
$routeProvider.when('/ui/server/plugins', {
templateUrl: '<%= troot.tmeta.tserver.tslugs.tbase %>/<%= troot.tmeta.tserver.tslugs.tplugin %>/uiAngularServerPlugins/thtml/plugins',
controller: XPageServerPlugins,
});
});
function XPageServerPlugins($scope, $http) {
$scope.message = '';
$scope.doReload = function () {
window.location.reload(true);
};
$scope.doClearServerUrl = function () {
FFSpaLoader.clearServerUrl(function(err) {
if (err) {
$scope.message = 'Error: '+err;
} else {
$scope.message = 'Cleared server url';
}
$scope.$apply();
});
};
$scope.doClearCache = function () {
FFSpaLoader.clearCache(function(err) {
if (err) {
$scope.message = 'Error: '+err;
} else {
$scope.message = 'Cleared cache';
}
$scope.$apply();
});
};
$http.get('<%= troot.tmeta.tserver.tslugs.tbase %>/<%= troot.tmeta.tserver.tslugs.tserver %>/<%= troot.tmeta.tplugin.serverInfoPlugins.tslug %>').success(function(data, status, headers, config) {
$scope.serverPlugins = data.data;
});
}

View file

@ -0,0 +1,26 @@
<h2>Server Plugins</h2>
<p>This page show all the tcrud plugins.</p>
<div>
<input type="button" class="btn btn-default" ng-click="doReload()" value="Reload"></input>
<input type="button" class="btn btn-default" ng-click="doClearServerUrl()" value="Clear Server Url"></input>
<input type="button" class="btn btn-default" ng-click="doClearCache()" value="Clear Cache"></input>
<p>{{message}}</p>
</div>
<div class="col-lg-12">
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Plugin</th>
<th>Description</th>
<th>Dependencies</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="plugin in serverPlugins.plugins.info">
<td >{{plugin.tmeta.key}}</td>
<td>{{plugin.tmeta.description}}</td>
<td>{{plugin.tmeta.dependencies}}</td>
</tr>
</tbody>
</table>
</div>

View file

@ -0,0 +1,31 @@
'use strict';
//
// Auto generated controller server router controller
//
crudRouteInit.push(function ($routeProvider, $locationProvider) {
$routeProvider.when('/ui/server/routes', {
redirectTo: '/ui/server/routes/tech',
});
$routeProvider.when('/ui/server/routes/tech', {
templateUrl: '<%= troot.tmeta.tserver.tslugs.tbase %>/<%= troot.tmeta.tserver.tslugs.tplugin %>/uiAngularServerRoutes/thtml/routes?group1=all,api_server,api_plugin,tentity_rss,tentity_json&group2=tentity_csv,tentity_xml,tentity_angular,tentity_config',
controller: XPageServerTechRoutes,
});
$routeProvider.when('/ui/server/routes/model', {
templateUrl: '/api/angular/thtml/routes?group1=moviedb,pagila&group2=all',
controller: XPageServerModelRoutes,
});
});
function XPageServerTechRoutes($scope, $http) {
$http.get('<%= troot.tmeta.tserver.tslugs.tbase %>/<%= troot.tmeta.tserver.tslugs.tserver %>/<%= troot.tmeta.tplugin.serverConfigRoutes.tslug %>?groups=api/server,api/plugin,tentity/json,tentity/xml,tentity/rss,tentity/csv,tentity/angular,tentity/config').success(function(data, status, headers, config) {
$scope.serverRoutes = data.data;
});
}
function XPageServerModelRoutes($scope, $http) {
$http.get('<%= troot.tmeta.tserver.tslug %>/json/server/routes?groups=moviedb,pagila').success(function(data, status, headers, config) {
$scope.serverRoutes = data.data;
});
}

View file

@ -0,0 +1,20 @@
<div class="table-responsive">
<h3><%= routeGroup.toUpperCase() %></h3>
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Path</th>
<th>Method</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="route in serverRoutes['<%= routeGroup %>']">
<td ng-if="route.httpMethod!=='GET'">
<a href="{{route.uriPath}}" target="_blank">{{route.uriPath}}<a>
</td>
<td ng-if="route.httpMethod==='GET'">{{route.uriPath}}</td>
<td>{{route.httpMethod}}</td>
</tr>
</tbody>
</table>
</div>

View file

@ -0,0 +1,26 @@
<h2>Server Routes</h2>
<p>This page show all the nodejs express routes.</p>
<div class="">
<% if (query.group1 && query.group2) { %>
<div class="col-lg-6">
<% query.group1.split(',').forEach(function (routeGroup) { %>
<%- include('routes-group', {routeGroup: routeGroup}); %>
<% }) %>
</div>
<div class="col-lg-6">
<% query.group2.split(',').forEach(function (routeGroup) { %>
<%- include('routes-group', {routeGroup: routeGroup}); %>
<% }) %>
</div>
<% } else if (query.group1) { %>
<div class="col-lg-12">
<% query.group1.split(',').forEach(function (routeGroup) { %>
<%- include('routes-group', {routeGroup: routeGroup}); %>
<% }) %>
</div>
<% } else { %>
<div class="col-lg-12">
<%- include('routes-group', {routeGroup: 'all'}); %>
</div>
<% } %>
</div>

View file

@ -0,0 +1,10 @@
.flot-chart {
display: block;
height: 400px;
}
.flot-chart-content {
width: 100%;
height: 100%;
}

View file

@ -0,0 +1,56 @@
.panel-green {
border-color: #5cb85c;
}
.panel-green .panel-heading {
border-color: #5cb85c;
color: #fff;
background-color: #5cb85c;
}
.panel-green a {
color: #5cb85c;
}
.panel-green a:hover {
color: #3d8b3d;
}
.panel-red {
border-color: #d9534f;
}
.panel-red .panel-heading {
border-color: #d9534f;
color: #fff;
background-color: #d9534f;
}
.panel-red a {
color: #d9534f;
}
.panel-red a:hover {
color: #b52b27;
}
.panel-yellow {
border-color: #f0ad4e;
}
.panel-yellow .panel-heading {
border-color: #f0ad4e;
color: #fff;
background-color: #f0ad4e;
}
.panel-yellow a {
color: #f0ad4e;
}
.panel-yellow a:hover {
color: #df8a13;
}

View file

@ -0,0 +1,133 @@
.ui-grid {
border: none;
}
.ui-grid-menu-button {
border: none;
background: none;
}
.ui-grid-header-cell:last-child .ui-grid-column-resizer.right {
border-right: none;
}
/*
.fade.ng-hide {
transition: all 0s linear 1s;
}
.fade.ng-show {
transition: all 0s linear 1s;
}
*/
body {
margin: 0;
padding: 0;
//background: #4b4d4e;
color: #000;
font: 16px sans-serif, helvetica, arial;
font-weight: 200;
}
.fontLoaded body {
font-family: "Source Sans", sans-serif;
}
.fillHeightView {
display: block;
position:absolute;
height:auto;
bottom:0;
top:0;
left:0;
right:0;
padding-top: 120px;
min-height: 220px;
}
.fillHeightCalc {
height:100%;
}
.navbar-menu {
position: relative;
float: left;
margin-right: 15px;
padding: 9px 10px;
margin-top: 15px;
margin-bottom: 15px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 3px;
}
.navbar-menu .icon-bar {
background-color: rgba(0, 0, 0, 0.5);
}
.navbar-menu .icon-bar + .icon-bar {
margin-top: 4px;
}
.navbar-menu .icon-bar {
display: block;
width: 22px;
height: 2px;
border-radius: 1px;
}
.navbar-nav-menu {
margin: 0;
padding-left: 1em;
}
.navbar-nav-menu-group {
width: 8em;
font-weight: bold;
}
.navbar-collapse {
border: none;
}
.navbar-nav {
margin: 0px 0px 0px 0px;
}
.navbar-nav > li > button {
margin-top: 20px;
margin-bottom: 20px;
}
.for-sm-view-hide, navbar-header-right {
float: right;
}
.for-lg-view-hide, .for-menu-view-hide, .navbar-header-left {
float: left;
}
.for-lg-view-hide > div > ul > li,.for-lg-view-hide > div > div > ul > li {
// text-align: right;
}
@media (max-width: 767px) {
.for-sm-view-hide {
display: none;
}
.navbar-nav-menu {
float: left;
}
}
@media only screen and (-webkit-min-device-pixel-ratio: 1.3),
only screen and (-o-min-device-pixel-ratio: 13/10),
only screen and (min-resolution: 120dpi)
{
font-size:1.2em !important;
@media screen and (min-width: 1440px) {
#hockey2{
font-size:1.3em !important;
}
}
}