simplestyle
Version:
Simple Style Guide Tool based on Atomic Web Design
1,351 lines (932 loc) • 40.4 kB
JavaScript
var jQuery = jQuery.noConflict();
var newsFeed = newsFeed || {};
var strabag = strabag || {};
(function ($) {
'use strict';
var searchIconSVG = "<svg class='icon icon-src' style='width: 19px; height: 18px;'><use xlink:href='/_layouts/15/images/wpxp.strabag.design/icons.svg#icon-search'></use></svg>";
var searchIconSVGBig = "<svg class='icon icon-src' style='width: 24px; height: 24px; margin-top: 3px'><use xlink:href='/_layouts/15/images/wpxp.strabag.design/icons.svg#icon-search'></use></svg>";
var searchIconDown = "<svg class='icon icon-dd' style='width: 12px; height: 8px; stroke-width: 5px;'><use xlink:href='/_layouts/15/images/wpxp.strabag.design/icons.svg#icon-chevron-down'></use></svg>";
var closeIcon = "<svg class='icon icon-close' style='width: 20px; height: 19px;'><use xlink:href='/_layouts/15/images/wpxp.strabag.design/icons.svg#icon-x2'></use></svg>";
var brgIcon = "<svg class='icon icon-arrow-up'><use xlink:href='/_layouts/15/images/wpxp.strabag.design/icons.svg#icon-menu'></use></svg>";
var srchIcon = "<svg class='icon icon-arrow-up'><use xlink:href='/_layouts/15/images/wpxp.strabag.design/icons.svg#icon-search'></use></svg>";
var footerLink = ".btn-up";
var btnBrgrMenu = ".menu-burger";
var btnSrchMenu = ".menu-search";
var btnSrchEdit = ".menu-edit"
var ctnBrgrCnt = ".menu-burger-content";
var ctnBrgrSrch = ".menu-search-content";
var ctnBrgrOverlay = ".bgOverlay";
var active = 'active'; // Optimisation for minification
var sideNav = '#sideNavBox';
var hide = 'hide';
var MAX_LOOP_TIME = 10;
var resizeTimer;
window.newsFeed = function ($) {
var mfDiv = "#ms-newsfeedpartdiv",
mfPivot = "#ms-microfeed-titleViewSelectorPivotParent",
mfPivorContainer = ".ms-pivotControl-container",
mfSelection = "a",
mfOverFlow = ".ms-pivotControl-overflowSpan .ms-core-menu-link",
mfOverFlowCore = ".ms-pivotControl-overflowSpan",
mfMessage = ".ms-microfeed-message",
mfReply = ".ms-microfeed-replyMessage",
domEvent = "DOMSubtreeModified";
// redrawes news feed with custom styles
var redrawFeed = function () {
var threadingOfFeeds = function () {
$('.ms-microfeed-thread').each(function () {
var currentThread = $(this);
var replyCount = currentThread.find(mfReply).length;
var lastChild = currentThread.find(mfReply + ":last-child");
lastChild.addClass('custom-reply');
if (replyCount !== 0) {
currentThread.addClass('custom-message');
}
});
$(mfMessage).each(function () {
var replyCount = $(this).find(mfReply);
});
}
var redrawCounter = 0;
var redrawDelay = setInterval(function () {
if (redrawCounter === MAX_LOOP_TIME) {
clearInterval(redrawDelay);
return;
} else {
redrawCounter += 1;
}
strabag.loadTranslation('@Startseite_Strabag2017_Newsfeed_moreConversations', '#ms-MoreThreadsButtonText', '<span class=conv-plus>+</div>');
$('#ms-MoreThreadsButtonLabel').on('click', function () {
var threadNewFeedsCounter = 0;
var threadNewFeeds = setInterval(function () {
if (threadNewFeedsCounter === MAX_LOOP_TIME) {
clearInterval(threadNewFeeds);
} else {
threadNewFeedsCounter += 1;
}
threadingOfFeeds();
}, 300);
});
if ($('#ms-feeddiv').attr('style') === 'left: 0px; right: 0px;') {
var mqMobile = window.matchMedia("(min-width: 0px) and (max-width: 480px)");
if (mqMobile.matches) {
// $('#ms-feeddiv').appendTo('#ms-titlebararea');
}
threadingOfFeeds();
var pivotCtn = $(mfPivorContainer);
replacePivotLinks(pivotCtn);
flyoutInject();
clearInterval(redrawDelay);
}
}, 100)
}
// Delay until drop down have been loaded
var delayRedraw = function () {
setTimeout(redrawFeed, 500)
flyout();
}
// flyout injection
var flyoutInject = function () {
var dotOverflow = $(mfDiv + ' .ms-pivotControl-overflowDot');
var click = dotOverflow.attr('onclick');
if (click === undefined) {
return;
}
var newClick = click;
if (click.indexOf('newsFeed.flyoutClick();') === -1) {
newClick = click + 'newsFeed.flyoutClick();';
}
$(mfDiv + ' .ms-pivotControl-overflowDot').attr('onclick', newClick);
}
// execute flyout Click event
var flyoutClick = function () {
var onclick = $('.ms-core-menu-item').attr('onmenuclick');
var newOnClick = onclick + 'newsFeed.waitBeforeRedraw();';
$('.ms-core-menu-item').attr('onmenuclick', newOnClick);
}
// register new flyout click events
var flyout = function () {
setTimeout(flyoutInject(), 500);
}
// register on flyout
flyout();
// redraw current feed
redrawFeed();
var waitBeforeRedraw = function () {
var checkProgressCounter = 0;
var checkProgress = setInterval(function () {
if (checkProgressCounter === MAX_LOOP_TIME) {
clearInterval(waitBeforeRedraw);
return;
} else {
checkProgressCounter += 1;
}
var progress = $('#ms-progressSpan');
if (progress.hasClass('ms-visibilityHidden')) {
redrawFeed();
var pivotCtn = $(mfPivorContainer);
replacePivotLinks(pivotCtn);
clearInterval(checkProgress);
}
}, 100)
};
// Update Pivot links
var replacePivotLinks = function (pivotElement) {
var links = pivotElement.find('a');
links.each(function () {
var onClick = $(this).attr('onclick');
if (onClick.indexOf('changeView') !== -1) {
if (onClick.indexOf('.waitBeforeRedraw()') === -1) {
onClick = onClick.replace('return false;', 'newsFeed.waitBeforeRedraw(); return false;');
$(this).attr('onclick', onClick);
}
} else {
flyoutInject();
}
});
}
var checkFeedSwitchCounter = 0;
var checkFeedSwitch = setInterval(function () {
if ($(mfDiv + ' .ms-pivotControl-overflowDot').length) {
flyoutInject();
clearInterval(checkFeedSwitch);
}
}, 100);
var checkConstantlyCounter = 0;
var checkConstantly = setInterval(function () {
var pivotCtn = $(mfPivorContainer);
replacePivotLinks(pivotCtn);
checkConstantlyCounter += 1;
if ($(mfDiv + ' .ms-pivotControl-overflowDot').length) {
flyoutInject();
strabag.loadTranslation('@Startseite_Strabag2017_Newsfeed_moreConversations', '#ms-MoreThreadsButtonText', '<span class=conv-plus>+</div>');
}
}, 10001); // Newsfeed will be refreshed every minute
strabag.loadTranslationSet("$filter=startswith(Title,'@Startseite_Strabag2017_Newsfeed_WebpartTitle')").done(function (data) {
var feedTitle = data.d.results[0]['LCID_' + _spPageContextInfo.currentLanguage];
$('#ms-microfeeddiv').parent().parent().find('.ms-webpart-titleText nobr span:first-child').text(feedTitle);
});
return {
flyoutClick: function () {
flyoutClick();
},
redraw: function () {
redrawFeed();
},
waitBeforeRedraw: function () {
waitBeforeRedraw();
}
}
};
strabag.replaceOSSSearchIcon = function () {
var ossReplaceCounter = 0;
var replaceWait = setInterval(function () {
if (ossReplaceCounter > MAX_LOOP_TIME) {
clearInterval(replaceWait);
}
var searchLink = $('#ctl00_PlaceHolderMain_ctl00_csr_NavButton');
if (searchLink.length !== 0) {
searchLink.html(searchIconDown).find('svg').css({
'height': '16px',
'width': '16px'
});
clearInterval(replaceWait);
}
ossReplaceCounter += 1;
}, 300);
};
// Replace all search icons as an SVG
strabag.replaceSrchIcon = function () {
var searchIcon = $('#ctl00_PlaceHolderSearchArea_SmallSearchInputBox1_csr_SearchLink');
var searchNavImage = $('.ms-srch-sb-navImg');
if (searchIcon.length !== 0) {
searchIcon.css({
"padding": "0px"
})
searchIcon.html(searchIconSVG);
}
if (searchNavImage.length !== 0) {
$(searchNavImage[0]).parent().html(searchIconDown);
}
};
// Replace Search icons on Search center
strabag.replaceSrchIconBig = function () {
setTimeout(function () {
var searchIcon = $('#ctl00_ctl41_g_b5be6518_a949_4e74_8bad_52c28f0a0458_csr_SearchLink');
var searchNavImage = $('.ms-srch-sb-navImg');
if (searchIcon.length !== 0) {
searchIcon.html(searchIconSVGBig);
}
searchIcon = $(".ms-srch-sbLarge .ms-srch-sb-searchLink");
if (searchIcon.length !== 0) {
searchIcon.html(searchIconSVGBig);
}
if (searchNavImage.length !== 0) {
$(searchNavImage[0]).parent().html(searchIconDown);
}
}, 1000)
};
// Add additional styles to search center
strabag.setSearchCenterStyle = function () {
var largeSearch = $(".ms-searchCenter"),
largeSearchMain = $(".ms-searchCenter-result-main"),
searchCenter = $("div[class^='ms-searchCenter']"),
searchMenuTop = $(".menu-search");
if (searchCenter.length !== 0) {
$(".strabag-sitetitle").css({
"display": "none"
})
searchMenuTop.remove();
$("#s4-titlerow").removeAttr('style');
$("#s4-titlerow").attr("style", "display: block !important; visiblity: visible");
if (sideNavBox.length !== 0 && largeSearch.length !== 0) {
$(sideNavBox).css({
"display": "none"
});
$("#contentBox").css({
"width": "100%"
})
} else {
$(sideNavBox).css({
"display": "block"
});
}
var styles = $("style");
styles.each(function (index, el) {
var current = $(this);
var styleContent = current.text();
if (styleContent.indexOf("#s4-titlerow") !== -1) {
$(this).remove();
}
});
largeSearch.siblings('.ms-core-pageTitle').css('display', 'none');
largeSearch.siblings('.breadcrumb').css('display', 'none');
largeSearchMain.siblings('.breadcrumb').css('display', 'none');
}
}
// Hand workspace scroll up events
strabag.scrollUp = function (event) {
$("#s4-workspace").animate({
scrollTop: 0
});
};
// Handle all burger click events
strabag.burgerEvent = function (event) {
var menu = $(btnBrgrMenu), // request burger button
menuContent = $(ctnBrgrCnt), // request burger content;
overlay = $(ctnBrgrOverlay), // request burger content;
btnSearch = $(btnSrchMenu),
sideNavBox = $(sideNav),
titleRow = $("#s4-titlerow"),
suiteBar = $("#suiteBar"),
ribbonRow = $("#s4-ribbonrow");
if (menu.length !== 0) {
if (btnSearch.hasClass(active)) {
strabag.searchEvent();
}
// Burger is activated
if (menu.hasClass(active)) {
menu.removeClass(active);
menuContent.removeClass(active);
overlay.removeClass(active);
overlay.removeAttr("style");
sideNavBox.removeClass(hide);
menu.html(brgIcon);
} else {
var workspace = $('#s4-bodyContainer');
menu.addClass(active);
menuContent.addClass(active);
overlay.addClass(active);
overlay.css({
height: workspace.height() - 10 - titleRow.outerHeight() - suiteBar.outerHeight() - ribbonRow.outerHeight() + 'px'
});
sideNavBox.addClass(hide);
menu.html(closeIcon);
}
}
};
// Search event handling
strabag.searchEvent = function (event) {
var menu = $(btnSrchMenu);
var menuContent = $(ctnBrgrSrch); // request burger content;
var overlay = $(ctnBrgrOverlay); // request burger content;
var btnBurger = $(btnBrgrMenu);
var sideNavBox = $(sideNav);
if (menu.length !== 0) {
if (btnBurger.hasClass(active)) {
strabag.burgerEvent();
}
// check if active
if (menu.hasClass(active)) {
$('#SearchBox').animate({
'max-height': '0px'
}, 250, function () {
menu.removeClass(active);
menuContent.removeClass(active);
overlay.removeClass(active);
overlay.removeAttr("style");
sideNavBox.removeClass(hide);
menu.html(srchIcon);
});
} else {
var workspace = $('#s4-workspace');
menu.addClass(active);
menuContent.addClass(active);
overlay.addClass(active);
overlay.css({
height: workspace.height() + 'px'
});
sideNavBox.addClass(hide);
menu.html(closeIcon);
$('#SearchBox').animate({
'max-height': '65px'
}, 250);
}
}
};
// edit button on mobile devices
strabag.editAvailable = function () {
var mq = "screen and (min-width: 0px) and (max-width: 768px)";
if (window.matchMedia(mq).matches) {
var ribbonAvailable = $('#RibbonContainer');
if (ribbonAvailable.length) {
$('.menu-edit').css({
"display": "inline-block"
})
var editMenu = localStorage.getItem('ribbonEdit');
if (editMenu === null) {
localStorage.setItem('ribbonEdit', false);
}
}
}
// }
}
// Check if edit is enabled
strabag.editEnabled = function () {
var suiteBar = $("#suiteBar");
var ribbonRow = $("#s4-ribbonrow");
var ribbonEditActive = localStorage.getItem('ribbonEdit');
if (ribbonEditActive === "true") {
suiteBar.css({
"display": "block"
});
ribbonRow.css({
"display": "block"
});
$('.menu-edit').addClass('active');
};
};
// Handle Edit event
strabag.editEvent = function (event) {
event.preventDefault();
var button = $(this);
var suiteBar = $("#suiteBar");
var ribbonRow = $("#s4-ribbonrow");
var sideNavBox = $("#sideNavBox");
button.toggleClass('active');
if (suiteBar.length !== 0 && ribbonRow.length !== 0) {
suiteBar.removeAttr("style");
ribbonRow.removeAttr("style");
if ($(this).hasClass('active')) {
localStorage.setItem('ribbonEdit', true);
suiteBar.css({
"display": "block"
});
ribbonRow.css({
"display": "block"
});
if (sideNavBox - length !== 0) {
sideNavBox.css({
'display': 'none'
})
}
} else {
localStorage.setItem('ribbonEdit', false);
suiteBar.removeAttr("style");
ribbonRow.removeAttr("style");
sideNavBox.css({
'display': 'block'
})
}
}
}
// Add Burger Content to Responsive Drop Down
strabag.burgerMenu = function () {
var commHeader = $('#tdCommunitiesHeader');
var commAsMember = $('#tdMyCommunitiesAsMember');
var commAsOwner = $('#tdMyCommunitiesAsOwner');
var importantLinksHeader = $('#tdImportantLinksHeader');
var importantLinks = $('#tdImportantLinks');
if (commHeader.length !== 0) {
$(ctnBrgrCnt).append(commHeader.html());
}
// add communities as member
if (commAsMember.length !== 0) {
$(ctnBrgrCnt).append(commAsMember.html());
} else {
}
// add communities as owners
if (commAsOwner.length !== 0) {
$(ctnBrgrCnt).append(commAsOwner.html());
} else {
}
if (importantLinksHeader.length !== 0) {
$(ctnBrgrCnt).append(importantLinksHeader.html());
}
// add important links
if (importantLinks.length !== 0) {
$(ctnBrgrCnt).append(importantLinks.html());
}
var allLinks = $(ctnBrgrCnt + ' a');
for (var i = 0; i < allLinks.length; i++) {
var curLink = $(allLinks[i]);
if (curLink.length !== 0) {
var linkText = $(curLink[0]).text().trim();
if (linkText === "") {
curLink.removeAttr('href');
}
}
}
};
// Bind all required events to the user interface
strabag.bindEvents = function () {
$(btnBrgrMenu).bind('click', strabag.burgerEvent);
$(footerLink).bind('click', strabag.scrollUp);
$(btnSrchMenu).bind('click', strabag.searchEvent);
$('#mdd .mdd-button').bind('click', strabag.fixMDDButton);
};
// Mobile Quicklaunch
strabag.mobileQuicklaunch = function () {
var navigation = $("#sideNavBox"),
navigationText = "Navigation", // Default string for navigaton
searchCenter = $("div[class^='ms-searchCenter']"), // Check if user is currently in Navigation
ossSearch = $('.ms-srch-siteSearchResults');
// Remove Search Class
navigation.addClass("active");
if (searchCenter.length !== 0) {
navigationText = "Filter"
}
if (ossSearch.length !== 0) {
navigationText = "Filter"
}
console.log("QUICKLAUNCH");
/*if(navigation.length !== 0){
navigation.prepend("<div class='mobileQLDropDown'>Navigation</div>");
}*/
try {
if ($("#sideNavBox .ms-core-navigation")[0].childElementCount > 0) {
navigation.prepend("<div class='mobileQLDropDown'>" + navigationText + "</div>");
} else {
navigation.css("display", "none");
}
} catch (e) {
navigation.css("display", "none");
}
$('.mobileQLDropDown').bind('click', function () {
if ($(this).hasClass('expanded')) {
$(this).removeClass('expanded');
} else {
$(this).addClass('expanded');
}
var deltaNav = $('#DeltaPlaceHolderLeftNavBar');
if (deltaNav.hasClass('show')) {
deltaNav.removeClass('show');
} else {
deltaNav.addClass('show');
}
});
};
// core mobile handiling
strabag.mobile = function () {
var mq = window.matchMedia("(min-width: 0px) and (max-width: 1024px)");
var mqMobile = window.matchMedia("(min-width: 0px) and (max-width: 480px)");
if (mq.matches) {
strabag.mobileQuicklaunch();
strabag.mobileRibbon();
strabag.fixOverFlow();
$(btnSrchEdit).bind('click', strabag.editEvent);
var microfeed = $('#ms-microfeeddiv');
if (microfeed.length !== 0) {
var wpTitle = microfeed.parent().parent().find('.ms-webpart-chrome-title');
wpTitle.css({
'display': 'none'
});
}
if ($('.ms-srch-siteSearchResults').length === 0 && $('.ms-searchCenter-result-main').length === 0) {
var srchBox = $('#SearchBox');
$(ctnBrgrSrch).html(srchBox.clone());
srchBox.remove();
} else {
$("#DeltaPlaceHolderPageTitleInTitleArea").css({
"display": "none"
})
$('.menu-search').css({
"display": "none"
})
}
// Set a timeout...
setTimeout(function () {
// Hide the address bar!
window.scrollTo(0, 1);
}, 0);
// strabag format refinement anywhere
strabag.refinementAnywhere();
}
if (mqMobile.matches) {
// mobile conversation button
strabag.mobileConversation();
}
};
strabag.mobileRibbon = function () {
var ribbonCheckCounter = 0;
var showRibbon = setInterval(function () {
if (ribbonCheckCounter >= MAX_LOOP_TIME) {
clearInterval(showRibbon);
return;
}
var ribbonContainer = $('#RibbonContainer');
var customFormEdit = $('.ms-formtable');
var generalListForm = $('#onetIDListForm');
// && (customFormEdit.length === 0 || generalListForm.length === 0)
if (ribbonContainer.length !== null && ribbonContainer.hasClass('loaded') ) {
var suiteBar = $("#suiteBar");
if (suiteBar.length !== 0) {
suiteBar.css({
'display': 'block'
})
}
var ribbonRow = $("#s4-ribbonrow");
if (ribbonRow.length !== 0) {
ribbonRow.css({
'display': 'block'
})
}
var sideNavBox = $("#sideNavBox");
if (sideNavBox - length !== 0) {
sideNavBox.css({
'display': 'none'
})
}
clearInterval(showRibbon);
}
ribbonCheckCounter += 1;
}, 300);
}
strabag.mobileConversation = function () {
var microBlogpart = $('.ms-microfeed-microblogpart');
// microBlogpart.appendTo("#ms-newsfeedpartdiv");
// Moved to top....
$('#ms-newsfeedpartdiv').prepend("<div class='button wpxp-startconv'><span class='wpxp-startconv-inner'><img src='/_layouts/15/images/wpxp.strabag.design/conversation-white.gif' class='wpxp-startconv-img'><div class='wpxp-startconv-text'></div></span></div>");
$('.wpxp-startconv').on('click', function () {
$('#ms-microblogdiv').addClass('wpxp-showconversation');
$('#ms-microbloginputbox').focus();
var lblWidth = $('#ms-shareWithLabel .mui-lbl').width() + 14;
$('#ms-mysitemenu-control_ms-shareWithTarget').css({
'width': 'calc(100% - ' + lblWidth + 'px)',
'padding-left': '10px'
});
$(this).css({
'display': 'none'
})
})
strabag.loadTranslation('@Startseite_Strabag2017_Newsfeed_startConversation', '.wpxp-startconv-text', '');
}
// load translation for a specific label
strabag.loadTranslation = function (label, replacementKey, additionalString, callback) {
var url = '/_api/web/lists/getbytitle(\'strabag - Wörterbuch für Mehrsprachigkeit\')/';
var requestUrl = '/_api/web/lists/getbytitle(\'Wörterbuch für Mehrsprachigkeit\')/items',
query = '?$filter=Title eq \'' + label + '\'';
$.ajax({
type: "GET",
url: requestUrl + query,
contentType: "application/json;odata=verbose",
headers: { "Accept": "application/json; odata=verbose" },
}).done(function (data, xhr) {
if (data.d.results.length === 0) {
console.log('No label named \'' + label + '\' can be found.');
return;
}
var newLabel = data.d.results[0]['LCID_' + _spPageContextInfo.currentLanguage];
if (newLabel !== undefined) {
var replacementFor = $(replacementKey);
if (replacementFor.length === 0) {
console.log('No replacement element for label ' + label + ' and replacement ' + replacementKey + ' can be found');
return;
}
$(replacementKey).text('');
$(replacementKey).append("<span class='mui-lbl'>" + newLabel + "</span>");
$(replacementKey).append($(additionalString));
if (callback != undefined) {
callback();
}
}
}).error(function (data, xhr) {
console.log('Cannot find label ' + label);
})
}
strabag.loadTranslationSet = function (filter) {
var url = '/_api/web/lists/getbytitle(\'strabag - Wörterbuch für Mehrsprachigkeit\')/';
var requestUrl = '/_api/web/lists/getbytitle(\'Wörterbuch für Mehrsprachigkeit\')/items',
query = '?' + filter;
return $.ajax({
type: "GET",
url: requestUrl + query,
contentType: "application/json;odata=verbose",
headers: { "Accept": "application/json; odata=verbose" },
});
};
strabag.translationCache = (function () {
var TRANSLATION_PREFIX = "translation_";
var currentStorageKey;
var isCacheAvailable = function () {
return typeof window.localStorage != "undefined";
}
var queryTranslation = function (filter) {
var url = '/_api/web/lists/getbytitle(\'strabag - Wörterbuch für Mehrsprachigkeit\')/';
var requestUrl = '/_api/web/lists/getbytitle(\'Wörterbuch für Mehrsprachigkeit\')/items',
query = '?' + filter;
console.log(requestUrl + query);
return $.ajax({
type: "GET",
url: requestUrl + query,
contentType: "application/json;odata=verbose",
headers: { "Accept": "application/json; odata=verbose" },
});
};
// validate cache for udpate
// updates or sets the current cache
var cacheData = function (data) {
var cacheObject = {
TTL: new Date(Date.now() + 1 * 24 * 60 * 60 * 1000).getTime(),
content: []
}
var itemCount = data.length;
while (itemCount--) {
var currentItem = data[itemCount];
if (typeof currentItem.Title !== "undefined") {
var cacheItem = {
label: currentItem.Title,
lcid: []
}
for (var key in currentItem) {
if (key.startsWith('LCID')) {
var lcid = key.split('_')[1];
cacheItem.lcid.push({
lcid: lcid,
label: currentItem[key]
})
}
}
cacheObject.content.push(cacheItem);
}
}
console.log(currentStorageKey);
localStorage.setItem(TRANSLATION_PREFIX + currentStorageKey, JSON.stringify(cacheObject));
console.log(localStorage);
}
var loadTranslationSet = function (filter, storageKey) {
currentStorageKey = storageKey;
var cacheData = JSON.parse(localStorage.getItem(TRANSLATION_PREFIX + storageKey));
console.log(TRANSLATION_PREFIX + storageKey);
if (cacheData) {
console.log("Returning data from cache");
return cacheData;
}
queryTranslation(filter).done(function (data) {
cacheData(data.d.results);
return JSON.parse(localStorage.getItem(TRANSLATION_PREFIX + storageKey));
}).error(function (jxhr, b) {
console.log(jxhr.responseJSON.error.message.value);
})
return null;
}
console.log(isCacheAvailable());
return {
getTranslation: function (filter, storageKey) {
if (isCacheAvailable === false) {
return;
}
return loadTranslationSet(filter, storageKey);
}
};
})();
// mmd button fixup
strabag.fixMDDButton = function () {
var mddButton = $('#mdd .mdd-button');
var firstMddButton = $(mddButton[0]).width();
$(mddButton[1]).css({
'width': (firstMddButton + 15) + 'px'
});
var header = $('#mdd-header-button').closest('tr').find("th");
if (header.length === 2) {
$(header[0]).removeAttr('colspan');
$(header[0]).attr('colspan', 2);
$(header[1]).removeAttr('colspan');
$(header[1]).attr('colspan', 2);
}
// Hide Recent
$(".ms-core-listMenu-item:contains('Recent')").parent().hide();
$(".ms-core-listMenu-item:contains('Zuletzt verwendet')").parent().hide();
}
// dotdotdot embedding general
strabag.dotdotdot = function () {
$('.ms-tileview-tile-titleTextMediumCollapsed').dotdotdot();
$('.ms-tileview-tile-descriptionMedium').dotdotdot();
$('.ms-comm-postMainContainer .ms-comm-postBody').dotdotdot();
}
strabag.webTempCommunity = function () {
var wikiContent = $('#ctl00_PlaceHolderMain_WikiField');
var listViewID = $('#MSOZoneCell_WebPartWPQ2');
if (listViewID.length !== 0) {
listViewID.addClass('strabag-discussion')
}
wikiContent.addClass('community');
wikiContent.find('.ms-wikicontent').removeAttr('style');
wikiContent.find('#layoutsTable > tbody > tr > td:first-child')
.removeAttr('style')
.addClass('community-content');
wikiContent.find('.ms-wiki-columnSpacing')
.removeAttr('style');
}
strabag.webTempDocCenter = function () {
$('#DeltaPlaceHolderMain > table').removeAttr('width');
$('#DeltaPlaceHolderMain > table').addClass('strabag-doccenter');
}
strabag.webTempSTS = function () {
$('#ctl00_PlaceHolderMain_WikiField').addClass('strabag-teamsite');
}
strabag.webTempCustomCommunity = function () {
var customClass = "strabag-customCommunity";
$(".ms-webpartPage-root").addClass(customClass);
}
strabag.fixUpTemplateStyles = function () {
if (typeof _spPageContextInfo !== "undefined") {
switch (_spPageContextInfo.webTemplate) {
case "1":
strabag.webTempCustomCommunity();
// strabag.webTempSTS();
break;
case "7":
strabag.webTempDocCenter();
break;
case "62":
strabag.webTempCommunity();
break;
case "11001":
strabag.webTempCustomCommunity();
}
}
};
strabag.fixOverFlow = function () {
var listViews = $(".ms-listviewtable");
var calendar = $(".ms-acal-rootdiv");
var customListForm = $('.ms-formtable');
if (customListForm !== 0) {
try {
SP.SOD.registerSod("sp.ribbon.js", SP.Utilities.Utility.getLayoutsPageUrl("sp.ribbon.js"));
SP.SOD.executeFunc("sp.ribbon.js", "SP.Ribbon.PageManger", function () {
setTimeout(function () {
var ribEye = SP.Ribbon.PageManager.get_instance().get_ribbon();
ribEye.selectTabById("Ribbon.Read");
$("#suitebar").css({
"display": "none"
});
$("#ribbonRow").css({
"display": "none"
})
}, 300);
});
} catch (exception) {
};
}
if (listViews.length !== 0 ||
calendar.length !== 0) {
$("#DeltaPlaceHolderMain").css(
{ 'overflow': 'auto' }
);
}
}
strabag.iPhoneFix = function () {
var deviceAgent = navigator.userAgent.toLowerCase();
var agentID = deviceAgent.match(/(iPad|iPhone|iPod)/i);
if (agentID) {
// var viewport = document.getElementsByName("viewport");
// console.log(viewport);
// viewport[0].setAttribute("content", viewport[0].getAttribute("content")+", user-scaleable=0");
$('#s4-workspace').css('-webkit-overflow-scrolling', 'touch');
}
}
strabag.refinementAnywhere = function () {
var contentBoxRefinement = $("#contentBox .ms-ref-ctrl");
contentBoxRefinement.addClass('ms-core-navigation');
contentBoxRefinement.parent().prepend("<div class='mobileQLDropDown'>Filter</div>").wrap("<div class='strabag-refinement'></div>");
$('#contentBox .mobileQLDropDown').bind('click', function () {
if ($(this).hasClass('expanded')) {
$(this).removeClass('expanded');
} else {
$(this).addClass('expanded');
}
var deltaNav = $('.ms-ref-ctrl');
if (deltaNav.hasClass('show')) {
deltaNav.removeClass('show');
} else {
deltaNav.addClass('show');
}
});
};
// document doen main handler
strabag.documentDone = function () {
strabag.fixUpTemplateStyles();
// Bind all events
strabag.bindEvents();
// FixUp Search Icons
strabag.replaceSrchIcon();
// FixUp Search Big Icons
strabag.replaceSrchIconBig();
// OSS Search Icon
strabag.replaceOSSSearchIcon();
// launch burger menu filling
strabag.burgerMenu();
// mobile
strabag.mobile();
// // microfeed FixUp
// strabag.microfeed();
// fix search center styles
strabag.setSearchCenterStyle();
// Fix length of MDD Button
strabag.fixMDDButton();
// dotdotdot configuration
strabag.dotdotdot();
// edit menu available
strabag.editAvailable();
// check if ribbon is currently enabled
strabag.editEnabled();
// enables newsfeed branding
if ($('#ms-microfeeddiv').length !== 0) {
// ms-core-menu-box ms-core-defaultFont ms-shadow
$('#ms-microfeeddiv').bind('click', '#ms-microfeed-microblogpart #ms-mysitemenu-control_ms-shareWithTarget', function () {
var clickElement = $(this);
var width = $(this).width();
var addWidth = setInterval(function () {
var negativeWidth = $('#ms-microblogdiv').find('.mui-lbl');
var dropDownElement = $('#ms-microblogdiv').find('.ms-core-menu-box.ms-core-defaultFont.ms-shadow');
if (dropDownElement.length) {
var widthCorrection = 30;
$(dropDownElement[0]).width(width - negativeWidth.width() - widthCorrection);
$(dropDownElement[0]).css({
'max-width': width - negativeWidth.width() - widthCorrection,
'box-sizing': 'border-box',
'z-index': 1
})
clearInterval(addWidth);
};
}, 300);
})
$('.ms-menu-stdarw').html('');
var dropDownReplaceCounter = 0;
var dropDownReplace = setInterval(function () {
if (dropDownReplaceCounter === MAX_LOOP_TIME) {
clearInterval(dropDownReplace);
} else {
dropDownReplaceCounter += 1;
}
if ($('#ms-mysitemenu-control_Link_ms-shareWithTarget').length) {
clearInterval(dropDownReplace);
var shareWithDD = document.getElementById('ms-mysitemenu-control_ms-shareWithTarget');
//var shareWithDD = $('#ms-mysitemenu-control_ms-shareWithTarget');
var shareWithLabel = $('#ms-shareWithLabel');
var firstDDEntry = $("#ms-mysitemenu-control_ms-shareWithTarget a:first-child").text();
var shareWithLabelText = shareWithLabel.text().toString().replace(firstDDEntry, '');
var shareWithDropDown = $("#ms-mysitemenu-control_ms-shareWithTarget").prepend("<span class='mui-label'>" + shareWithLabelText + "</span>");
shareWithLabel.html(shareWithDropDown);
$('#ms-mysitemenu-menu_ms-shareWithTarget').parent().prepend(searchIconDown);
var lblWidth = $('#ms-shareWithLabel .mui-lbl').width() + 6;
$('#ms-mysitemenu-control_ms-shareWithTarget').css({
'width': 'calc(100% - ' + lblWidth + 'px)'
});
}
}, 300)
newsFeed = window.newsFeed(jQuery);
}
// make sure all SVG's are loaded'
svg4everybody();
}
// Checkn if browser was resized
strabag.resizeDone = function () {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function () {
strabag.documentDone();
}, 250);
}
// Fire up when document finished loading
$(document).ready(function () {
// TODO: Fix Search Resize Bigger
strabag.documentDone();
strabag.iPhoneFix();
// $(window).on('resize', strabag.resizeDone);
// $('#tdMyCommunitiesAsMember p a').dotdotdot();
// $('#tdMyCommunitiesAsOwner p a').dotdotdot();
});
// enable fix MMD button
strabag.fixMDDButton();
}(jQuery));