Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
yotta
/
pictogram
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
60
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
01bcb078
authored
Apr 20, 2017
by
Sebastián Collado Montañez
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'develop' of
http://gitlab.ujaen.es/yotta/pictogram
into develop
parents
a3958968
8892d4de
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
131 additions
and
54 deletions
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/grammar/Vocabulary.java
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/net/PictoUploader.java
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/communicator/cropper/EditPictoActivity.java
sails/src/api/controllers/SceneController.js
sails/src/api/controllers/StudentController.js
sails/src/api/models/Scene.js
sails/src/assets/scripts/modules/student/controllers/collections.js
sails/src/config/policies.js
sails/src/config/routes.js
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/grammar/Vocabulary.java
View file @
01bcb078
...
@@ -78,7 +78,7 @@ public class Vocabulary implements Iterable<Picto> {
...
@@ -78,7 +78,7 @@ public class Vocabulary implements Iterable<Picto> {
modifyAttsPicto
(
picto_cat
,
picto_id
,
args
.
getJSONObject
(
"attributes"
));
modifyAttsPicto
(
picto_cat
,
picto_id
,
args
.
getJSONObject
(
"attributes"
));
}
catch
(
JSONException
e
)
{
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
Log
.
e
(
LOG_TAG
,
e
.
getMessage
());
Log
.
e
(
LOG_TAG
,
"Error updating picto:"
+
e
.
getMessage
());
}
}
break
;
break
;
}
}
...
@@ -457,7 +457,7 @@ public class Vocabulary implements Iterable<Picto> {
...
@@ -457,7 +457,7 @@ public class Vocabulary implements Iterable<Picto> {
});
});
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
Log
.
e
(
Vocabulary
.
class
.
getCanonicalName
(),
e
.
getMessage
());
Log
.
e
(
Vocabulary
.
class
.
getCanonicalName
(),
"Error saving picto:"
+
e
.
getMessage
());
}
}
}
}
...
...
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/net/PictoUploader.java
View file @
01bcb078
...
@@ -102,10 +102,10 @@ public class PictoUploader {
...
@@ -102,10 +102,10 @@ public class PictoUploader {
boolean
success
;
boolean
success
;
Response
<
JsonObject
>
response
=
null
;
Response
<
JsonObject
>
response
=
null
;
String
[]
path
=
audioFile
.
getPath
().
split
(
"\\."
);
String
extension
=
path
[
1
];
if
(
extension
!=
"mp3"
)
String
extension
=
audioFile
.
getName
().
substring
(
audioFile
.
getName
().
lastIndexOf
(
'.'
)+
1
);
if
(!
extension
.
equalsIgnoreCase
(
"mp3"
))
throw
new
UnsupportedEncodingException
(
"Extension "
+
extension
+
" is not supported. Only mp3 files"
);
throw
new
UnsupportedEncodingException
(
"Extension "
+
extension
+
" is not supported. Only mp3 files"
);
Ion
ion
=
Ion
.
getDefault
(
PCBcontext
.
getContext
());
Ion
ion
=
Ion
.
getDefault
(
PCBcontext
.
getContext
());
...
@@ -114,7 +114,7 @@ public class PictoUploader {
...
@@ -114,7 +114,7 @@ public class PictoUploader {
response
=
ion
.
with
(
PCBcontext
.
getContext
())
response
=
ion
.
with
(
PCBcontext
.
getContext
())
.
load
(
"POST"
,
PCBcontext
.
getContext
().
getResources
().
getString
(
R
.
string
.
server
)
+
"/picto/upload_sound/"
+
picto
.
get_stupicto_id
())
.
load
(
"POST"
,
PCBcontext
.
getContext
().
getResources
().
getString
(
R
.
string
.
server
)
+
"/picto/upload_sound/"
+
picto
.
get_stupicto_id
())
.
setMultipartParameter
(
"filename"
,
"id_del _sonido"
)
.
setMultipartParameter
(
"filename"
,
audioFile
.
getName
()
)
.
setMultipartParameter
(
"extension"
,
"mp3"
)
.
setMultipartParameter
(
"extension"
,
"mp3"
)
.
setMultipartParameter
(
"owner"
,
Integer
.
toString
(
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_id_sup
()))
.
setMultipartParameter
(
"owner"
,
Integer
.
toString
(
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_id_sup
()))
.
setMultipartParameter
(
"folder"
,
"pictoSound"
)
.
setMultipartParameter
(
"folder"
,
"pictoSound"
)
...
@@ -138,7 +138,7 @@ public class PictoUploader {
...
@@ -138,7 +138,7 @@ public class PictoUploader {
success
=
false
;
success
=
false
;
Log
.
i
(
LOG_TAG
,
"Uploaded Sound failed "
);
Log
.
i
(
LOG_TAG
,
"Uploaded Sound failed "
);
if
(
response
!=
null
)
if
(
response
!=
null
)
Log
.
i
(
LOG_TAG
,
"Uploaded Sound failed, headers: "
+
response
.
getHeaders
());
Log
.
i
(
LOG_TAG
,
"Uploaded Sound failed, headers: "
+
response
.
getHeaders
()
.
message
()+
"("
+
response
.
getHeaders
().
code
()+
")"
);
}
}
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
Log
.
e
(
LOG_TAG
,
"Sound upload error: "
+
e
.
getMessage
()+
"Code: "
+
Log
.
e
(
LOG_TAG
,
"Sound upload error: "
+
e
.
getMessage
()+
"Code: "
+
...
@@ -300,14 +300,15 @@ public class PictoUploader {
...
@@ -300,14 +300,15 @@ public class PictoUploader {
if
(
imgUpload_success
){
if
(
imgUpload_success
){
if
(
this
.
picto
.
getUriSound
()
!=
""
&&
this
.
picto
.
getUriSound
()
!=
null
){
//Si el picto tiene audio en local
if
(
this
.
picto
.
getUriSound
()
!=
""
&&
this
.
picto
.
getUriSound
()
!=
null
){
//Si el picto tiene audio en local
Log
.
i
(
"TAG_PRUEBAS"
,
"Hay uri: "
+
this
.
picto
.
getUriSound
()+
" -Procede a subir archivo"
);
Log
.
i
(
LOG_TAG
,
"Uploading sound "
+
this
.
picto
.
getUriSound
()
);
File
file
=
new
File
(
picto
.
getUriSound
());
//Obtengo el fichero de audio local
File
file
=
new
File
(
picto
.
getUriSound
());
//Obtengo el fichero de audio local
boolean
soundUpload_success
=
uploadSound
(
file
);
//Llamo a la subida
boolean
soundUpload_success
=
uploadSound
(
file
);
//Llamo a la subida
if
(
soundUpload_success
)
{
if
(
soundUpload_success
)
{
Log
.
i
(
"TAG_PRUEBAS"
,
"Se sube sonido hay EXITO
"
);
Log
.
i
(
LOG_TAG
,
"Sound uploaded
"
);
}
else
{
}
else
{
GUITools
.
show_alert
(
PCBcontext
.
getActivityContext
(),
Integer
.
parseInt
(
R
.
string
.
upload_error
+
"Audio"
),
PictoUploader
.
this
.
picto
.
get_translation
());
Log
.
e
(
LOG_TAG
,
"Uploading sound error"
);
GUITools
.
show_alert
(
PCBcontext
.
getActivityContext
(),
R
.
string
.
upload_error
,
PictoUploader
.
this
.
picto
.
get_translation
());
}
}
}
}
if
(
stupicto_id
!=
Picto
.
STUPICTO_NULL
)
{
if
(
stupicto_id
!=
Picto
.
STUPICTO_NULL
)
{
...
...
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/communicator/cropper/EditPictoActivity.java
View file @
01bcb078
...
@@ -26,6 +26,7 @@ import android.view.KeyEvent;
...
@@ -26,6 +26,7 @@ import android.view.KeyEvent;
import
android.view.MotionEvent
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.View
;
import
android.view.Window
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
android.widget.AdapterView
;
import
android.widget.AdapterView
;
import
android.widget.ArrayAdapter
;
import
android.widget.ArrayAdapter
;
import
android.widget.Button
;
import
android.widget.Button
;
...
@@ -38,7 +39,6 @@ import android.widget.TextView;
...
@@ -38,7 +39,6 @@ import android.widget.TextView;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
com.yottacode.pictogram.dao.Picto
;
import
com.yottacode.pictogram.dao.Picto
;
import
com.yottacode.pictogram.dao.User
;
import
com.yottacode.pictogram.tabletlibrary.R
;
import
com.yottacode.pictogram.tabletlibrary.R
;
import
com.yottacode.pictogram.tabletlibrary.gui.communicator.BotonCircular
;
import
com.yottacode.pictogram.tabletlibrary.gui.communicator.BotonCircular
;
import
com.yottacode.pictogram.tabletlibrary.gui.communicator.PictoMenu
;
import
com.yottacode.pictogram.tabletlibrary.gui.communicator.PictoMenu
;
...
@@ -55,7 +55,6 @@ import java.io.IOException;
...
@@ -55,7 +55,6 @@ import java.io.IOException;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Hashtable
;
import
java.util.Hashtable
;
import
java.util.Random
;
import
java.util.Random
;
import
java.util.Vector
;
import
pl.droidsonroids.gif.GifTextView
;
import
pl.droidsonroids.gif.GifTextView
;
...
@@ -225,6 +224,7 @@ public class EditPictoActivity extends Activity {
...
@@ -225,6 +224,7 @@ public class EditPictoActivity extends Activity {
public
void
onCreate
(
Bundle
savedInstanceState
)
{
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
requestWindowFeature
(
Window
.
FEATURE_NO_TITLE
);
requestWindowFeature
(
Window
.
FEATURE_NO_TITLE
);
getWindow
().
setSoftInputMode
(
WindowManager
.
LayoutParams
.
SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
setContentView
(
R
.
layout
.
edit_picto_layout
);
setContentView
(
R
.
layout
.
edit_picto_layout
);
//Persmisos para grabar audio
//Persmisos para grabar audio
...
...
sails/src/api/controllers/SceneController.js
View file @
01bcb078
...
@@ -117,6 +117,50 @@ module.exports = {
...
@@ -117,6 +117,50 @@ module.exports = {
});
});
},
},
/**
* Copies a scene with its stu_pictos
* @param {request} req {} (id of source scene)
*/
duplicate
:
function
(
req
,
res
){
Scene
.
findOne
({
id
:
req
.
params
.
id
})
.
populate
(
'stuPictos'
).
then
(
function
(
scene
){
Scene
.
create
({
name
:
scene
.
name
,
active
:
false
,
categories
:
scene
.
categories
,
supervisor
:
scene
.
supervisor
,
student
:
scene
.
student
}).
then
(
scene
=>
{
async
.
forEach
(
scene
.
stuPictos
,
function
(
stuPicto
,
cb
)
{
StuPicto
.
create
({
student
:
stuPicto
.
student
,
picto
:
stuPicto
.
picto
,
scene
:
scene
.
id
,
attributes
:
stuPicto
.
attributes
}).
catch
(
function
(
err
){
console
.
log
(
"Error creating stu_picto "
+
err
.
details
);
sails
.
log
.
error
(
err
.
details
);
});
},
function
(
err
)
{
// function called when loop is done
if
(
err
)
{
console
.
log
(
err
.
details
);
sails
.
log
.
error
(
err
.
details
);
return
res
.
json
({
'error'
:
err
.
details
});
}
else
return
res
.
ok
(
scene
);
});
}).
catch
(
function
(
err
){
return
res
.
serverError
(
"Error creating scene: "
+
err
);
});
});
},
//
//
// Logs a scene action and broadcast to anyone subscribed to this student
// Logs a scene action and broadcast to anyone subscribed to this student
scene
:
function
(
req
,
res
)
{
scene
:
function
(
req
,
res
)
{
...
...
sails/src/api/controllers/StudentController.js
View file @
01bcb078
...
@@ -892,8 +892,9 @@ module.exports = {
...
@@ -892,8 +892,9 @@ module.exports = {
/**
/**
* Add an existing picto to the student's collection
* Add an existing picto to the student's collection
* @param {request} req (with id_stu and id_picto as url parameters)
* @param {request} req (with id_s
cene,id_s
tu and id_picto as url parameters)
* {
* {
* id_scene,
* id_stu,
* id_stu,
* id_picto,
* id_picto,
* attributes: { @see StuPicto.getValidAttributes() }
* attributes: { @see StuPicto.getValidAttributes() }
...
@@ -928,7 +929,7 @@ module.exports = {
...
@@ -928,7 +929,7 @@ module.exports = {
add_picto
:
function
(
req
,
res
)
{
add_picto
:
function
(
req
,
res
)
{
var
params
=
req
.
allParams
();
var
params
=
req
.
allParams
();
StuPicto
.
find
({
id_pic
:
params
.
id_picto
,
id_stu
:
params
.
id_stu
})
StuPicto
.
find
({
id_pic
:
params
.
id_picto
,
id_stu
:
params
.
id_stu
,
id_scene
:
params
.
id_scene
})
.
then
((
entries
)
=>
{
.
then
((
entries
)
=>
{
if
(
entries
&&
entries
.
length
>
0
)
{
if
(
entries
&&
entries
.
length
>
0
)
{
var
err
=
new
Error
(
"Picto already in student's vocabulary"
);
var
err
=
new
Error
(
"Picto already in student's vocabulary"
);
...
...
sails/src/api/models/Scene.js
View file @
01bcb078
...
@@ -56,7 +56,6 @@ module.exports = {
...
@@ -56,7 +56,6 @@ module.exports = {
pictos
:
function
(
id_scene
,
callback
)
{
pictos
:
function
(
id_scene
,
callback
)
{
var
l
=
[];
var
l
=
[];
var
fs
=
require
(
'fs'
);
var
fs
=
require
(
'fs'
);
console
.
log
(
"metodo pictos scene"
);
Scene
.
findOne
(
id_scene
)
Scene
.
findOne
(
id_scene
)
.
then
((
scene
)
=>
{
.
then
((
scene
)
=>
{
if
(
!
scene
)
if
(
!
scene
)
...
...
sails/src/assets/scripts/modules/student/controllers/collections.js
View file @
01bcb078
...
@@ -120,26 +120,19 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
...
@@ -120,26 +120,19 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
}
}
};
};
// Reload student pictos (back from addpicto)
$scope
.
loadPictos
=
function
(
scene
)
{
// Fill with grid (if not done before)
$scope
.
freeCategoryPictos
=
$scope
.
freeCategoryPictos
||
generateGrid
();
$scope
.
studentPictos
[
$scope
.
getCategoryId
(
$scope
.
selectedCategory
)]
=
$scope
.
studentPictos
[
$scope
.
getCategoryId
(
$scope
.
selectedCategory
)]
||
generateGrid
();
scene
.
pictos
.
forEach
(
placePicto
);
$scope
.
loadingPictos
=
false
;
};
// get active scene
// get active scene
$scope
.
showActiveScene
=
function
(
scene
)
{
$scope
.
showActiveScene
=
function
(
scene
)
{
$scope
.
loadingPictos
=
true
;
$scope
.
freeCategoryPictos
=
$scope
.
freeCategoryPictos
||
generateGrid
();
$scope
.
studentPictos
[
$scope
.
getCategoryId
(
$scope
.
selectedCategory
)]
=
$scope
.
studentPictos
[
$scope
.
getCategoryId
(
$scope
.
selectedCategory
)]
||
generateGrid
();
$http
.
get
(
config
.
backend
+
'/stu/'
+
$scope
.
studentData
.
id
+
'/activeScene'
)
$http
.
get
(
config
.
backend
+
'/stu/'
+
$scope
.
studentData
.
id
+
'/activeScene'
)
.
success
(
function
(
activeScene
)
{
.
success
(
function
(
activeScene
)
{
$scope
.
showFreeCategory
=
!
activeScene
.
categories
;
$scope
.
showFreeCategory
=
!
activeScene
.
categories
;
$scope
.
viewingScene
=
activeScene
;
$scope
.
viewingScene
=
activeScene
;
$scope
.
loadPictos
(
activeScene
);
activeScene
.
pictos
.
forEach
(
placePicto
);
$scope
.
loadingPictos
=
false
;
//setTimeout(function () { $scope.$apply(); });
//setTimeout(function () { $scope.$apply(); });
})
})
.
error
(
function
()
{
.
error
(
function
()
{
...
@@ -151,12 +144,17 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
...
@@ -151,12 +144,17 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
// get active scene
// get active scene
$scope
.
showScene
=
function
(
idScene
)
{
$scope
.
showScene
=
function
(
idScene
)
{
$scope
.
loadingPictos
=
true
;
$scope
.
freeCategoryPictos
=
$scope
.
freeCategoryPictos
||
generateGrid
();
$scope
.
studentPictos
[
$scope
.
getCategoryId
(
$scope
.
selectedCategory
)]
=
$scope
.
studentPictos
[
$scope
.
getCategoryId
(
$scope
.
selectedCategory
)]
||
generateGrid
();
$http
.
get
(
config
.
backend
+
'/scene/'
+
idScene
)
$http
.
get
(
config
.
backend
+
'/scene/'
+
idScene
)
.
success
(
function
(
scene
)
{
.
success
(
function
(
scene
)
{
$scope
.
showFreeCategory
=
!
scene
.
categories
;
$scope
.
showFreeCategory
=
!
scene
.
categories
;
$scope
.
viewingScene
=
scene
;
$scope
.
viewingScene
=
scene
;
$scope
.
loadPictos
(
scene
);
scene
.
pictos
.
forEach
(
placePicto
);
$scope
.
loadingPictos
=
false
;
//setTimeout(function () { $scope.$apply(); });
//setTimeout(function () { $scope.$apply(); });
})
})
.
error
(
function
()
{
.
error
(
function
()
{
...
@@ -219,28 +217,43 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
...
@@ -219,28 +217,43 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
});
});
};
};
// Delete student picto
// Delete student scene, if is not active
//If scene is viewingScene, load activeScene
$scope
.
delete_scene
=
function
(
idScene
)
{
$scope
.
delete_scene
=
function
(
idScene
)
{
var
active
=
false
;
var
viewing
=
idScene
==
$scope
.
viewingScene
.
id
;
for
(
var
i
=
0
;
i
<
$scope
.
scenesList
;
i
++
){
if
(
$scope
.
scenesList
[
i
].
id
==
idScene
){
active
=
$scope
.
scenesList
[
i
].
active
;
}
}
$translate
(
'confirmation'
).
then
(
t
=>
{
$translate
(
'confirmation'
).
then
(
t
=>
{
if
(
$window
.
confirm
(
t
))
{
if
(
$window
.
confirm
(
t
))
{
$http
.
delete
(
config
.
backend
+
'/scene/'
+
idScene
)
if
(
!
active
){
.
success
(
function
()
{
$http
.
delete
(
config
.
backend
+
'/scene/'
+
idScene
)
.
success
(
function
()
{
io
.
socket
.
post
(
'/scene'
,
{
// io.socket.post('/stu/vocabulary', {
action
:
'delete'
,
// action: 'delete',
data
:
{
id
:
idScene
}
// attributes: {
},
function
()
{});
// id_stu: $scope.studentData.id,
if
(
viewing
){
// id_scene: $scope.viewingScene.id,
$scope
.
showActiveScene
();
// stu_picto: studentPicto
}
// }
$scope
.
loadScenesList
();
// }, function () {});
$translate
(
'scene_deleted'
).
then
(
function
(
translation
)
{
//
ngToast
.
success
({
content
:
translation
});
// $translate('picto_removed').then(function (translation) {
});
// ngToast.success({ content: translation });
// });
}).
error
(
function
()
{
$translate
(
'scene_already_deleted'
).
then
(
function
(
translation
)
{
}).
error
(
function
()
{});
ngToast
.
warning
({
content
:
translation
});
});
});
}
else
{
$translate
(
'cant_delete_active_scene'
).
then
(
function
(
translation
)
{
ngToast
.
warning
({
content
:
translation
});
});
}
}
}
});
});
};
};
...
@@ -248,7 +261,7 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
...
@@ -248,7 +261,7 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
// Delete student picto
// Delete student picto
$scope
.
update_scene
=
function
(
scene
)
{
$scope
.
update_scene
=
function
(
scene
)
{
$http
.
put
(
config
.
backend
+
'/scene/'
+
idScene
,
{
$http
.
put
(
config
.
backend
+
'/scene/'
+
scene
.
id
,
{
name
:
scene
.
name
,
name
:
scene
.
name
,
active
:
scene
.
active
})
active
:
scene
.
active
})
.
success
(
function
()
{
.
success
(
function
()
{
...
@@ -271,6 +284,25 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
...
@@ -271,6 +284,25 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
};
};
// Duplicate viewing scene
$scope
.
copy_scene
=
function
()
{
$http
.
get
(
config
.
backend
+
'/scene/'
+
$scope
.
viewingScene
.
id
+
'/copy'
)
.
success
(
function
(
newScene
)
{
io
.
socket
.
post
(
'/scene'
,
{
action
:
'add'
,
data
:
newScene
},
function
()
{});
$scope
.
loadScenesList
();
$translate
(
'scene_duplicated'
).
then
(
function
(
translation
)
{
ngToast
.
success
({
content
:
translation
});
});
}).
error
(
function
()
{});
};
$scope
.
deleteFreePicto
=
function
(
studentPicto
)
{
$scope
.
deleteFreePicto
=
function
(
studentPicto
)
{
$translate
(
'confirmation'
).
then
(
t
=>
{
$translate
(
'confirmation'
).
then
(
t
=>
{
if
(
$window
.
confirm
(
t
))
{
if
(
$window
.
confirm
(
t
))
{
...
@@ -425,7 +457,7 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
...
@@ -425,7 +457,7 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
new_id_pic
:
pictoId
new_id_pic
:
pictoId
})
})
.
success
(
function
(
studentPicto
)
{
.
success
(
function
(
studentPicto
)
{
$scope
.
loadPictos
(
$scope
.
viewingScene
);
$scope
.
showScene
(
$scope
.
viewingScene
.
id
);
// notify
// notify
io
.
socket
.
post
(
'/stu/vocabulary'
,
{
io
.
socket
.
post
(
'/stu/vocabulary'
,
{
...
@@ -502,9 +534,6 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
...
@@ -502,9 +534,6 @@ dashboardControllers.controller('StudentCollectionsCtrl', function StudentCollec
else
else
ngToast
.
danger
({
content
:
$translate
.
instant
(
'error_adding_picto'
)
});
ngToast
.
danger
({
content
:
$translate
.
instant
(
'error_adding_picto'
)
});
});
});
// not needed
// $scope.loadPictos();
});
});
};
};
...
...
sails/src/config/policies.js
View file @
01bcb078
...
@@ -84,8 +84,10 @@ module.exports.policies = {
...
@@ -84,8 +84,10 @@ module.exports.policies = {
create
:
[
'tokenAuth'
,
'isSupervisorOfStudent'
],
create
:
[
'tokenAuth'
,
'isSupervisorOfStudent'
],
update
:
[
'tokenAuth'
,
'isSupervisorOfStudent'
],
update
:
[
'tokenAuth'
,
'isSupervisorOfStudent'
],
destroy
:
[
'tokenAuth'
,
'isSupervisorOfStudent'
],
destroy
:
[
'tokenAuth'
,
'isSupervisorOfStudent'
],
duplicate
:
[
'tokenAuth'
,
'isSupervisorOfStudent'
],
getScene
:
[
'tokenAuth'
],
getScene
:
[
'tokenAuth'
],
getStudentScenes
:
[
'tokenAuth'
]
getStudentScenes
:
[
'tokenAuth'
],
scene
:
true
},
},
ServerController
:
{
ServerController
:
{
...
...
sails/src/config/routes.js
View file @
01bcb078
...
@@ -77,6 +77,7 @@ module.exports.routes = {
...
@@ -77,6 +77,7 @@ module.exports.routes = {
'POST /scene'
:
'SceneController.scene'
,
'POST /scene'
:
'SceneController.scene'
,
'GET /scene/:id'
:
'SceneController.getScene'
,
'GET /scene/:id'
:
'SceneController.getScene'
,
'GET /scene/:id/copy'
:
'SceneController.duplicate'
,
'POST /scene/:id'
:
'SceneController.create'
,
'POST /scene/:id'
:
'SceneController.create'
,
'PUT /scene/:id'
:
'SceneController.update'
,
'PUT /scene/:id'
:
'SceneController.update'
,
'DELETE /scene/:id'
:
'SceneController.destroy'
,
'DELETE /scene/:id'
:
'SceneController.destroy'
,
...
...
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