@@ -17,7 +17,8 @@ define([
1717 'css!../../css/menuFrame.css' ,
1818
1919 '../com/com_Config' ,
20- '../com/com_Const' ,
20+ '../com/com_util' ,
21+ '../com/com_interface' ,
2122 '../com/component/Component' ,
2223 '../com/component/SuggestInput' ,
2324
@@ -26,7 +27,7 @@ define([
2627 './MenuGroup' ,
2728 './MenuItem' ,
2829 './TaskBar'
29- ] , function ( menuFrameHtml , menuFrameCss , com_Config , com_Const , Component , SuggestInput ,
30+ ] , function ( menuFrameHtml , menuFrameCss , com_Config , com_util , com_interface , Component , SuggestInput ,
3031 librariesJson ,
3132 MenuGroup , MenuItem , TaskBar ) {
3233 'use strict' ;
@@ -85,6 +86,41 @@ define([
8586 $ ( this . wrapSelector ( '#vp_headerExtraMenu li' ) ) . on ( 'click' , function ( ) {
8687 let menu = $ ( this ) . data ( 'menu' ) ;
8788 switch ( menu ) {
89+ case 'check-version' :
90+ // check vp version
91+ let nowVersion = vpConfig . getVpInstalledVersion ( ) ;
92+ vpConfig . getPackageVersion ( ) . then ( function ( latestVersion ) {
93+ if ( nowVersion === latestVersion ) {
94+ // if it's already up to date
95+ let msg = com_util . formatString ( 'Visualpython is up to date. ({0})' , latestVersion ) ;
96+ com_util . renderInfoModal ( msg ) ;
97+ } else {
98+ let msg = com_util . formatString ( 'Visualpython updates are available.\n(Latest version: {0})' , latestVersion ) ;
99+ com_util . renderModal ( {
100+ title : 'Check version' ,
101+ message : msg ,
102+ buttons : [ 'Cancel' , 'Update' ] ,
103+ defaultButtonIdx : 0 ,
104+ buttonClass : [ 'cancel' , 'activated' ] ,
105+ finish : function ( clickedBtnIdx ) {
106+ switch ( clickedBtnIdx ) {
107+ case 0 :
108+ // cancel
109+ break ;
110+ case 1 :
111+ // update
112+ com_interface . insertCell ( 'code' , '!pip install visualpython --upgrade' ) ;
113+ com_interface . insertCell ( 'code' , '!visualpy install' ) ;
114+ // TODO: refresh browser, after executed
115+ break ;
116+ }
117+ }
118+ } )
119+ }
120+ } ) . catch ( function ( err ) {
121+ com_util . renderAlertModal ( err ) ;
122+ } )
123+ break ;
88124 case 'restart' :
89125 // restart vp
90126 vpConfig . readKernelFunction ( ) ;
0 commit comments