2013-05-27 19:45:33 +00:00
|
|
|
define([
|
|
|
|
"jquery",
|
2013-06-22 23:48:57 +00:00
|
|
|
"underscore",
|
|
|
|
"classes/Extension",
|
|
|
|
], function($, _, Extension) {
|
2013-05-29 19:55:23 +00:00
|
|
|
|
2013-06-22 23:48:57 +00:00
|
|
|
var documentTitle = new Extension("documentTitle", "Document Title");
|
2013-05-29 19:55:23 +00:00
|
|
|
|
|
|
|
var layout = undefined;
|
|
|
|
documentTitle.onLayoutCreated = function(layoutParameter) {
|
|
|
|
layout = layoutParameter;
|
|
|
|
};
|
|
|
|
|
|
|
|
var fileDesc = undefined;
|
|
|
|
var updateTitle = function(fileDescParameter) {
|
|
|
|
if(fileDescParameter !== fileDesc) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
function composeTitle(fileDesc) {
|
|
|
|
var result = [];
|
|
|
|
var syncAttributesList = _.values(fileDesc.syncLocations);
|
|
|
|
var publishAttributesList = _.values(fileDesc.publishLocations);
|
|
|
|
var attributesList = syncAttributesList.concat(publishAttributesList);
|
|
|
|
_.chain(attributesList).sortBy(function(attributes) {
|
|
|
|
return attributes.provider.providerId;
|
|
|
|
}).each(function(attributes) {
|
2013-08-05 14:05:34 +00:00
|
|
|
var classes = 'icon-provider-' + attributes.provider.providerId;
|
2013-07-21 14:38:53 +00:00
|
|
|
if(attributes.isRealtime === true) {
|
|
|
|
classes += " realtime";
|
|
|
|
}
|
|
|
|
result.push('<i class="' + classes + '"></i>');
|
2013-05-29 19:55:23 +00:00
|
|
|
});
|
|
|
|
result.push(" ");
|
|
|
|
result.push(fileDesc.title);
|
|
|
|
return result.join("");
|
|
|
|
}
|
|
|
|
|
|
|
|
var title = fileDesc.title;
|
|
|
|
document.title = "StackEdit - " + title;
|
|
|
|
$("#file-title").html(composeTitle(fileDesc));
|
|
|
|
$(".file-title").text(title);
|
|
|
|
$("#file-title-input").val(title);
|
|
|
|
|
|
|
|
if(layout !== undefined) {
|
|
|
|
// Use defer to make sure UI has been updated
|
|
|
|
_.defer(layout.resizeAll);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
documentTitle.onFileSelected = function(fileDescParameter) {
|
|
|
|
fileDesc = fileDescParameter;
|
|
|
|
updateTitle(fileDescParameter);
|
|
|
|
};
|
|
|
|
|
|
|
|
documentTitle.onTitleChanged = updateTitle;
|
|
|
|
documentTitle.onSyncExportSuccess = updateTitle;
|
|
|
|
documentTitle.onSyncRemoved = updateTitle;
|
|
|
|
documentTitle.onNewPublishSuccess = updateTitle;
|
|
|
|
documentTitle.onPublishRemoved = updateTitle;
|
|
|
|
|
|
|
|
return documentTitle;
|
|
|
|
|
2013-05-26 22:59:17 +00:00
|
|
|
});
|