Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0acaec1

Browse files
author
minjk-bl
committed
Edit package manager
1 parentafafa8b commit0acaec1

File tree

3 files changed

+54
-8
lines changed

3 files changed

+54
-8
lines changed

‎visualpython/css/component/packageManager.css‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
}
7575
.vp-pm-func-right {
7676
float: right;
77+
display: flex;
7778
}
7879
.vp-pm-sort {
7980
cursor: pointer;
@@ -100,6 +101,14 @@
100101
.vp-pm-sort-menu-item:hover {
101102
color:var(--vp-font-highlight);
102103
}
104+
.vp-pm-func-reload {
105+
width:22px;
106+
height:22px;
107+
display: inline-block;
108+
margin-top:4px;
109+
margin-right:10px;
110+
cursor: pointer;
111+
}
103112
/* Empty List */
104113
.vp-pm-table {
105114
margin-top:10px;

‎visualpython/html/component/packageManager.html‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@
1212
<divclass="vp-pm-sort vp-close-on-blur-btn"data-menu="sort"title="Sort">
1313
</div>
1414
<divclass="vp-pm-sort-menu-box vp-temp-popup-menu vp-close-on-blur">
15+
<divclass="vp-pm-sort-menu-item"data-menu="registered">Registered</div>
1516
<divclass="vp-pm-sort-menu-item"data-menu="name">by Names</div>
1617
<divclass="vp-pm-sort-menu-item"data-menu="installed">Installed</div>
1718
<divclass="vp-pm-sort-menu-item"data-menu="uninstalled">Uninstalled</div>
1819
</div>
1920
</div>
2021
<divclass="vp-pm-func-right">
22+
<divclass="vp-pm-func-reload vp-icon-refresh"title="Reload package list">
23+
24+
</div>
2125
<divclass="vp-pm-func-default-mode">
2226
<buttonclass="vp-button vp-pm-add"data-menu="add"title="Add new package to manage">+ Package</button>
2327
</div>

‎visualpython/js/com/component/PackageManager.js‎

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ define([
1717
'vp_base/js/com/com_util',
1818
'vp_base/js/com/com_Const',
1919
'vp_base/js/com/com_String',
20+
'vp_base/js/com/component/SuggestInput',
2021
'vp_base/js/com/component/PopupComponent',
2122
'vp_base/js/com/component/FileNavigation',
2223
'vp_base/js/com/component/LoadingSpinner'
23-
],function(ifHtml,ifCss,com_util,com_Const,com_String,PopupComponent,FileNavigation,LoadingSpinner){
24+
],function(ifHtml,ifCss,com_util,com_Const,com_String,SuggestInput,PopupComponent,FileNavigation,LoadingSpinner){
2425

2526
/**
2627
* PackageManager
@@ -89,18 +90,24 @@ define([
8990
}
9091
}
9192

93+
_unbindEvent(){
94+
super._unbindEvent();
95+
$(document).off('change',this.wrapSelector('.vp-pm-search'));
96+
}
97+
9298
_bindEvent(){
9399
super._bindEvent();
94100
/** Implement binding events */
95101
letthat=this;
96102

97103
// search item
98-
$(this.wrapSelector('.vp-pm-search')).on('change',function(evt){
104+
$(document).on('change',this.wrapSelector('.vp-pm-search'),function(evt){
99105
varvalue=$(this).val();
100106
if(value!=''){
101107
$(that.wrapSelector('.vp-pm-item')).hide();
102108
$(that.wrapSelector('.vp-pm-item')).filter(function(){
103-
return$(this).data('key').search(value)>=0;
109+
letkey=$(this).data('key');
110+
returnkey.search(value.toLowerCase())>=0;
104111
}).show();
105112
}else{
106113
$(that.wrapSelector('.vp-pm-item')).show();
@@ -116,7 +123,14 @@ define([
116123
// sort item
117124
$(this.wrapSelector('.vp-pm-sort-menu-item')).on('click',function(){
118125
varmenu=$(this).data('menu');
119-
if(menu==='name'){
126+
if(menu==='registered'){
127+
// sort by name
128+
$(that.wrapSelector('.vp-pm-item')).sort(function(a,b){
129+
varkeyA=parseInt($(a).data('seq'));
130+
varkeyB=parseInt($(b).data('seq'));
131+
returnkeyA>keyB ?1 :-1
132+
}).appendTo($(that.wrapSelector('.vp-pm-table')))
133+
}elseif(menu==='name'){
120134
// sort by name
121135
$(that.wrapSelector('.vp-pm-item')).sort(function(a,b){
122136
varkeyA=$(a).data('key');
@@ -147,6 +161,16 @@ define([
147161
returninsA>insB ?1 :-1
148162
}).appendTo($(that.wrapSelector('.vp-pm-table')))
149163
}
164+
$(that.wrapSelector('.vp-pm-sort-menu-box')).hide();
165+
});
166+
167+
// reload package list
168+
$(this.wrapSelector('.vp-pm-func-reload')).on('click',function(){
169+
// reset search keyword
170+
$(that.wrapSelector('.vp-pm-search')).val('');
171+
172+
// load package list
173+
that.loadPackageList();
150174
});
151175

152176
// add package
@@ -355,11 +379,12 @@ define([
355379
*
356380
*@param {String} key
357381
*@param {Object} info installed, version, path
382+
*@param {number} index sequence of initial package list
358383
*@returns
359384
*/
360-
renderPackageItem(key,info){
385+
renderPackageItem(key,info,index){
361386
varitem=newcom_String();
362-
item.appendFormatLine('<div data-key="{1}" data-installed="{2}">','vp-pm-item',key,info.installed===true?'1':'0');
387+
item.appendFormatLine('<div data-key="{1}" data-installed="{2}" data-seq="{3}">','vp-pm-item',key,info.installed===true?'1':'0',index);
363388
item.appendFormatLine('<div class="{0}" title="{1}">','vp-pm-item-header',(info.path?info.path:''));
364389
item.appendFormatLine('<label>{0}</label>',key);
365390
if(info.installed===true){
@@ -401,17 +426,25 @@ define([
401426
$(this.wrapSelector('.vp-pm-table')).html('');
402427

403428
letpackageList=Object.keys(this.packageLib);
429+
430+
// set auto search
431+
letsearchInput=newSuggestInput();
432+
searchInput.addClass('vp-pm-search vp-input');
433+
searchInput.setPlaceholder("Search");
434+
searchInput.setSuggestList(function(){returnpackageList;});
435+
$(this.wrapSelector('.vp-pm-search')).replaceWith(searchInput.toTagString());
436+
404437
letloadingSpinner=newLoadingSpinner($(this.wrapSelector('.vp-popup-body')));
405438
vpKernel.getPackageList(packageList).then(function(resultObj){
406439
let{ result}=resultObj;
407440
letpackageInfo=JSON.parse(result);
408441

409442
// load code list
410443
varinnerFuncCode=newcom_String();
411-
Object.keys(packageInfo).forEach(key=>{
444+
Object.keys(packageInfo).forEach((key,idx)=>{
412445
letinfo=packageInfo[key];// installed, version, path
413446
if(info){
414-
varitem=that.renderPackageItem(key,info);
447+
varitem=that.renderPackageItem(key,info,idx);
415448
innerFuncCode.append(item);
416449
}
417450
});

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp