Skip to content
Snippets Groups Projects
Commit cd6f346c authored by degygii's avatar degygii
Browse files

improved usability of events tool

parent 15fdc250
No related branches found
No related tags found
No related merge requests found
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
var core = { var core = {
// Important vars n' stuff // Important vars n' stuff
lib: { lib: {
//api_url: 'https://amiv-apidev.vsos.ethz.ch', // api_url: 'https://amiv-apidev.vsos.ethz.ch',
api_url: 'http://192.168.1.100', api_url: 'http://192.168.1.100',
spec_url: 'lib/amiv/spec.json', spec_url: 'lib/amiv/spec.json',
//spec_url: 'https://nicco.io/amiv/docs/spec.json', //spec_url: 'https://nicco.io/amiv/docs/spec.json',
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
}, },
'datetime': function(dt) { 'datetime': function(dt) {
var tmp = new Date(dt); var tmp = new Date(dt);
return new Date(dt).toJSON(); return new Date(dt).toISOString().split('.')[0]+"Z";
} }
} }
} }
......
{"domains":{"files":{"paths":{"/files/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a File"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a File"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a File"}},"/files":{"POST":{"params":[{"required":false,"type":"objectid","name":"study_doc","data_relation":{"field":"id","resource":"studydocuments","embeddable":true}},{"name":"name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"required":true,"type":"media","name":"data"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"study_doc_id","data_relation":{"field":"id","resource":"studydocuments","embeddable":false},"required":true,"type":"objectid"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a File"},"GET":{"params":[],"label":"Retrieve all files"}}},"description":{}},"studydocuments":{"paths":{"/studydocuments/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Studydocument"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"required":false,"type":"objectid","name":"files","data_relation":{"field":"id","resource":"files","embeddable":true}},{"name":"name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"professor","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"exam_session","nullable":true,"required":false,"maxlength":10,"unique":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"author_name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":false,"name":"semester","nullable":true,"required":false,"type":"integer"},{"name":"department","nullable":true,"required":false,"maxlength":4,"unique":false,"type":"string"},{"name":"lecture","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"type","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Studydocument"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Studydocument"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Studydocument"}},"/studydocuments":{"POST":{"params":[{"required":false,"type":"objectid","name":"files","data_relation":{"field":"id","resource":"files","embeddable":true}},{"name":"name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"professor","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"exam_session","nullable":true,"required":false,"maxlength":10,"unique":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"author_name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":false,"name":"semester","nullable":true,"required":false,"type":"integer"},{"name":"department","nullable":true,"required":false,"maxlength":4,"unique":false,"type":"string"},{"name":"lecture","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"type","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Studydocument"},"GET":{"params":[],"label":"Retrieve all studydocuments"}}},"description":{"fields":{"semester":"Study-Semester as an Integer starting with first semester Bachelor."},"general":"Study-documents are basically all documents that are connected to a course. This resource provides meta-data for the assigned files."}},"users":{"paths":{"/users/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a User"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"name":"legi","nullable":true,"required":false,"maxlength":8,"unique":true,"type":"string"},{"unique":false,"name":"firstname","maxlength":50,"required":true,"type":"string"},{"required":false,"type":"objectid","name":"sessions","data_relation":{"field":"id","resource":"sessions","embeddable":true}},{"required":false,"type":"objectid","name":"groupmemberships","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"unique":false,"name":"lastname","maxlength":50,"required":true,"type":"string"},{"name":"rfid","nullable":true,"required":false,"maxlength":6,"unique":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"regex":"^.+@.+$","name":"email","required":true,"maxlength":100,"unique":true,"type":"string"},{"name":"phone","nullable":true,"required":false,"maxlength":20,"unique":false,"type":"string"},{"name":"membership","default":"none","required":true,"maxlength":13,"unique":false,"type":"string"},{"required":false,"type":"objectid","name":"eventsignups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"name":"nethz","nullable":true,"required":false,"maxlength":30,"unique":true,"type":"string","empty":false},{"name":"gender","required":true,"allowed":["male","female"],"unique":false,"type":"string","maxlength":6},{"name":"department","nullable":true,"required":false,"allowed":["itet","mavt"],"unique":false,"type":"string","maxlength":5},{"name":"password","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"send_newsletter","nullable":true,"default":true,"required":false,"unique":false,"type":"boolean"}],"label":"Update a User"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a User"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a User"}},"/users/{nethz}":{"GET":{"params":[{"name":"nethz","nullable":true,"required":false,"maxlength":30,"unique":true,"type":"string","empty":false}],"label":"Retrieve a User"}},"/users":{"POST":{"params":[{"name":"legi","nullable":true,"required":false,"maxlength":8,"unique":true,"type":"string"},{"unique":false,"name":"firstname","maxlength":50,"required":true,"type":"string"},{"required":false,"type":"objectid","name":"sessions","data_relation":{"field":"id","resource":"sessions","embeddable":true}},{"required":false,"type":"objectid","name":"groupmemberships","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"unique":false,"name":"lastname","maxlength":50,"required":true,"type":"string"},{"name":"rfid","nullable":true,"required":false,"maxlength":6,"unique":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"regex":"^.+@.+$","name":"email","required":true,"maxlength":100,"unique":true,"type":"string"},{"name":"phone","nullable":true,"required":false,"maxlength":20,"unique":false,"type":"string"},{"name":"membership","default":"none","required":true,"maxlength":13,"unique":false,"type":"string"},{"required":false,"type":"objectid","name":"eventsignups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"name":"nethz","nullable":true,"required":false,"maxlength":30,"unique":true,"type":"string","empty":false},{"name":"gender","required":true,"allowed":["male","female"],"unique":false,"type":"string","maxlength":6},{"name":"department","nullable":true,"required":false,"allowed":["itet","mavt"],"unique":false,"type":"string","maxlength":5},{"name":"password","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"send_newsletter","nullable":true,"default":true,"required":false,"unique":false,"type":"boolean"}],"label":"Create a User"},"GET":{"params":[],"label":"Retrieve all users"}}},"description":{"methods":{"GET":"Authorization is required for most of the fields"},"general":"In general, the user data will be generated from LDAP-Data. However, one might change the RFID-Number or the membership-status. Extraordinary members may not have a LDAP-Account and can therefore access all given fields."}},"":{"paths":{"/":{"GET":{}}},"description":{}},"purchases":{"paths":{"/purchases":{"POST":{"params":[{"unique":false,"name":"slot","nullable":true,"required":false,"type":"integer"},{"name":"user_id","nullable":true,"required":false,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"timestamp","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"type","nullable":true,"required":false,"maxlength":5,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Purchase"},"GET":{"params":[],"label":"Retrieve all purchases"}},"/purchases/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Purchase"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"slot","nullable":true,"required":false,"type":"integer"},{"name":"user_id","nullable":true,"required":false,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"timestamp","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"type","nullable":true,"required":false,"maxlength":5,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Purchase"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Purchase"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Purchase"}}},"description":{"fields":{"slot":"Slot in the machine which was purchased(different items, which may have different prices)."},"general":"A beer machine or kaffi machine transaction. Users should be able to get beer or kaffi, if their last timestamp is older than one day and they are AMIV members. This resource is used to log their purchases."}},"docs":{"paths":{"/docs/":{"GET":{}},"/docs/spec.json":{"GET":{}}},"description":{}},"groupusermembers":{"paths":{"/groupusermembers/{_id}":{"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Groupusermember"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Groupusermember"}},"/groupusermembers":{"POST":{"params":[{"name":"group_id","self_enrollment_must_be_allowed":true,"required":true,"unique_combination":["groupusermembers","user_id"],"data_relation":{"field":"id","resource":"groups","embeddable":false},"unique":false,"type":"objectid"},{"name":"user_id","unique_combination":["groupusermembers","group_id"],"required":true,"only_self_enrollment_for_group":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Groupusermember"},"GET":{"params":[],"label":"Retrieve all groupusermembers"}}},"description":{"general":"Assignment of registered users to groups."}},"eventsignups":{"paths":{"/eventsignups/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Eventsignup"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"additional_fields","nullable":true,"required":false,"type":"json_event_field"},{"name":"user_id","unique_combination":["eventsignups","event_id"],"required":true,"not_patchable":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"only_self_enrollment_for_event":true,"unique":false,"type":"objectid"},{"signup_requirements":true,"name":"event_id","unique_combination":["eventsignups","user_id","email"],"required":true,"not_patchable":true,"data_relation":{"field":"id","resource":"events","embeddable":false},"unique":false,"type":"objectid"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"regex":"^.+@.+$","name":"email","email_signup_must_be_allowed":true,"nullable":true,"required":false,"unique_combination":["eventsignups","event_id"],"not_patchable":true,"maxlength":100,"unique":false,"type":"objectid","only_anonymous":true},{"name":"_confirmed","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Eventsignup"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Eventsignup"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Eventsignup"}},"/eventsignups":{"GET":{"params":[],"label":"Retrieve all eventsignups"}}},"description":{"fields":{"additional_fields":"Data-schema depends on 'additional_fields' from the mapped event. Please provide in json-format.","user_id":"To sign up as external user, set 'user_id' to '-1'","email":"For registered users, this is just a projection of your general email-address. External users need to provide their email here."},"general":"You can signup here for an existing event inside of the registration-window. External Users can only sign up to public events."}},"static":{"paths":{"/static/bootstrap/{filename}":{"GET":{}},"/static/{filename}":{"GET":{}}},"description":{}},"groups":{"paths":{"/groups":{"POST":{"params":[{"required":false,"type":"objectid","name":"user_subscribers","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"required":false,"type":"objectid","name":"addresses","data_relation":{"field":"id","resource":"forwardaddresses","embeddable":true}},{"unique":true,"name":"name","maxlength":100,"required":true,"type":"string"},{"unique":false,"name":"has_zoidberg_share","default":false,"required":true,"type":"boolean"},{"unique":false,"name":"allow_self_enrollment","default":false,"required":true,"type":"boolean"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"moderator_id","data_relation":{"field":"id","resource":"users","embeddable":false},"required":true,"type":"objectid"},{"required":false,"type":"objectid","name":"owner","data_relation":{"field":"id","resource":"users","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":false,"name":"permissions","nullable":true,"required":false,"type":"permissions_jsonschema"}],"label":"Create a Group"},"GET":{"params":[],"label":"Retrieve all groups"}},"/groups/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Group"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"required":false,"type":"objectid","name":"user_subscribers","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"required":false,"type":"objectid","name":"addresses","data_relation":{"field":"id","resource":"forwardaddresses","embeddable":true}},{"unique":true,"name":"name","maxlength":100,"required":true,"type":"string"},{"unique":false,"name":"has_zoidberg_share","default":false,"required":true,"type":"boolean"},{"unique":false,"name":"allow_self_enrollment","default":false,"required":true,"type":"boolean"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"moderator_id","data_relation":{"field":"id","resource":"users","embeddable":false},"required":true,"type":"objectid"},{"required":false,"type":"objectid","name":"owner","data_relation":{"field":"id","resource":"users","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":false,"name":"permissions","nullable":true,"required":false,"type":"permissions_jsonschema"}],"label":"Update a Group"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Group"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Group"}}},"description":{"fields":{"has_zoidberg_share":"Wether the group has a share in the amiv storage","allow_self_enrollment":"If true, the group can be seen by all users and they can subscribe themselves","permissions":"permissions the group grants. has to be according to the jsonschema available at /notyetavailable"},"general":"This resource describes the different teams in AMIV.A group can grant API permissions and can be reached with several addresses. To see the subscriptions, have a look at '/groupusermembers'. To see the mail addresses, see '/forwardaddresses'."}},"forwardaddresses":{"paths":{"/forwardaddresses/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Forwardaddresse"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"name":"group_id","required":true,"data_relation":{"field":"id","resource":"groups","embeddable":false},"only_groups_you_moderate":true,"unique":false,"type":"objectid"},{"required":false,"type":"objectid","name":"group","data_relation":{"field":"id","resource":"groups","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":true,"name":"address","maxlength":100,"required":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"}],"label":"Update a Forwardaddresse"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Forwardaddresse"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Forwardaddresse"}},"/forwardaddresses":{"POST":{"params":[{"name":"group_id","required":true,"data_relation":{"field":"id","resource":"groups","embeddable":false},"only_groups_you_moderate":true,"unique":false,"type":"objectid"},{"required":false,"type":"objectid","name":"group","data_relation":{"field":"id","resource":"groups","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":true,"name":"address","maxlength":100,"required":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"}],"label":"Create a Forwardaddresse"},"GET":{"params":[],"label":"Retrieve all forwardaddresses"}}},"description":{"fields":{"address":"E-Mail address to forward"},"general":"An email address associated with a group. By adding an address here, all mails sent to that address will be forwarded to all members of the associated group."}},"media":{"paths":{"/media/{_id}":{"GET":{}}},"description":{}},"sessions":{"paths":{"/sessions/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Session"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"token","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"user_id","data_relation":{"field":"id","resource":"users","embeddable":false},"required":true,"type":"objectid"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Session"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Session"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Session"}},"/sessions":{"GET":{"params":[],"label":"Retrieve all sessions"}}},"description":{"methods":{"POST":"Login and aquire a login token. Post the fields 'user' and 'password', the response will contain the token."},"general":"A session is used to authenticate a user after he provided login data. To acquire a session use POST, which will give you a token to use as the user field of HTTP basic auth header with an empty password. POST requires user and password fields."}},"storage":{"paths":{"/storage/{filename}":{"GET":{}}},"description":{}},"joboffers":{"paths":{"/joboffers":{"POST":{"params":[{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"name":"company","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"time_end","nullable":true,"required":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"logo"},{"filetype":["pdf"],"required":false,"type":"media","name":"pdf"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Joboffer"},"GET":{"params":[],"label":"Retrieve all joboffers"}},"/joboffers/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Joboffer"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"name":"company","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"time_end","nullable":true,"required":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"logo"},{"filetype":["pdf"],"required":false,"type":"media","name":"pdf"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Joboffer"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Joboffer"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Joboffer"}}},"description":{}},"confirmations":{"paths":{"/confirmations":{"POST":{}}},"description":{}},"events":{"paths":{"/events":{"POST":{"params":[{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"allow_email_signup","default":false,"required":true,"type":"boolean"},{"readonly":true,"unique":false,"name":"signup_count","required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_thumbnail"},{"name":"time_end","nullable":true,"later_than":"time_start","required":false,"dependencies":["time_start"],"unique":false,"type":"datetime"},{"required":false,"type":"objectid","name":"signups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"unique":false,"name":"time_register_start","nullable":true,"required":false,"type":"datetime"},{"unique":false,"name":"catchphrase_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"name":"time_register_end","nullable":true,"later_than":"time_register_start","required":false,"dependencies":["time_register_start"],"unique":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_banner"},{"unique":false,"name":"time_start","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"spots","min":-1,"if_this_then":["time_register_start","time_register_end"],"required":true,"unique":false,"type":"integer"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"location","nullable":true,"required":false,"maxlength":50,"unique":false,"type":"string"},{"name":"show_infoscreen","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"additional_fields","nullable":true,"required":false,"type":"json_schema"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_infoscreen"},{"name":"price","nullable":true,"required":false,"min":0,"unique":false,"type":"integer"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_poster"},{"name":"show_announce","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"name":"show_website","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"catchphrase_de","nullable":true,"required":false,"type":"string"}],"label":"Create a Event"},"GET":{"params":[],"label":"Retrieve all events"}},"/events/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Event"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"allow_email_signup","default":false,"required":true,"type":"boolean"},{"readonly":true,"unique":false,"name":"signup_count","required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_thumbnail"},{"name":"time_end","nullable":true,"later_than":"time_start","required":false,"dependencies":["time_start"],"unique":false,"type":"datetime"},{"required":false,"type":"objectid","name":"signups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"unique":false,"name":"time_register_start","nullable":true,"required":false,"type":"datetime"},{"unique":false,"name":"catchphrase_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"name":"time_register_end","nullable":true,"later_than":"time_register_start","required":false,"dependencies":["time_register_start"],"unique":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_banner"},{"unique":false,"name":"time_start","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"spots","min":-1,"if_this_then":["time_register_start","time_register_end"],"required":true,"unique":false,"type":"integer"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"location","nullable":true,"required":false,"maxlength":50,"unique":false,"type":"string"},{"name":"show_infoscreen","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"additional_fields","nullable":true,"required":false,"type":"json_schema"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_infoscreen"},{"name":"price","nullable":true,"required":false,"min":0,"unique":false,"type":"integer"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_poster"},{"name":"show_announce","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"name":"show_website","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"catchphrase_de","nullable":true,"required":false,"type":"string"}],"label":"Update a Event"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Event"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Event"}}},"description":{"fields":{"additional_fields":"must be provided in form of a JSON-Schema. You can add here fields you want to know from people signing up going further than their email-address","price":"Price of the event as Integer in Rappen.","allow_email_signup":"If False, only AMIV-Members can sign up for this event","spots":"For no limit, set to '0'. If no signup required, set to '-1'. Otherwise just provide an integer."},"methods":{"GET":"You are always allowed, even without session, to view AMIV-Events"},"general":"An Event is basically everything happening in the AMIV. All time fields have the format YYYY-MM-DDThh:mmZ, e.g. 2014-12-20T11:50:06Z"}}},"api_name":"API","base":"http:///","server_name":null} {
"api_name": "API",
"domains": {
"events": {
"paths": {
"/events/{_id}": {
"DELETE": {
"label": "Delete a Event",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a Event",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"PATCH": {
"label": "Update a Event",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
},
{
"nullable": true,
"maxlength": 500,
"type": "string",
"required": false,
"name": "catchphrase_de"
},
{
"nullable": true,
"maxlength": 500,
"type": "string",
"required": false,
"name": "catchphrase_en"
},
{
"nullable": true,
"maxlength": 50,
"type": "string",
"required": false,
"name": "location"
},
{
"nullable": true,
"required": false,
"later_than": "time_start",
"dependencies": [
"time_start"
],
"name": "time_end",
"type": "datetime"
},
{
"readonly": true,
"type": "integer",
"required": false,
"name": "signup_count"
},
{
"nullable": false,
"type": "boolean",
"required": true,
"name": "show_announce"
},
{
"nullable": false,
"type": "boolean",
"required": true,
"name": "show_infoscreen"
},
{
"nullable": true,
"type": "integer",
"required": true,
"min": 0,
"requires_if_not_null": [
"time_register_start",
"time_register_end",
"allow_email_signup"
],
"name": "spots"
},
{
"nullable": true,
"maxlength": 100,
"required": false,
"dependencies": [
"catchphrase_de",
"description_de"
],
"name": "title_de",
"type": "string"
},
{
"nullable": true,
"maxlength": 100,
"required": false,
"dependencies": [
"catchphrase_en",
"description_en"
],
"name": "title_en",
"type": "string"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_poster"
},
{
"nullable": true,
"min": 0,
"type": "integer",
"required": false,
"name": "price"
},
{
"nullable": true,
"maxlength": 10000,
"type": "string",
"required": false,
"name": "description_de"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_banner"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_thumbnail"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": false,
"depends_any": [
"title_de",
"title_en"
],
"required": true,
"name": "show_website",
"type": "boolean"
},
{
"nullable": true,
"only_if_not_null": "spots",
"type": "json_schema",
"required": false,
"name": "additional_fields"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_start"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_register_start"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_advertising_start"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_advertising_end"
},
{
"nullable": true,
"maxlength": 10000,
"type": "string",
"required": false,
"name": "description_en"
},
{
"nullable": false,
"type": "boolean",
"required": false,
"name": "allow_email_signup"
},
{
"nullable": true,
"required": false,
"later_than": "time_register_start",
"dependencies": [
"time_register_start"
],
"name": "time_register_end",
"type": "datetime"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_infoscreen"
}
]
}
},
"/events": {
"GET": {
"label": "Retrieve all events",
"params": []
},
"POST": {
"label": "Create a Event",
"params": [
{
"nullable": true,
"maxlength": 500,
"type": "string",
"required": false,
"name": "catchphrase_de"
},
{
"nullable": true,
"maxlength": 500,
"type": "string",
"required": false,
"name": "catchphrase_en"
},
{
"nullable": true,
"maxlength": 50,
"type": "string",
"required": false,
"name": "location"
},
{
"nullable": true,
"required": false,
"later_than": "time_start",
"dependencies": [
"time_start"
],
"name": "time_end",
"type": "datetime"
},
{
"readonly": true,
"type": "integer",
"required": false,
"name": "signup_count"
},
{
"nullable": false,
"type": "boolean",
"required": true,
"name": "show_announce"
},
{
"nullable": false,
"type": "boolean",
"required": true,
"name": "show_infoscreen"
},
{
"nullable": true,
"type": "integer",
"required": true,
"min": 0,
"requires_if_not_null": [
"time_register_start",
"time_register_end",
"allow_email_signup"
],
"name": "spots"
},
{
"nullable": true,
"type": "integer",
"required": false,
"min": 0,
"max": 10,
"name": "priority"
},
{
"nullable": true,
"maxlength": 100,
"required": false,
"dependencies": [
"catchphrase_de",
"description_de"
],
"name": "title_de",
"type": "string"
},
{
"nullable": true,
"maxlength": 100,
"required": false,
"dependencies": [
"catchphrase_en",
"description_en"
],
"name": "title_en",
"type": "string"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_poster"
},
{
"nullable": true,
"min": 0,
"type": "integer",
"required": false,
"name": "price"
},
{
"nullable": true,
"maxlength": 10000,
"type": "string",
"required": false,
"name": "description_de"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_banner"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_thumbnail"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": false,
"depends_any": [
"title_de",
"title_en"
],
"required": true,
"name": "show_website",
"type": "boolean"
},
{
"nullable": true,
"only_if_not_null": "spots",
"type": "json_schema",
"required": false,
"name": "additional_fields"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_start"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_register_start"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_advertising_start"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_advertising_end"
},
{
"nullable": true,
"maxlength": 10000,
"type": "string",
"required": false,
"name": "description_en"
},
{
"nullable": false,
"type": "boolean",
"required": false,
"name": "allow_email_signup"
},
{
"nullable": true,
"required": false,
"later_than": "time_register_start",
"dependencies": [
"time_register_start"
],
"name": "time_register_end",
"type": "datetime"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "img_infoscreen"
}
]
}
}
},
"description": {
"fields": {
"additional_fields": "must be provided in form of a JSON-Schema. You can add here fields you want to know from people signing up going further than their email-address",
"spots": "For no limit, set to '0'. If no signup required, set to '-1'. Otherwise just provide an integer.",
"allow_email_signup": "If False, only AMIV-Members can sign up for this event",
"price": "Price of the event as Integer in Rappen."
},
"methods": {
"GET": "You are always allowed, even without session, to view AMIV-Events"
},
"general": "An Event is basically everything happening in the AMIV. All time fields have the format YYYY-MM-DDThh:mmZ, e.g. 2014-12-20T11:50:06Z"
}
},
"groups": {
"paths": {
"/groups": {
"GET": {
"label": "Retrieve all groups",
"params": []
},
"POST": {
"label": "Create a Group",
"params": [
{
"type": "list",
"required": false,
"unique_elements": true,
"schema": {
"regex": "^.+@.+$",
"maxlength": 100,
"type": "string"
},
"name": "forward_to"
},
{
"nullable": true,
"propertyschema": {
"api_resources": true,
"type": "string"
},
"valueschema": {
"allowed": [
"read",
"readwrite"
],
"type": "string"
},
"required": false,
"name": "permissions",
"type": "dict"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": true,
"type": "objectid",
"required": false,
"data_relation": {
"field": "_id",
"resource": "users"
},
"name": "moderator"
},
{
"unique_elements_for_resource": true,
"required": false,
"name": "receive_from",
"unique_elements": true,
"schema": {
"regex": "[a-z0-9_\\.-]+",
"maxlength": 100,
"type": "string"
},
"type": "list"
},
{
"type": "boolean",
"required": false,
"default": false,
"name": "allow_self_enrollment"
},
{
"type": "boolean",
"required": false,
"default": false,
"name": "has_zoidberg_share"
},
{
"maxlength": 100,
"unique": true,
"type": "string",
"required": true,
"empty": false,
"name": "name"
}
]
}
},
"/groups/{_id}": {
"DELETE": {
"label": "Delete a Group",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a Group",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"PATCH": {
"label": "Update a Group",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
},
{
"type": "list",
"required": false,
"unique_elements": true,
"schema": {
"regex": "^.+@.+$",
"maxlength": 100,
"type": "string"
},
"name": "forward_to"
},
{
"nullable": true,
"propertyschema": {
"api_resources": true,
"type": "string"
},
"valueschema": {
"allowed": [
"read",
"readwrite"
],
"type": "string"
},
"required": false,
"name": "permissions",
"type": "dict"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": true,
"type": "objectid",
"required": false,
"data_relation": {
"field": "_id",
"resource": "users"
},
"name": "moderator"
},
{
"unique_elements_for_resource": true,
"required": false,
"name": "receive_from",
"unique_elements": true,
"schema": {
"regex": "[a-z0-9_\\.-]+",
"maxlength": 100,
"type": "string"
},
"type": "list"
},
{
"type": "boolean",
"required": false,
"default": false,
"name": "allow_self_enrollment"
},
{
"type": "boolean",
"required": false,
"default": false,
"name": "has_zoidberg_share"
},
{
"maxlength": 100,
"unique": true,
"type": "string",
"required": true,
"empty": false,
"name": "name"
}
]
}
}
},
"description": {
"fields": {
"permissions": "permissions the group grants. has to be according to the jsonschema available at /notyetavailable",
"allow_self_enrollment": "If true, the group can be seen by all users and they can subscribe themselves",
"has_zoidberg_share": "If the group has a share in the amiv storage"
},
"general": "This resource describes the different teams in AMIV.A group can grant API permissions and can be reached with several addresses. To see the addresses of this group, see /groupaddressesTo see the members, have a look at '/groupmembers'. To see the addresses messages are forwarded to, see /groupforwards"
}
},
"sessions": {
"paths": {
"/sessions": {
"DELETE": {
"label": "Delete all sessions",
"params": []
},
"GET": {
"label": "Retrieve all sessions",
"params": []
},
"POST": {
"label": "Create a Session",
"params": [
{
"nullable": false,
"empty": false,
"required": true,
"name": "username",
"type": "string"
},
{
"readonly": true,
"type": "objectid",
"required": false,
"data_relation": {
"cascade_delete": true,
"field": "_id",
"embeddable": true,
"resource": "users"
},
"name": "user"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"readonly": true,
"type": "string",
"required": false,
"name": "token"
},
{
"nullable": false,
"empty": false,
"required": true,
"name": "password",
"type": "string"
}
]
}
},
"/sessions/{_id}": {
"DELETE": {
"label": "Delete a Session",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a Session",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
}
}
},
"description": {
"methods": {
"GET": "Check token(s).",
"POST": "Login and aquire a login token. Post the fields 'username' and 'password', the response will contain the token. username can be either nethz, mail, or user_id"
},
"general": "A session is used to authenticate a user after he provided login data. A POST to /session will return a token you can use in an Authorization header: token <yourtoken>"
}
},
"joboffers": {
"paths": {
"/joboffers/{_id}": {
"DELETE": {
"label": "Delete a Joboffer",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a Joboffer",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"PATCH": {
"label": "Update a Joboffer",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
},
{
"nullable": true,
"type": "string",
"required": false,
"name": "description_en"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"type": "media",
"required": false,
"filetype": [
"pdf"
],
"name": "pdf"
},
{
"nullable": true,
"maxlength": 30,
"type": "string",
"depends_any": [
"title_de",
"title_en"
],
"required": true,
"name": "company"
},
{
"nullable": true,
"type": "string",
"required": false,
"name": "title_de"
},
{
"nullable": true,
"type": "string",
"required": false,
"name": "title_en"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_end"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "logo"
},
{
"nullable": true,
"unique": false,
"type": "string",
"required": false,
"name": "description_de"
}
]
}
},
"/joboffers": {
"GET": {
"label": "Retrieve all joboffers",
"params": []
},
"POST": {
"label": "Create a Joboffer",
"params": [
{
"nullable": true,
"type": "string",
"required": false,
"name": "description_en"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"type": "media",
"required": false,
"filetype": [
"pdf"
],
"name": "pdf"
},
{
"nullable": true,
"maxlength": 30,
"type": "string",
"depends_any": [
"title_de",
"title_en"
],
"required": true,
"name": "company"
},
{
"nullable": true,
"type": "string",
"required": false,
"name": "title_de"
},
{
"nullable": true,
"type": "string",
"required": false,
"name": "title_en"
},
{
"nullable": true,
"type": "datetime",
"required": false,
"name": "time_end"
},
{
"type": "media",
"required": false,
"filetype": [
"png",
"jpeg"
],
"name": "logo"
},
{
"nullable": true,
"unique": false,
"type": "string",
"required": false,
"name": "description_de"
}
]
}
}
},
"description": {
"fields": {},
"general": "A Job Offer posts repositoryUsers can post a job offer with the necessarycontent to fill out a job offer advertisement"
}
},
"studydocuments": {
"paths": {
"/studydocuments": {
"DELETE": {
"label": "Delete all studydocuments",
"params": []
},
"GET": {
"label": "Retrieve all studydocuments",
"params": []
},
"POST": {
"label": "Create a Studydocument",
"params": [
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "lecture"
},
{
"nullable": true,
"type": "integer",
"required": false,
"name": "semester"
},
{
"type": "list",
"required": true,
"schema": {
"type": "media"
},
"name": "files"
},
{
"nullable": true,
"maxlength": 4,
"type": "string",
"required": false,
"name": "department"
},
{
"nullable": true,
"maxlength": 5,
"type": "string",
"required": false,
"name": "coursesemester"
},
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "professor"
},
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "author"
},
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "name"
},
{
"nullable": true,
"readonly": true,
"data_relation": {
"field": "_id",
"resource": "users"
},
"required": false,
"name": "uploader",
"type": "objectid"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": true,
"maxlength": 30,
"type": "string",
"required": false,
"name": "type"
}
]
}
},
"/studydocuments/{_id}": {
"DELETE": {
"label": "Delete a Studydocument",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a Studydocument",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"PATCH": {
"label": "Update a Studydocument",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
},
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "lecture"
},
{
"nullable": true,
"type": "integer",
"required": false,
"name": "semester"
},
{
"type": "list",
"required": true,
"schema": {
"type": "media"
},
"name": "files"
},
{
"nullable": true,
"maxlength": 4,
"type": "string",
"required": false,
"name": "department"
},
{
"nullable": true,
"maxlength": 5,
"type": "string",
"required": false,
"name": "coursesemester"
},
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "professor"
},
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "author"
},
{
"nullable": true,
"maxlength": 100,
"type": "string",
"required": false,
"name": "name"
},
{
"nullable": true,
"readonly": true,
"data_relation": {
"field": "_id",
"resource": "users"
},
"required": false,
"name": "uploader",
"type": "objectid"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": true,
"maxlength": 30,
"type": "string",
"required": false,
"name": "type"
}
]
}
}
},
"description": {
"fields": {
"author": "Original author of the uploaded files(Prof, Assistant, copyright owner)",
"semester": "Study-Semester as an Integer starting with first semester Bachelor.",
"uploader": "Read-only field describing which AMIV member uploaded the files",
"coursesemester": "Course Semester as Enum(HS/FS)+Integer"
},
"general": "Study-documents are basically all documents that are connected to a course. All metadata is optional and intended to help finding the file. There are no strict categories, as those do not work well for courses available to many departements and aiming at all levels of experience."
}
},
"users": {
"paths": {
"/users/{nethz}": {
"GET": {
"label": "Retrieve a User",
"params": [
{
"nullable": true,
"maxlength": 30,
"default": null,
"unique": true,
"type": "string",
"required": false,
"not_patchable_unless_admin": true,
"empty": false,
"name": "nethz"
}
]
}
},
"/users/{_id}": {
"DELETE": {
"label": "Delete a User",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a User",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"PATCH": {
"label": "Update a User",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
},
{
"nullable": true,
"maxlength": 30,
"default": null,
"unique": true,
"type": "string",
"required": false,
"not_patchable_unless_admin": true,
"empty": false,
"name": "nethz"
},
{
"maxlength": 100,
"unique": true,
"type": "string",
"required": true,
"regex": "^.+@.+$",
"name": "email"
},
{
"nullable": true,
"empty": false,
"maxlength": 20,
"required": false,
"name": "phone",
"type": "string"
},
{
"not_patchable_unless_admin": true,
"allowed": [
"male",
"female"
],
"unique": false,
"type": "string",
"required": true,
"maxlength": 6,
"name": "gender"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": false,
"maxlength": 50,
"type": "string",
"required": true,
"not_patchable_unless_admin": true,
"empty": false,
"name": "firstname"
},
{
"nullable": true,
"maxlength": 8,
"unique": true,
"type": "string",
"required": false,
"not_patchable_unless_admin": true,
"name": "legi"
},
{
"nullable": true,
"not_patchable_unless_admin": true,
"required": false,
"allowed": [
"itet",
"mavt"
],
"name": "department",
"type": "string"
},
{
"nullable": true,
"type": "boolean",
"required": false,
"name": "send_newsletter"
},
{
"nullable": true,
"maxlength": 100,
"default": null,
"type": "string",
"required": false,
"empty": false,
"name": "password"
},
{
"nullable": false,
"maxlength": 50,
"type": "string",
"required": true,
"not_patchable_unless_admin": true,
"empty": false,
"name": "lastname"
},
{
"maxlength": 13,
"allowed": [
"none",
"regular",
"extraordinary",
"honorary"
],
"unique": false,
"type": "string",
"required": true,
"not_patchable_unless_admin": true,
"name": "membership"
},
{
"nullable": true,
"maxlength": 6,
"unique": true,
"type": "string",
"required": false,
"empty": false,
"name": "rfid"
}
]
}
},
"/users": {
"GET": {
"label": "Retrieve all users",
"params": []
},
"POST": {
"label": "Create a User",
"params": [
{
"nullable": true,
"maxlength": 30,
"default": null,
"unique": true,
"type": "string",
"required": false,
"not_patchable_unless_admin": true,
"empty": false,
"name": "nethz"
},
{
"maxlength": 100,
"unique": true,
"type": "string",
"required": true,
"regex": "^.+@.+$",
"name": "email"
},
{
"nullable": true,
"empty": false,
"maxlength": 20,
"required": false,
"name": "phone",
"type": "string"
},
{
"not_patchable_unless_admin": true,
"allowed": [
"male",
"female"
],
"unique": false,
"type": "string",
"required": true,
"maxlength": 6,
"name": "gender"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": false,
"maxlength": 50,
"type": "string",
"required": true,
"not_patchable_unless_admin": true,
"empty": false,
"name": "firstname"
},
{
"nullable": true,
"maxlength": 8,
"unique": true,
"type": "string",
"required": false,
"not_patchable_unless_admin": true,
"name": "legi"
},
{
"nullable": true,
"not_patchable_unless_admin": true,
"required": false,
"allowed": [
"itet",
"mavt"
],
"name": "department",
"type": "string"
},
{
"nullable": true,
"type": "boolean",
"required": false,
"name": "send_newsletter"
},
{
"nullable": true,
"maxlength": 100,
"default": null,
"type": "string",
"required": false,
"empty": false,
"name": "password"
},
{
"nullable": false,
"maxlength": 50,
"type": "string",
"required": true,
"not_patchable_unless_admin": true,
"empty": false,
"name": "lastname"
},
{
"maxlength": 13,
"allowed": [
"none",
"regular",
"extraordinary",
"honorary"
],
"unique": false,
"type": "string",
"required": true,
"not_patchable_unless_admin": true,
"name": "membership"
},
{
"nullable": true,
"maxlength": 6,
"unique": true,
"type": "string",
"required": false,
"empty": false,
"name": "rfid"
}
]
}
}
},
"description": {
"methods": {
"GET": "Authorization is required for most of the fields"
},
"general": "In general, the user data will be generated from LDAP-Data. However, one might change the RFID-Number or the membership-status. Extraordinary members may not have a LDAP-Account and can therefore access all given fields."
}
},
"purchases": {
"paths": {
"/purchases": {
"GET": {
"label": "Retrieve all purchases",
"params": []
},
"POST": {
"label": "Create a Purchase",
"params": [
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"nullable": false,
"unique": false,
"required": true,
"name": "timestamp",
"type": "datetime"
},
{
"nullable": false,
"not_patchable_unless_admin": true,
"allowed": [
"beer",
"coffee"
],
"unique": false,
"type": "string",
"required": true,
"maxlength": 6,
"name": "product"
},
{
"nullable": false,
"data_relation": {
"field": "_id",
"embeddable": true,
"resource": "users"
},
"unique": false,
"type": "objectid",
"required": true,
"name": "user"
}
]
}
},
"/purchases/{_id}": {
"GET": {
"label": "Retrieve a Purchase",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
}
}
},
"description": {
"fields": {},
"general": "A beer machine or kaffi machine transaction. Users should be able to get beer or kaffi, if their last timestamp is older than one day and they are AMIV members. This resource is used to log their purchases."
}
},
"groupmemberships": {
"paths": {
"/groupmemberships": {
"GET": {
"label": "Retrieve all groupmemberships",
"params": []
},
"POST": {
"label": "Create a Groupmembership",
"params": [
{
"self_enrollment_required": true,
"data_relation": {
"cascade_delete": true,
"field": "_id",
"embeddable": true,
"resource": "groups"
},
"required": true,
"name": "group",
"type": "objectid"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"data_relation": {
"cascade_delete": true,
"field": "_id",
"embeddable": true,
"resource": "users"
},
"type": "objectid",
"required": true,
"only_self_or_moderator": true,
"unique_combination": [
"group"
],
"name": "user"
}
]
}
},
"/groupmemberships/{_id}": {
"DELETE": {
"label": "Delete a Groupmembership",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a Groupmembership",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
}
}
},
"description": {
"general": "Assignment of registered users to groups."
}
},
"eventsignups": {
"paths": {
"/eventsignups": {
"GET": {
"label": "Retrieve all eventsignups",
"params": []
},
"POST": {
"label": "Create a Eventsignup",
"params": [
{
"nullable": true,
"type": "json_event_field",
"required": false,
"name": "additional_fields"
},
{
"nullable": false,
"email_signup_must_be_allowed": true,
"maxlength": 100,
"type": "string",
"required": false,
"regex": "^.+@.+$",
"not_patchable": true,
"name": "email"
},
{
"nullable": true,
"readonly": true,
"type": "boolean",
"required": false,
"name": "confirmed"
},
{
"nullable": false,
"data_relation": {
"field": "_id",
"embeddable": true,
"resource": "users"
},
"type": "objectid",
"only_self_enrollment_for_event": true,
"required": false,
"not_patchable": true,
"name": "user"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"data_relation": {
"field": "_id",
"embeddable": true,
"resource": "events"
},
"signup_requirements": true,
"type": "objectid",
"required": true,
"not_patchable": true,
"unique_combination": [
"user",
"email"
],
"name": "event"
}
]
}
},
"/eventsignups/{_id}": {
"DELETE": {
"label": "Delete a Eventsignup",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"GET": {
"label": "Retrieve a Eventsignup",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
}
]
},
"PATCH": {
"label": "Update a Eventsignup",
"params": [
{
"type": "string",
"required": true,
"name": "_id"
},
{
"nullable": true,
"type": "json_event_field",
"required": false,
"name": "additional_fields"
},
{
"nullable": false,
"email_signup_must_be_allowed": true,
"maxlength": 100,
"type": "string",
"required": false,
"regex": "^.+@.+$",
"not_patchable": true,
"name": "email"
},
{
"nullable": true,
"readonly": true,
"type": "boolean",
"required": false,
"name": "confirmed"
},
{
"nullable": false,
"data_relation": {
"field": "_id",
"embeddable": true,
"resource": "users"
},
"type": "objectid",
"only_self_enrollment_for_event": true,
"required": false,
"not_patchable": true,
"name": "user"
},
{
"type": "objectid",
"required": false,
"name": "_id"
},
{
"data_relation": {
"field": "_id",
"embeddable": true,
"resource": "events"
},
"signup_requirements": true,
"type": "objectid",
"required": true,
"not_patchable": true,
"unique_combination": [
"user",
"email"
],
"name": "event"
}
]
}
}
},
"description": {
"fields": {
"additional_fields": "Data-schema depends on 'additional_fields' from the mapped event. Please provide in json-format.",
"email": "For registered users, this is just a projection of your general email-address. External users need to provide their email here.",
"user": "Provide either user or email."
},
"methods": {
"PATCH": "Only additional_fields can be changed"
},
"general": "You can signup here for an existing event inside of the registration-window. External Users can only sign up to public events."
}
}
},
"base": "http:///",
"server_name": null
}
\ No newline at end of file
...@@ -18,11 +18,11 @@ ...@@ -18,11 +18,11 @@
<!-- modal for creating new events, easier to do it this way than js--> <!-- modal for creating new events, easier to do it this way than js-->
<div class="modal fade" id="event-modal" role="dialog"> <div class="modal fade" id="event-modal" role="dialog" data-etag="">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button> <button type="button" class="close" >&times;</button>
<h4 class="modal-title" id="event-modal-title"></h4> <h4 class="modal-title" id="event-modal-title"></h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
...@@ -62,6 +62,28 @@ ...@@ -62,6 +62,28 @@
</span> </span>
</div> </div>
</div> </div>
<div class="form-group">
<label for="time_start">Start Advertising</label>
<div class="input-group date" id="time_advertising_start">
<input type="text" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon-calendar glyphicon"></span>
</span>
</div>
</div>
<!-- </div> -->
<!-- <div class="col-md-3"> -->
<div class="form-group">
<label for="time_end">End Advertising</label>
<div class="input-group date" id="time_advertising_end">
<input type="text" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon-calendar glyphicon"></span>
</span>
</div>
</div>
<!-- </div> --> <!-- </div> -->
<!-- </div> --> <!-- </div> -->
...@@ -133,6 +155,11 @@ ...@@ -133,6 +155,11 @@
</label> </label>
</div> </div>
<div class="form-group">
<label for="price">Priority [1-10]</label>
<input type="number" class="form-control" min="0" id="priority" value=5></input>
</div>
<div class="form-group"> <div class="form-group">
<label for="description_de">Additional Fields (JSON schema)</label> <label for="description_de">Additional Fields (JSON schema)</label>
<textarea type="text" class="form-control" rows="3" id="additional_fields"></textarea> <textarea type="text" class="form-control" rows="3" id="additional_fields"></textarea>
...@@ -193,6 +220,7 @@ ...@@ -193,6 +220,7 @@
<script type="text/javascript"> <script type="text/javascript">
var events = { var events = {
somethingChanged: false,
showInTable: ['title_de', 'time_start', 'show_website', 'spots', 'signup_count'], showInTable: ['title_de', 'time_start', 'show_website', 'spots', 'signup_count'],
curEventData: null, curEventData: null,
...@@ -280,7 +308,7 @@ ...@@ -280,7 +308,7 @@
events.showInTable.forEach(function(i) { events.showInTable.forEach(function(i) {
tmp += '<td>' + ret['_items'][n][i] + '</td>'; tmp += '<td>' + ret['_items'][n][i] + '</td>';
}); });
$('.events-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>'); $('.events-table tbody').append('<tr data-id="' + ret['_items'][n]['_id'] + '">' + tmp + '</tr>');
} }
$('.events-table tbody tr').click(events.showDetails); $('.events-table tbody tr').click(events.showDetails);
$('#wheel-logo').css('transform', 'rotate(0deg)'); $('#wheel-logo').css('transform', 'rotate(0deg)');
...@@ -297,12 +325,41 @@ ...@@ -297,12 +325,41 @@
//show details of an event in a modal //show details of an event in a modal
//TODO: fill the more beautiful event-modal //TODO: fill the more beautiful event-modal
showDetails: function() { showDetails: function() {
somethingChanged = false;
console.log($(this).attr('data-id'));
amivcore.events.GET({ amivcore.events.GET({
id: $(this).attr('data-id') id: $(this).attr('data-id')
}, function(ret) { }, function(ret) {
curEventData = ret; curEventData = ret;
console.log(curEventData); console.log(curEventData);
$("#event-modal-title").val("edit event"); $("#event-modal-title").text("Edit Event");
$('#event-modal-footer').html('<button type="button" class="btn btn-default" data-dismiss="modal">Close</button><button type="button" class="btn btn-primary" onclick="events.inspectEvent()">update</button><button type="button" class="btn btn-danger" onclick="events.deleteEvent(' + etag +')">Delete</button>');
var etag = ret['_etag'];
$('#event-modal').attr('data-etag', etag);
//fill fields of the form with content that has the same ID
$('#event-modal-form').find('input, textarea').val(function (index, value) {
return ret[this.id];
});
//array of elements that are represented by checkboxes
var booleanEventData = ['signup-required', 'no-signup-limit', 'allow_email_signup', 'show_website', 'show_infoscreen', 'show_announce'];
for (i = 0; i < booleanEventData.length; i++){
$("#" + booleanEventData[i]).prop('checked', ret[booleanEventData[i]]);
}
//set the datepickers
$('#event-modal').modal('show');
var dateEventData = ['time_start', 'time_end', 'time_register_start', 'time_register_end', 'time_advertising_start', 'time_advertising_end'];
for (i = 0; i < dateEventData.length; i++){
if (ret[dateEventData[i]] != null){
$('#' + dateEventData[i]).data("DateTimePicker").date(new Date(ret[dateEventData[i]]));
}
}
// var tmp = '<table class="table table-hover events-edit-table" data-etag="' + ret['_etag'] + '"><tbody>'; // var tmp = '<table class="table table-hover events-edit-table" data-etag="' + ret['_etag'] + '"><tbody>';
// for (var cur in ret) { // for (var cur in ret) {
// if (cur.charAt(0) != '_' && cur != 'signups') // if (cur.charAt(0) != '_' && cur != 'signups')
...@@ -352,6 +409,26 @@ ...@@ -352,6 +409,26 @@
}); });
}, },
deleteEvent: function(etag) {
console.log('delete triggered');
if (confirm("Delete " + curEventData.title_de + "?") == true) {
amivcore.events.DELETE({
id: curEventData.id,
header: {
// 'If-Match': $('#event-modal').attr('data-etag')
'If-Match': etag
}
}, function(response) {
console.log(response);
});
events.get();
tools.log('Event deleted', 'w');
tools.modalClose();
} else {
tools.log('Event not Deleted', 'i');
}
},
/*showDetails: function() { /*showDetails: function() {
amivcore.events.GET({ amivcore.events.GET({
id: $(this).attr('data-id') id: $(this).attr('data-id')
...@@ -437,12 +514,18 @@ ...@@ -437,12 +514,18 @@
newEvent["data"]["catchphrase_de"] = setNullIfEmpty($("#catchphrase_de").val()); newEvent["data"]["catchphrase_de"] = setNullIfEmpty($("#catchphrase_de").val());
if (!($("#time_start").data("DateTimePicker").date() == null)) { if (!($("#time_start").data("DateTimePicker").date() == null)) {
//for now, because the api rejects .toISOString format newEvent["data"]["time_start"] = $("#time_start").data("DateTimePicker").date();
newEvent["data"]["time_start"] = $("#time_start").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ");
} }
if (!($("#time_end").data("DateTimePicker").date() == null)) { if (!($("#time_end").data("DateTimePicker").date() == null)) {
//for now, because the api rejects .toISOString format newEvent["data"]["time_end"] = $("#time_end").data("DateTimePicker").date();
newEvent["data"]["time_end"] = $("#time_end").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ"); }
if (!($("#time_advertising_start").data("DateTimePicker").date() == null)) {
newEvent["data"]["time_advertising_start"] = $("#time_advertising_start").data("DateTimePicker").date();
}
if (!($("#time_end").data("DateTimePicker").date() == null)) {
newEvent["data"]["time_advertising_end"] = $("#time_advertising_end").data("DateTimePicker").date();
} }
if (!$("#signup-required").is(":checked")) { if (!$("#signup-required").is(":checked")) {
...@@ -457,15 +540,13 @@ ...@@ -457,15 +540,13 @@
} }
if (!($("#time_register_start").data("DateTimePicker").date() == null)) { if (!($("#time_register_start").data("DateTimePicker").date() == null)) {
//for now, because the api rejects .toISOString format newEvent["data"]["time_register_start"] = $("#time_register_start").data("DateTimePicker").date();
newEvent["data"]["time_register_start"] = $("#time_register_start").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ");
} else { } else {
tools.log('field "Start of Registration" required', 'e'); tools.log('field "Start of Registration" required', 'e');
return; return;
} }
if (!($("#time_register_end").data("DateTimePicker").date() == null)) { if (!($("#time_register_end").data("DateTimePicker").date() == null)) {
//for now, because the api rejects .toISOString format newEvent["data"]["time_register_end"] = $("#time_register_end").data("DateTimePicker").date();
newEvent["data"]["time_register_end"] = $("#time_register_end").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ");
} else { } else {
tools.log('field "End of Registration" required', 'e'); tools.log('field "End of Registration" required', 'e');
return; return;
...@@ -485,6 +566,7 @@ ...@@ -485,6 +566,7 @@
newEvent["data"]["show_website"] = $("#show_website").is(':checked'); newEvent["data"]["show_website"] = $("#show_website").is(':checked');
newEvent["data"]["show_infoscreen"] = $("#show_infoscreen").is(':checked'); newEvent["data"]["show_infoscreen"] = $("#show_infoscreen").is(':checked');
newEvent["data"]["show_announce"] = $("#show_announce").is(':checked'); newEvent["data"]["show_announce"] = $("#show_announce").is(':checked');
newEvent["data"]["priority"] = (parseInt($("#priority").val()));
newEvent["data"]["additional_fields"] = setNullIfEmpty($("#additional_fields").val()); newEvent["data"]["additional_fields"] = setNullIfEmpty($("#additional_fields").val());
newEvent["data"]["title_en"] = setNullIfEmpty($("#title_en").val()); newEvent["data"]["title_en"] = setNullIfEmpty($("#title_en").val());
...@@ -511,18 +593,35 @@ ...@@ -511,18 +593,35 @@
//setting up the date time picker //setting up the date time picker
$(function() { $(function() {
$('#time_start').datetimepicker({ $('#time_start').datetimepicker({
locale: "de" locale: "de",
sideBySide: true
}); });
$('#time_end').datetimepicker({ $('#time_end').datetimepicker({
locale: "de", locale: "de",
useCurrent: false //Important! See issue #1075aa useCurrent: false, //Important! See issue #1075aa
sideBySide: true
});
$('#time_advertising_start').datetimepicker({
locale: "de",
sideBySide: true
});
$('#time_advertising_end').datetimepicker({
locale: "de",
useCurrent: false, //Important! See issue #1075aa
sideBySide: true
}); });
$('#time_register_start').datetimepicker({ $('#time_register_start').datetimepicker({
locale: "de" locale: "de",
sideBySide: true
}); });
$('#time_register_end').datetimepicker({ $('#time_register_end').datetimepicker({
locale: "de", locale: "de",
useCurrent: false //Important! See issue #107534 useCurrent: false, //Important! See issue #107534
sideBySide: true
}); });
$("#time_register_start").on("dp.change", function(e) { $("#time_register_start").on("dp.change", function(e) {
$('#time_register_end').data("DateTimePicker").minDate(e.date); $('#time_register_end').data("DateTimePicker").minDate(e.date);
...@@ -530,6 +629,12 @@ ...@@ -530,6 +629,12 @@
$("#time_register_end").on("dp.change", function(e) { $("#time_register_end").on("dp.change", function(e) {
$('#time_register_start').data("DateTimePicker").maxDate(e.date); $('#time_register_start').data("DateTimePicker").maxDate(e.date);
}); });
$("#time_advertising_start").on("dp.change", function(e) {
$('#time_advertising_end').data("DateTimePicker").minDate(e.date);
});
$("#time_advertising_end").on("dp.change", function(e) {
$('#time_advertising_start').data("DateTimePicker").maxDate(e.date);
});
$("#time_start").on("dp.change", function(e) { $("#time_start").on("dp.change", function(e) {
$('#time_end').data("DateTimePicker").minDate(e.date); $('#time_end').data("DateTimePicker").minDate(e.date);
}); });
...@@ -584,7 +689,7 @@ ...@@ -584,7 +689,7 @@
callback: function() { callback: function() {
var tmp = '<div class="form-group"><select class="form-control events-sort-select">'; var tmp = '<div class="form-group"><select class="form-control events-sort-select">';
var cur = events.sort.cur(); var cur = events.sort.cur();
['id', 'title_de', 'description_de', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location'].forEach(function(i) { ['_id', 'title_de', 'description_de', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location'].forEach(function(i) {
tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>&#8673; ' + i + '</option>'; tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>&#8673; ' + i + '</option>';
tmp += '<option value="-' + i + '"' + (('-' + i == cur) ? ' selected' : '') + '>&#8675; ' + i + '</option>'; tmp += '<option value="-' + i + '"' + (('-' + i == cur) ? ' selected' : '') + '>&#8675; ' + i + '</option>';
}); });
...@@ -613,7 +718,7 @@ ...@@ -613,7 +718,7 @@
cur = ''; cur = '';
else else
cur = cur.split('==')[1]; cur = cur.split('==')[1];
['id', 'title_de', 'description_de', 'title_en', 'description_en', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location'] ['_id', 'title_de', 'description_de', 'title_en', 'description_en', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location']
.forEach( .forEach(
function(i) { function(i) {
tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>' + i + '</option>'; tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>' + i + '</option>';
...@@ -648,6 +753,10 @@ ...@@ -648,6 +753,10 @@
$(document).ready(function() { $(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip(); $('[data-toggle="tooltip"]').tooltip();
$('#event-modal-form').on('keyup change', 'input, select, textarea, span ', function(){
console.log('changed shit');
events.somethingChanged = true;
});
}); });
function setNullIfEmpty(formData) { function setNullIfEmpty(formData) {
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
where: groups.search.cur(), where: groups.search.cur(),
} }
}, function(ret) { }, function(ret) {
console.log(ret);
if (ret === undefined || ret['_items'].length == 0) { if (ret === undefined || ret['_items'].length == 0) {
tools.log('No Data', 'w'); tools.log('No Data', 'w');
return; return;
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
groups.showInTable.forEach(function(i) { groups.showInTable.forEach(function(i) {
tmp += '<td>' + ret['_items'][n][i] + '</td>'; tmp += '<td>' + ret['_items'][n][i] + '</td>';
}); });
$('.groups-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>'); $('.groups-table tbody').append('<tr data-id="' + ret['_items'][n]['_id'] + '">' + tmp + '</tr>');
} }
$('.groups-table tbody tr').click(groups.showDetails); $('.groups-table tbody tr').click(groups.showDetails);
}); });
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
console.log(ret); console.log(ret);
curUserData = ret; curUserData = ret;
var tmp = '<div class="groups-edit-cont" data-etag="' + ret['_etag'] + '" data-id="' + ret['id'] + '">'; var tmp = '<div class="groups-edit-cont" data-etag="' + ret['_etag'] + '" data-id="' + ret['_id'] + '">';
for (var cur in ret) for (var cur in ret)
if (cur.charAt(0) != '_') if (cur.charAt(0) != '_')
if (cur == 'user_subscribers') { if (cur == 'user_subscribers') {
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
$('.groups-user-add-form input').each(function() { $('.groups-user-add-form input').each(function() {
newUserData[$(this).attr('name')] = $(this).val(); newUserData[$(this).attr('name')] = $(this).val();
}); });
newUserData['moderator_id'] = ret['_items'][0].id; newUserData['moderator_id'] = ret['_items'][0]['_id'];
console.log(newUserData); console.log(newUserData);
amivcore.groups.POST({ amivcore.groups.POST({
data: newUserData data: newUserData
......
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
users.showInTable.forEach(function(i) { users.showInTable.forEach(function(i) {
tmp += '<td>' + ret['_items'][n][i] + '</td>'; tmp += '<td>' + ret['_items'][n][i] + '</td>';
}); });
$('.users-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>'); $('.users-table tbody').append('<tr data-id="' + ret['_items'][n]['_id'] + '">' + tmp + '</tr>');
} }
$('.users-table tbody tr').click(users.showDetails); $('.users-table tbody tr').click(users.showDetails);
}); });
...@@ -249,7 +249,7 @@ ...@@ -249,7 +249,7 @@
callback: function() { callback: function() {
var tmp = '<div class="form-group"><select class="form-control users-sort-select">'; var tmp = '<div class="form-group"><select class="form-control users-sort-select">';
var cur = users.sort.cur(); var cur = users.sort.cur();
['id', 'firstname', 'lastname', 'membership', 'nethz'].forEach(function(i) { ['_id', 'firstname', 'lastname', 'membership', 'nethz'].forEach(function(i) {
tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>&#8673; ' + i + '</option>'; tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>&#8673; ' + i + '</option>';
tmp += '<option value="-' + i + '"' + (('-' + i == cur) ? ' selected' : '') + '>&#8675; ' + i + '</option>'; tmp += '<option value="-' + i + '"' + (('-' + i == cur) ? ' selected' : '') + '>&#8675; ' + i + '</option>';
}); });
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
cur = ''; cur = '';
else else
cur = cur.split('==')[1]; cur = cur.split('==')[1];
['id', 'firstname', 'lastname'].forEach(function(i) { ['_id', 'firstname', 'lastname'].forEach(function(i) {
tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>' + i + '</option>'; tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>' + i + '</option>';
}); });
tmp += '</select><br><input type="text" value="' + cur + '" class="form-control users-search-val"></div>'; tmp += '</select><br><input type="text" value="' + cur + '" class="form-control users-search-val"></div>';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment