(function($scope) {
/* Initialize $scope variables */
$scope.datatables = {};
$scope.jaxon = null;
// Initialise Datatables elements
$scope.initTables = function() {
var datatables_config = {
'autoWidth': false,
'processing': true,
'serverSide': true,
'drawCallback': function () {
// Compile Angular bindings on each draw
// $compile($(this))($scope);
}
};
if ($('#admin_users_table').length) {
$scope.datatables['admin_users_table'] = $('#admin_users_table').DataTable($.extend({
"ajax": function(data, callback, settings) {
// Pass the Datatables callback and settings to the Jaxon call
$scope.jaxon = {callback: callback, settings: settings};
Lagdo.Polr.Admin.App.User.getUsers(data);
// Clear the Datatables data after the Jaxon call
$scope.jaxon = null;
},
// "ajax": BASE_API_PATH + 'get_admin_users',
"columns": [
{className: 'wrap-text', data: 'username', name: 'username'},
{className: 'wrap-text', data: 'email', name: 'email'},
{data: 'created_at', name: 'created_at'},
{data: 'toggle_active', name: 'toggle_active', orderable: false, searchable: false},
{data: 'api_action', name: 'api_action', orderable: false, searchable: false},
{data: 'change_role', name: 'change_role', orderable: false, searchable: false},
{data: 'delete', name: 'delete', orderable: false, searchable: false}
]
}, datatables_config));
}
if ($('#admin_links_table').length) {
$scope.datatables['admin_links_table'] = $('#admin_links_table').DataTable($.extend({
"ajax": function(data, callback, settings) {
// Pass the Datatables callback and settings to the Jaxon call
$scope.jaxon = {callback: callback, settings: settings};
Lagdo.Polr.Admin.App.Link.getAdminLinks(data);
// Clear the Datatables data after the Jaxon call
$scope.jaxon = null;
},
// "ajax": BASE_API_PATH + 'get_admin_links',
"columns": [
{className: 'wrap-text', data: 'short_url', name: 'short_url'},
{className: 'wrap-text', data: 'long_url', name: 'long_url'},
{data: 'clicks', name: 'clicks'},
{data: 'created_at', name: 'created_at'},
{data: 'creator', name: 'creator'},
{data: 'disable', name: 'disable', orderable: false, searchable: false},
{data: 'delete', name: 'delete', orderable: false, searchable: false}
]
}, datatables_config));
}
$scope.datatables['user_links_table'] = $('#user_links_table').DataTable($.extend({
"ajax": function(data, callback, settings) {
// Pass the Datatables callback and settings to the Jaxon call
$scope.jaxon = {callback: callback, settings: settings};
Lagdo.Polr.Admin.App.Link.getUserLinks(data);
// Clear the Datatables data after the Jaxon call
$scope.jaxon = null;
},
// "ajax": BASE_API_PATH + 'get_user_links',
"columns": [
{className: 'wrap-text', data: 'short_url', name: 'short_url'},
{className: 'wrap-text', data: 'long_url', name: 'long_url'},
{data: 'clicks', name: 'clicks'},
{data: 'created_at', name: 'created_at'}
]
}, datatables_config));
};
$scope.reloadLinkTables = function () {
// Reload DataTables for affected tables
// without resetting page
if ('admin_links_table' in $scope.datatables) {
$scope.datatables['admin_links_table'].ajax.reload(null, false);
}
$scope.datatables['user_links_table'].ajax.reload(null, false);
};
$scope.reloadUserTables = function () {
$scope.datatables['admin_users_table'].ajax.reload(null, false);
};
function setTip(tip) {
$("#tips").html(tip);
}
function changeTips(tcase) {
switch (tcase) {
case 1:
setTip('Create an account to keep track of your links');
break;
case 2:
setTip('Did you know you can change the URL ending by clicking on "Link Options"?');
i = 1;
break;
}
}
/*
Initialisation
*/
$scope.init = function() {
var optionsButton = $('#show-link-options');
$('#options').hide();
var slide = 0;
optionsButton.click(function() {
if (slide === 0) {
$("#options").slideDown();
slide = 1;
} else {
$("#options").slideUp();
slide = 0;
}
});
min = 1;
max = 2;
var i = Math.floor(Math.random() * (max - min + 1)) + min;
changeTips(i);
var tipstimer = setInterval(function() {
changeTips(i);
i++;
}, 8000);
$('.admin-nav a').click(function(e) {
e.preventDefault();
$(this).tab('show');
});
$('.new-user-fields').hide();
$scope.initTables();
};
// $scope.init();
})(polr.home);
|