Sammlung
This commit is contained in:
178
Sammlung/Praktikum/4/js/forum.js
Normal file
178
Sammlung/Praktikum/4/js/forum.js
Normal file
@ -0,0 +1,178 @@
|
||||
// ----------------------------------------------
|
||||
// forum.js
|
||||
// ----------------------------------------------
|
||||
// Verwendung von jquery, inheritance, Single-Page / Ajax, Event-Service
|
||||
// REST-Interface
|
||||
// ----------------------------------------------
|
||||
|
||||
|
||||
var FORUM = {};
|
||||
|
||||
//********************************************** USER-object
|
||||
FORUM.User_cl = Class.create({
|
||||
initialize: function () {
|
||||
this.name_s = '';
|
||||
this.password = '';
|
||||
this.loggedin = false;
|
||||
$('.clLoggedInText #idLoggedIn').hide();
|
||||
|
||||
},
|
||||
logout: function () {
|
||||
this.id_s = "";
|
||||
this.name_s = "niemand";
|
||||
this.loggedin = false;
|
||||
this.items = [];
|
||||
|
||||
|
||||
$('#idNav .clLinkToLogin').show();
|
||||
$('#idNav .clLinkToSignup').show();
|
||||
$('#idNav .clLinkToLogout').hide();
|
||||
$('.clLoggedInText #idNotLoggedIn').show();
|
||||
$('.clLoggedInText #idLoggedIn').hide();
|
||||
$('.clLoggedInText #idLoggedIn').text('Sie sind eingeloggt als: ');
|
||||
},
|
||||
login: function (data_o) {
|
||||
this.name_s = data_o['username'];
|
||||
this.password = data_o['password'];
|
||||
this.loggedin = true;
|
||||
|
||||
$('#idNav .clLinkToLogin').hide();
|
||||
$('#idNav .clLinkToSignup').hide();
|
||||
$('#idNav .clLinkToLogout').show();
|
||||
$('.clLoggedInText #idNotLoggedIn').hide();
|
||||
$('.clLoggedInText #idLoggedIn').show();
|
||||
$('.clLoggedInText #idLoggedIn').text($('.clLoggedInText #idLoggedIn').text() + data_o['username']);
|
||||
},
|
||||
register: function () {
|
||||
this.id_s = "";
|
||||
this.name_s = "niemand";
|
||||
this.loggedin = false;
|
||||
|
||||
$('#idNav .clLinkToLogin').show();
|
||||
$('#idNav .clLinkToSignup').show();
|
||||
$('#idNav .clLinkToLogout').hide();
|
||||
}
|
||||
});
|
||||
//**********************************************
|
||||
|
||||
|
||||
// ----------------------------------------------
|
||||
FORUM.Application_cl = Class.create({
|
||||
// ----------------------------------------------
|
||||
initialize: function () {
|
||||
this.content_o = null; // das jeweils aktuelle Objekt im Contentbereich
|
||||
this.nav_o = new FORUM.Nav_cl();
|
||||
//this.discussionView_o = new FORUM.PostlistView_cl();
|
||||
this.topicListView_o = new FORUM.TopicListView_cl();
|
||||
this.topicDetailView_o = new FORUM.TopicDetailView_cl();
|
||||
this.discussionListView_o = new FORUM.DiscussionListView_cl();
|
||||
this.discussionDetailView_o = new FORUM.DiscussionDetailView_cl();
|
||||
this.postListView_o = new FORUM.PostListView_cl();
|
||||
this.postDetailView_o = new FORUM.PostDetailView_cl();
|
||||
this.postView_o = new FORUM.PostView_cl();
|
||||
|
||||
//this.discussionlistView_o = new FORUM.DiscussionlistView_cl();
|
||||
//this.postView_o = new FORUM.PostView_cl();
|
||||
this.loginView_o = new FORUM.LoginView_cl();
|
||||
|
||||
// Registrierungen
|
||||
FORUM.es_o.subscribe_px(this, 'ContentChanged');
|
||||
},
|
||||
notify_px: function (self_opl, message_spl, data_apl) {
|
||||
switch (message_spl) {
|
||||
case 'ContentChanged':
|
||||
switch (data_apl[0]) {
|
||||
case 'init':
|
||||
FORUM.tm_o = new TELIB.TemplateManager_cl();
|
||||
break;
|
||||
|
||||
case 'showRegister':
|
||||
self_opl.setContent_p(self_opl.registerView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'showLogin':
|
||||
self_opl.setContent_p(self_opl.loginView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'logout':
|
||||
FORUM.user_o.logout();
|
||||
self_opl.setContent_p(self_opl.topicListView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'login':
|
||||
self_opl.setContent_p(self_opl.loginView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'register':
|
||||
FORUM.user_o.register();
|
||||
self_opl.setContent_p(self_opl.topicListView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'topicList':
|
||||
self_opl.setContent_p(self_opl.topicListView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'topicEdit':
|
||||
self_opl.setContent_p(self_opl.topicDetailView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'discussionList':
|
||||
self_opl.setContent_p(self_opl.discussionListView_o, data_apl[1]);
|
||||
break;
|
||||
|
||||
case 'discussionEdit':
|
||||
self_opl.setContent_p(self_opl.discussionDetailView_o, [data_apl[1], data_apl[2]]);
|
||||
break;
|
||||
|
||||
case 'discussion':
|
||||
self_opl.setContent_p(self_opl.postListView_o, [data_apl[1], data_apl[2]]);
|
||||
break;
|
||||
|
||||
case 'postEdit':
|
||||
self_opl.setContent_p(self_opl.postDetailView_o, [data_apl[1], data_apl[2], data_apl[3]]);
|
||||
break;
|
||||
|
||||
case 'post':
|
||||
self_opl.setContent_p(self_opl.postView_o, [data_apl[1], data_apl[2], data_apl[3]]);
|
||||
break;
|
||||
|
||||
default:
|
||||
console.warn('[Application_cl] unbekannte app-Notification: ' + data_apl[0]);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
console.warn('[Application_cl] unbekannte Notification: ' + message_spl);
|
||||
break;
|
||||
}
|
||||
},
|
||||
setContent_p: function (newContent_opl, data_opl) {
|
||||
if (this.content_o != null) {
|
||||
if (this.content_o.canClose_px()) {
|
||||
this.content_o.close_px();
|
||||
this.content_o = newContent_opl;
|
||||
this.content_o.render_px(data_opl);
|
||||
}
|
||||
} else {
|
||||
this.content_o = newContent_opl;
|
||||
this.content_o.render_px(data_opl);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// ----------------------------------------------
|
||||
$(document).ready(function () {
|
||||
// ----------------------------------------------
|
||||
// wird ausgeführt, wenn das Dokument vollständig geladen wurde
|
||||
FORUM.es_o = new EventService_cl();
|
||||
FORUM.app_o = new FORUM.Application_cl();
|
||||
FORUM.user_o = new FORUM.User_cl();
|
||||
FORUM.es_o.publish_px('ContentChanged', ['init', null]);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// EOF
|
Reference in New Issue
Block a user