Stackedit/public/res/extensions/documentTitle.js

52 lines
1.6 KiB
JavaScript
Raw Normal View History

2013-05-27 19:45:33 +00:00
define([
"jquery",
2013-06-22 23:48:57 +00:00
"underscore",
2014-08-31 19:51:13 +00:00
"classes/Extension"
2013-06-22 23:48:57 +00:00
], 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
2013-11-07 23:10:38 +00:00
var fileDesc;
var $fileTitleNavbar;
2013-12-16 00:31:40 +00:00
var updateTitle = _.debounce(function(fileDescParameter) {
2013-05-29 19:55:23 +00:00
if(fileDescParameter !== fileDesc) {
return;
}
var title = fileDesc.title;
$fileTitleNavbar.html(fileDesc.composeTitle());
2013-05-29 19:55:23 +00:00
$(".file-title").text(title);
2013-08-06 23:52:58 +00:00
$(".input-file-title").val(title);
2013-12-16 00:31:40 +00:00
}, 50);
2013-05-29 19:55:23 +00:00
documentTitle.onFileSelected = function(fileDescParameter) {
fileDesc = fileDescParameter;
updateTitle(fileDescParameter);
};
documentTitle.onTitleChanged = updateTitle;
documentTitle.onSyncExportSuccess = updateTitle;
documentTitle.onSyncRemoved = updateTitle;
documentTitle.onNewPublishSuccess = updateTitle;
documentTitle.onPublishRemoved = updateTitle;
2013-12-16 00:31:40 +00:00
documentTitle.onReady = updateTitle;
2014-04-16 23:29:51 +00:00
documentTitle.onReady = function() {
$fileTitleNavbar = $(".file-title-navbar");
// Add a scrolling effect on hover
$fileTitleNavbar.hover(function() {
var scrollLeft = $fileTitleNavbar[0].scrollWidth - $fileTitleNavbar.outerWidth();
$fileTitleNavbar.stop(true, true).animate({
scrollLeft: scrollLeft
}, scrollLeft * 15, 'linear');
}, function() {
$fileTitleNavbar.stop(true, true).scrollLeft(0);
}).click(function() {
$fileTitleNavbar.stop(true, true).scrollLeft(0);
});
};
2013-05-29 19:55:23 +00:00
return documentTitle;
2014-04-16 23:29:51 +00:00
});