提交 b5be086b 编写于 作者: S Sercan

resolves #31

上级 8355acc7
......@@ -4,6 +4,7 @@ var Ladda = require('ladda');
/**
* Created by RSercan on 26.12.2015.
*/
Template.strSessionSwitchDatabaseDB = "switchDatabaseDB";
Template.strSessionConnection = "connection";
Template.strSessionCollectionNames = "collectionNames";
Template.strSessionSelectedCollection = "selectedCollection";
......
......@@ -25,7 +25,7 @@
</a>
{{#if isConnected}}
<ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a id="btnRefreshCollections2" href="#"><i class="fa fa-refresh"></i> Refresh
<li><a id="btnRefreshCollections" href="#"><i class="fa fa-refresh"></i> Refresh
collections</a></li>
<li><a id="btnDropDatabase" href="#"><i class="fa fa-remove"></i> Drop database</a></li>
<li><a id="btnDropAllCollections" href="#"><i class="fa fa-remove"></i> Drop all
......
......@@ -18,7 +18,7 @@ Template.navigation.events({
$('#collectionAddModal').modal('show');
},
'click #btnRefreshCollections2': function (e) {
'click #btnRefreshCollections': function (e) {
e.preventDefault();
Template.topNavbar.connect(true);
},
......
......@@ -15,8 +15,8 @@
<ul class="nav navbar-top-links navbar-right">
{{#if isConnected}}
<li>
<a id="btnRefreshCollections" href="">
<i class="fa fa-refresh"></i> Refresh Collections
<a id="btnSwitchDatabase" href="">
<i class="fa fa-database"></i> Switch Database
</a>
</li>
{{/if}}
......@@ -40,6 +40,43 @@
</nav>
</div>
<!-- MODAL Switch Database-->
<div class="modal inmodal" id="switchDatabaseModal" tabindex="-1" role="dialog" aria-hidden="true"
style="display: none;">
<div class="modal-dialog modal-lg">
<div class="modal-content animated bounceInRight">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span
class="sr-only">Close</span></button>
<i class="fa fa-database modal-icon"></i>
<h4 class="modal-title">Databases</h4>
</div>
<div class="modal-body">
<table id="tblSwitchDatabases"
class="table table-striped table-bordered table-hover dataTables-example dataTable"
style="width: 100%">
<thead>
<tr>
<th>Database Name</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="modal-footer">
<div class="pull-left">
<button type="button" class="btn btn-white" data-dismiss="modal">Close</button>
</div>
<button id="btnConnectSwitchedDatabase" title="Connect !" type="button" disabled="true"
class="btn btn-primary ladda-button" data-style="contract">Connect Now
</button>
</div>
</div>
</div>
</div>
<!-- MODAL Connect-->
<div class="modal inmodal" id="connectionModal" tabindex="-1" role="dialog" aria-hidden="true"
style="display: none;">
......
var toastr = require('toastr');
var Ladda = require('ladda');
require( 'datatables.net' )( window, $ );
require( 'datatables.net-buttons' )( window, $ );
require( 'datatables.net-responsive' )( window, $ );
require('datatables.net')(window, $);
require('datatables.net-buttons')(window, $);
require('datatables.net-responsive')(window, $);
require( 'datatables.net-bs' )( window, $ );
require( 'datatables.net-buttons-bs' )( window, $ );
require( 'datatables.net-responsive-bs' )( window, $ );
require('datatables.net-bs')(window, $);
require('datatables.net-buttons-bs')(window, $);
require('datatables.net-responsive-bs')(window, $);
Template.topNavbar.onRendered(function () {
......@@ -30,6 +30,24 @@ Template.topNavbar.onRendered(function () {
}
});
var selectorForSwitchDatabases = $('#tblSwitchDatabases');
selectorForSwitchDatabases.find('tbody').on('click', 'tr', function () {
var table = selectorForSwitchDatabases.DataTable();
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
}
else {
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
if (table.row(this).data()) {
Session.set(Template.strSessionSwitchDatabaseDB, table.row(this).data().name);
}
});
// FIXED TOP NAVBAR OPTION
// Uncomment this if you want to have fixed top navbar
// $('body').addClass('fixed-nav');
......@@ -90,10 +108,42 @@ Template.topNavbar.events({
}
},
'click #btnRefreshCollections': function (e) {
'click #btnSwitchDatabase': function (e) {
e.preventDefault();
$('#switchDatabaseModal').modal('show');
var laddaButton = Ladda.create(document.querySelector('#btnConnectSwitchedDatabase'));
laddaButton.start();
Meteor.call('listDatabases', function (err, result) {
if (err || result.error) {
Template.showMeteorFuncError(err, result, "Couldn't fetch databases");
}
else {
result.result.databases.sort(function compare(a, b) {
if (a.name < b.name)
return -1;
else if (a.name > b.name)
return 1;
else
return 0;
});
Template.topNavbar.populateSwitchDatabaseTable(result.result.databases);
Ladda.stopAll();
}
});
Template.topNavbar.connect(true);
},
'click #btnConnectSwitchedDatabase': function () {
var laddaButton = Ladda.create(document.querySelector('#btnConnectSwitchedDatabase'));
laddaButton.start();
var connection = Connections.findOne({_id: Session.get(Template.strSessionConnection)});
connection.databaseName = Session.get(Template.strSessionSwitchDatabaseDB);
Meteor.call('updateConnection', connection);
Template.topNavbar.connect(false);
},
'click #btnCreateNewConnection': function () {
......@@ -112,7 +162,7 @@ Template.topNavbar.events({
'click .editor_remove': function (e) {
e.preventDefault();
var laddaButton = Ladda.create(document.querySelector('#btnConnect'));
laddaButton.start();
......@@ -321,7 +371,7 @@ Template.topNavbar.events({
return;
}
var laddaButton = Ladda.create(document.querySelector('#btnSaveConnection'));
laddaButton.start();
......@@ -342,7 +392,7 @@ Template.topNavbar.events({
'click #btnConnect': function () {
// loading button
var laddaButton = Ladda.create(document.querySelector('#btnConnect'));
laddaButton.start();
......@@ -509,7 +559,7 @@ Template.topNavbar.loadFile = function (callback, blob) {
};
Template.topNavbar.checkConnection = function (connection) {
var sshAuthTypeSelector = $('#cmbSshAuthType');
if (!connection.name) {
......@@ -590,7 +640,6 @@ Template.topNavbar.checkConnection = function (connection) {
Template.topNavbar.connect = function (isRefresh) {
var connection = Connections.findOne({_id: Session.get(Template.strSessionConnection)});
Meteor.call('connect', connection._id, function (err, result) {
if (err || result.error) {
Template.showMeteorFuncError(err, result, "Couldn't connect");
......@@ -609,11 +658,9 @@ Template.topNavbar.connect = function (isRefresh) {
if (!isRefresh) {
$('#connectionModal').modal('hide');
// swal({
// title: "Connected!",
// text: "Successfuly connected to " + connection.name,
// type: "success"
// });
$('#switchDatabaseModal').modal('hide');
Router.go('databaseStats');
}
else {
toastr.success("Successfuly refreshed collections");
......@@ -803,6 +850,19 @@ Template.topNavbar.populateConnectionsTable = function () {
}).draw();
};
Template.topNavbar.populateSwitchDatabaseTable = function (data) {
var tblSwitchDatabases = $('#tblSwitchDatabases');
tblSwitchDatabases.DataTable({
destroy: true,
data: data,
columns: [
{data: "name"}
],
columnDefs: []
}).draw();
};
Template.topNavbar.parseDatabaseNameFromUrl = function (url) {
try {
var lastIndex = url.length;
......
......@@ -55,9 +55,6 @@ Template.databaseStats.onRendered(function () {
// fetch stats only once.
Template.databaseStats.fetchStats();
}
if (Session.get(Template.strSessionCollectionNames) != undefined) {
toastr.info("It can take a few seconds to populate charts !");
}
});
Template.databaseStats.onDestroyed(function () {
......
......@@ -61,7 +61,7 @@ Meteor.methods({
};
if (connection.sshCertificate) {
config.privateKey = new Buffer( connection.sshCertificate );
config.privateKey = new Buffer(connection.sshCertificate);
}
if (connection.sshPassPhrase) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册