Commit ddd8adc1 authored by campaign's avatar campaign

Merge remote-tracking branch 'origin/dev' into dev

parents da9717dd ad50a2a5
# KityMinder Change List # KityMinder Change Log
## 1.1.0
## v1.1.0
### 功能更新 ### 功能更新
1. 添加了粘贴剪贴复制功能
1. 添加了剪贴板操作的支持
2. 添加了本地自动保存草稿的功能
3. 发布版本上添加了 Github 地址
### 功能调整
1. 视野定位功能抽取为 camera 命令,并且创建新文件和打开文件会把视野定位到根节点
### 问题修复 ### 问题修复
1. 修正了bottom主题的位置问题
1. 修正了 bottom 主题的位置问题
2. 修正了子节点全部删除后展开/收缩标志依然存在画布上的问题 2. 修正了子节点全部删除后展开/收缩标志依然存在画布上的问题
3. 修复了 bottom 主题的键盘导航出错的问题
4. 滚轮缩放的问题
## v1.0.1
### 问题修复
1. 修复 png 导出问题。
## v1.0.0
首个版本发布,包括基本的编辑功能。
...@@ -17,16 +17,13 @@ ...@@ -17,16 +17,13 @@
<link href="../themes/default/css/import.css" type="text/css" rel="stylesheet" /> <link href="../themes/default/css/import.css" type="text/css" rel="stylesheet" />
<link href="../dialogs/dialogs.css" rel="stylesheet" type="text/css" /> <link href="../dialogs/dialogs.css" rel="stylesheet" type="text/css" />
<script>
$(function () {
// create km instance
window.km = KM.getKityMinder('kityminder');
});
</script>
</head> </head>
<body> <body>
<div id="kityminder" onselectstart="return false"></div> <div id="kityminder" onselectstart="return false"></div>
</body> </body>
<script>
// create km instance
window.km = KM.getKityMinder('kityminder');
</script>
</html> </html>
\ No newline at end of file
...@@ -19,12 +19,6 @@ ...@@ -19,12 +19,6 @@
<link rel="stylesheet" href="css/links.css" /> <link rel="stylesheet" href="css/links.css" />
<script>
$(function () {
// create km instance
window.km = KM.getKityMinder('kityminder');
});
</script>
</head> </head>
<body> <body>
...@@ -39,4 +33,8 @@ ...@@ -39,4 +33,8 @@
</p> </p>
</body> </body>
<script>
// create km instance
window.km = KM.getKityMinder('kityminder');
</script>
</html> </html>
\ No newline at end of file
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -10,10 +10,8 @@ $.extend( $.fn, { ...@@ -10,10 +10,8 @@ $.extend( $.fn, {
}, },
loading: function ( text ) { loading: function ( text ) {
if ( text ) { if ( text ) {
if ( !this.disabled() ) { this.disabled( true );
this.disabled( true ); this.attr( 'origin-text', this.text() );
this.attr( 'origin-text', this.text() );
}
this.text( text ); this.text( text );
} else { } else {
this.text( this.attr( 'origin-text' ) ); this.text( this.attr( 'origin-text' ) );
...@@ -49,7 +47,7 @@ $( function () { ...@@ -49,7 +47,7 @@ $( function () {
} }
} )(); } )();
$login_btn = $( '<button>登录</button>' ).addClass( 'login' ).click( login ); $login_btn = $( '<button>登录</button>' ).addClass( 'login' ).click( login ).appendTo( $panel );
$user_btn = $( '<button><span class="text"></span></button>' ).addClass( 'user-file' ); $user_btn = $( '<button><span class="text"></span></button>' ).addClass( 'user-file' );
...@@ -69,13 +67,16 @@ $( function () { ...@@ -69,13 +67,16 @@ $( function () {
$user_menu.attachTo( $user_btn ); $user_menu.attachTo( $user_btn );
$save_btn = $( '<button>保存</button>' ).click( saveThisFile ).addClass( 'baidu-cloud' ); $save_btn = $( '<button>保存</button>' ).click( saveThisFile )
.addClass( 'baidu-cloud' ).appendTo( $panel ).disabled( true );
$share_btn = $( '<button>分享</button>' ).click( shareThisFile ).addClass( 'share' ); $share_btn = $( '<button>分享</button>' ).click( shareThisFile )
.addClass( 'share' ).appendTo( $panel ).disabled( true );
var AK, thisMapFilename, currentUser, share_id = uuid(), var AK, thisMapFilename, currentUser, share_id = uuid(),
isShareLink; isShareLink, isFileSaved = true,
draft = {};
AK = 'wiE55BGOG8BkGnpPs6UNtPbb'; AK = 'wiE55BGOG8BkGnpPs6UNtPbb';
...@@ -100,9 +101,9 @@ $( function () { ...@@ -100,9 +101,9 @@ $( function () {
function setCurrentUser( user ) { function setCurrentUser( user ) {
currentUser = user; currentUser = user;
$user_btn.text( user.getName() + ' 的脑图' ); $user_btn.text( user.getName() + ' 的脑图' );
$user_btn.appendTo( $panel ); $user_btn.prependTo( $panel );
$save_btn.appendTo( $panel ); $save_btn.disabled( false );
$share_btn.appendTo( $panel ); $share_btn.disabled( false );
$login_btn.detach(); $login_btn.detach();
loadRecent(); loadRecent();
loadAvator(); loadAvator();
...@@ -129,11 +130,14 @@ $( function () { ...@@ -129,11 +130,14 @@ $( function () {
by: 'time', by: 'time',
success: function ( result ) { success: function ( result ) {
if ( result.list.length ) { if ( result.list.length ) {
if ( !isShareLink && !thisMapFilename ) { if ( !isShareLink && !thisMapFilename && !draft.data ) {
loadPersonal( result.list[ 0 ].path ); loadPersonal( result.list[ 0 ].path );
} else { } else {
$user_btn.loading( false ); $user_btn.loading( false );
} }
if ( draft.data ) {
setFileSaved( false );
}
addToRecentMenu( result.list ); addToRecentMenu( result.list );
} }
} }
...@@ -165,7 +169,6 @@ $( function () { ...@@ -165,7 +169,6 @@ $( function () {
function loadPersonal( path ) { function loadPersonal( path ) {
var sto = baidu.frontia.personalStorage; var sto = baidu.frontia.personalStorage;
thisMapFilename = path;
$user_btn.loading( '加载“' + getFileName( path ) + '”...' ); $user_btn.loading( '加载“' + getFileName( path ) + '”...' );
sto.getFileUrl( path, { sto.getFileUrl( path, {
success: function ( url ) { success: function ( url ) {
...@@ -174,8 +177,12 @@ $( function () { ...@@ -174,8 +177,12 @@ $( function () {
url: url, url: url,
dataType: 'text', dataType: 'text',
success: function ( result ) { success: function ( result ) {
thisMapFilename = path;
window.km.importData( result, 'json' ); window.km.importData( result, 'json' );
$user_btn.loading( false ).text( getFileName( path ) ); window.km.execCommand( 'camera', window.km.getRoot() );
$user_btn.loading( false );
setFileSaved( true );
clearDraft();
} }
} ); } );
} }
...@@ -197,17 +204,17 @@ $( function () { ...@@ -197,17 +204,17 @@ $( function () {
var data = window.km.exportData( 'json' ); var data = window.km.exportData( 'json' );
save( data, thisMapFilename || getMapFileName(), function ( success, info ) { save( data, thisMapFilename || getMapFileName(), function ( success, info ) {
if ( success ) { if ( success ) {
$save_btn.text( '保存成功!' ); thisMapFilename = info.path;
setTimeout( function () { $save_btn.text( '已保存!' );
$save_btn.loading( false );
}, 3000 );
if ( !thisMapFilename ) { if ( !thisMapFilename ) {
thisMapFilename = info.path;
addToRecentMenu( [ info ] ); addToRecentMenu( [ info ] );
$user_btn.text( getFileName( thisMapFilename ) ); $user_btn.text( getFileName( thisMapFilename ) );
checkAutoSave();
} }
setFileSaved( true );
} else {
$save_btn.loading( false ).text( '保存失败!' );
} }
console.log( info );
} ); } );
$save_btn.loading( '正在保存...' ); $save_btn.loading( '正在保存...' );
} }
...@@ -217,13 +224,14 @@ $( function () { ...@@ -217,13 +224,14 @@ $( function () {
var options = { var options = {
ondup: thisMapFilename ? sto.constant.ONDUP_OVERWRITE : sto.constant.ONDUP_NEWCOPY, ondup: thisMapFilename ? sto.constant.ONDUP_OVERWRITE : sto.constant.ONDUP_NEWCOPY,
success: function ( result ) { success: function ( result ) {
callback( true, result ); callback( !!result.path, result );
}, },
error: function ( error ) { error: function ( error ) {
callback( false, error ); callback( false, error );
} }
}; };
sto.uploadTextFile( file, filename, options ); sto.uploadTextFile( file, filename, options );
clearDraft();
} }
function uuid() { function uuid() {
...@@ -315,19 +323,67 @@ $( function () { ...@@ -315,19 +323,67 @@ $( function () {
var pattern = /path=(.+?)([&#]|$)/; var pattern = /path=(.+?)([&#]|$)/;
var match = pattern.exec( window.location ) || pattern.exec( document.referrer ); var match = pattern.exec( window.location ) || pattern.exec( document.referrer );
if ( !match ) return; if ( !match ) return;
thisMapFilename = decodeURIComponent( match[ 1 ] ); var path = decodeURIComponent( match[ 1 ] );
loadPersonal( path );
}
function setFileSaved( saved ) {
$save_btn.disabled( !currentUser || saved );
if ( saved ) {
$user_btn.text( getFileName( thisMapFilename ) );
clearDraft();
} else {
$save_btn.text( '保存' );
$user_btn.text( getFileName( thisMapFilename || draft.filename || getMapFileName() ) + ' *' );
}
}
function checkAutoSave() {
var sto = window.localStorage;
if ( !sto ) return;
draft = {
filename: thisMapFilename || getMapFileName(),
data: window.km.exportData( 'json' )
};
sto.setItem( 'draft_filename', draft.filename );
sto.setItem( 'draft_data', draft.data );
setFileSaved( false );
}
function loadAutoSave() {
var sto = window.localStorage;
if ( !sto ) return;
draft.data = sto.getItem( 'draft_data' );
thisMapFilename = draft.filename = sto.getItem( 'draft_filename' );
if ( draft.data ) {
window.km.importData( draft.data, 'json' );
setFileSaved( false );
}
} }
function clearDraft() {
var sto = window.localStorage;
if ( !sto ) return;
sto.removeItem( 'draft_data' );
sto.removeItem( 'draft_filename' );
}
loadShare(); loadShare();
if ( !isShareLink ) {
loadAutoSave();
}
currentUser = baidu.frontia.getCurrentAccount(); currentUser = baidu.frontia.getCurrentAccount();
if ( currentUser ) { if ( currentUser ) {
setCurrentUser( currentUser ); setCurrentUser( currentUser );
loadPath(); loadPath();
if ( thisMapFilename ) {
loadPersonal( thisMapFilename );
}
} else {
$login_btn.appendTo( $panel );
} }
window.km.on( 'contentchange', checkAutoSave );
} ); } );
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment