/** * @fileOverview * * 显示并更新脑图文件的标题 * * @author: techird * @copyright: Baidu FEX, 2014 */ KityMinder.registerUI('topbar/title', function(minder) { var $title = $('

').appendTo('#panel'); var $doc = minder.getUI('doc'); var finder = minder.getUI('widget/netdiskfinder'); var notice = minder.getUI('widget/notice'); var renameEnabled = false; var renameMode = false; $doc.on('docchange', update); $title.on('click', rename); function rename() { if (!renameEnabled || renameMode) return; var doc = $doc.current(); var $input = $('').width($title.find('.title-content').width()); var oldFilename = doc.title; var oldPath = doc.path; $input.val(oldFilename); setTimeout(function() { $input[0].select(); }); $title.addClass('rename-mode'); $title.empty(); $title.append($input); renameMode = true; $input.on('keydown', function(e) { if (e.keyCode == 13) confirm(); else if (e.keyCode == 27) { cancel(); e.stopPropagation(); } }).on('blur', cancel); function exit() { setTimeout(function() { renameMode = false; }); } function cancel() { update(); exit(); } function confirm() { var newFilename = $input.val(); var oldFilenameInfo = fio.file.anlysisPath(oldFilename); var newFilenameInfo = fio.file.anlysisPath(newFilename); if (!newFilenameInfo.name.length) return cancel(); newFilename = newFilenameInfo.name + oldFilenameInfo.extension; var newPath = fio.file.anlysisPath(oldPath).parentPath + newFilename; if (newPath == oldPath) return cancel(); $title.addClass('loading'); fio.file.move({ path: oldPath, newPath: newPath }).then(function() { doc.path = newPath; doc.title = newFilename; finder.fire('mv', oldPath, newPath); notice.info(minder.getLang('ui.rename_success', newFilename)); })['catch'](function(e) { notice.error('err_rename', e); }).then(function() { $title.removeClass('loading'); update(); exit(); }); } } function enableRename(enabled) { renameEnabled = enabled; if (enabled) $title.addClass('rename-enabled'); else $title.removeClass('rename-enabled'); } function update() { var doc = $doc.current(); function setTitle(title) { if (setTitle.lastValue == title) return; title = title || minder.getLang('ui.untitleddoc'); $title.empty().append($('').text(title)); document.title = title ? title + ' - 百度脑图' : '百度脑图'; setTitle.lastValue = title; } if (doc.saved) { setTitle(doc.title); } else { setTitle('* ' + doc.title); } enableRename(doc.source == 'netdisk' && doc.saved); } update(); return { $title: $title, getTitle: function() { return $doc.current().title; } }; });