You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
588 lines
22 KiB
588 lines
22 KiB
|
|
var _scroll = false;
|
|
// =============================================
|
|
$(document).ready(function () {
|
|
// -----------------------------------------
|
|
moment.lang('de');
|
|
// -----------------------------------------
|
|
doTooltipster($('.tt-std'), '.tooltipster-standard', 'top');
|
|
doTooltipster($('#mainnav .nav-item'), '.tooltipster-mainnav', 'top');
|
|
doTooltipster($('#repnav .nav-item'), '.tooltipster-repnav', 'bottom');
|
|
// -----------------------------------------
|
|
initRatingGroups();
|
|
// -----------------------------------------
|
|
$(window).scroll(function () {
|
|
_scroll = true;
|
|
});
|
|
setInterval(function () {
|
|
if (_scroll) {
|
|
//-- BACKTOP
|
|
var el = $("#backtop"),
|
|
wTop = $(window).scrollTop(),
|
|
wH = $(window).height(),
|
|
dH = $(document).height(),
|
|
nLimit = $("header").offset().top + $("header").height(),
|
|
//nLimit = 0,
|
|
p = parseInt(((wTop + wH - nLimit) / dH * 100) + 0.5) / 100;
|
|
(wTop > nLimit) ? el.css("display", "block") : el.css("display", "none");
|
|
el.css("opacity", p);
|
|
_scroll = false;
|
|
}
|
|
}, 50);
|
|
// -----------------------------------------
|
|
initNotifications();
|
|
// -----------------------------------------
|
|
$('textarea:visible').autosize();
|
|
// -----------------------------------------
|
|
$("input.readonly").each(function() {
|
|
var def = $(this).val();
|
|
$(this)[0].addEventListener("input", function () {
|
|
this.value = def;
|
|
}, false);
|
|
$(this).click(function() {
|
|
$(this).focus().select();
|
|
});
|
|
});
|
|
// -----------------------------------------
|
|
var jDSM = $.cookie("OpenAntrag-DisableScrollMenu");
|
|
//alert($(window).height() + ' | ' + $(document).height() + ' = ' + ($(document).height() - $(window).height()));
|
|
//alert($("nav").position().top + $("nav").height());
|
|
if ((jDSM === null || jDSM === 'false') && ($(document).height() - $(window).height()) > ($("nav").position().top + $("nav").height())) {
|
|
var headroom = new Headroom(document.querySelector("nav"), {
|
|
offset: $("nav").position().top + 10,
|
|
tolerance: 0,
|
|
classes: {
|
|
initial: "hrm",
|
|
pinned: "hrm-pinned",
|
|
unpinned: "hrm-unpinned",
|
|
top: "hrm-top",
|
|
notTop: "hrm-not-top"
|
|
},
|
|
onTop: function() {
|
|
$("#navlogo").hide("slide");
|
|
},
|
|
onNotTop: function () {
|
|
$("#navlogo").show( "slide" );
|
|
}
|
|
});
|
|
headroom.init();
|
|
}
|
|
// -----------------------------------------
|
|
});
|
|
// =============================================
|
|
function initLayoutPage() {
|
|
$(document).ready(function () {
|
|
$('#headnav-toggle').click(function () {
|
|
$("#country-headnav").slideToggle();
|
|
});
|
|
$('#navmenu').click(function () {
|
|
$("#mainsubnav-container").slideToggle(function () {
|
|
if ($("#mainsubnav-container").is(':visible')) {
|
|
$("#mainnav a.nav-item.nav-icon-mere").each(function() {
|
|
if ($(this).find("span.nav-text").is(":hidden")) {
|
|
$(this).clone().removeClass("nav-icon-mere").appendTo("#mainsubnav-container");
|
|
$(this).fadeOut();
|
|
}
|
|
});
|
|
//--
|
|
$("#mainnav a.nav-item.nav-icon-only").clone().removeClass("nav-icon-only").appendTo("#mainsubnav-container");
|
|
$("#mainnav a.nav-item.nav-icon-only").fadeOut();
|
|
} else {
|
|
$("#mainsubnav-container").empty();
|
|
//--
|
|
$("#mainnav a.nav-item.nav-icon-mere").fadeIn();
|
|
$("#mainnav a.nav-item.nav-icon-only").fadeIn();
|
|
}
|
|
});
|
|
return false;
|
|
});
|
|
$('#subnav-toggle').click(function () {
|
|
$("#mainsubnav-rep-container").slideToggle(function () {
|
|
$('#mainsubnav-rep-list').perfectScrollbar({
|
|
wheelSpeed: 8
|
|
});
|
|
});
|
|
return false;
|
|
});
|
|
$('#footer-commands a').click(function () {
|
|
toggleFooterMore($(this).attr("rel"));
|
|
});
|
|
});
|
|
}
|
|
// =============================================
|
|
function initReadMore(sE) {
|
|
$(sE).readmore({
|
|
speed: 500,
|
|
maxHeight: 200,
|
|
moreLink: '<button class="btn btn-small btn-readmore">mehr lesen...</button>',
|
|
lessLink: '<button class="btn btn-small btn-readmore">...weniger</button>',
|
|
expandedLinkClass: 'btn-readmore-expanded',
|
|
collapsedLinkClass: 'btn-readmore-collapsed',
|
|
beforeToggle: function (trigger, element, expanded) {
|
|
if (expanded === false) {
|
|
scrollToOffset(element.parents(".content"), 500, true);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function initNotifications() {
|
|
$(document).ready(function () {
|
|
var j = $("#notification-box"),
|
|
jX = $("#notification-box > a");
|
|
if (j.is(':visible') && jX.length != 0) {
|
|
showNotification(jX, 0);
|
|
}
|
|
});
|
|
}
|
|
//---
|
|
function showNotification(jX, i) {
|
|
var sTime = jX.eq(i).data("time"),
|
|
jTime = jX.eq(i).find("small"),
|
|
sMoment = moment(sTime, "DD.MM.YYYY HH:mm:ss").calendar();
|
|
jTime.text(sMoment);
|
|
|
|
jX.eq(i).fadeIn(1000, function () {
|
|
setTimeout(function () {
|
|
jX.eq(i).animate({'top':'-100px'}, 1000, function () {
|
|
$(this).hide().css("top", "");
|
|
i += 1;
|
|
if (i === jX.length) { i = 0; }
|
|
showNotification(jX, i);
|
|
});
|
|
}, 10000);
|
|
});
|
|
}
|
|
// =============================================
|
|
var currentMore = '';
|
|
function toggleFooterMore(sID) {
|
|
if (currentMore.length != 0 && currentMore != sID) {
|
|
toggleFooterMore(currentMore);
|
|
}
|
|
|
|
var jMore = $("#" + sID),
|
|
docHeight = $(document).height(),
|
|
windowHeight = $(window).height(),
|
|
moreHeight = jMore.height(),
|
|
scrollPos = docHeight - windowHeight;
|
|
|
|
jMore.animate({ height: "toggle" }, 500);
|
|
|
|
if (moreHeight > window.innerHeight) {
|
|
scrollPos = jMore.offset().top;
|
|
}
|
|
|
|
if (currentMore.length === 0) {
|
|
currentMore = sID;
|
|
|
|
switch (currentMore) {
|
|
case "more-settings":
|
|
var sFirstRep = $("#more-settings-first").val();
|
|
$("#more-settings-placeholder").empty();
|
|
getSettings(sFirstRep, function (settingsHeight) {
|
|
moreHeight = jMore.height() + settingsHeight;
|
|
scrollPos += moreHeight;
|
|
$('html, body').animate({ scrollTop: scrollPos + 'px' }, 500);
|
|
});
|
|
default:
|
|
scrollPos += moreHeight;
|
|
$('html, body').animate({ scrollTop: scrollPos + 'px' }, 500);
|
|
}
|
|
} else {
|
|
currentMore = "";
|
|
}
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function showSettings(sKey) {
|
|
var jSettings = $("#more-settings-placeholder"),
|
|
docHeight = $(document).height(),
|
|
windowHeight = $(window).height(),
|
|
settingsHeight = jSettings.height(),
|
|
scrollPos = docHeight - windowHeight + settingsHeight;
|
|
|
|
$("#more-settings-wrapper").css("width", $("#more-settings-wrapper").width() + "px");
|
|
|
|
jSettings.slideUp(function () {
|
|
$('html, body').animate({ scrollTop: scrollPos + 'px' }, 500);
|
|
getSettings(sKey, function () {
|
|
$('html, body').animate({ scrollTop: scrollPos + 'px' }, 500);
|
|
});
|
|
});
|
|
|
|
return false;
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function doTooltipster(jE, sTheme, sPosition) {
|
|
if (sTheme === undefined) sTheme = ".tooltipster-standard";
|
|
jE.tooltipster({
|
|
animation: 'fade',
|
|
delay: 200,
|
|
theme: sTheme,
|
|
position: sPosition
|
|
});
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function initRatingGroups() {
|
|
$(".rating-group").each(function () {
|
|
var jR = $(this),
|
|
iRating = jR.data("rating");
|
|
jR.find("a").each(function () {
|
|
var jA = $(this);
|
|
if (jA.data("rate") <= iRating) {
|
|
jA.find("i").removeClass("icon-star-empty").addClass("icon-star");
|
|
}
|
|
jA.hover(
|
|
function () {
|
|
var iCurrent = jA.data("rate");
|
|
jR.find("a").each(function () {
|
|
$(this).css("color", "#333");
|
|
if ($(this).data("rate") <= iCurrent) {
|
|
$(this).find("i").removeClass("icon-star-empty").addClass("icon-star");
|
|
} else {
|
|
$(this).find("i").removeClass("icon-star").addClass("icon-star-empty");
|
|
}
|
|
});
|
|
},
|
|
function () {
|
|
jR.find("a").each(function () {
|
|
$(this).css("color", "");
|
|
if ($(this).data("rate") <= iRating) {
|
|
$(this).find("i").removeClass("icon-star-empty").addClass("icon-star");
|
|
} else {
|
|
$(this).find("i").removeClass("icon-star").addClass("icon-star-empty");
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}
|
|
// ------------------------------------------------------------------------------------------
|
|
function rateProposal(idProposal, ratingPoints) {
|
|
|
|
var sRatesStored = $.jStorage.get("rates");
|
|
|
|
if (sRatesStored != null && sRatesStored.contains(idProposal)) {
|
|
alertEx("<strong>Du unterstützt diesen Antrag bereits</strong><br>" +
|
|
"<p>Diese Information wird nach den Grundsätzen des Datenschutzes und der Datensparsamkeit " +
|
|
"nicht auf dem Server gespeichert sondern lokal in Deinem Browser (localStorage).</p>" +
|
|
"<p>Aus diesem Grunde sei hiermit an Dich appeliert, einen Antrag nicht bewußt mehrmals " +
|
|
"zu unterstützen, um der Fraktion ein authentisches Bild zu liefern.</p>");
|
|
return;
|
|
}
|
|
|
|
sRatesStored === null ? sRatesStored = idProposal : sRatesStored += "|" + idProposal;
|
|
|
|
$.jStorage.set("rates", sRatesStored);
|
|
|
|
var oProperties = {
|
|
'idProposal': idProposal,
|
|
'iRate': ratingPoints
|
|
};
|
|
postActionResponse({
|
|
controller: "Representation",
|
|
action: "SaveProposalRating",
|
|
properties: oProperties,
|
|
successFunction: function (data) {
|
|
window.location.href = window.location.href;
|
|
}
|
|
});
|
|
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function getSettings(sKey, fSuccess) {
|
|
|
|
getActionResponse({
|
|
controller: "Home",
|
|
action: "GetRepresentationSettingPartial",
|
|
properties: { "key": sKey },
|
|
successFunction: function (data) {
|
|
$("#more-settings-placeholder").empty().append(data);
|
|
$("#more-settings-placeholder").slideDown(function () {
|
|
fSuccess($("#more-settings-placeholder").height());
|
|
});
|
|
$("#settings-group").find("button").removeClass("btn-selected");
|
|
$("#settings-" + sKey).addClass("btn-selected");
|
|
}
|
|
});
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function toggleContentInfo(btn, sInfo) {
|
|
var jE = $("#" + sInfo);
|
|
jE.slideToggle(function () {
|
|
scrollToOffset(jE, 500);
|
|
});
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function resetPW() {
|
|
if ($("#resetpw-form").valid()) {
|
|
var oModel = {
|
|
'UserNameReset': $("#UserNameReset").val()
|
|
};
|
|
getActionResponse({
|
|
controller: "Account",
|
|
action: "ResetPassword",
|
|
properties: oModel,
|
|
successFunction: function (data) {
|
|
$("#ResetPasswordSet").slideUp("normal", function () {
|
|
$("#ResetPasswordSet").empty().append(data).slideDown("normal");
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function changePW(sUserName) {
|
|
if ($("#changepw-form").valid()) {
|
|
var oModel = {
|
|
'UserName': sUserName,
|
|
'OldPassword': $("#OldPassword").val(),
|
|
'NewPassword': $("#NewPassword").val(),
|
|
'ConfirmPassword': $("#ConfirmPassword").val()
|
|
};
|
|
getActionResponse({
|
|
controller: "Account",
|
|
action: "ChangePassword",
|
|
properties: oModel,
|
|
successFunction: function (data) {
|
|
$("#ChangePasswordSet").slideUp("normal", function () {
|
|
$("#ChangePasswordSet").empty().append(data).slideDown("normal");
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function prepareMDDEditor(sContainer) {
|
|
var $con = $("#" + sContainer),
|
|
$txt = $con.find("textarea"),
|
|
sPreviewId = sContainer + "-preview";
|
|
|
|
if ($con.hasClass("mdd-editor-prepared")) {
|
|
return;
|
|
}
|
|
$con.addClass("mdd-editor-prepared");
|
|
|
|
$txt.data("mdd-preview", sPreviewId);
|
|
setTimeout(function() {
|
|
$txt.focusin(function () {
|
|
var $this = $(this),
|
|
$tb = $con.find(".mdd_toolbar"),
|
|
$sm = $('<small class="mdd_info">Für die Formatierung des Textes wird <a target="_blank" href="http://de.wikipedia.org/wiki/Markdown"><strong>Markdown</strong></a> unterstützt</small>'),
|
|
$pv = $('<div id="' + sPreviewId + '" class="mdd_preview markdown-text"></div>');
|
|
$this.addClass("mdd_editor");
|
|
if ($tb.length === 0) {
|
|
$con.append($sm).append($pv);
|
|
setTimeout(function () {
|
|
$this.MarkdownDeep({
|
|
onLoad: function (editor) {
|
|
}
|
|
});
|
|
}, 10);
|
|
}
|
|
})
|
|
.focusout(function () {
|
|
//return;
|
|
var $this = $(this),
|
|
$tb = $con.find(".mdd_toolbar"),
|
|
$sm = $con.find(".mdd_info"),
|
|
$pv = $con.find("#" + sPreviewId);
|
|
setTimeout(function () {
|
|
if (!$tb.is(":focus") && !$this.is(":focus")) {
|
|
$this.removeClass("mdd_editor");
|
|
$tb.remove();
|
|
$sm.remove();
|
|
$pv.remove();
|
|
}
|
|
}, 5000);
|
|
});
|
|
}, 10);
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function initTagCloud(container) {
|
|
var jContainer = $("#" + container);
|
|
getActionResponse({
|
|
controller: "Representation",
|
|
action: "GetTagCloudItems",
|
|
properties: {},
|
|
successFunction: function (data) {
|
|
jContainer.jQCloud(data);
|
|
}
|
|
});
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function filterRepresentationSubnav(e) {
|
|
|
|
var sF = dofilterRepresentationSubnav(e);
|
|
|
|
if(sF.length != 0) {
|
|
var jMap = $("#" + sF.replace(/f/, "map"));
|
|
if (jMap.length > 0) {
|
|
if (typeof setMapFilter === "function") {
|
|
setMapFilter(jMap, false);
|
|
}
|
|
}
|
|
} else {
|
|
if (typeof removeMapFilter === "function") {
|
|
removeMapFilter(false);
|
|
}
|
|
}
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function dofilterRepresentationSubnav(e) {
|
|
var jE = $(e),
|
|
jParent = jE.parent(),
|
|
sG = "",
|
|
sF = "";
|
|
|
|
if (jE.data("filter-type") === "g") {
|
|
sG = jE.data("filter");
|
|
sF = $("#mainsubnav-rep-filter-federalstate").find(".selected").data("filter");
|
|
} else {
|
|
sF = jE.data("filter");
|
|
sG = $("#mainsubnav-rep-filter-governmentallevel").find(".selected").data("filter");
|
|
}
|
|
|
|
jParent.find("a.selected").removeClass("selected");
|
|
jE.addClass("selected");
|
|
|
|
if (sG.length === 0 && sF.length === 0) {
|
|
$("#no-representations").hide();
|
|
$("#mainsubnav-rep-list a").fadeIn("slow");
|
|
} else {
|
|
|
|
var sFilter = "";
|
|
if (sG.length != 0 && sF.length != 0) {
|
|
sFilter = "." + sG + "." + sF;
|
|
} else {
|
|
if (sG.length != 0) {
|
|
sFilter = "." + sG;
|
|
}
|
|
if (sF.length != 0) {
|
|
sFilter = "." + sF;
|
|
}
|
|
}
|
|
|
|
$("#mainsubnav-rep-list a").not(sFilter).fadeOut("slow", function () {
|
|
filterShowNoRepresentations();
|
|
$("#mainsubnav-rep-list a" + sFilter).fadeIn("slow", function () {
|
|
filterShowNoRepresentations();
|
|
});
|
|
});
|
|
}
|
|
|
|
if (sF.length != 0 && $("#mainsubnav-rep-list a." + sF).length === 0) {
|
|
sF = "";
|
|
}
|
|
$("#mainsubnav-rep-list").scrollTop(0);
|
|
$('#mainsubnav-rep-list').perfectScrollbar('update');
|
|
$.cookie("OpenAntrag-NavFilter-G", sG, { path: '/' });
|
|
$.cookie("OpenAntrag-NavFilter-F", sF, { path: '/' });
|
|
|
|
return sF;
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function filterShowNoRepresentations() {
|
|
if ($("#mainsubnav-rep-list a:visible").length === 0) {
|
|
$("#no-representations").show();
|
|
} else {
|
|
$("#no-representations").hide();
|
|
}
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function showAbuseNotice(idProposal) {
|
|
$("#abusenotice-wrapper-" + idProposal).slideToggle();
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function sendAbuseNotice(idProposal) {
|
|
var jAbuseNotice = $("#abusenotice-" + idProposal),
|
|
sAbuseNotice = jAbuseNotice.val();
|
|
|
|
if (sAbuseNotice.length === 0) {
|
|
alertEx("Bitte gib eine Begründung an", "warning");
|
|
jAbuseNotice.focus();
|
|
return;
|
|
}
|
|
|
|
var oProperties = {
|
|
'idProposal': idProposal,
|
|
'abuseNotice': sAbuseNotice
|
|
};
|
|
getActionResponse({
|
|
controller: "Representation",
|
|
action: "SendProposalAbuseNotice",
|
|
properties: oProperties,
|
|
successFunction: function (data) {
|
|
alertEx("Deine Nachricht wurde versandt.<br><br>Der Antrag wird nun umgehend von der Fraktion und der Administration geprüft und im Fall tatsächlichen Missbrauchs stumm geschaltet.");
|
|
$("#abusenotice-wrapper-" + idProposal).slideToggle(function () {
|
|
$(this).remove();
|
|
$("#abusenotice-link-" + idProposal).remove();
|
|
});
|
|
}
|
|
});
|
|
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function switchButtonGroup(e) {
|
|
var $this = $(e),
|
|
$parent = $this.parent(),
|
|
$actual = $parent.find("button.btn-selected");
|
|
|
|
if ($this.hasClass("btn-selected")) {
|
|
return false;
|
|
} else {
|
|
$actual.removeClass("btn-selected");
|
|
$("#" + $actual.data("area")).fadeOut("fast", function () {
|
|
$this.addClass("btn-selected");
|
|
$("#" + $this.data("area")).fadeIn("fast");
|
|
});
|
|
}
|
|
scrollToOffset($("body"), 500);
|
|
return false;
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function initProposalList() {
|
|
$("#proposallist-table tr").each(function () {
|
|
var jA = $(this).find("td").first().find("a");
|
|
$(this).click(function () {
|
|
window.location.href = jA.attr("href");
|
|
});
|
|
});
|
|
$("table#proposallist-table").tablesorter({
|
|
sortList: [[1, 1]]
|
|
});
|
|
$("table#proposallist-table")
|
|
.wholly()
|
|
.on('wholly.mouseenter', 'td, th', function () {
|
|
$(this).addClass('wholly-highlight');
|
|
})
|
|
.on('wholly.mouseleave', 'td, th', function () {
|
|
$(this).removeClass('wholly-highlight');
|
|
});
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function getProposalListTable(count) {
|
|
var iCount = parseInt(count);
|
|
$("#proposallist-wrapper").css("min-height", $("#proposallist-wrapper").height() + 'px');
|
|
$("table#proposallist-table").fadeOut();
|
|
getActionResponse({
|
|
controller: "Home",
|
|
action: "GetProposalListTable",
|
|
properties: { "iCount": iCount },
|
|
successFunction: function (data) {
|
|
$("#proposallist-wrapper").empty().append(data);
|
|
initProposalList();
|
|
$("#proposallist-wrapper").css("min-height", "");
|
|
}
|
|
});
|
|
|
|
}
|
|
// -----------------------------------------------------------------------------------
|
|
function disableScrollNav() {
|
|
confirmEx(
|
|
"Möchtest Du das Scroll-Menü deaktivieren?<br><br>" +
|
|
"Wenn ja, kannst Du es jederzeit durch Löschen des Cookies '<em>OpenAntrag-DisableScrollMenu</em>' wieder aktivieren.",
|
|
"Scroll-Menü deaktivieren", function() {
|
|
$.cookie("OpenAntrag-DisableScrollMenu", true);
|
|
window.location.reload();
|
|
});
|
|
} |