diff --git a/main/webapp/modules/core/MOD-INF/controller.js b/main/webapp/modules/core/MOD-INF/controller.js index 467fb4fdc..6a0b9ed56 100644 --- a/main/webapp/modules/core/MOD-INF/controller.js +++ b/main/webapp/modules/core/MOD-INF/controller.js @@ -1,7 +1,7 @@ var html = "text/html"; var encoding = "UTF-8"; var ClientSideResourceManager = Packages.com.google.refine.ClientSideResourceManager; -var bundle = true; +var bundle = false; var templatedFiles = { // Requests with last path segments mentioned here @@ -169,10 +169,10 @@ function init() { module, [ "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.custom.css", - "styles/common.css", + "styles/common.less", "styles/freebase.css", - "styles/index.css", - "styles/jquery-ui-overrides.css" + "styles/index.less", + "styles/jquery-ui-overrides.less" ] ); @@ -205,7 +205,8 @@ function init() { "scripts/widgets/histogram-widget.js", "scripts/widgets/slider-widget.js", - "scripts/project/menu-bar.js", + "scripts/project/extension-bar.js", + "scripts/project/exporters.js", "scripts/project/browsing-engine.js", "scripts/project/scripting.js", @@ -250,35 +251,35 @@ function init() { "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.custom.css", "externals/imgareaselect/css/imgareaselect-default.css", - "styles/common.css", - "styles/jquery-ui-overrides.css", + "styles/common.less", + "styles/jquery-ui-overrides.less", - "styles/util/menu.css", - "styles/util/dialog.css", - "styles/util/custom-suggest.css", + "styles/util/menu.less", + "styles/util/dialog.less", + "styles/util/custom-suggest.less", - "styles/project.css", - "styles/project/browsing.css", - "styles/project/process.css", - "styles/project/menu-bar.css", + "styles/project.less", + "styles/project/browsing.less", + "styles/project/process.less", + "styles/project/extension-bar.less", - "styles/widgets/history.css", - "styles/widgets/histogram-widget.css", - "styles/widgets/slider-widget.css", + "styles/widgets/history.less", + "styles/widgets/histogram-widget.less", + "styles/widgets/slider-widget.less", - "styles/views/data-table-view.css", + "styles/views/data-table-view.less", - "styles/dialogs/expression-preview-dialog.css", - "styles/dialogs/clustering-dialog.css", - "styles/dialogs/scatterplot-dialog.css", - "styles/dialogs/freebase-loading-dialog.css", - "styles/dialogs/extend-data-preview-dialog.css", - "styles/dialogs/column-reordering-dialog.css", + "styles/dialogs/expression-preview-dialog.less", + "styles/dialogs/clustering-dialog.less", + "styles/dialogs/scatterplot-dialog.less", + "styles/dialogs/freebase-loading-dialog.less", + "styles/dialogs/extend-data-preview-dialog.less", + "styles/dialogs/column-reordering-dialog.less", - "styles/reconciliation/recon-dialog.css", - "styles/reconciliation/standard-service-panel.css", + "styles/reconciliation/recon-dialog.less", + "styles/reconciliation/standard-service-panel.less", - "styles/protograph/schema-alignment-dialog.css" + "styles/protograph/schema-alignment-dialog.less" ] ); @@ -302,9 +303,9 @@ function init() { "externals/suggest/css/suggest-1.2.min.css", "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.custom.css", - "styles/common.css", - "styles/jquery-ui-overrides.css", - "styles/preferences.css" + "styles/common.less", + "styles/jquery-ui-overrides.less", + "styles/preferences.less" ] ); } diff --git a/main/webapp/modules/core/about.html b/main/webapp/modules/core/about.html index 554bbb443..77b98717e 100644 --- a/main/webapp/modules/core/about.html +++ b/main/webapp/modules/core/about.html @@ -3,8 +3,8 @@ About Google Refine - - + + @@ -26,8 +26,8 @@
diff --git a/main/webapp/modules/core/images/google-refine-home-button.png b/main/webapp/modules/core/images/google-refine-home-button.png new file mode 100644 index 000000000..b064c81e9 Binary files /dev/null and b/main/webapp/modules/core/images/google-refine-home-button.png differ diff --git a/main/webapp/modules/core/index.vt b/main/webapp/modules/core/index.vt index 87193b392..f9a0c6a62 100644 --- a/main/webapp/modules/core/index.vt +++ b/main/webapp/modules/core/index.vt @@ -11,8 +11,8 @@
diff --git a/main/webapp/modules/core/preferences.vt b/main/webapp/modules/core/preferences.vt index 6a4ee29ca..42036a39d 100644 --- a/main/webapp/modules/core/preferences.vt +++ b/main/webapp/modules/core/preferences.vt @@ -13,8 +13,8 @@
diff --git a/main/webapp/modules/core/project.vt b/main/webapp/modules/core/project.vt index 8ad0dd171..3273abe77 100644 --- a/main/webapp/modules/core/project.vt +++ b/main/webapp/modules/core/project.vt @@ -14,12 +14,42 @@ +
starting up ...
+
-
starting up ...
+
+
+ +
+
+
+
+
+
+ + +
+ +
Extensions:  Customize...
+ +
+
+ +
diff --git a/main/webapp/modules/core/scripts/project.js b/main/webapp/modules/core/scripts/project.js index 759fcd9d1..2d1e9d426 100644 --- a/main/webapp/modules/core/scripts/project.js +++ b/main/webapp/modules/core/scripts/project.js @@ -14,30 +14,32 @@ Refine.reportException = function(e) { function resize() { var header = $("#header"); - ui.menuBarContainer.css("top", header.outerHeight() + "px"); - var leftPanelWidth = 300; - var leftPanelMargin = 7; var width = $(window).width(); - var top = ui.menuBarContainer.offset().top + ui.menuBarContainer.outerHeight(); + var top = $("#header").outerHeight(); var height = $(window).height() - top; - ui.viewPanel + ui.leftPanel + .css("top", top + "px") + .css("left", "0px") + .css("height", height + "px") + .css("width", leftPanelWidth + "px"); + + var leftPanelPaddings = ui.leftPanel.outerHeight(true) - ui.leftPanel.height(); + var leftPanelTabsPaddings = ui.leftPanelTabs.outerHeight(true) - ui.leftPanelTabs.height(); + ui.leftPanelTabs.height(ui.leftPanel.height() - leftPanelTabsPaddings - leftPanelPaddings); + + var rightPanelVPaddings = ui.rightPanel.outerHeight(true) - ui.rightPanel.height(); + var rightPanelHPaddings = ui.rightPanel.outerWidth(true) - ui.rightPanel.width(); + ui.rightPanel .css("top", top + "px") .css("left", leftPanelWidth + "px") - .css("height", height + "px") - .css("width", (width - leftPanelWidth) + "px"); + .css("height", (height - rightPanelVPaddings) + "px") + .css("width", (width - leftPanelWidth - rightPanelHPaddings) + "px"); + + + ui.viewPanel.height((height - ui.toolPanel.outerHeight() - rightPanelVPaddings) + "px"); - ui.leftPanel - .css("top", (top + leftPanelMargin) + "px") - .css("left", leftPanelMargin + "px") - .css("height", (height - 2 * leftPanelMargin) + "px") - .css("width", (leftPanelWidth - 2 * leftPanelMargin) + "px"); - - var leftPanelTabsPaddings = ui.leftPanelTabs.outerHeight(true) - ui.leftPanelTabs.innerHeight(); - ui.leftPanelTabs - .height(ui.leftPanel.height() - leftPanelTabsPaddings); - var processPanelWidth = 400; ui.processPanel .css("width", processPanelWidth + "px") @@ -49,7 +51,7 @@ function resizeTabs() { var headerHeight = ui.leftPanelTabs.find(".ui-tabs-nav").outerHeight(true); var visibleTabPanels = ui.leftPanelTabs.find(".ui-tabs-panel:not(.ui-tabs-hide)"); - var paddings = visibleTabPanels.innerHeight(true) - visibleTabPanels.height(); + var paddings = visibleTabPanels.outerHeight(true) - visibleTabPanels.height(); var allTabPanels = ui.leftPanelTabs.find(".ui-tabs-panel"); allTabPanels.height(totalHeight - headerHeight - paddings - 1); @@ -59,7 +61,7 @@ function resizeAll() { resize(); resizeTabs(); - ui.menuBar.resize(); + ui.extensionBar.resize(); ui.browsingEngine.resize(); ui.processWidget.resize(); ui.historyWidget.resize(); @@ -67,34 +69,21 @@ function resizeAll() { } function initializeUI(uiState) { - var path = $("#path"); - $('').appendTo(path); - $('') - .mouseenter(function() { - this.href = Refine.getPermanentLink(); - }).appendTo(path); + $("#loading-message").hide(); + $("#header-layout").show(); + $("#body").show(); + + $('#project-name-button').click(Refine._renameProject); + $('#project-permalink-button').mouseenter(function() { + this.href = Refine.getPermanentLink(); + }); Refine.setTitle(); - var body = $("#body").empty().html( - '
' + - '
' + - '
' + - '
' + - '' + - '
' + - '
' + - '
' + - '
' + - '' - ); - ui = DOM.bind(body); + ui = DOM.bind($("#body")); - ui.menuBarContainer.css("top", $("#header").outerHeight() + "px"); - ui.menuBar = new MenuBar(ui.menuBarPanel); // construct the menu first so we can resize everything else + ui.extensionBar = new ExtensionBar(ui.extensionBar); // construct the menu first so we can resize everything else + ui.exporterManager = new ExporterManager($("#export-button")); ui.leftPanelTabs.tabs({ selected: 0 }); resize(); @@ -127,10 +116,7 @@ Refine.setTitle = function(status) { } document.title = title; - var name = $("#project-name-in-path"); - name.empty(); - name.text('project: '); - $('' + theProject.metadata.name + '').appendTo(name); + $("#project-name-button").text(theProject.metadata.name); }; Refine.reinitializeProjectData = function(f) { @@ -151,6 +137,33 @@ Refine.reinitializeProjectData = function(f) { ); }; +Refine._renameProject = function() { + var name = window.prompt("Rename Project", theProject.metadata.name); + if (name == null) { + return; + } + + name = $.trim(name); + if (theProject.metadata.name == name || name.length == 0) { + return; + } + + $.ajax({ + type: "POST", + url: "/command/core/rename-project", + data: { "project" : theProject.id, "name" : name }, + dataType: "json", + success: function (data) { + if (data && typeof data.code != 'undefined' && data.code == "ok") { + theProject.metadata.name = name; + Refine.setTitle(); + } else { + alert("Failed to rename project: " + data.message); + } + } + }); +}; + /* * Utility state functions */ diff --git a/main/webapp/modules/core/scripts/project/exporters.js b/main/webapp/modules/core/scripts/project/exporters.js new file mode 100644 index 000000000..6386a79e4 --- /dev/null +++ b/main/webapp/modules/core/scripts/project/exporters.js @@ -0,0 +1,128 @@ +function ExporterManager(button) { + this._button = button; + this._initializeUI(); +} + +ExporterManager.handlers = {}; + +ExporterManager.MenuItems = [ + { + "id" : "core/export-project", + "label": "Export Project", + "click": function() { ExporterManager.handlers.exportProject(); } + }, + {}, + { + "id" : "core/export-tsv", + "label": "Tab-Separated Value", + "click": function() { ExporterManager.handlers.exportRows("tsv", "tsv"); } + }, + { + "id" : "core/export-csv", + "label": "Comma-Separated Value", + "click": function() { ExporterManager.handlers.exportRows("csv", "csv"); } + }, + { + "id" : "core/export-html-table", + "label": "HTML Table", + "click": function() { ExporterManager.handlers.exportRows("html", "html"); } + }, + { + "id" : "core/export-excel", + "label": "Excel", + "click": function() { ExporterManager.handlers.exportRows("xls", "xls"); } + }, + {}, + { + "id" : "core/export-tripleloader", + "label": "Tripleloader", + "click": function() { ExporterManager.handlers.exportTripleloader("tripleloader"); } + }, + { + "id" : "core/export-mqlwrite", + "label": "MQLWrite", + "click": function() { ExporterManager.handlers.exportTripleloader("mqlwrite"); } + }, + {}, + { + "id" : "core/export-templating", + "label": "Templating...", + "click": function() { new TemplatingExporterDialog(); } + } +]; + +ExporterManager.prototype._initializeUI = function() { + this._button.click(function(evt) { + MenuSystem.createAndShowStandardMenu( + ExporterManager.MenuItems, + this, + { horizontal: false } + ); + + evt.preventDefault(); + return false; + }); +}; + +ExporterManager.handlers.exportTripleloader = function(format) { + if (!theProject.overlayModels.freebaseProtograph) { + alert( + "You haven't done any schema alignment yet,\nso there is no triple to export.\n\n" + + "Use the Schemas > Edit Schema Alignment Skeleton...\ncommand to align your data with Freebase schemas first." + ); + } else { + ExporterManager.handlers.exportRows(format, "txt"); + } +}; + +ExporterManager.handlers.exportRows = function(format, ext) { + var name = $.trim(theProject.metadata.name.replace(/\W/g, ' ')).replace(/\s+/g, '-'); + var form = document.createElement("form"); + $(form) + .css("display", "none") + .attr("method", "post") + .attr("action", "/command/core/export-rows/" + name + "." + ext) + .attr("target", "refine-export"); + + $('') + .attr("name", "engine") + .attr("value", JSON.stringify(ui.browsingEngine.getJSON())) + .appendTo(form); + $('') + .attr("name", "project") + .attr("value", theProject.id) + .appendTo(form); + $('') + .attr("name", "format") + .attr("value", format) + .appendTo(form); + + document.body.appendChild(form); + + window.open("about:blank", "refine-export"); + form.submit(); + + document.body.removeChild(form); +}; + +ExporterManager.handlers.exportProject = function() { + var name = $.trim(theProject.metadata.name.replace(/\W/g, ' ')).replace(/\s+/g, '-'); + var form = document.createElement("form"); + $(form) + .css("display", "none") + .attr("method", "post") + .attr("action", "/command/core/export-project/" + name + ".google-refine.tar.gz") + .attr("target", "refine-export"); + $('') + .attr("name", "project") + .attr("value", theProject.id) + .appendTo(form); + + document.body.appendChild(form); + + window.open("about:blank", "refine-export"); + form.submit(); + + document.body.removeChild(form); +}; + diff --git a/main/webapp/modules/core/scripts/project/extension-bar.js b/main/webapp/modules/core/scripts/project/extension-bar.js new file mode 100644 index 000000000..1a8c621cb --- /dev/null +++ b/main/webapp/modules/core/scripts/project/extension-bar.js @@ -0,0 +1,148 @@ +function ExtensionBar(div) { + this._div = div; + this._initializeUI(); +} + +ExtensionBar.MenuItems = [ + { + "id" : "freebase", + "label" : "Freebase", + "submenu" : [ + { + "id" : "freebase/schema-alignment", + label: "Edit Schema Aligment Skeleton ...", + click: function() { ExtensionBar.handlers.editSchemaAlignment(false); } + }, + { + "id" : "freebase/reset-schema-alignment", + label: "Reset Schema Alignment Skeleton ...", + click: function() { ExtensionBar.handlers.editSchemaAlignment(true); } + }, + {}, + { + "id" : "freebase/load-info-freebase", + label: "Load into Freebase ...", + click: function() { ExtensionBar.handlers.loadIntoFreebase(); } + }, + { + "id" : "freebase/browse-load", + label: "Browse to Data Load ...", + click: function() { ExtensionBar.handlers.browseToDataLoad(); } + }, + { + "id" : "freebase/import-qa-data", + label: "Import QA Data", + click: function() { ExtensionBar.handlers.importQAData(); } + } + ] + } +]; + +ExtensionBar.addExtensionMenu = function(what) { + ExtensionBar.appendTo(ExtensionBar.MenuItems, [], what); +} + +ExtensionBar.appendTo = function(path, what) { + ExtensionBar.appendTo(ExtensionBar.MenuItems, path, what); +}; + +ExtensionBar.insertBefore = function(path, what) { + MenuSystem.insertBefore(ExtensionBar.MenuItems, path, what); +}; + +ExtensionBar.insertAfter = function(path, what) { + MenuSystem.insertAfter(ExtensionBar.MenuItems, path, what); +}; + +ExtensionBar.prototype.resize = function() { +}; + +ExtensionBar.prototype._initializeUI = function() { + var elmts = DOM.bind(this._div); + for (var i = 0; i < ExtensionBar.MenuItems.length; i++) { + var menuItem = ExtensionBar.MenuItems[i]; + var menuButton = this._createMenuButton(menuItem.label, menuItem.submenu); + elmts.menuContainer.append(menuButton); + } +}; + +ExtensionBar.prototype._createMenuButton = function(label, submenu) { + var self = this; + + var menuItem = $("").addClass("app-menu-button").text(label); + + menuItem.click(function(evt) { + MenuSystem.createAndShowStandardMenu( + submenu, + this, + { horizontal: false } + ); + + evt.preventDefault(); + return false; + }); + + return menuItem; +}; + +ExtensionBar.handlers = {}; + +ExtensionBar.handlers.openWorkspaceDir = function() { + $.ajax({ + type: "POST", + url: "/command/core/open-workspace-dir", + dataType: "json", + success: function (data) { + if (data.code != "ok" && "message" in data) { + alert(data.message); + } + } + }); +}; + +ExtensionBar.handlers.editSchemaAlignment = function(reset) { + new SchemaAlignmentDialog( + reset ? null : theProject.overlayModels.freebaseProtograph, function(newProtograph) {}); +}; + +ExtensionBar.handlers.loadIntoFreebase = function() { + new FreebaseLoadingDialog(); +}; + +ExtensionBar.handlers.browseToDataLoad = function() { + // The form has to be created as part of the click handler. If you create it + // inside the getJSON success handler, it won't work. + + var form = document.createElement("form"); + $(form) + .css("display", "none") + .attr("method", "GET") + .attr("target", "dataload"); + + document.body.appendChild(form); + var w = window.open("about:blank", "dataload"); + + $.getJSON( + "/command/core/get-preference?" + $.param({ project: theProject.id, name: "freebase.load.jobID" }), + null, + function(data) { + if (data.value == null) { + alert("You have not tried to load the data in this project into Freebase yet."); + } else { + $(form).attr("action", "http://refinery.freebaseapps.com/load/" + data.value); + form.submit(); + w.focus(); + } + document.body.removeChild(form); + } + ); +}; + +ExtensionBar.handlers.importQAData = function() { + Refine.postCoreProcess( + "import-qa-data", + {}, + {}, + { cellsChanged: true } + ); +}; diff --git a/main/webapp/modules/core/scripts/project/menu-bar.js b/main/webapp/modules/core/scripts/project/menu-bar.js deleted file mode 100644 index 99e920afc..000000000 --- a/main/webapp/modules/core/scripts/project/menu-bar.js +++ /dev/null @@ -1,389 +0,0 @@ -function MenuBar(div) { - this._div = div; - this._initializeUI(); -} - -MenuBar.MenuItems = [ - { - "id" : "core/project", - "label" : "Project", - "submenu" : [ - /* - { - "label": "Data Model", - "submenu": [ - { - "label": "Denormalize Records", - "click": function() { MenuBar.handlers.denormalizeRecords(); } - } - ] - }, - {}, - */ - { - "id" : "core/rename-project", - "label": "Rename...", - "click": function() { MenuBar.handlers.renameProject(); } - }, - {}, - { - "id" : "core/export", - "label": "Export Filtered Rows", - "submenu": [ - { - "id" : "core/export-tsv", - "label": "Tab-Separated Value", - "click": function() { MenuBar.handlers.exportRows("tsv", "tsv"); } - }, - { - "id" : "core/export-csv", - "label": "Comma-Separated Value", - "click": function() { MenuBar.handlers.exportRows("csv", "csv"); } - }, - { - "id" : "core/export-html-table", - "label": "HTML Table", - "click": function() { MenuBar.handlers.exportRows("html", "html"); } - }, - { - "id" : "core/export-excel", - "label": "Excel", - "click": function() { MenuBar.handlers.exportRows("xls", "xls"); } - }, - {}, - { - "id" : "core/export-tripleloader", - "label": "Tripleloader", - "click": function() { MenuBar.handlers.exportTripleloader("tripleloader"); } - }, - { - "id" : "core/export-mqlwrite", - "label": "MQLWrite", - "click": function() { MenuBar.handlers.exportTripleloader("mqlwrite"); } - }, - {}, - { - "id" : "core/export-templating", - "label": "Templating...", - "click": function() { new TemplatingExporterDialog(); } - } - ] - }, - { - "id" : "core/export-project", - "label": "Export Project", - "click": function() { MenuBar.handlers.exportProject(); } - }, - {}, - { - "id" : "core/open-workspace-dir", - "label": "Open Workspace Directory", - "click": function() { MenuBar.handlers.openWorkspaceDir(); } - } - ] - }, - { - "id" : "core/schemas", - "label" : "Schemas", - "submenu" : [ - /*{ - "id" : "core/auto-schema-alignment", - label: "Auto-Align with Freebase ...", - click: function() { MenuBar.handlers.autoSchemaAlignment(); } - },*/ - { - "id" : "core/schema-alignment", - label: "Edit Schema Aligment Skeleton ...", - click: function() { MenuBar.handlers.editSchemaAlignment(false); } - }, - { - "id" : "core/reset-schema-alignment", - label: "Reset Schema Alignment Skeleton ...", - click: function() { MenuBar.handlers.editSchemaAlignment(true); } - }, - {}, - { - "id" : "core/load-info-freebase", - label: "Load into Freebase ...", - click: function() { MenuBar.handlers.loadIntoFreebase(); } - }, - { - "id" : "core/browse-load", - label: "Browse to Data Load ...", - click: function() { MenuBar.handlers.browseToDataLoad(); } - }, - { - "id" : "core/import-qa-data", - label: "Import QA Data", - click: function() { MenuBar.handlers.importQAData(); } - } - ] - } -]; - -MenuBar.appendTo = function(path, what) { - MenuBar.appendTo(MenuBar.MenuItems, path, what); -}; - -MenuBar.insertBefore = function(path, what) { - MenuSystem.insertBefore(MenuBar.MenuItems, path, what); -}; - -MenuBar.insertAfter = function(path, what) { - MenuSystem.insertAfter(MenuBar.MenuItems, path, what); -}; - -MenuBar.handlers = {}; - -MenuBar.prototype.resize = function() { -}; - -MenuBar.prototype._initializeUI = function() { - this._mode = "inactive"; - this._menuItemRecords = []; - - this._div.addClass("menu-bar").html(" "); - this._innerDiv = $('
').addClass("menu-bar-inner").appendTo(this._div); - - var self = this; - for (var i = 0; i < MenuBar.MenuItems.length; i++) { - var menuItem = MenuBar.MenuItems[i]; - this._createTopLevelMenuItem(menuItem.label, menuItem.submenu); - } - this._wireAllMenuItemsInactive(); -}; - -MenuBar.prototype._createTopLevelMenuItem = function(label, submenu) { - var self = this; - - var menuItem = MenuSystem.createMenuItem().text(label).appendTo(this._innerDiv); - - this._menuItemRecords.push({ - menuItem: menuItem, - show: function() { - MenuSystem.dismissUntil(self._level); - - menuItem.addClass("menu-expanded"); - - MenuSystem.createAndShowStandardMenu( - submenu, - this, - { - horizontal: false, - onDismiss: function() { - menuItem.removeClass("menu-expanded"); - } - } - ); - } - }); -}; - -MenuBar.prototype._wireMenuItemInactive = function(record) { - var self = this; - var click = function() { - self._activateMenu(); - record.show.apply(record.menuItem[0]); - }; - - record.menuItem.click(function() { - // because we're going to rewire the menu bar, we have to - // make this asynchronous, or jquery event binding won't work. - window.setTimeout(click, 100); - }); -}; - -MenuBar.prototype._wireAllMenuItemsInactive = function() { - for (var i = 0; i < this._menuItemRecords.length; i++) { - this._wireMenuItemInactive(this._menuItemRecords[i]); - } -}; - -MenuBar.prototype._wireMenuItemActive = function(record) { - record.menuItem.mouseover(function() { - record.show.apply(this); - }); -}; - -MenuBar.prototype._wireAllMenuItemsActive = function() { - for (var i = 0; i < this._menuItemRecords.length; i++) { - this._wireMenuItemActive(this._menuItemRecords[i]); - } -}; - -MenuBar.prototype._activateMenu = function() { - var self = this; - - var top = this._innerDiv.offset().top; - - this._innerDiv.remove().css("top", top + "px"); - this._wireAllMenuItemsActive(); - this._mode = "active"; - - this._level = MenuSystem.showMenu(this._innerDiv, function() { - self._deactivateMenu(); - }); -}; - -MenuBar.prototype._deactivateMenu = function() { - this._innerDiv.remove() - .css("z-index", "auto") - .css("top", "0px") - .appendTo(this._div); - - this._wireAllMenuItemsInactive(); - this._mode = "inactive"; -}; - -MenuBar.handlers.exportTripleloader = function(format) { - if (!theProject.overlayModels.freebaseProtograph) { - alert( - "You haven't done any schema alignment yet,\nso there is no triple to export.\n\n" + - "Use the Schemas > Edit Schema Alignment Skeleton...\ncommand to align your data with Freebase schemas first." - ); - } else { - MenuBar.handlers.exportRows(format, "txt"); - } -}; - -MenuBar.handlers.exportRows = function(format, ext) { - var name = $.trim(theProject.metadata.name.replace(/\W/g, ' ')).replace(/\s+/g, '-'); - var form = document.createElement("form"); - $(form) - .css("display", "none") - .attr("method", "post") - .attr("action", "/command/core/export-rows/" + name + "." + ext) - .attr("target", "refine-export"); - - $('') - .attr("name", "engine") - .attr("value", JSON.stringify(ui.browsingEngine.getJSON())) - .appendTo(form); - $('') - .attr("name", "project") - .attr("value", theProject.id) - .appendTo(form); - $('') - .attr("name", "format") - .attr("value", format) - .appendTo(form); - - document.body.appendChild(form); - - window.open("about:blank", "refine-export"); - form.submit(); - - document.body.removeChild(form); -}; - -MenuBar.handlers.exportProject = function() { - var name = $.trim(theProject.metadata.name.replace(/\W/g, ' ')).replace(/\s+/g, '-'); - var form = document.createElement("form"); - $(form) - .css("display", "none") - .attr("method", "post") - .attr("action", "/command/core/export-project/" + name + ".google-refine.tar.gz") - .attr("target", "refine-export"); - $('') - .attr("name", "project") - .attr("value", theProject.id) - .appendTo(form); - - document.body.appendChild(form); - - window.open("about:blank", "refine-export"); - form.submit(); - - document.body.removeChild(form); -}; - -MenuBar.handlers.renameProject = function() { - var name = window.prompt("Rename Project", theProject.metadata.name); - if (name == null) { - return; - } - - name = $.trim(name); - if (theProject.metadata.name == name || name.length == 0) { - return; - } - - $.ajax({ - type: "POST", - url: "/command/core/rename-project", - data: { "project" : theProject.id, "name" : name }, - dataType: "json", - success: function (data) { - if (data && typeof data.code != 'undefined' && data.code == "ok") { - theProject.metadata.name = name; - Refine.setTitle(); - } else { - alert("Failed to rename project: " + data.message); - } - } - }); -}; - -MenuBar.handlers.openWorkspaceDir = function() { - $.ajax({ - type: "POST", - url: "/command/core/open-workspace-dir", - dataType: "json", - success: function (data) { - if (data.code != "ok" && "message" in data) { - alert(data.message); - } - } - }); -}; - -MenuBar.handlers.autoSchemaAlignment = function() { - //SchemaAlignment.autoAlign(); -}; - -MenuBar.handlers.editSchemaAlignment = function(reset) { - new SchemaAlignmentDialog( - reset ? null : theProject.overlayModels.freebaseProtograph, function(newProtograph) {}); -}; - -MenuBar.handlers.loadIntoFreebase = function() { - new FreebaseLoadingDialog(); -}; - -MenuBar.handlers.browseToDataLoad = function() { - // The form has to be created as part of the click handler. If you create it - // inside the getJSON success handler, it won't work. - - var form = document.createElement("form"); - $(form) - .css("display", "none") - .attr("method", "GET") - .attr("target", "dataload"); - - document.body.appendChild(form); - var w = window.open("about:blank", "dataload"); - - $.getJSON( - "/command/core/get-preference?" + $.param({ project: theProject.id, name: "freebase.load.jobID" }), - null, - function(data) { - if (data.value == null) { - alert("You have not tried to load the data in this project into Freebase yet."); - } else { - $(form).attr("action", "http://refinery.freebaseapps.com/load/" + data.value); - form.submit(); - w.focus(); - } - document.body.removeChild(form); - } - ); -}; - -MenuBar.handlers.importQAData = function() { - Refine.postCoreProcess( - "import-qa-data", - {}, - {}, - { cellsChanged: true } - ); -}; diff --git a/main/webapp/modules/core/styles/common.css b/main/webapp/modules/core/styles/common.less similarity index 82% rename from main/webapp/modules/core/styles/common.css rename to main/webapp/modules/core/styles/common.less index e3041a76a..373c549a6 100644 --- a/main/webapp/modules/core/styles/common.css +++ b/main/webapp/modules/core/styles/common.less @@ -1,3 +1,5 @@ +@import-less url("theme.less"); + html { font-size: 62.5%; font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; @@ -146,53 +148,53 @@ img { } #header { - background: url(../images/header-background.png) repeat-x 0 0; - border-bottom: 1px solid #ffb800; - height: 32px; - padding-bottom: 1px; + height: 40px; position: relative; overflow: hidden; + background: white; + padding-left: 125px; } -#logo { - float: left; +#app-home-button { + position: absolute; + top: 50%; + margin-top: -16px; + left: 0px; } #path { position: absolute; + height: 40px; top: 50%; margin-top: -0.5em; + left: 125px; + right: 10px; line-height: 1em; - left: 70px; - height: 31px; } #path .app-path-section { - background: url(../images/path-delimiter.png) no-repeat center right; - padding: 18px 20px 20px 20px; + font-size: 150%; + margin: 0 0.5em; + padding: 0 0.5em; } #path a { - font-weight: bold; text-decoration: none; - color: #333; } #path a:hover { text-decoration: underline; } -#path a.permalink { - padding: 18px 20px 20px 10px; - color: #ff6a00; -} - -#footer { - font-size: 85%; - padding: 1em 0; - color: #666; - text-align: center; - border-top: 1px solid #ccc; -} -#footer a { - color: #448; -} - #body { } +a.app-menu-button, #path a.app-menu-button { + text-decoration: none; + font-weight: bold; + padding: 4px 8px; + color: black; + background: #eee; + border: 1px solid #aaa; + border-radius: 5px; + cursor: pointer; +} +a.app-menu-button:hover, #path a.app-menu-button:hover { + text-decoration: none; + background: #white; +} \ No newline at end of file diff --git a/main/webapp/modules/core/styles/dialogs/clustering-dialog.css b/main/webapp/modules/core/styles/dialogs/clustering-dialog.less similarity index 97% rename from main/webapp/modules/core/styles/dialogs/clustering-dialog.css rename to main/webapp/modules/core/styles/dialogs/clustering-dialog.less index a56fb581a..b8c67e4b2 100644 --- a/main/webapp/modules/core/styles/dialogs/clustering-dialog.css +++ b/main/webapp/modules/core/styles/dialogs/clustering-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .clustering-dialog-table-container { height: 500px; overflow: auto; diff --git a/main/webapp/modules/core/styles/dialogs/column-reordering-dialog.css b/main/webapp/modules/core/styles/dialogs/column-reordering-dialog.less similarity index 88% rename from main/webapp/modules/core/styles/dialogs/column-reordering-dialog.css rename to main/webapp/modules/core/styles/dialogs/column-reordering-dialog.less index c61491eb1..a1a4388bb 100644 --- a/main/webapp/modules/core/styles/dialogs/column-reordering-dialog.css +++ b/main/webapp/modules/core/styles/dialogs/column-reordering-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .column-reordering-dialog-column { border: 1px solid #aaa; background: #eee; diff --git a/main/webapp/modules/core/styles/dialogs/expression-preview-dialog.css b/main/webapp/modules/core/styles/dialogs/expression-preview-dialog.less similarity index 97% rename from main/webapp/modules/core/styles/dialogs/expression-preview-dialog.css rename to main/webapp/modules/core/styles/dialogs/expression-preview-dialog.less index c96ae31d2..0ad9bd4f8 100644 --- a/main/webapp/modules/core/styles/dialogs/expression-preview-dialog.css +++ b/main/webapp/modules/core/styles/dialogs/expression-preview-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + #expression-preview-tabs .ui-tabs-nav li a { padding: 0.15em 1em; } diff --git a/main/webapp/modules/core/styles/dialogs/extend-data-preview-dialog.css b/main/webapp/modules/core/styles/dialogs/extend-data-preview-dialog.less similarity index 95% rename from main/webapp/modules/core/styles/dialogs/extend-data-preview-dialog.css rename to main/webapp/modules/core/styles/dialogs/extend-data-preview-dialog.less index 6bf96b43d..a10d37926 100644 --- a/main/webapp/modules/core/styles/dialogs/extend-data-preview-dialog.css +++ b/main/webapp/modules/core/styles/dialogs/extend-data-preview-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .extend-data-preview-dialog .suggested-property-container { border: 1px solid #aaa; padding: 5px; diff --git a/main/webapp/modules/core/styles/dialogs/freebase-loading-dialog.css b/main/webapp/modules/core/styles/dialogs/freebase-loading-dialog.less similarity index 96% rename from main/webapp/modules/core/styles/dialogs/freebase-loading-dialog.css rename to main/webapp/modules/core/styles/dialogs/freebase-loading-dialog.less index b5e260823..d4a681204 100644 --- a/main/webapp/modules/core/styles/dialogs/freebase-loading-dialog.css +++ b/main/webapp/modules/core/styles/dialogs/freebase-loading-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .freebase-loading-tripleloader-data { height: 400px; width: 99%; diff --git a/main/webapp/modules/core/styles/dialogs/scatterplot-dialog.css b/main/webapp/modules/core/styles/dialogs/scatterplot-dialog.less similarity index 96% rename from main/webapp/modules/core/styles/dialogs/scatterplot-dialog.css rename to main/webapp/modules/core/styles/dialogs/scatterplot-dialog.less index 953526a77..6f25c1267 100644 --- a/main/webapp/modules/core/styles/dialogs/scatterplot-dialog.css +++ b/main/webapp/modules/core/styles/dialogs/scatterplot-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .scatterplot-dialog-selectors-container { } diff --git a/main/webapp/modules/core/styles/error.css b/main/webapp/modules/core/styles/error.css deleted file mode 100644 index eb1457a7b..000000000 --- a/main/webapp/modules/core/styles/error.css +++ /dev/null @@ -1,3 +0,0 @@ -#body { - padding: 5em; -} \ No newline at end of file diff --git a/main/webapp/modules/core/styles/error.less b/main/webapp/modules/core/styles/error.less new file mode 100644 index 000000000..651e29786 --- /dev/null +++ b/main/webapp/modules/core/styles/error.less @@ -0,0 +1,5 @@ +@import-less url("theme.less"); + +#body { + padding: 5em; +} \ No newline at end of file diff --git a/main/webapp/modules/core/styles/freebase.css b/main/webapp/modules/core/styles/freebase.less similarity index 98% rename from main/webapp/modules/core/styles/freebase.css rename to main/webapp/modules/core/styles/freebase.less index 0d5c7993b..69536ac41 100644 --- a/main/webapp/modules/core/styles/freebase.css +++ b/main/webapp/modules/core/styles/freebase.less @@ -1,3 +1,5 @@ +@import-less url("theme.less"); + /* ----------------------------------------- Buttons diff --git a/main/webapp/modules/core/styles/index.css b/main/webapp/modules/core/styles/index.less similarity index 100% rename from main/webapp/modules/core/styles/index.css rename to main/webapp/modules/core/styles/index.less diff --git a/main/webapp/modules/core/styles/jquery-ui-overrides.css b/main/webapp/modules/core/styles/jquery-ui-overrides.less similarity index 68% rename from main/webapp/modules/core/styles/jquery-ui-overrides.css rename to main/webapp/modules/core/styles/jquery-ui-overrides.less index ce0cdd41f..cd89d2115 100644 --- a/main/webapp/modules/core/styles/jquery-ui-overrides.css +++ b/main/webapp/modules/core/styles/jquery-ui-overrides.less @@ -1,3 +1,5 @@ +@import-less url("theme.less"); + .refine-tabs.ui-tabs { padding: 0; } @@ -9,7 +11,7 @@ color: inherit; } .refine-tabs.ui-tabs .ui-tabs-nav { - padding: 0; + padding: 0 @padding_normal; } .refine-tabs.ui-tabs .ui-widget-header { background: none; @@ -26,35 +28,46 @@ .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-default, .refine-tabs.ui-tabs .ui-tabs-nav .ui-widget-content .ui-state-default { - background: #C5D1D4; + background: none; + border: none; } .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-default a, .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-default a:link, .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-default a:visited { - color: black; + color: @link_color; + font-weight: normal; } .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-active, .refine-tabs.ui-tabs .ui-tabs-nav .ui-widget-content .ui-state-active { - background: #DBE8EB; - border: none; + margin-top: 1px; + border: 1px solid @line_accent; + border-bottom: none; + background: white; color: black; + font-weight: bold; } .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-active a, .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-active a:link, .refine-tabs.ui-tabs .ui-tabs-nav .ui-state-active a:visited { color: black; + font-weight: bold; +} + +.refine-tabs.ui-tabs .ui-corner-top { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.refine-tabs.ui-tabs .ui-corner-bottom { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } .refine-tabs.ui-tabs .ui-tabs-panel { margin: 0px; padding: 15px; - border: 1px solid #DBE8EB; - background: #DBE8EB; - -moz-border-radius: 7px; - -webkit-border-radius: 7px; - -moz-border-radius-topleft: 0px; - -webkit-border-top-left-radius: 0px; + border: 1px solid @line_accent; + background: white; } diff --git a/main/webapp/modules/core/styles/preferences.css b/main/webapp/modules/core/styles/preferences.less similarity index 90% rename from main/webapp/modules/core/styles/preferences.css rename to main/webapp/modules/core/styles/preferences.less index b76337f4c..fa51a39b6 100644 --- a/main/webapp/modules/core/styles/preferences.css +++ b/main/webapp/modules/core/styles/preferences.less @@ -1,3 +1,5 @@ +@import-less url("theme.less"); + #body { padding: 5em; margin: 0; diff --git a/main/webapp/modules/core/styles/project.less b/main/webapp/modules/core/styles/project.less new file mode 100644 index 000000000..bb1c810a6 --- /dev/null +++ b/main/webapp/modules/core/styles/project.less @@ -0,0 +1,101 @@ +@import-less url("theme.less"); + +body { + background: white; +} + +#body { + padding: 0; + margin: 0; + display: none; +} + +#header-layout { + display: none; + width: 100%; + border-collapse: collapse; + border: none; +} +#header-layout > tbody > tr > td { + padding: 0; +} +#header-layout-right { + text-align: right; +} + +#project-name-button { + :hover { + background: #fffee0; + } +} + +#project-permalink-button { +} + +#loading-message { + text-align: center; + font-size: 300%; + color: #aaa; + padding: 1in; + font-style: italic; +} + +#left-panel { + position: fixed; + overflow: hidden; + padding: 0px; + padding-top: @padding_tight; + font-size: 11px; + background: @fill_normal; +} +#right-panel { + position: fixed; + overflow: hidden; + padding: 0px; + padding-left: @padding_tight; + font-size: 11px; + background: @fill_accent; +} + +#tool-panel { + padding: @padding_tight @padding_tight @padding_tight 0; +} + +#tool-panel-layout { + width: 100%; + border-collapse: collapse; +} +#tool-panel-layout > tbody > tr >td { + padding: 0px; +} + +#summary-bar-container { + padding: @padding_tight 0; +} + +#extension-bar-container { + text-align: right; +} + +#extension-bar { + padding: @padding_tight 0; +} + +#view-panel { + background: white; + overflow: hidden; +} +#left-panel .refine-tabs.ui-tabs .ui-tabs-panel { + border-bottom: none; + border-left: none; + border-right: none; + padding: @padding_loose; + overflow: hidden; +} + +#facet-panel { + overflow: auto; +} +#history-panel { + overflow: auto; +} diff --git a/main/webapp/modules/core/styles/project/browsing.css b/main/webapp/modules/core/styles/project/browsing.less similarity index 99% rename from main/webapp/modules/core/styles/project/browsing.css rename to main/webapp/modules/core/styles/project/browsing.less index b9afc28ee..7e32bc69f 100644 --- a/main/webapp/modules/core/styles/project/browsing.css +++ b/main/webapp/modules/core/styles/project/browsing.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .browsing-panel-modes { padding-bottom: 0.5em; text-align: center; diff --git a/main/webapp/modules/core/styles/project/extension-bar.less b/main/webapp/modules/core/styles/project/extension-bar.less new file mode 100644 index 000000000..f6421f0dd --- /dev/null +++ b/main/webapp/modules/core/styles/project/extension-bar.less @@ -0,0 +1,7 @@ +@import-less url("../theme.less"); + +#extension-bar { +} + +#extension-bar-menu-container { +} diff --git a/main/webapp/modules/core/styles/project/menu-bar.css b/main/webapp/modules/core/styles/project/menu-bar.css deleted file mode 100644 index 153a4ceff..000000000 --- a/main/webapp/modules/core/styles/project/menu-bar.css +++ /dev/null @@ -1,22 +0,0 @@ -.menu-bar { - padding: 5px 10px; - background: #e8e8e8; - position: relative; - border-bottom: 1px solid #CCCCCC; -} - -.menu-bar-inner { - position: absolute; - top: 0px; - left: 0px; - padding: 5px 10px; -} - -.menu-bar-inner a.menu-item { - display: inline; - padding: 5px 10px; -} - -.menu-bar-inner a.menu-item:hover { - background: #ddd; -} diff --git a/main/webapp/modules/core/styles/project/process.css b/main/webapp/modules/core/styles/project/process.less similarity index 91% rename from main/webapp/modules/core/styles/project/process.css rename to main/webapp/modules/core/styles/project/process.less index dc116dfbc..bac4c3e88 100644 --- a/main/webapp/modules/core/styles/project/process.css +++ b/main/webapp/modules/core/styles/project/process.less @@ -1,4 +1,6 @@ -.process-panel { +@import-less url("../theme.less"); + +#process-panel { position: fixed; top: 0px; z-index: 1000; diff --git a/main/webapp/modules/core/styles/protograph/schema-alignment-dialog.css b/main/webapp/modules/core/styles/protograph/schema-alignment-dialog.less similarity index 98% rename from main/webapp/modules/core/styles/protograph/schema-alignment-dialog.css rename to main/webapp/modules/core/styles/protograph/schema-alignment-dialog.less index 243aace62..fcd9de427 100644 --- a/main/webapp/modules/core/styles/protograph/schema-alignment-dialog.css +++ b/main/webapp/modules/core/styles/protograph/schema-alignment-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .schema-alignment-dialog-canvas { height: 400px; overflow: auto; diff --git a/main/webapp/modules/core/styles/reconciliation/recon-dialog.css b/main/webapp/modules/core/styles/reconciliation/recon-dialog.less similarity index 96% rename from main/webapp/modules/core/styles/reconciliation/recon-dialog.css rename to main/webapp/modules/core/styles/reconciliation/recon-dialog.less index 2578f82dc..e11fcc9d2 100644 --- a/main/webapp/modules/core/styles/reconciliation/recon-dialog.css +++ b/main/webapp/modules/core/styles/reconciliation/recon-dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .recon-dialog-service-list { border: 1px solid #aaa; padding: 1px; diff --git a/main/webapp/modules/core/styles/reconciliation/standard-service-panel.css b/main/webapp/modules/core/styles/reconciliation/standard-service-panel.less similarity index 92% rename from main/webapp/modules/core/styles/reconciliation/standard-service-panel.css rename to main/webapp/modules/core/styles/reconciliation/standard-service-panel.less index faf9737ee..a141e9963 100644 --- a/main/webapp/modules/core/styles/reconciliation/standard-service-panel.css +++ b/main/webapp/modules/core/styles/reconciliation/standard-service-panel.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .recon-dialog-standard-service-panel-message { text-align: center; font-size: 150%; diff --git a/main/webapp/modules/core/styles/theme.less b/main/webapp/modules/core/styles/theme.less new file mode 100644 index 000000000..a8f397ba5 --- /dev/null +++ b/main/webapp/modules/core/styles/theme.less @@ -0,0 +1,12 @@ +@fill_normal: #e3e9ff; +@fill_accent: #bbccff; + +@line_accent: #bbccff; + +@padding_normal: 7px; +@padding_tight: 5px; +@padding_tighter: 3px; +@padding_loose: 10px; +@padding_looser: 15px; + +@link_color: blue; \ No newline at end of file diff --git a/main/webapp/modules/core/styles/util/custom-suggest.css b/main/webapp/modules/core/styles/util/custom-suggest.less similarity index 59% rename from main/webapp/modules/core/styles/util/custom-suggest.css rename to main/webapp/modules/core/styles/util/custom-suggest.less index e8230164e..4003782b2 100644 --- a/main/webapp/modules/core/styles/util/custom-suggest.css +++ b/main/webapp/modules/core/styles/util/custom-suggest.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .fbs-pane-property, .fbs-pane-type { width: 400px; } \ No newline at end of file diff --git a/main/webapp/modules/core/styles/util/dialog.css b/main/webapp/modules/core/styles/util/dialog.less similarity index 96% rename from main/webapp/modules/core/styles/util/dialog.css rename to main/webapp/modules/core/styles/util/dialog.less index c506328bb..25b97d42d 100644 --- a/main/webapp/modules/core/styles/util/dialog.css +++ b/main/webapp/modules/core/styles/util/dialog.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .dialog-overlay { position: fixed; padding: 0px; diff --git a/main/webapp/modules/core/styles/util/menu.css b/main/webapp/modules/core/styles/util/menu.less similarity index 96% rename from main/webapp/modules/core/styles/util/menu.css rename to main/webapp/modules/core/styles/util/menu.less index 20b2fa247..565e9ec70 100644 --- a/main/webapp/modules/core/styles/util/menu.css +++ b/main/webapp/modules/core/styles/util/menu.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .menu-overlay { background: black; opacity: 0.15; diff --git a/main/webapp/modules/core/styles/views/data-table-view.css b/main/webapp/modules/core/styles/views/data-table-view.less similarity index 97% rename from main/webapp/modules/core/styles/views/data-table-view.css rename to main/webapp/modules/core/styles/views/data-table-view.less index 3eb0237d7..a7189bd49 100644 --- a/main/webapp/modules/core/styles/views/data-table-view.css +++ b/main/webapp/modules/core/styles/views/data-table-view.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .viewPanel-summary-row-count { font-size: 150%; font-weight: bold; @@ -16,7 +18,7 @@ a.viewPanel-pagingControls-page.inaction { } .data-table-container { - border: 1px solid #ccc; + border-top: 1px solid @line_accent; overflow: auto; } @@ -53,7 +55,8 @@ table.data-table td.column-header { background: #e8e8e8; cursor: pointer; padding: 5px 5px; - border-bottom: 1px solid #ccc; + border-right: 1px solid #ccc; + border-bottom: double #ccc; white-space: pre; font-weight: bold; } diff --git a/main/webapp/modules/core/styles/widgets/histogram-widget.css b/main/webapp/modules/core/styles/widgets/histogram-widget.less similarity index 77% rename from main/webapp/modules/core/styles/widgets/histogram-widget.css rename to main/webapp/modules/core/styles/widgets/histogram-widget.less index f225171e7..bf005161e 100644 --- a/main/webapp/modules/core/styles/widgets/histogram-widget.css +++ b/main/webapp/modules/core/styles/widgets/histogram-widget.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .histogram-widget { margin: 0; padding: 0; diff --git a/main/webapp/modules/core/styles/widgets/history.css b/main/webapp/modules/core/styles/widgets/history.less similarity index 97% rename from main/webapp/modules/core/styles/widgets/history.css rename to main/webapp/modules/core/styles/widgets/history.less index a400d8ed4..5bb703140 100644 --- a/main/webapp/modules/core/styles/widgets/history.css +++ b/main/webapp/modules/core/styles/widgets/history.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .history-panel-help { padding: 10px; background: white; diff --git a/main/webapp/modules/core/styles/widgets/slider-widget.css b/main/webapp/modules/core/styles/widgets/slider-widget.less similarity index 96% rename from main/webapp/modules/core/styles/widgets/slider-widget.css rename to main/webapp/modules/core/styles/widgets/slider-widget.less index e13684fe9..29079ffc2 100644 --- a/main/webapp/modules/core/styles/widgets/slider-widget.css +++ b/main/webapp/modules/core/styles/widgets/slider-widget.less @@ -1,3 +1,5 @@ +@import-less url("../theme.less"); + .slider-widget { position: relative; overflow: visible;