Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.toolbox
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Boxiang Sun
slapos.toolbox
Commits
81f046c3
Commit
81f046c3
authored
Nov 05, 2013
by
Alain Takoudjou
Committed by
Nicolas Wavrant
Feb 14, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
keep in mind last opened file and manage favourites files
parent
58044d23
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
150 additions
and
71 deletions
+150
-71
slapos/runner/static/images/list2_down.png
slapos/runner/static/images/list2_down.png
+0
-0
slapos/runner/static/js/scripts/softwareFolder.js
slapos/runner/static/js/scripts/softwareFolder.js
+122
-56
slapos/runner/templates/softwareFolder.html
slapos/runner/templates/softwareFolder.html
+25
-12
slapos/runner/views.py
slapos/runner/views.py
+3
-3
No files found.
slapos/runner/static/images/list2_down.png
0 → 100644
View file @
81f046c3
1.41 KB
slapos/runner/static/js/scripts/softwareFolder.js
View file @
81f046c3
...
...
@@ -22,6 +22,8 @@ $(document).ready(function () {
pasteMode
=
null
,
selection
=
""
,
edit_status
=
""
,
current_file
=
null
,
favourite_list
=
new
Array
(),
base_path
=
function
()
{
return
softwareDisplay
?
currentProject
:
'
workspace/
'
;
};
...
...
@@ -45,64 +47,47 @@ $(document).ready(function () {
}
send
=
true
;
edit
=
false
;
$
(
"
a#option
"
).
hide
();
if
(
file
.
substr
(
-
1
)
!==
"
/
"
)
{
$
.
ajax
({
type
:
"
POST
"
,
url
:
$SCRIPT_ROOT
+
'
/getFileContent
'
,
data
:
{
file
:
file
},
success
:
function
(
data
)
{
var
name
,
start
,
path
=
file
;
if
(
data
.
code
===
1
)
{
$
(
"
#edit_info
"
).
empty
();
name
=
file
.
split
(
'
/
'
);
if
(
file
.
length
>
75
)
{
//substring title.
start
=
file
.
length
-
75
;
path
=
"
...
"
+
file
.
substring
(
file
.
indexOf
(
"
/
"
,
(
start
+
1
)));
}
$
(
"
#edit_info
"
).
append
(
"
"
+
path
);
$
(
"
a#option
"
).
show
();
editor
.
getSession
().
setValue
(
data
.
result
);
setEditMode
(
name
[
name
.
length
-
1
]);
edit
=
true
;
$
(
"
input#subfolder
"
).
val
(
file
);
$
(
"
span#edit_status
"
).
html
(
""
);
edit_status
=
""
;
}
else
{
$
(
"
#error
"
).
Popup
(
data
.
result
,
{
type
:
'
error
'
,
duration
:
5000
});
$
(
"
#edit_info
"
).
empty
();
$
(
"
#edit_info
"
).
append
(
"
LOADING FILE... <img src='
"
+
$SCRIPT_ROOT
+
"
/static/images/loading.gif' />
"
);
$
.
ajax
({
type
:
"
POST
"
,
url
:
$SCRIPT_ROOT
+
'
/getFileContent
'
,
data
:
{
file
:
file
},
success
:
function
(
data
)
{
var
name
,
start
,
path
=
file
;
if
(
data
.
code
===
1
)
{
$
(
"
#edit_info
"
).
empty
();
name
=
file
.
split
(
'
/
'
);
if
(
file
.
length
>
75
)
{
//substring title.
start
=
file
.
length
-
75
;
path
=
"
...
"
+
file
.
substring
(
file
.
indexOf
(
"
/
"
,
(
start
+
1
)));
}
send
=
false
;
$
(
"
#edit_info
"
).
append
(
"
"
+
path
);
$
(
"
a#option
"
).
show
();
editor
.
getSession
().
setValue
(
data
.
result
);
setEditMode
(
name
[
name
.
length
-
1
]);
edit
=
true
;
current_file
=
file
;
$
(
"
span#edit_status
"
).
html
(
""
);
edit_status
=
""
;
setCookie
(
"
EDIT_CURRENT_FILE
"
,
file
);
}
else
{
$
(
"
#error
"
).
Popup
(
data
.
result
,
{
type
:
'
error
'
,
duration
:
5000
});
}
});
send
=
false
;
}
});
}
else
{
$
(
"
#edit_info
"
).
empty
();
$
(
"
#edit_info
"
).
append
(
"
No file in editor
"
);
$
(
"
a#option
"
).
hide
();
editor
.
getSession
().
setValue
(
""
);
}
return
;
}
function
selectFile
(
file
)
{
$
(
"
#info
"
).
empty
();
$
(
"
#info
"
).
append
(
"
Current work tree:
"
+
file
);
selection
=
file
;
return
;
}
/*
function setDetailBox() {
var state = $("#details_box").css("display");
if (state === "none") {
$("#details_box").fadeIn("normal");
$("#details_head").removeClass("hide");
$("#details_head").addClass("show");
} else {
$("#details_box").fadeOut("normal");
$("#details_head").removeClass("show");
$("#details_head").addClass("hide");
}
} */
function
switchContent
()
{
if
(
!
softwareDisplay
)
{
$
(
"
span.swith_btn
"
).
empty
();
...
...
@@ -127,16 +112,15 @@ $(document).ready(function () {
return
;
}
send
=
true
;
var
filepath
=
(
path
)
?
path
:
$
(
"
input#subfolder
"
).
val
(),
filename
;
var
filename
;
$
.
ajax
({
type
:
"
POST
"
,
url
:
$SCRIPT_ROOT
+
'
/getmd5sum
'
,
data
:
{
file
:
file
path
},
data
:
{
file
:
path
},
success
:
function
(
data
)
{
if
(
data
.
code
===
1
)
{
filename
=
filepath
.
replace
(
/^.*
(\\
|
\/
|
\:)
/
,
''
)
filename
=
path
.
replace
(
/^.*
(\\
|
\/
|
\:)
/
,
''
);
$
(
"
#info
"
).
empty
();
$
(
"
#info
"
).
html
(
"
Md5sum for file [
"
+
filename
+
"
]:
"
+
data
.
result
);
}
else
{
...
...
@@ -297,7 +281,7 @@ $(document).ready(function () {
success
:
function
(
data
)
{
$
(
"
#inline_content
"
).
empty
();
$
(
"
#inline_content
"
).
append
(
'
<h2 style="color: #4c6172; font: 18px
\'
Helvetica Neue
\'
, Helvetica, Arial, sans-serif;">Content of file:
'
+
node
.
title
+
'
</h2>
'
);
node
.
title
+
'
</h2>
'
);
$
(
"
#inline_content
"
).
append
(
'
<br/><div class="main_content"><pre id="editorViewer"></pre></div>
'
);
viewer
=
ace
.
edit
(
"
editorViewer
"
);
viewer
.
setTheme
(
"
ace/theme/crimson_editor
"
);
...
...
@@ -406,6 +390,11 @@ $(document).ready(function () {
// return false;
}
},
dblclick
:
function
(
event
,
data
)
{
if
(
!
data
.
node
.
isFolder
()){
openFile
(
data
.
node
.
data
.
path
);
}
},
source
:
{
url
:
$SCRIPT_ROOT
+
"
/fileBrowser
"
,
data
:{
opt
:
20
,
dir
:
path
,
key
:
key
,
listfiles
:
'
yes
'
},
...
...
@@ -467,6 +456,56 @@ $(document).ready(function () {
});
}
function
openOnFavourite
(
$elt
){
var
index
=
parseInt
(
$elt
.
attr
(
'
rel
'
)),
file
=
favourite_list
[
index
];
openFile
(
file
);
$
(
'
a[rel=tooltip], span[rel=tooltip], .popup
'
).
mouseout
();
}
function
removeFavourite
(
$elt
){
var
index
=
parseInt
(
$elt
.
attr
(
'
rel
'
));
favourite_list
.
splice
(
index
,
1
);
$elt
.
parent
().
remove
();
$
(
'
#tooltip-filelist ul li[rel="
'
+
index
+
'
"]
'
).
remove
();
if
(
favourite_list
.
length
===
0
){
$
(
"
#tooltip-filelist ul
"
).
append
(
"
<li>Your favourites files list is <br/>empty for the moment!</li>
"
);
}
deleteCookie
(
"
FAV_FILE_LIST
"
);
setCookie
(
"
FAV_FILE_LIST
"
,
favourite_list
.
join
(
'
#
'
));
}
function
initEditor
(){
var
tmp
,
filename
;
current_file
=
getCookie
(
"
EDIT_CURRENT_FILE
"
);
if
(
current_file
)
{
openFile
(
current_file
);
}
tmp
=
getCookie
(
"
FAV_FILE_LIST
"
);
if
(
tmp
){
favourite_list
=
tmp
.
split
(
'
#
'
);
if
(
favourite_list
.
length
!==
0
){
$
(
"
#tooltip-filelist ul
"
).
empty
();
}
for
(
var
i
=
0
;
i
<
favourite_list
.
length
;
i
++
){
filename
=
favourite_list
[
i
].
replace
(
/^.*
(\\
|
\/
|
\:)
/
,
''
);
$
(
"
#tooltip-filelist ul
"
).
append
(
'
<li rel="
'
+
i
+
'
"><span class="bt_close" title="Remove this element!" rel="
'
+
i
+
'
">×</span><a href="#" rel="
'
+
i
+
'
">
'
+
filename
+
'
</a></li>
'
);
}
}
//Click on favorite file in list to open it!
$
(
"
#tooltip-filelist ul li a
"
).
click
(
function
(){
openOnFavourite
(
$
(
this
));
return
false
;
});
//Remove favorite file in list
$
(
"
#tooltip-filelist ul li span
"
).
click
(
function
(){
removeFavourite
(
$
(
this
));
return
false
;
});
}
editor
.
setTheme
(
"
ace/theme/crimson_editor
"
);
...
...
@@ -494,7 +533,7 @@ $(document).ready(function () {
initTree
(
'
#fileTree
'
,
currentProject
,
'
pfolder
'
);
initTree
(
'
#fileTreeFull
'
,
'
workspace
'
);
$
(
"
#info
"
).
append
(
"
Current work tree:
"
+
base_path
());
/*setDetailBox();*/
initEditor
();
editor
.
on
(
"
change
"
,
function
(
e
)
{
if
(
edit_status
===
""
&&
edit
)
{
...
...
@@ -523,7 +562,7 @@ $(document).ready(function () {
type
:
"
POST
"
,
url
:
$SCRIPT_ROOT
+
'
/saveFileContent
'
,
data
:
{
file
:
$
(
"
input#subfolder
"
).
val
()
,
file
:
current_file
,
content
:
editor
.
getSession
().
getValue
()
},
success
:
function
(
data
)
{
...
...
@@ -549,7 +588,7 @@ $(document).ready(function () {
return
false
;
});
$
(
"
#getmd5
"
).
click
(
function
()
{
getmd5sum
();
getmd5sum
(
current_file
);
return
false
;
});
...
...
@@ -557,7 +596,6 @@ $(document).ready(function () {
edit
=
false
;
$
(
"
#info
"
).
empty
();
$
(
"
#info
"
).
append
(
"
Current work tree:
"
+
base_path
());
$
(
"
input#subfolder
"
).
val
(
""
);
$
(
"
#edit_info
"
).
empty
();
$
(
"
#edit_info
"
).
append
(
"
No file in editor
"
);
editor
.
getSession
().
setValue
(
""
);
...
...
@@ -581,6 +619,34 @@ $(document).ready(function () {
}
return
false
;
});
$
(
"
a#addflist
"
).
click
(
function
(){
var
i
=
favourite_list
.
length
,
filename
=
current_file
.
replace
(
/^.*
(\\
|
\/
|
\:)
/
,
''
);;
if
(
i
===
0
){
$
(
"
#tooltip-filelist ul
"
).
empty
();
}
if
(
favourite_list
.
indexOf
(
current_file
)
!==
-
1
){
$
(
"
#error
"
).
Popup
(
"
<b>Duplicate item!</b><br/>This files already exist in your favourite list
"
,
{
type
:
'
alert
'
,
duration
:
5000
});
}
else
{
favourite_list
.
push
(
current_file
);
$
(
"
#tooltip-filelist ul
"
).
append
(
'
<li rel="
'
+
i
+
'
"><span class="bt_close" title="Remove this element!" rel="
'
+
i
+
'
">×</span><a href="#" rel="
'
+
i
+
'
">
'
+
filename
+
'
</a></li>
'
);
deleteCookie
(
"
FAV_FILE_LIST
"
);
setCookie
(
"
FAV_FILE_LIST
"
,
favourite_list
.
join
(
'
#
'
));
$
(
"
#tooltip-filelist ul li a[rel='
"
+
i
+
"
']
"
).
bind
(
'
click
'
,
function
()
{
openOnFavourite
(
$
(
this
));
return
false
;
});
$
(
"
#tooltip-filelist ul li span[rel='
"
+
i
+
"
']
"
).
click
(
function
(){
removeFavourite
(
$
(
this
));
return
false
;
});
$
(
"
#error
"
).
Popup
(
"
<b>Item added!</b><br/>
"
+
filename
+
"
has been added to your favourite list.
"
,
{
type
:
'
confirm
'
,
duration
:
3000
});
}
return
false
;
});
});
slapos/runner/templates/softwareFolder.html
View file @
81f046c3
...
...
@@ -43,9 +43,10 @@
<ul
class=
'box_header'
>
<li
id=
"switch"
><span
class=
"swith_btn"
title=
"Switch between differents file source"
>
This project
</span></li>
<li
id=
"save"
><span
class=
"save_btn"
title=
"Save current file. Hint: Use Ctrl+S"
>
Save
</span></li>
<li
id=
"flist"
><span
class=
"flist_btn"
id=
"filelist"
title=
"Recently opened files and favourites"
rel=
'tooltip'
>
</span></li>
<li>
<h2>
<a
style=
"display:none"
id=
'option'
href=
'#'
rel=
'tooltip'
title=
'Show more option'
>
[
Current file
]
</a><span
id=
"edit_info"
>
No file in editor
</span>
<a
style=
"display:none"
id=
'option'
href=
'#'
rel=
'tooltip'
title=
'Show more option'
>
[
Menu
]
</a><span
id=
"edit_info"
>
No file in editor
</span>
<span
id=
"edit_status"
></span>
</h2>
</li>
...
...
@@ -66,7 +67,7 @@
<pre
id=
"editor"
>
</pre>
</div>
</div>
<!--<input type=submit value="Save" id="save" class="button">-->
</div>
...
...
@@ -74,18 +75,30 @@
<div
class=
"clear"
></div>
<div
id=
"file_info"
class=
"file_info"
><span
id=
"info"
></span></div>
</form>
<div
id=
"tooltip-option"
style=
"display:none"
>
<span
class=
"list first-list"
>
MD5 SUM for the current file
</span>
<a
id=
'getmd5'
href=
"#"
>
Get or Update md5sum
</a>
<div
class=
"sep"
></div>
<span
class=
"list"
>
Add project development
</span>
<ul
id=
"plist"
>
{% for name in projectList%}
<li><input
type=
"checkbox"
name=
"develop"
value=
"{{name}}"
id=
"{{name}}"
>
<label>
{{name}}
</label></li>
{% endfor %}
<span
class=
"list first-list"
>
Current file Menu
</span>
<a
id=
'getmd5'
href=
"#"
>
Get or Update md5sum
</a>
<a
id=
'addflist'
href=
"#"
>
Add to favourites
</a>
<div
class=
"sep"
></div>
<span
class=
"list"
>
Add project development
</span>
<ul
id=
"plist"
>
{% for name in projectList%}
<li><input
type=
"checkbox"
name=
"develop"
value=
"{{name}}"
id=
"{{name}}"
>
<label>
{{name}}
</label></li>
{% endfor %}
</ul>
<a
href=
"#"
id=
"adddevelop"
class=
"lshare"
>
Add to profile
</a>
</div>
<div
id=
"tooltip-filelist"
style=
"display:none"
>
<div
style=
"min-width: 190px; padding-bottom:10px;"
>
<span
class=
"list first-list"
>
All your favourite files
</span>
<ul
class=
"inline"
>
<li>
Your favourites files list is
<br/>
empty for the moment!
</li>
</ul>
<a
href=
"#"
id=
"adddevelop"
class=
"lshare"
>
Add to profile
</a
>
</div
>
</div>
<!-- This contains the hidden content for inline calls -->
...
...
slapos/runner/views.py
View file @
81f046c3
...
...
@@ -116,7 +116,7 @@ def editSoftwareProfile():
if
profile
==
""
:
flash
(
'Error: can not open profile, please select your project first'
)
return
render_template
(
'updateSoftwareProfile.html'
,
workDir
=
'workspace'
,
profile
=
profile
,
projectList
=
getProjectList
(
app
.
config
[
'workspace'
]
))
profile
=
profile
,
projectList
=
listFolder
(
app
.
config
,
'workspace'
))
def
inspectSoftware
():
...
...
@@ -159,7 +159,7 @@ def editInstanceProfile():
if
profile
==
""
:
flash
(
'Error: can not open instance profile for this Software Release'
)
return
render_template
(
'updateInstanceProfile.html'
,
workDir
=
'workspace'
,
profile
=
profile
,
projectList
=
getProjectList
(
app
.
config
[
'workspace'
]
))
profile
=
profile
,
projectList
=
listFolder
(
app
.
config
,
'workspace'
))
# get status of all computer partitions and process state
...
...
@@ -640,7 +640,7 @@ def fileBrowser():
def
editFile
():
return
render_template
(
'editFile.html'
,
workDir
=
'workspace'
,
profile
=
urllib
.
unquote
(
request
.
args
.
get
(
'profile'
,
''
)),
projectList
=
getProjectList
(
app
.
config
[
'workspace'
]
),
projectList
=
listFolder
(
app
.
config
,
'workspace'
),
filename
=
urllib
.
unquote
(
request
.
args
.
get
(
'filename'
,
''
)))
def
shell
():
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment