aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/coding-rules/layout.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-web/src/main/js/coding-rules/layout.js')
-rw-r--r--server/sonar-web/src/main/js/coding-rules/layout.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/server/sonar-web/src/main/js/coding-rules/layout.js b/server/sonar-web/src/main/js/coding-rules/layout.js
new file mode 100644
index 00000000000..f6386fa375a
--- /dev/null
+++ b/server/sonar-web/src/main/js/coding-rules/layout.js
@@ -0,0 +1,58 @@
+define([
+ 'backbone.marionette',
+ 'templates/coding-rules'
+], function (Marionette, Templates) {
+
+ var $ = jQuery;
+
+ return Marionette.Layout.extend({
+ template: Templates['coding-rules-layout'],
+ topOffset: 30,
+
+ regions: {
+ filtersRegion: '.search-navigator-filters',
+ facetsRegion: '.search-navigator-facets',
+ workspaceHeaderRegion: '.search-navigator-workspace-header',
+ workspaceListRegion: '.search-navigator-workspace-list',
+ workspaceDetailsRegion: '.search-navigator-workspace-details'
+ },
+
+ initialize: function () {
+ var that = this;
+ $(window).on('scroll.search-navigator-layout', function () {
+ that.onScroll();
+ });
+ },
+
+ onClose: function () {
+ $(window).off('scroll.search-navigator-layout');
+ },
+
+ onRender: function () {
+ this.$('.search-navigator-side').isolatedScroll();
+ },
+
+ onScroll: function () {
+ var scrollTop = $(window).scrollTop();
+ $('.search-navigator').toggleClass('sticky', scrollTop >= this.topOffset);
+ this.$('.search-navigator-side').css({
+ top: Math.max(0, Math.min(this.topOffset - scrollTop, this.topOffset))
+ });
+ },
+
+ showDetails: function () {
+ this.scroll = $(window).scrollTop();
+ $('.search-navigator').addClass('search-navigator-extended-view');
+ },
+
+
+ hideDetails: function () {
+ $('.search-navigator').removeClass('search-navigator-extended-view');
+ if (this.scroll != null) {
+ $(window).scrollTop(this.scroll);
+ }
+ }
+
+ });
+
+});