View | Details | Raw Unified | Return to bug 38491
Collapse All | Expand All

(-)a/management/univention-management-console-frontend/umc/widgets/ModuleHeader.js (-11 / +16 lines)
 Lines 63-85   define([ Link Here 
63
		_stickyTimer: null,
63
		_stickyTimer: null,
64
64
65
		_stickyHeaderTopPadding: null,
65
		_stickyHeaderTopPadding: null,
66
67
		_getStickyHeaderTopPadding: function() {
66
		_getStickyHeaderTopPadding: function() {
68
			var stickyHeaderNode = put(document.body, 'div.umcModuleHeader.dijitOffscreen > div.umcModuleHeaderSticky');
67
			if (!this._stickyHeaderTopPadding) {
69
			this._stickyHeaderTopPadding =  geometry.getPadExtents(stickyHeaderNode).t;
68
				var stickyHeaderNode = put(document.body, 'div.umcModuleHeader.dijitOffscreen > div.umcModuleHeaderSticky');
70
			put(stickyHeaderNode.parentNode, '!');
69
				this._stickyHeaderTopPadding =  geometry.getPadExtents(stickyHeaderNode).t;
70
				put(stickyHeaderNode.parentNode, '!');
71
			}
72
			return this._stickyHeaderTopPadding;
71
		},
73
		},
72
74
73
		_moduleHeaderTopPadding: null,
75
		_moduleHeaderTopPadding: null,
74
75
		_getModuleHeaderTopPadding: function() {
76
		_getModuleHeaderTopPadding: function() {
76
			var moduleHeaderNode = put(document.body, 'div.umcModuleHeader.dijitOffscreen > div.umcModuleHeaderOuterContainer');
77
			if (!this._moduleHeaderTopPadding) {
77
			this._moduleHeaderTopPadding =  geometry.getPadExtents(moduleHeaderNode).t;
78
				var moduleHeaderNode = put(document.body, 'div.umcModuleHeader.dijitOffscreen > div.umcModuleHeaderOuterContainer');
78
			put(moduleHeaderNode.parentNode, '!');
79
				this._moduleHeaderTopPadding =  geometry.getPadExtents(moduleHeaderNode).t;
80
				put(moduleHeaderNode.parentNode, '!');
81
			}
82
			return this._moduleHeaderTopPadding;
79
		},
83
		},
80
84
81
		_moduleHeaderHeight: null,
82
83
		postMixInProperties: function() {
85
		postMixInProperties: function() {
84
			this.inherited(arguments);
86
			this.inherited(arguments);
85
			this._stickyTimer = new Deferred();
87
			this._stickyTimer = new Deferred();
 Lines 104-116   define([ Link Here 
104
			return Boolean(this.domNode.offsetParent);
106
			return Boolean(this.domNode.offsetParent);
105
		},
107
		},
106
108
109
		_moduleHeaderHeight: null,
107
		_updateStickyHeader: function() {
110
		_updateStickyHeader: function() {
108
			if (!this._isModuleFocused()) {
111
			if (!this._isModuleFocused()) {
109
				return;
112
				return;
110
			}
113
			}
111
			var scroll = geometry.docScroll();
114
			var scroll = geometry.docScroll();
112
			var bboxHeader = geometry.getMarginBox('umcHeader');
115
			var bboxHeader = geometry.getMarginBox('umcHeader');
113
			var topPaddingDifference = this._moduleHeaderTopPadding - this._stickyHeaderTopPadding;
116
			var topPaddingDifference = this._getModuleHeaderTopPadding() - this._getStickyHeaderTopPadding();
114
			var sticky = scroll.y >= bboxHeader.h + bboxHeader.t + topPaddingDifference;
117
			var sticky = scroll.y >= bboxHeader.h + bboxHeader.t + topPaddingDifference;
115
			if (sticky) {
118
			if (sticky) {
116
				this._moduleHeaderHeight = this._moduleHeaderHeight || geometry.getContentBox(this.domNode).h;
119
				this._moduleHeaderHeight = this._moduleHeaderHeight || geometry.getContentBox(this.domNode).h;
 Lines 119-124   define([ Link Here 
119
			} else if (this._moduleHeaderHeight) {
122
			} else if (this._moduleHeaderHeight) {
120
				this._removeModuleHeaderHeight();
123
				this._removeModuleHeaderHeight();
121
				this._moduleHeaderHeight = 0;
124
				this._moduleHeaderHeight = 0;
125
				this._stickyHeaderTopPadding = null;
126
				this._moduleHeaderTopPadding = null;
122
			}
127
			}
123
			domClass.toggle(this._outerContainer.domNode, 'umcModuleHeaderSticky', sticky);
128
			domClass.toggle(this._outerContainer.domNode, 'umcModuleHeaderSticky', sticky);
124
		},
129
		},

Return to bug 38491