Toggle navigation
Toggle navigation
This project
Loading...
Sign in
arcs
/
arcs.js
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
3
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
didier
2016-03-07 00:28:10 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b6a9647f0aca0af046ed1f49d08cd0a9b5a8ac10
b6a9647f
1 parent
de222720
gestion des projets
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
107 additions
and
10 deletions
utils/forge/app/arcsforge.js
utils/forge/app/forge.html
utils/forge/service/arcsforgeservice.js
utils/forge/service/document.js
utils/forge/app/arcsforge.js
View file @
b6a9647
...
...
@@ -4,8 +4,6 @@ var ARCSForge = {
files
:
{}
};
console
.
log
(
document
.
getElementById
(
"codewindow"
));
var
cm
=
CodeMirror
.
fromTextArea
(
document
.
getElementById
(
"codewindow"
),
{
lineNumbers
:
true
,
mode
:
"javascript"
});
var
doc
=
new
Document
();
cm
.
on
(
"change"
,
doc
.
change
);
...
...
@@ -16,14 +14,54 @@ cm.refresh();
function
login
()
{
// to be implemented
$
.
post
(
"/login"
,{
login
:
$
(
'#login'
).
val
(),
password
:
md5
(
$
(
'#pass'
).
val
())
},
function
(
data
)
{
ARCSForge
.
sessionId
=
data
;
$
.
mobile
.
changePage
(
'#pageEdit'
);
//var jsonData = JSON.parse(data);
$
.
mobile
.
changePage
(
'#pageProjects'
);
ARCSForge
.
sessionId
=
data
.
session
;
var
projectList
=
$
(
'#projectList'
);
projectList
.
empty
();
for
(
p
in
data
.
projects
)
{
projectList
.
append
(
'<li><a href="#">'
+
data
.
projects
[
p
]
+
'</a></li>'
);
}
projectList
.
listview
(
'refresh'
);
});
}
function
logout
()
{
console
.
log
(
'logout'
,
ARCSForge
.
sessionId
);
$
.
get
(
"/logout/"
+
ARCSForge
.
sessionId
);
ARCSForge
.
sessionId
=
""
;
$
.
mobile
.
changePage
(
'#pageLogin'
);
}
\ No newline at end of file
}
function
createProject
()
{
$
.
get
(
"/"
+
ARCSForge
.
sessionId
+
"/project/create/"
+
$
(
'#projectName'
).
val
(),
function
(
data
)
{
if
(
data
===
false
)
{
// we should display a dialog
}
else
{
// we are ok, we recieved components
var
libraryList
=
$
(
'#libraryList'
);
for
(
c
in
data
)
{
libraryList
.
append
(
'<input name="cmp_'
+
data
[
c
]
+
'" id="cmp_'
+
data
[
c
]
+
'" type="checkbox">'
);
libraryList
.
append
(
'<label for="cmp_'
+
data
[
c
]
+
'">'
+
data
[
c
]
+
'</label>'
);
}
//libraryList.listview('refresh');
$
.
mobile
.
changePage
(
'#pageLibraries'
);
}
});
}
function
fetchLibraries
()
{
var
cbs
=
$
(
''
);
}
if
(
ARCSForge
.
sessionId
===
""
)
{
$
.
mobile
.
changePage
(
'#pageLogin'
);
}
...
...
utils/forge/app/forge.html
View file @
b6a9647
...
...
@@ -40,7 +40,28 @@
<button
onclick=
"logout()"
class=
"ui-btn ui-icon-power ui-btn-right ui-corner-all ui-btn-icon-notext "
></button>
</div>
<div
data-role=
"main"
class=
"ui-content"
>
<h3>
Please select one of your projects in the list below
</h3>
<ul
id=
"projectList"
data-role=
"listview"
data-filter=
"true"
data-filter-placeholder=
"Search projects..."
data-inset=
"true"
>
<li>
Gruick
</li>
</ul>
<h3>
Create a new project
</h3>
<label
for=
"projectName"
>
New project name:
</label>
<input
name=
"projectName"
id=
"projectName"
value=
""
type=
"text"
>
<a
href=
"#"
onclick=
"createProject()"
class=
"ui-btn ui-corner-all ui-btn-inline"
>
Create project
</a>
</div>
</div>
<!-- Project creation -->
<div
data-role=
"page"
id=
"pageLibraries"
>
<div
data-role=
"header"
data-theme=
"b"
>
<h1>
ARCS Forge
</h1>
<button
onclick=
"logout()"
class=
"ui-btn ui-icon-power ui-btn-right ui-corner-all ui-btn-icon-notext "
></button>
</div>
<div
data-role=
"main"
class=
"ui-content"
>
<h3>
Select components you want to import
</h3>
<fieldset
data-role=
"controlgroup"
id=
"libraryList"
>
</fieldset>
<a
href=
"#"
onclick=
"fetchLibraries()"
class=
"ui-btn ui-corner-all ui-btn-inline"
>
Fetch libraries
</a>
</div>
</div>
...
...
utils/forge/service/arcsforgeservice.js
View file @
b6a9647
...
...
@@ -15,7 +15,6 @@ var client = ldap.createClient({});*/
var
Forge
=
require
(
'./document.js'
);
console
.
log
(
Forge
);
var
usersConfig
=
new
Forge
.
Settings
(
'./etc/users.json'
);
var
sessions
=
[];
...
...
@@ -70,13 +69,17 @@ app.get('/deps/*', function(req, res) {
app
.
post
(
'/login'
,
upload
.
array
(),
function
(
req
,
res
)
{
console
.
log
(
'attempted to login with id '
,
req
.
body
);
// here we should verify user access
var
login
=
req
.
body
.
login
;
usersConfig
.
set
(
req
.
body
.
login
,{});
if
(
!
usersConfig
.
exists
(
login
))
{
usersConfig
.
set
(
login
,{
projects
:
[]});
}
// let's say the user is connected.
var
sessionId
=
Date
.
now
().
toString
(
16
);
sessions
[
sessionId
]
=
{
user
:
req
.
body
.
login
};
res
.
send
(
sessionId
);
sessions
[
sessionId
]
=
{
user
:
login
};
res
.
json
({
session
:
sessionId
,
projects
:
usersConfig
.
get
(
login
).
projects
}
);
});
app
.
get
(
'/logout/:sessionId'
,
function
(
req
,
res
)
{
...
...
@@ -85,9 +88,40 @@ app.get('/logout/:sessionId', function(req,res) {
delete
sessions
[
req
.
params
.
sessionId
];
res
.
send
(
req
.
params
.
sessionId
);
});
app
.
get
(
'/:sessionId/project/create/:projectName'
,
function
(
req
,
res
)
{
var
sID
=
req
.
params
.
sessionId
;
var
pID
=
req
.
params
.
projectName
;
var
projectPath
=
'projects/'
+
pID
;
if
(
!
sessions
.
hasOwnProperty
(
sID
))
{
// then it is obviously a fail
console
.
log
(
"session Id not recognized"
);
res
.
send
(
false
);
return
;
}
var
userName
=
sessions
[
sID
].
user
;
var
user
=
usersConfig
.
get
(
userName
);
try
{
var
stats
=
fs
.
statSync
(
projectPath
);
res
.
send
(
false
);
}
catch
(
e
)
{
fs
.
mkdirSync
(
projectPath
);
fs
.
mkdirSync
(
projectPath
+
"/components"
);
fs
.
mkdirSync
(
projectPath
+
"/app"
);
// here we should add the project to the user's list
if
(
user
.
projects
.
indexOf
(
pID
)
<
0
)
{
user
.
projects
.
push
(
pID
);
usersConfig
.
set
(
userName
,
user
);
}
// if the creation is a success, we should send back components list
var
components
=
fs
.
readdirSync
(
'../../../components'
);
res
.
json
(
components
);
}
});
...
...
utils/forge/service/document.js
View file @
b6a9647
...
...
@@ -75,6 +75,10 @@ var Settings = function(registry) {
return
contents
[
key
];
};
this
.
exists
=
function
(
key
)
{
return
contents
.
hasOwnProperty
(
key
);
};
this
.
save
=
function
()
{
var
fileContents
=
JSON
.
stringify
(
contents
);
fs
.
writeFileSync
(
fileName
,
fileContents
);
...
...
Please
register
or
login
to post a comment