js refactor

This commit is contained in:
Ezequiel Bergamaschi 2014-01-28 00:28:42 -03:00 committed by Ezequiel Bergamaschi
parent c7b193f43f
commit acb3782561
4 changed files with 193 additions and 194 deletions

View File

@ -0,0 +1,167 @@
$(function () {
// Creation buttons actions ...
$("#newMapBtn").click(
function () {
$("#new-dialog-modal").dialogForm({
redirect:"c/maps/{header.resourceId}/edit",
url:"c/restful/maps"
});
}
);
$("#newFolderBtn").click(
function () {
$("#new-folder-dialog-modal").dialogForm({
url:"c/restful/labels",
postUpdate: createLabelItem
});
}
);
$("#duplicateBtn").click(function () {
// Map to be cloned ...
var tableElem = $('#mindmapListTable');
var rows = tableElem.dataTableExt.getSelectedRows();
if (rows.length > 0) {
// Obtain map name ...
var rowData = tableElem.dataTable().fnGetData(rows[0]);
$('#dupDialogTitle').text("Duplicate '" + rowData.title + "'");
// Obtains map id ...
var mapId = rowData.id;
// Initialize dialog ...
$("#duplicate-dialog-modal").dialogForm({
redirect:"c/maps/{header.resourceId}/edit",
url:"c/restful/maps/" + mapId
});
}
});
$("#renameBtn").click(function () {
// Map to be cloned ...
var tableElem = $('#mindmapListTable');
var rows = tableElem.dataTableExt.getSelectedRows();
if (rows.length > 0) {
// Obtain map name ...
var dataTable = tableElem.dataTable();
var rowData = dataTable.fnGetData(rows[0]);
// Fill dialog with default values ...
var mapId = rowData.id;
$("#rename-dialog-modal input[name='title']").attr('value', rowData.title);
$("#rename-dialog-modal input[name='description']").attr('value', rowData.description);
// Set title ...
$('#renameDialogTitle').text("Rename '" + rowData.title + "'");
// Initialize dialog ...
$("#rename-dialog-modal").dialogForm({
type:'PUT',
clearForm:false,
postUpdate:function (reqBodyData) {
tableElem.dataTableExt.removeSelectedRows();
rowData.title = reqBodyData.title;
rowData.description = reqBodyData.description;
dataTable.fnAddData(JSON.parse(JSON.stringify(rowData)));
},
url:"c/restful/maps/" + mapId
});
}
});
$("#deleteBtn").click(function () {
var tableUI = $('#mindmapListTable');
var mapIds = tableUI.dataTableExt.getSelectedMapsIds();
if (mapIds.length > 0) {
// Initialize dialog ...
$("#delete-dialog-modal").dialogForm({
type:'DELETE',
postUpdate:function () {
// Remove old entry ...
tableUI.dataTableExt.removeSelectedRows();
},
url:"c/restful/maps/batch?ids=" + jQuery.makeArray(mapIds).join(',')
});
}
});
$("#printBtn").click(function () {
var mapIds = $('#mindmapListTable').dataTableExt.getSelectedMapsIds();
if (mapIds.length > 0) {
// Hack: IE ignore the base href tag ...
var baseUrl = window.location.href.substring(0, window.location.href.lastIndexOf("c/maps/"));
window.open(baseUrl + 'c/maps/' + mapIds[0] + '/print');
}
});
$("#infoBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/details", 'info-dialog-modal');
});
$("#historyBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/history", 'history-dialog-modal');
});
$("#publishBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/publish", "publish-dialog-modal");
});
$("#exportBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/export", 'export-dialog-modal');
});
$("#importBtn").click(function () {
showEmbeddedDialog("c/maps/import", 'import-dialog-modal', true);
});
$("#shareBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/share", 'share-dialog-modal', true);
});
var showEmbeddedDialog = function (urlTemplate, dialogElemId, ignore) {
var mapIds = $('#mindmapListTable').dataTableExt.getSelectedMapsIds();
if (mapIds.length > 0 || ignore) {
var mapId = mapIds[0];
$('#' + dialogElemId + ' .modal-body').load(urlTemplate.replace("{mapId}", mapId),
function () {
$('#' + dialogElemId + ' .btn-accept').unbind('click').click(function () {
submitDialogForm();
});
$('#' + dialogElemId).modal();
});
}
};
$('#foldersContainer li').click(function (event) {
// Deselect previous option ...
$('#foldersContainer li').removeClass('active');
$('#foldersContainer i').removeClass('icon-white');
// Select the new item ...
var dataTable = $('#mindmapListTable').dataTable();
$(this).addClass('active');
$('#foldersContainer .active i').addClass('icon-white');
// Reload the table data ...
dataTable.fnReloadAjax("c/restful/maps/?q=" + $(this).attr('data-filter'), callbackOnTableInit, true);
event.preventDefault();
});
$("#parentLblCheckbox").click(
function () {
if ($(this).is(":checked")) {
$("#dropdownLabel").prop("disabled", false);
} else {
$("#dropdownLabel").prop("disabled", true);
}
}
);
$(document).ready(fetchLabels())
});

View File

@ -0,0 +1,24 @@
function createLabelItem(data) {
$("#foldersContainer").find("ul").append(
$("<li data-filter=\"" + data.title + "\">").append(
"<a href=\"#\"> <i class=\"icon-tag\"></i>" + data.title + "</a>"
)
)
}
function fetchLabels() {
jQuery.ajax("c/restful/labels/", {
async:false,
dataType:'json',
type:'GET',
success:function (data) {
var labels = data.labels;
for (var i = 0; i < labels.length; i++) {
createLabelItem(labels[i])
}
},
error:function (jqXHR, textStatus, errorThrown) {
$('#messagesPanel div').text(errorThrown).parent().show();
}
});
}

View File

@ -190,24 +190,6 @@ function updateStatusToolbar() {
}
}
function fetchLabels() {
jQuery.ajax("c/restful/labels/", {
async:false,
dataType:'json',
type:'GET',
success:function (data) {
var labels = data.labels;
for (var i = 0; i < labels.length; i++) {
createLabelItem(labels[i])
}
},
error:function (jqXHR, textStatus, errorThrown) {
$('#messagesPanel div').text(errorThrown).parent().show();
}
});
}
// Update toolbar events ...
function updateStarred(spanElem) {
$(spanElem).removeClass('starredOff');
@ -261,182 +243,6 @@ function callbackOnTableInit() {
updateStatusToolbar();
}
function createLabelItem(data) {
$("#foldersContainer").find("ul").append(
$("<li data-filter=\"" + data.title + "\">").append(
"<a href=\"#\"> <i class=\"icon-tag\"></i>" + data.title + "</a>"
)
)
}
$(function () {
// Creation buttons actions ...
$("#newMapBtn").click(
function () {
$("#new-dialog-modal").dialogForm({
redirect:"c/maps/{header.resourceId}/edit",
url:"c/restful/maps"
});
}
);
$("#newFolderBtn").click(
function () {
$("#new-folder-dialog-modal").dialogForm({
url:"c/restful/labels",
postUpdate: createLabelItem
});
}
);
$("#duplicateBtn").click(function () {
// Map to be cloned ...
var tableElem = $('#mindmapListTable');
var rows = tableElem.dataTableExt.getSelectedRows();
if (rows.length > 0) {
// Obtain map name ...
var rowData = tableElem.dataTable().fnGetData(rows[0]);
$('#dupDialogTitle').text("Duplicate '" + rowData.title + "'");
// Obtains map id ...
var mapId = rowData.id;
// Initialize dialog ...
$("#duplicate-dialog-modal").dialogForm({
redirect:"c/maps/{header.resourceId}/edit",
url:"c/restful/maps/" + mapId
});
}
});
$("#renameBtn").click(function () {
// Map to be cloned ...
var tableElem = $('#mindmapListTable');
var rows = tableElem.dataTableExt.getSelectedRows();
if (rows.length > 0) {
// Obtain map name ...
var dataTable = tableElem.dataTable();
var rowData = dataTable.fnGetData(rows[0]);
// Fill dialog with default values ...
var mapId = rowData.id;
$("#rename-dialog-modal input[name='title']").attr('value', rowData.title);
$("#rename-dialog-modal input[name='description']").attr('value', rowData.description);
// Set title ...
$('#renameDialogTitle').text("Rename '" + rowData.title + "'");
// Initialize dialog ...
$("#rename-dialog-modal").dialogForm({
type:'PUT',
clearForm:false,
postUpdate:function (reqBodyData) {
tableElem.dataTableExt.removeSelectedRows();
rowData.title = reqBodyData.title;
rowData.description = reqBodyData.description;
dataTable.fnAddData(JSON.parse(JSON.stringify(rowData)));
},
url:"c/restful/maps/" + mapId
});
}
});
$("#deleteBtn").click(function () {
var tableUI = $('#mindmapListTable');
var mapIds = tableUI.dataTableExt.getSelectedMapsIds();
if (mapIds.length > 0) {
// Initialize dialog ...
$("#delete-dialog-modal").dialogForm({
type:'DELETE',
postUpdate:function () {
// Remove old entry ...
tableUI.dataTableExt.removeSelectedRows();
},
url:"c/restful/maps/batch?ids=" + jQuery.makeArray(mapIds).join(',')
});
}
});
$("#printBtn").click(function () {
var mapIds = $('#mindmapListTable').dataTableExt.getSelectedMapsIds();
if (mapIds.length > 0) {
// Hack: IE ignore the base href tag ...
var baseUrl = window.location.href.substring(0, window.location.href.lastIndexOf("c/maps/"));
window.open(baseUrl + 'c/maps/' + mapIds[0] + '/print');
}
});
$("#infoBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/details", 'info-dialog-modal');
});
$("#historyBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/history", 'history-dialog-modal');
});
$("#publishBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/publish", "publish-dialog-modal");
});
$("#exportBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/export", 'export-dialog-modal');
});
$("#importBtn").click(function () {
showEmbeddedDialog("c/maps/import", 'import-dialog-modal', true);
});
$("#shareBtn").click(function () {
showEmbeddedDialog("c/maps/{mapId}/share", 'share-dialog-modal', true);
});
var showEmbeddedDialog = function (urlTemplate, dialogElemId, ignore) {
var mapIds = $('#mindmapListTable').dataTableExt.getSelectedMapsIds();
if (mapIds.length > 0 || ignore) {
var mapId = mapIds[0];
$('#' + dialogElemId + ' .modal-body').load(urlTemplate.replace("{mapId}", mapId),
function () {
$('#' + dialogElemId + ' .btn-accept').unbind('click').click(function () {
submitDialogForm();
});
$('#' + dialogElemId).modal();
});
}
};
$('#foldersContainer li').click(function (event) {
// Deselect previous option ...
$('#foldersContainer li').removeClass('active');
$('#foldersContainer i').removeClass('icon-white');
// Select the new item ...
var dataTable = $('#mindmapListTable').dataTable();
$(this).addClass('active');
$('#foldersContainer .active i').addClass('icon-white');
// Reload the table data ...
dataTable.fnReloadAjax("c/restful/maps/?q=" + $(this).attr('data-filter'), callbackOnTableInit, true);
event.preventDefault();
});
$("#parentLblCheckbox").click(
function () {
if ($(this).is(":checked")) {
$("#dropdownLabel").prop("disabled", false);
} else {
$("#dropdownLabel").prop("disabled", true);
}
}
);
$(document).ready(fetchLabels())
});
// Register time update functions ....
setTimeout(function () {
jQuery("abbr.timeago").timeago()

View File

@ -25,6 +25,8 @@
<!--jQuery DataTables-->
<script type="text/javascript" language="javascript" src="js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript" src="js/mindmapList.js"></script>
<script type="text/javascript" language="javascript" src="js/buttonActions.js"></script>
<script type="text/javascript" language="javascript" src="js/labelActions.js"></script>
<!-- Update timer plugging -->
<script type="text/javascript" language="javascript" src="js/jquery.timeago.js"></script>