From d4cef3e2c5798be2c2124ea4673f3e3c714229a1 Mon Sep 17 00:00:00 2001 From: Tom Morris Date: Sat, 5 Jan 2013 15:24:52 -0500 Subject: [PATCH] Update to Freebase Suggest 4.1 - Closes #645 - change log for Suggest http://markmail.org/message/ycggcybvtyxep6ne - most visible fix for Refine is display of /common/topic/article when /common/topic/description is missing --- .../webapp/modules/core/MOD-INF/controller.js | 1256 ++++++------ .../externals/suggest/css/suggest-4_1.css | 565 +++++ .../externals/suggest/css/suggest-4_1.min.css | 36 + .../core/externals/suggest/suggest-4_0.min.js | 81 - .../core/externals/suggest/suggest-4_1.js | 1809 +++++++++++++++++ .../core/externals/suggest/suggest-4_1.min.js | 81 + 6 files changed, 3119 insertions(+), 709 deletions(-) create mode 100644 main/webapp/modules/core/externals/suggest/css/suggest-4_1.css create mode 100644 main/webapp/modules/core/externals/suggest/css/suggest-4_1.min.css delete mode 100644 main/webapp/modules/core/externals/suggest/suggest-4_0.min.js create mode 100644 main/webapp/modules/core/externals/suggest/suggest-4_1.js create mode 100644 main/webapp/modules/core/externals/suggest/suggest-4_1.min.js diff --git a/main/webapp/modules/core/MOD-INF/controller.js b/main/webapp/modules/core/MOD-INF/controller.js index 45177f03b..6d5499697 100644 --- a/main/webapp/modules/core/MOD-INF/controller.js +++ b/main/webapp/modules/core/MOD-INF/controller.js @@ -1,634 +1,634 @@ -/* - -Copyright 2010,2012 Google Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - */ - -var html = "text/html"; -var encoding = "UTF-8"; -var ClientSideResourceManager = Packages.com.google.refine.ClientSideResourceManager; -var bundle = true; - -var templatedFiles = { - // Requests with last path segments mentioned here - // will get served from .vt files with the same names - "index" : { - outputEncodings: true - }, - "preferences" : { - outputEncodings: false - }, - "project" : { - outputEncodings: true - } -}; - -function registerCommands() { - var RS = Packages.com.google.refine.RefineServlet; - - RS.registerCommand(module, "get-version", new Packages.com.google.refine.commands.GetVersionCommand()); - - RS.registerCommand(module, "get-importing-configuration", new Packages.com.google.refine.commands.importing.GetImportingConfigurationCommand()); - RS.registerCommand(module, "create-importing-job", new Packages.com.google.refine.commands.importing.CreateImportingJobCommand()); - RS.registerCommand(module, "get-importing-job-status", new Packages.com.google.refine.commands.importing.GetImportingJobStatusCommand()); - RS.registerCommand(module, "importing-controller", new Packages.com.google.refine.commands.importing.ImportingControllerCommand()); - RS.registerCommand(module, "cancel-importing-job", new Packages.com.google.refine.commands.importing.CancelImportingJobCommand()); - - RS.registerCommand(module, "create-project-from-upload", new Packages.com.google.refine.commands.project.CreateProjectCommand()); - RS.registerCommand(module, "import-project", new Packages.com.google.refine.commands.project.ImportProjectCommand()); - RS.registerCommand(module, "export-project", new Packages.com.google.refine.commands.project.ExportProjectCommand()); - RS.registerCommand(module, "export-rows", new Packages.com.google.refine.commands.project.ExportRowsCommand()); - - RS.registerCommand(module, "get-project-metadata", new Packages.com.google.refine.commands.project.GetProjectMetadataCommand()); - RS.registerCommand(module, "get-all-project-metadata", new Packages.com.google.refine.commands.workspace.GetAllProjectMetadataCommand()); - - RS.registerCommand(module, "delete-project", new Packages.com.google.refine.commands.project.DeleteProjectCommand()); - RS.registerCommand(module, "rename-project", new Packages.com.google.refine.commands.project.RenameProjectCommand()); - - RS.registerCommand(module, "get-models", new Packages.com.google.refine.commands.project.GetModelsCommand()); - RS.registerCommand(module, "get-rows", new Packages.com.google.refine.commands.row.GetRowsCommand()); - RS.registerCommand(module, "get-processes", new Packages.com.google.refine.commands.history.GetProcessesCommand()); - RS.registerCommand(module, "get-history", new Packages.com.google.refine.commands.history.GetHistoryCommand()); - RS.registerCommand(module, "get-operations", new Packages.com.google.refine.commands.history.GetOperationsCommand()); - RS.registerCommand(module, "get-columns-info", new Packages.com.google.refine.commands.column.GetColumnsInfoCommand()); - RS.registerCommand(module, "get-scatterplot", new Packages.com.google.refine.commands.browsing.GetScatterplotCommand()); - - RS.registerCommand(module, "undo-redo", new Packages.com.google.refine.commands.history.UndoRedoCommand()); - RS.registerCommand(module, "apply-operations", new Packages.com.google.refine.commands.history.ApplyOperationsCommand()); - RS.registerCommand(module, "cancel-processes", new Packages.com.google.refine.commands.history.CancelProcessesCommand()); - - RS.registerCommand(module, "compute-facets", new Packages.com.google.refine.commands.browsing.ComputeFacetsCommand()); - RS.registerCommand(module, "compute-clusters", new Packages.com.google.refine.commands.browsing.ComputeClustersCommand()); - - RS.registerCommand(module, "edit-one-cell", new Packages.com.google.refine.commands.cell.EditOneCellCommand()); - RS.registerCommand(module, "text-transform", new Packages.com.google.refine.commands.cell.TextTransformCommand()); - RS.registerCommand(module, "mass-edit", new Packages.com.google.refine.commands.cell.MassEditCommand()); - RS.registerCommand(module, "join-multi-value-cells", new Packages.com.google.refine.commands.cell.JoinMultiValueCellsCommand()); - RS.registerCommand(module, "split-multi-value-cells", new Packages.com.google.refine.commands.cell.SplitMultiValueCellsCommand()); - RS.registerCommand(module, "fill-down", new Packages.com.google.refine.commands.cell.FillDownCommand()); - RS.registerCommand(module, "blank-down", new Packages.com.google.refine.commands.cell.BlankDownCommand()); - RS.registerCommand(module, "transpose-columns-into-rows", new Packages.com.google.refine.commands.cell.TransposeColumnsIntoRowsCommand()); - RS.registerCommand(module, "transpose-rows-into-columns", new Packages.com.google.refine.commands.cell.TransposeRowsIntoColumnsCommand()); - RS.registerCommand(module, "key-value-columnize", new Packages.com.google.refine.commands.cell.KeyValueColumnizeCommand()); - - RS.registerCommand(module, "add-column", new Packages.com.google.refine.commands.column.AddColumnCommand()); - RS.registerCommand(module, "add-column-by-fetching-urls", new Packages.com.google.refine.commands.column.AddColumnByFetchingURLsCommand()); - RS.registerCommand(module, "remove-column", new Packages.com.google.refine.commands.column.RemoveColumnCommand()); - RS.registerCommand(module, "rename-column", new Packages.com.google.refine.commands.column.RenameColumnCommand()); - RS.registerCommand(module, "move-column", new Packages.com.google.refine.commands.column.MoveColumnCommand()); - RS.registerCommand(module, "split-column", new Packages.com.google.refine.commands.column.SplitColumnCommand()); - RS.registerCommand(module, "reorder-columns", new Packages.com.google.refine.commands.column.ReorderColumnsCommand()); - - RS.registerCommand(module, "denormalize", new Packages.com.google.refine.commands.row.DenormalizeCommand()); - - RS.registerCommand(module, "reconcile", new Packages.com.google.refine.commands.recon.ReconcileCommand()); - RS.registerCommand(module, "recon-match-best-candidates", new Packages.com.google.refine.commands.recon.ReconMatchBestCandidatesCommand()); - RS.registerCommand(module, "recon-mark-new-topics", new Packages.com.google.refine.commands.recon.ReconMarkNewTopicsCommand()); - RS.registerCommand(module, "recon-discard-judgments", new Packages.com.google.refine.commands.recon.ReconDiscardJudgmentsCommand()); - RS.registerCommand(module, "recon-match-specific-topic-to-cells", new Packages.com.google.refine.commands.recon.ReconMatchSpecificTopicCommand()); - RS.registerCommand(module, "recon-judge-one-cell", new Packages.com.google.refine.commands.recon.ReconJudgeOneCellCommand()); - RS.registerCommand(module, "recon-judge-similar-cells", new Packages.com.google.refine.commands.recon.ReconJudgeSimilarCellsCommand()); - RS.registerCommand(module, "recon-clear-one-cell", new Packages.com.google.refine.commands.recon.ReconClearOneCellCommand()); - RS.registerCommand(module, "recon-clear-similar-cells", new Packages.com.google.refine.commands.recon.ReconClearSimilarCellsCommand()); - RS.registerCommand(module, "recon-copy-across-columns", new Packages.com.google.refine.commands.recon.ReconCopyAcrossColumnsCommand()); - - RS.registerCommand(module, "guess-types-of-column", new Packages.com.google.refine.commands.recon.GuessTypesOfColumnCommand()); - - RS.registerCommand(module, "annotate-one-row", new Packages.com.google.refine.commands.row.AnnotateOneRowCommand()); - RS.registerCommand(module, "annotate-rows", new Packages.com.google.refine.commands.row.AnnotateRowsCommand()); - RS.registerCommand(module, "remove-rows", new Packages.com.google.refine.commands.row.RemoveRowsCommand()); - RS.registerCommand(module, "reorder-rows", new Packages.com.google.refine.commands.row.ReorderRowsCommand()); - - RS.registerCommand(module, "get-expression-language-info", new Packages.com.google.refine.commands.expr.GetExpressionLanguageInfoCommand()); - RS.registerCommand(module, "get-expression-history", new Packages.com.google.refine.commands.expr.GetExpressionHistoryCommand()); - RS.registerCommand(module, "get-starred-expressions", new Packages.com.google.refine.commands.expr.GetStarredExpressionsCommand()); - RS.registerCommand(module, "toggle-starred-expression", new Packages.com.google.refine.commands.expr.ToggleStarredExpressionCommand()); - RS.registerCommand(module, "log-expression", new Packages.com.google.refine.commands.expr.LogExpressionCommand()); - RS.registerCommand(module, "preview-expression", new Packages.com.google.refine.commands.expr.PreviewExpressionCommand()); - - RS.registerCommand(module, "get-preference", new Packages.com.google.refine.commands.GetPreferenceCommand()); - RS.registerCommand(module, "get-all-preferences", new Packages.com.google.refine.commands.GetAllPreferencesCommand()); - RS.registerCommand(module, "set-preference", new Packages.com.google.refine.commands.SetPreferenceCommand()); - RS.registerCommand(module, "open-workspace-dir", new Packages.com.google.refine.commands.OpenWorkspaceDirCommand()); - - RS.registerCommand(module, "authorize", new Packages.com.google.refine.commands.auth.AuthorizeCommand()); - RS.registerCommand(module, "deauthorize", new Packages.com.google.refine.commands.auth.DeAuthorizeCommand()); -} - -function registerOperations() { - var OR = Packages.com.google.refine.operations.OperationRegistry; - - OR.registerOperation(module, "text-transform", Packages.com.google.refine.operations.cell.TextTransformOperation); - OR.registerOperation(module, "mass-edit", Packages.com.google.refine.operations.cell.MassEditOperation); - - OR.registerOperation(module, "multivalued-cell-join", Packages.com.google.refine.operations.cell.MultiValuedCellJoinOperation); - OR.registerOperation(module, "multivalued-cell-split", Packages.com.google.refine.operations.cell.MultiValuedCellSplitOperation); - OR.registerOperation(module, "fill-down", Packages.com.google.refine.operations.cell.FillDownOperation); - OR.registerOperation(module, "blank-down", Packages.com.google.refine.operations.cell.BlankDownOperation); - OR.registerOperation(module, "transpose-columns-into-rows", Packages.com.google.refine.operations.cell.TransposeColumnsIntoRowsOperation); - OR.registerOperation(module, "transpose-rows-into-columns", Packages.com.google.refine.operations.cell.TransposeRowsIntoColumnsOperation); - OR.registerOperation(module, "key-value-columnize", Packages.com.google.refine.operations.cell.KeyValueColumnizeOperation); - - OR.registerOperation(module, "column-addition", Packages.com.google.refine.operations.column.ColumnAdditionOperation); - OR.registerOperation(module, "column-removal", Packages.com.google.refine.operations.column.ColumnRemovalOperation); - OR.registerOperation(module, "column-rename", Packages.com.google.refine.operations.column.ColumnRenameOperation); - OR.registerOperation(module, "column-move", Packages.com.google.refine.operations.column.ColumnMoveOperation); - OR.registerOperation(module, "column-split", Packages.com.google.refine.operations.column.ColumnSplitOperation); - OR.registerOperation(module, "column-addition-by-fetching-urls", Packages.com.google.refine.operations.column.ColumnAdditionByFetchingURLsOperation); - OR.registerOperation(module, "column-reorder", Packages.com.google.refine.operations.column.ColumnReorderOperation); - - OR.registerOperation(module, "row-removal", Packages.com.google.refine.operations.row.RowRemovalOperation); - OR.registerOperation(module, "row-star", Packages.com.google.refine.operations.row.RowStarOperation); - OR.registerOperation(module, "row-flag", Packages.com.google.refine.operations.row.RowFlagOperation); - OR.registerOperation(module, "row-reorder", Packages.com.google.refine.operations.row.RowReorderOperation); - - OR.registerOperation(module, "recon", Packages.com.google.refine.operations.recon.ReconOperation); - OR.registerOperation(module, "recon-mark-new-topics", Packages.com.google.refine.operations.recon.ReconMarkNewTopicsOperation); - OR.registerOperation(module, "recon-match-best-candidates", Packages.com.google.refine.operations.recon.ReconMatchBestCandidatesOperation); - OR.registerOperation(module, "recon-discard-judgments", Packages.com.google.refine.operations.recon.ReconDiscardJudgmentsOperation); - OR.registerOperation(module, "recon-match-specific-topic-to-cells", Packages.com.google.refine.operations.recon.ReconMatchSpecificTopicOperation); - OR.registerOperation(module, "recon-judge-similar-cells", Packages.com.google.refine.operations.recon.ReconJudgeSimilarCellsOperation); - OR.registerOperation(module, "recon-clear-similar-cells", Packages.com.google.refine.operations.recon.ReconClearSimilarCellsOperation); - OR.registerOperation(module, "recon-copy-across-columns", Packages.com.google.refine.operations.recon.ReconCopyAcrossColumnsOperation); -} - -function registerImporting() { - var IM = Packages.com.google.refine.importing.ImportingManager; - - /* - * Formats and their UI class names and parsers: - * - UI class names are used on the client-side in Javascript to instantiate code that lets the user - * configure the parser's options. - * - Parsers are server-side code that do the actual parsing. Because they have access to the raw files, - * they also generate defaults for the client-side UIs to initialize. - */ - - IM.registerFormat("text", "Text files"); // generic format, no parser to handle it - IM.registerFormat("text/line-based", "Line-based text files", "LineBasedParserUI", - new Packages.com.google.refine.importers.LineBasedImporter()); - IM.registerFormat("text/line-based/*sv", "CSV / TSV / separator-based files", "SeparatorBasedParserUI", - new Packages.com.google.refine.importers.SeparatorBasedImporter()); - IM.registerFormat("text/line-based/fixed-width", "Fixed-width field text files", "FixedWidthParserUI", - new Packages.com.google.refine.importers.FixedWidthImporter()); - - IM.registerFormat("text/rdf+n3", "RDF/N3 files", "RdfTriplesParserUI", new Packages.com.google.refine.importers.RdfTripleImporter()); - - IM.registerFormat("text/xml", "XML files", "XmlParserUI", new Packages.com.google.refine.importers.XmlImporter()); - IM.registerFormat("text/xml/xlsx", "Excel (.xlsx) files", "ExcelParserUI", new Packages.com.google.refine.importers.ExcelImporter()); - // TODO: Can we get away with just reusing Excel importer UI? - IM.registerFormat("text/xml/ods", "Open Document Format spreadsheets (.ods)", "ExcelParserUI", new Packages.com.google.refine.importers.OdsImporter()); - IM.registerFormat("text/xml/rdf", "RDF/XML files", "RdfTriplesParserUI", new Packages.com.google.refine.importers.RdfXmlTripleImporter()); - IM.registerFormat("text/json", "JSON files", "JsonParserUI", new Packages.com.google.refine.importers.JsonImporter()); - IM.registerFormat("text/marc", "MARC files"); - - IM.registerFormat("binary", "Binary files"); // generic format, no parser to handle it - IM.registerFormat("binary/xls", "Excel files", "ExcelParserUI", new Packages.com.google.refine.importers.ExcelImporter()); - - IM.registerFormat("service", "Services"); // generic format, no parser to handle it - - /* - * Extension to format mappings - */ - IM.registerExtension(".txt", "text/line-based"); - IM.registerExtension(".csv", "text/line-based/*sv"); - IM.registerExtension(".tsv", "text/line-based/*sv"); - - IM.registerExtension(".xml", "text/xml"); - IM.registerExtension(".rdf", "text/xml/rdf"); - - IM.registerExtension(".json", "text/json"); - IM.registerExtension(".js", "text/json"); - - IM.registerExtension(".xls", "binary/xls"); - IM.registerExtension(".xlsx", "text/xml/xlsx"); - - IM.registerExtension(".ods", "text/xml/ods"); - - IM.registerExtension(".n3", "text/rdf+n3"); - - IM.registerExtension(".marc", "text/marc"); - IM.registerExtension(".mrc", "text/marc"); - - /* - * Mime type to format mappings - */ - IM.registerMimeType("text/plain", "text/line-based"); - IM.registerMimeType("text/csv", "text/line-based/*sv"); - IM.registerMimeType("text/x-csv", "text/line-based/*sv"); - IM.registerMimeType("text/tab-separated-value", "text/line-based/*sv"); - - IM.registerMimeType("text/fixed-width", "text/line-based/fixed-width"); - - IM.registerMimeType("text/rdf+n3", "text/rdf+n3"); - - IM.registerMimeType("application/msexcel", "binary/xls"); - IM.registerMimeType("application/x-msexcel", "binary/xls"); - IM.registerMimeType("application/x-ms-excel", "binary/xls"); - IM.registerMimeType("application/vnd.ms-excel", "binary/xls"); - IM.registerMimeType("application/x-excel", "binary/xls"); - IM.registerMimeType("application/xls", "binary/xls"); - IM.registerMimeType("application/x-xls", "text/xml/xlsx"); - - IM.registerMimeType("application/vnd.oasis.opendocument.spreadsheet","text/xml/ods"); - - IM.registerMimeType("application/json", "text/json"); - IM.registerMimeType("application/javascript", "text/json"); - IM.registerMimeType("text/json", "text/json"); - - IM.registerMimeType("application/rdf+xml", "text/xml/rdf"); - - IM.registerMimeType("application/marc", "text/marc"); - - /* - * Format guessers: these take a format derived from extensions or mime-types, - * look at the actual files' content, and try to guess a better format. - */ - IM.registerFormatGuesser("text", new Packages.com.google.refine.importers.TextFormatGuesser()); - IM.registerFormatGuesser("text/line-based", new Packages.com.google.refine.importers.LineBasedFormatGuesser()); - - /* - * Controllers: these implement high-level UI flows for importing data. For example, the default - * controller lets the user specify one or more source files, either local or remote or on the clipboard, - * lets the user select which files to actually import in case any of the original file is an archive - * containing several files, and then lets the user configure parsing options. - */ - IM.registerController( - module, - "default-importing-controller", - new Packages.com.google.refine.importing.DefaultImportingController() - ); -} - -/* - * This optional function is invoked from the module's init() Java function. - */ -function init() { - // Packages.java.lang.System.err.println("Initializing by script " + module); - - registerCommands(); - registerOperations(); - registerImporting(); - - var RC = Packages.com.google.refine.model.recon.ReconConfig; - RC.registerReconConfig(module, "standard-service", Packages.com.google.refine.model.recon.StandardReconConfig); - - ClientSideResourceManager.addPaths( - "index/scripts", - module, - [ - +/* + +Copyright 2010,2012 Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + */ + +var html = "text/html"; +var encoding = "UTF-8"; +var ClientSideResourceManager = Packages.com.google.refine.ClientSideResourceManager; +var bundle = true; + +var templatedFiles = { + // Requests with last path segments mentioned here + // will get served from .vt files with the same names + "index" : { + outputEncodings: true + }, + "preferences" : { + outputEncodings: false + }, + "project" : { + outputEncodings: true + } +}; + +function registerCommands() { + var RS = Packages.com.google.refine.RefineServlet; + + RS.registerCommand(module, "get-version", new Packages.com.google.refine.commands.GetVersionCommand()); + + RS.registerCommand(module, "get-importing-configuration", new Packages.com.google.refine.commands.importing.GetImportingConfigurationCommand()); + RS.registerCommand(module, "create-importing-job", new Packages.com.google.refine.commands.importing.CreateImportingJobCommand()); + RS.registerCommand(module, "get-importing-job-status", new Packages.com.google.refine.commands.importing.GetImportingJobStatusCommand()); + RS.registerCommand(module, "importing-controller", new Packages.com.google.refine.commands.importing.ImportingControllerCommand()); + RS.registerCommand(module, "cancel-importing-job", new Packages.com.google.refine.commands.importing.CancelImportingJobCommand()); + + RS.registerCommand(module, "create-project-from-upload", new Packages.com.google.refine.commands.project.CreateProjectCommand()); + RS.registerCommand(module, "import-project", new Packages.com.google.refine.commands.project.ImportProjectCommand()); + RS.registerCommand(module, "export-project", new Packages.com.google.refine.commands.project.ExportProjectCommand()); + RS.registerCommand(module, "export-rows", new Packages.com.google.refine.commands.project.ExportRowsCommand()); + + RS.registerCommand(module, "get-project-metadata", new Packages.com.google.refine.commands.project.GetProjectMetadataCommand()); + RS.registerCommand(module, "get-all-project-metadata", new Packages.com.google.refine.commands.workspace.GetAllProjectMetadataCommand()); + + RS.registerCommand(module, "delete-project", new Packages.com.google.refine.commands.project.DeleteProjectCommand()); + RS.registerCommand(module, "rename-project", new Packages.com.google.refine.commands.project.RenameProjectCommand()); + + RS.registerCommand(module, "get-models", new Packages.com.google.refine.commands.project.GetModelsCommand()); + RS.registerCommand(module, "get-rows", new Packages.com.google.refine.commands.row.GetRowsCommand()); + RS.registerCommand(module, "get-processes", new Packages.com.google.refine.commands.history.GetProcessesCommand()); + RS.registerCommand(module, "get-history", new Packages.com.google.refine.commands.history.GetHistoryCommand()); + RS.registerCommand(module, "get-operations", new Packages.com.google.refine.commands.history.GetOperationsCommand()); + RS.registerCommand(module, "get-columns-info", new Packages.com.google.refine.commands.column.GetColumnsInfoCommand()); + RS.registerCommand(module, "get-scatterplot", new Packages.com.google.refine.commands.browsing.GetScatterplotCommand()); + + RS.registerCommand(module, "undo-redo", new Packages.com.google.refine.commands.history.UndoRedoCommand()); + RS.registerCommand(module, "apply-operations", new Packages.com.google.refine.commands.history.ApplyOperationsCommand()); + RS.registerCommand(module, "cancel-processes", new Packages.com.google.refine.commands.history.CancelProcessesCommand()); + + RS.registerCommand(module, "compute-facets", new Packages.com.google.refine.commands.browsing.ComputeFacetsCommand()); + RS.registerCommand(module, "compute-clusters", new Packages.com.google.refine.commands.browsing.ComputeClustersCommand()); + + RS.registerCommand(module, "edit-one-cell", new Packages.com.google.refine.commands.cell.EditOneCellCommand()); + RS.registerCommand(module, "text-transform", new Packages.com.google.refine.commands.cell.TextTransformCommand()); + RS.registerCommand(module, "mass-edit", new Packages.com.google.refine.commands.cell.MassEditCommand()); + RS.registerCommand(module, "join-multi-value-cells", new Packages.com.google.refine.commands.cell.JoinMultiValueCellsCommand()); + RS.registerCommand(module, "split-multi-value-cells", new Packages.com.google.refine.commands.cell.SplitMultiValueCellsCommand()); + RS.registerCommand(module, "fill-down", new Packages.com.google.refine.commands.cell.FillDownCommand()); + RS.registerCommand(module, "blank-down", new Packages.com.google.refine.commands.cell.BlankDownCommand()); + RS.registerCommand(module, "transpose-columns-into-rows", new Packages.com.google.refine.commands.cell.TransposeColumnsIntoRowsCommand()); + RS.registerCommand(module, "transpose-rows-into-columns", new Packages.com.google.refine.commands.cell.TransposeRowsIntoColumnsCommand()); + RS.registerCommand(module, "key-value-columnize", new Packages.com.google.refine.commands.cell.KeyValueColumnizeCommand()); + + RS.registerCommand(module, "add-column", new Packages.com.google.refine.commands.column.AddColumnCommand()); + RS.registerCommand(module, "add-column-by-fetching-urls", new Packages.com.google.refine.commands.column.AddColumnByFetchingURLsCommand()); + RS.registerCommand(module, "remove-column", new Packages.com.google.refine.commands.column.RemoveColumnCommand()); + RS.registerCommand(module, "rename-column", new Packages.com.google.refine.commands.column.RenameColumnCommand()); + RS.registerCommand(module, "move-column", new Packages.com.google.refine.commands.column.MoveColumnCommand()); + RS.registerCommand(module, "split-column", new Packages.com.google.refine.commands.column.SplitColumnCommand()); + RS.registerCommand(module, "reorder-columns", new Packages.com.google.refine.commands.column.ReorderColumnsCommand()); + + RS.registerCommand(module, "denormalize", new Packages.com.google.refine.commands.row.DenormalizeCommand()); + + RS.registerCommand(module, "reconcile", new Packages.com.google.refine.commands.recon.ReconcileCommand()); + RS.registerCommand(module, "recon-match-best-candidates", new Packages.com.google.refine.commands.recon.ReconMatchBestCandidatesCommand()); + RS.registerCommand(module, "recon-mark-new-topics", new Packages.com.google.refine.commands.recon.ReconMarkNewTopicsCommand()); + RS.registerCommand(module, "recon-discard-judgments", new Packages.com.google.refine.commands.recon.ReconDiscardJudgmentsCommand()); + RS.registerCommand(module, "recon-match-specific-topic-to-cells", new Packages.com.google.refine.commands.recon.ReconMatchSpecificTopicCommand()); + RS.registerCommand(module, "recon-judge-one-cell", new Packages.com.google.refine.commands.recon.ReconJudgeOneCellCommand()); + RS.registerCommand(module, "recon-judge-similar-cells", new Packages.com.google.refine.commands.recon.ReconJudgeSimilarCellsCommand()); + RS.registerCommand(module, "recon-clear-one-cell", new Packages.com.google.refine.commands.recon.ReconClearOneCellCommand()); + RS.registerCommand(module, "recon-clear-similar-cells", new Packages.com.google.refine.commands.recon.ReconClearSimilarCellsCommand()); + RS.registerCommand(module, "recon-copy-across-columns", new Packages.com.google.refine.commands.recon.ReconCopyAcrossColumnsCommand()); + + RS.registerCommand(module, "guess-types-of-column", new Packages.com.google.refine.commands.recon.GuessTypesOfColumnCommand()); + + RS.registerCommand(module, "annotate-one-row", new Packages.com.google.refine.commands.row.AnnotateOneRowCommand()); + RS.registerCommand(module, "annotate-rows", new Packages.com.google.refine.commands.row.AnnotateRowsCommand()); + RS.registerCommand(module, "remove-rows", new Packages.com.google.refine.commands.row.RemoveRowsCommand()); + RS.registerCommand(module, "reorder-rows", new Packages.com.google.refine.commands.row.ReorderRowsCommand()); + + RS.registerCommand(module, "get-expression-language-info", new Packages.com.google.refine.commands.expr.GetExpressionLanguageInfoCommand()); + RS.registerCommand(module, "get-expression-history", new Packages.com.google.refine.commands.expr.GetExpressionHistoryCommand()); + RS.registerCommand(module, "get-starred-expressions", new Packages.com.google.refine.commands.expr.GetStarredExpressionsCommand()); + RS.registerCommand(module, "toggle-starred-expression", new Packages.com.google.refine.commands.expr.ToggleStarredExpressionCommand()); + RS.registerCommand(module, "log-expression", new Packages.com.google.refine.commands.expr.LogExpressionCommand()); + RS.registerCommand(module, "preview-expression", new Packages.com.google.refine.commands.expr.PreviewExpressionCommand()); + + RS.registerCommand(module, "get-preference", new Packages.com.google.refine.commands.GetPreferenceCommand()); + RS.registerCommand(module, "get-all-preferences", new Packages.com.google.refine.commands.GetAllPreferencesCommand()); + RS.registerCommand(module, "set-preference", new Packages.com.google.refine.commands.SetPreferenceCommand()); + RS.registerCommand(module, "open-workspace-dir", new Packages.com.google.refine.commands.OpenWorkspaceDirCommand()); + + RS.registerCommand(module, "authorize", new Packages.com.google.refine.commands.auth.AuthorizeCommand()); + RS.registerCommand(module, "deauthorize", new Packages.com.google.refine.commands.auth.DeAuthorizeCommand()); +} + +function registerOperations() { + var OR = Packages.com.google.refine.operations.OperationRegistry; + + OR.registerOperation(module, "text-transform", Packages.com.google.refine.operations.cell.TextTransformOperation); + OR.registerOperation(module, "mass-edit", Packages.com.google.refine.operations.cell.MassEditOperation); + + OR.registerOperation(module, "multivalued-cell-join", Packages.com.google.refine.operations.cell.MultiValuedCellJoinOperation); + OR.registerOperation(module, "multivalued-cell-split", Packages.com.google.refine.operations.cell.MultiValuedCellSplitOperation); + OR.registerOperation(module, "fill-down", Packages.com.google.refine.operations.cell.FillDownOperation); + OR.registerOperation(module, "blank-down", Packages.com.google.refine.operations.cell.BlankDownOperation); + OR.registerOperation(module, "transpose-columns-into-rows", Packages.com.google.refine.operations.cell.TransposeColumnsIntoRowsOperation); + OR.registerOperation(module, "transpose-rows-into-columns", Packages.com.google.refine.operations.cell.TransposeRowsIntoColumnsOperation); + OR.registerOperation(module, "key-value-columnize", Packages.com.google.refine.operations.cell.KeyValueColumnizeOperation); + + OR.registerOperation(module, "column-addition", Packages.com.google.refine.operations.column.ColumnAdditionOperation); + OR.registerOperation(module, "column-removal", Packages.com.google.refine.operations.column.ColumnRemovalOperation); + OR.registerOperation(module, "column-rename", Packages.com.google.refine.operations.column.ColumnRenameOperation); + OR.registerOperation(module, "column-move", Packages.com.google.refine.operations.column.ColumnMoveOperation); + OR.registerOperation(module, "column-split", Packages.com.google.refine.operations.column.ColumnSplitOperation); + OR.registerOperation(module, "column-addition-by-fetching-urls", Packages.com.google.refine.operations.column.ColumnAdditionByFetchingURLsOperation); + OR.registerOperation(module, "column-reorder", Packages.com.google.refine.operations.column.ColumnReorderOperation); + + OR.registerOperation(module, "row-removal", Packages.com.google.refine.operations.row.RowRemovalOperation); + OR.registerOperation(module, "row-star", Packages.com.google.refine.operations.row.RowStarOperation); + OR.registerOperation(module, "row-flag", Packages.com.google.refine.operations.row.RowFlagOperation); + OR.registerOperation(module, "row-reorder", Packages.com.google.refine.operations.row.RowReorderOperation); + + OR.registerOperation(module, "recon", Packages.com.google.refine.operations.recon.ReconOperation); + OR.registerOperation(module, "recon-mark-new-topics", Packages.com.google.refine.operations.recon.ReconMarkNewTopicsOperation); + OR.registerOperation(module, "recon-match-best-candidates", Packages.com.google.refine.operations.recon.ReconMatchBestCandidatesOperation); + OR.registerOperation(module, "recon-discard-judgments", Packages.com.google.refine.operations.recon.ReconDiscardJudgmentsOperation); + OR.registerOperation(module, "recon-match-specific-topic-to-cells", Packages.com.google.refine.operations.recon.ReconMatchSpecificTopicOperation); + OR.registerOperation(module, "recon-judge-similar-cells", Packages.com.google.refine.operations.recon.ReconJudgeSimilarCellsOperation); + OR.registerOperation(module, "recon-clear-similar-cells", Packages.com.google.refine.operations.recon.ReconClearSimilarCellsOperation); + OR.registerOperation(module, "recon-copy-across-columns", Packages.com.google.refine.operations.recon.ReconCopyAcrossColumnsOperation); +} + +function registerImporting() { + var IM = Packages.com.google.refine.importing.ImportingManager; + + /* + * Formats and their UI class names and parsers: + * - UI class names are used on the client-side in Javascript to instantiate code that lets the user + * configure the parser's options. + * - Parsers are server-side code that do the actual parsing. Because they have access to the raw files, + * they also generate defaults for the client-side UIs to initialize. + */ + + IM.registerFormat("text", "Text files"); // generic format, no parser to handle it + IM.registerFormat("text/line-based", "Line-based text files", "LineBasedParserUI", + new Packages.com.google.refine.importers.LineBasedImporter()); + IM.registerFormat("text/line-based/*sv", "CSV / TSV / separator-based files", "SeparatorBasedParserUI", + new Packages.com.google.refine.importers.SeparatorBasedImporter()); + IM.registerFormat("text/line-based/fixed-width", "Fixed-width field text files", "FixedWidthParserUI", + new Packages.com.google.refine.importers.FixedWidthImporter()); + + IM.registerFormat("text/rdf+n3", "RDF/N3 files", "RdfTriplesParserUI", new Packages.com.google.refine.importers.RdfTripleImporter()); + + IM.registerFormat("text/xml", "XML files", "XmlParserUI", new Packages.com.google.refine.importers.XmlImporter()); + IM.registerFormat("text/xml/xlsx", "Excel (.xlsx) files", "ExcelParserUI", new Packages.com.google.refine.importers.ExcelImporter()); + // TODO: Can we get away with just reusing Excel importer UI? + IM.registerFormat("text/xml/ods", "Open Document Format spreadsheets (.ods)", "ExcelParserUI", new Packages.com.google.refine.importers.OdsImporter()); + IM.registerFormat("text/xml/rdf", "RDF/XML files", "RdfTriplesParserUI", new Packages.com.google.refine.importers.RdfXmlTripleImporter()); + IM.registerFormat("text/json", "JSON files", "JsonParserUI", new Packages.com.google.refine.importers.JsonImporter()); + IM.registerFormat("text/marc", "MARC files"); + + IM.registerFormat("binary", "Binary files"); // generic format, no parser to handle it + IM.registerFormat("binary/xls", "Excel files", "ExcelParserUI", new Packages.com.google.refine.importers.ExcelImporter()); + + IM.registerFormat("service", "Services"); // generic format, no parser to handle it + + /* + * Extension to format mappings + */ + IM.registerExtension(".txt", "text/line-based"); + IM.registerExtension(".csv", "text/line-based/*sv"); + IM.registerExtension(".tsv", "text/line-based/*sv"); + + IM.registerExtension(".xml", "text/xml"); + IM.registerExtension(".rdf", "text/xml/rdf"); + + IM.registerExtension(".json", "text/json"); + IM.registerExtension(".js", "text/json"); + + IM.registerExtension(".xls", "binary/xls"); + IM.registerExtension(".xlsx", "text/xml/xlsx"); + + IM.registerExtension(".ods", "text/xml/ods"); + + IM.registerExtension(".n3", "text/rdf+n3"); + + IM.registerExtension(".marc", "text/marc"); + IM.registerExtension(".mrc", "text/marc"); + + /* + * Mime type to format mappings + */ + IM.registerMimeType("text/plain", "text/line-based"); + IM.registerMimeType("text/csv", "text/line-based/*sv"); + IM.registerMimeType("text/x-csv", "text/line-based/*sv"); + IM.registerMimeType("text/tab-separated-value", "text/line-based/*sv"); + + IM.registerMimeType("text/fixed-width", "text/line-based/fixed-width"); + + IM.registerMimeType("text/rdf+n3", "text/rdf+n3"); + + IM.registerMimeType("application/msexcel", "binary/xls"); + IM.registerMimeType("application/x-msexcel", "binary/xls"); + IM.registerMimeType("application/x-ms-excel", "binary/xls"); + IM.registerMimeType("application/vnd.ms-excel", "binary/xls"); + IM.registerMimeType("application/x-excel", "binary/xls"); + IM.registerMimeType("application/xls", "binary/xls"); + IM.registerMimeType("application/x-xls", "text/xml/xlsx"); + + IM.registerMimeType("application/vnd.oasis.opendocument.spreadsheet","text/xml/ods"); + + IM.registerMimeType("application/json", "text/json"); + IM.registerMimeType("application/javascript", "text/json"); + IM.registerMimeType("text/json", "text/json"); + + IM.registerMimeType("application/rdf+xml", "text/xml/rdf"); + + IM.registerMimeType("application/marc", "text/marc"); + + /* + * Format guessers: these take a format derived from extensions or mime-types, + * look at the actual files' content, and try to guess a better format. + */ + IM.registerFormatGuesser("text", new Packages.com.google.refine.importers.TextFormatGuesser()); + IM.registerFormatGuesser("text/line-based", new Packages.com.google.refine.importers.LineBasedFormatGuesser()); + + /* + * Controllers: these implement high-level UI flows for importing data. For example, the default + * controller lets the user specify one or more source files, either local or remote or on the clipboard, + * lets the user select which files to actually import in case any of the original file is an archive + * containing several files, and then lets the user configure parsing options. + */ + IM.registerController( + module, + "default-importing-controller", + new Packages.com.google.refine.importing.DefaultImportingController() + ); +} + +/* + * This optional function is invoked from the module's init() Java function. + */ +function init() { + // Packages.java.lang.System.err.println("Initializing by script " + module); + + registerCommands(); + registerOperations(); + registerImporting(); + + var RC = Packages.com.google.refine.model.recon.ReconConfig; + RC.registerReconConfig(module, "standard-service", Packages.com.google.refine.model.recon.StandardReconConfig); + + ClientSideResourceManager.addPaths( + "index/scripts", + module, + [ + "externals/jquery-1.7.2.min.js", - "externals/jquery.cookie.js", - "externals/jquery.eventstack-0.3.js", + "externals/jquery.cookie.js", + "externals/jquery.eventstack-0.3.js", "externals/jquery-ui/jquery-ui-1.8.20.custom.min.js", - "externals/date.js", - - "externals/CFInstall.min.js", - "scripts/chrome-frame.js", - - "scripts/util/misc.js", - "scripts/util/url.js", - "scripts/util/string.js", - "scripts/util/ajax.js", - "scripts/util/menu.js", - "scripts/util/dialog.js", - "scripts/util/dom.js", - "scripts/util/date-time.js", - "scripts/util/encoding.js", - "scripts/util/sign.js", - - "scripts/index.js", - "scripts/index/create-project-ui.js", - "scripts/index/open-project-ui.js", - "scripts/index/import-project-ui.js", - - "scripts/index/default-importing-controller/controller.js", - "scripts/index/default-importing-controller/file-selection-panel.js", - "scripts/index/default-importing-controller/parsing-panel.js", - - "scripts/index/default-importing-sources/sources.js", - "scripts/index/parser-interfaces/preview-table.js", - "scripts/index/parser-interfaces/separator-based-parser-ui.js", - "scripts/index/parser-interfaces/line-based-parser-ui.js", - "scripts/index/parser-interfaces/fixed-width-parser-ui.js", - "scripts/index/parser-interfaces/excel-parser-ui.js", - "scripts/index/parser-interfaces/xml-parser-ui.js", - "scripts/index/parser-interfaces/json-parser-ui.js", - "scripts/index/parser-interfaces/rdf-triples-parser-ui.js" - ] - ); - - ClientSideResourceManager.addPaths( - "index/styles", - module, - [ - "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.20.custom.css", - "styles/jquery-ui-overrides.less", - "styles/common.less", - "styles/pure.css", - "styles/util/dialog.less", - "styles/util/encoding.less", - - "styles/index.less", - "styles/index/create-project-ui.less", - "styles/index/open-project-ui.less", - "styles/index/import-project-ui.less", - - "styles/index/default-importing-controller.less", - "styles/index/default-importing-file-selection-panel.less", - "styles/index/default-importing-parsing-panel.less", - - "styles/index/default-importing-sources.less", - "styles/views/data-table-view.less", // for the preview table's styles - "styles/index/fixed-width-parser-ui.less", - "styles/index/xml-parser-ui.less", - "styles/index/json-parser-ui.less" - ] - ); - - ClientSideResourceManager.addPaths( - "project/scripts", - module, - [ + "externals/date.js", + + "externals/CFInstall.min.js", + "scripts/chrome-frame.js", + + "scripts/util/misc.js", + "scripts/util/url.js", + "scripts/util/string.js", + "scripts/util/ajax.js", + "scripts/util/menu.js", + "scripts/util/dialog.js", + "scripts/util/dom.js", + "scripts/util/date-time.js", + "scripts/util/encoding.js", + "scripts/util/sign.js", + + "scripts/index.js", + "scripts/index/create-project-ui.js", + "scripts/index/open-project-ui.js", + "scripts/index/import-project-ui.js", + + "scripts/index/default-importing-controller/controller.js", + "scripts/index/default-importing-controller/file-selection-panel.js", + "scripts/index/default-importing-controller/parsing-panel.js", + + "scripts/index/default-importing-sources/sources.js", + "scripts/index/parser-interfaces/preview-table.js", + "scripts/index/parser-interfaces/separator-based-parser-ui.js", + "scripts/index/parser-interfaces/line-based-parser-ui.js", + "scripts/index/parser-interfaces/fixed-width-parser-ui.js", + "scripts/index/parser-interfaces/excel-parser-ui.js", + "scripts/index/parser-interfaces/xml-parser-ui.js", + "scripts/index/parser-interfaces/json-parser-ui.js", + "scripts/index/parser-interfaces/rdf-triples-parser-ui.js" + ] + ); + + ClientSideResourceManager.addPaths( + "index/styles", + module, + [ + "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.20.custom.css", + "styles/jquery-ui-overrides.less", + "styles/common.less", + "styles/pure.css", + "styles/util/dialog.less", + "styles/util/encoding.less", + + "styles/index.less", + "styles/index/create-project-ui.less", + "styles/index/open-project-ui.less", + "styles/index/import-project-ui.less", + + "styles/index/default-importing-controller.less", + "styles/index/default-importing-file-selection-panel.less", + "styles/index/default-importing-parsing-panel.less", + + "styles/index/default-importing-sources.less", + "styles/views/data-table-view.less", // for the preview table's styles + "styles/index/fixed-width-parser-ui.less", + "styles/index/xml-parser-ui.less", + "styles/index/json-parser-ui.less" + ] + ); + + ClientSideResourceManager.addPaths( + "project/scripts", + module, + [ "externals/jquery-1.7.2.min.js", - "externals/jquery.cookie.js", - "externals/jquery.eventstack-0.3.js", - "externals/suggest/suggest-4_0.min.js", + "externals/jquery.cookie.js", + "externals/jquery.eventstack-0.3.js", + "externals/suggest/suggest-4_1.min.js", "externals/jquery-ui/jquery-ui-1.8.20.custom.min.js", - "externals/imgareaselect/jquery.imgareaselect.js", - "externals/date.js", - - "externals/CFInstall.min.js", - "scripts/chrome-frame.js", - - "scripts/project.js", - - "scripts/util/misc.js", - "scripts/util/url.js", - "scripts/util/string.js", - "scripts/util/ajax.js", - "scripts/util/menu.js", - "scripts/util/dialog.js", - "scripts/util/dom.js", - "scripts/util/date-time.js", - "scripts/util/custom-suggest.js", - "scripts/util/encoding.js", - "scripts/util/sign.js", - - "scripts/widgets/histogram-widget.js", - "scripts/widgets/slider-widget.js", - - "scripts/project/browsing-engine.js", - "scripts/project/history-panel.js", - "scripts/project/process-panel.js", - "scripts/project/extension-bar.js", - "scripts/project/summary-bar.js", - "scripts/project/exporters.js", - "scripts/project/scripting.js", - - "scripts/facets/list-facet.js", - "scripts/facets/range-facet.js", - "scripts/facets/timerange-facet.js", - "scripts/facets/scatterplot-facet.js", - "scripts/facets/text-search-facet.js", - - "scripts/views/data-table/data-table-view.js", - "scripts/views/data-table/cell-ui.js", - "scripts/views/data-table/column-header-ui.js", - "scripts/views/data-table/menu-facets.js", - "scripts/views/data-table/menu-edit-cells.js", - "scripts/views/data-table/menu-edit-column.js", - "scripts/views/data-table/menu-reconcile.js", - - "scripts/reconciliation/recon-manager.js", - "scripts/reconciliation/recon-dialog.js", - "scripts/reconciliation/freebase-query-panel.js", - "scripts/reconciliation/standard-service-panel.js", - - "scripts/dialogs/expression-preview-dialog.js", - "scripts/dialogs/clustering-dialog.js", - "scripts/dialogs/scatterplot-dialog.js", - "scripts/dialogs/templating-exporter-dialog.js", - "scripts/dialogs/column-reordering-dialog.js", - "scripts/dialogs/custom-tabular-exporter-dialog.js" - ] - ); - - ClientSideResourceManager.addPaths( - "project/styles", - module, - [ - "externals/suggest/css/suggest-4_0.min.css", - "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.20.custom.css", - "externals/imgareaselect/css/imgareaselect-default.css", - - "styles/jquery-ui-overrides.less", - "styles/common.less", - "styles/pure.css", - - "styles/util/menu.less", - "styles/util/dialog.less", - "styles/util/custom-suggest.less", - "styles/util/encoding.less", - - "styles/project.less", - "styles/project/sidebar.less", - "styles/project/facets.less", - "styles/project/process.less", - - "styles/widgets/histogram-widget.less", - "styles/widgets/slider-widget.less", - - "styles/views/data-table-view.less", - - "styles/dialogs/expression-preview-dialog.less", - "styles/dialogs/clustering-dialog.less", - "styles/dialogs/scatterplot-dialog.less", - "styles/dialogs/column-reordering-dialog.less", - "styles/dialogs/custom-tabular-exporter-dialog.less", - - "styles/reconciliation/recon-dialog.less", - "styles/reconciliation/standard-service-panel.less" - ] - ); - - ClientSideResourceManager.addPaths( - "preferences/scripts", - module, - [ + "externals/imgareaselect/jquery.imgareaselect.js", + "externals/date.js", + + "externals/CFInstall.min.js", + "scripts/chrome-frame.js", + + "scripts/project.js", + + "scripts/util/misc.js", + "scripts/util/url.js", + "scripts/util/string.js", + "scripts/util/ajax.js", + "scripts/util/menu.js", + "scripts/util/dialog.js", + "scripts/util/dom.js", + "scripts/util/date-time.js", + "scripts/util/custom-suggest.js", + "scripts/util/encoding.js", + "scripts/util/sign.js", + + "scripts/widgets/histogram-widget.js", + "scripts/widgets/slider-widget.js", + + "scripts/project/browsing-engine.js", + "scripts/project/history-panel.js", + "scripts/project/process-panel.js", + "scripts/project/extension-bar.js", + "scripts/project/summary-bar.js", + "scripts/project/exporters.js", + "scripts/project/scripting.js", + + "scripts/facets/list-facet.js", + "scripts/facets/range-facet.js", + "scripts/facets/timerange-facet.js", + "scripts/facets/scatterplot-facet.js", + "scripts/facets/text-search-facet.js", + + "scripts/views/data-table/data-table-view.js", + "scripts/views/data-table/cell-ui.js", + "scripts/views/data-table/column-header-ui.js", + "scripts/views/data-table/menu-facets.js", + "scripts/views/data-table/menu-edit-cells.js", + "scripts/views/data-table/menu-edit-column.js", + "scripts/views/data-table/menu-reconcile.js", + + "scripts/reconciliation/recon-manager.js", + "scripts/reconciliation/recon-dialog.js", + "scripts/reconciliation/freebase-query-panel.js", + "scripts/reconciliation/standard-service-panel.js", + + "scripts/dialogs/expression-preview-dialog.js", + "scripts/dialogs/clustering-dialog.js", + "scripts/dialogs/scatterplot-dialog.js", + "scripts/dialogs/templating-exporter-dialog.js", + "scripts/dialogs/column-reordering-dialog.js", + "scripts/dialogs/custom-tabular-exporter-dialog.js" + ] + ); + + ClientSideResourceManager.addPaths( + "project/styles", + module, + [ + "externals/suggest/css/suggest-4_1.min.css", + "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.20.custom.css", + "externals/imgareaselect/css/imgareaselect-default.css", + + "styles/jquery-ui-overrides.less", + "styles/common.less", + "styles/pure.css", + + "styles/util/menu.less", + "styles/util/dialog.less", + "styles/util/custom-suggest.less", + "styles/util/encoding.less", + + "styles/project.less", + "styles/project/sidebar.less", + "styles/project/facets.less", + "styles/project/process.less", + + "styles/widgets/histogram-widget.less", + "styles/widgets/slider-widget.less", + + "styles/views/data-table-view.less", + + "styles/dialogs/expression-preview-dialog.less", + "styles/dialogs/clustering-dialog.less", + "styles/dialogs/scatterplot-dialog.less", + "styles/dialogs/column-reordering-dialog.less", + "styles/dialogs/custom-tabular-exporter-dialog.less", + + "styles/reconciliation/recon-dialog.less", + "styles/reconciliation/standard-service-panel.less" + ] + ); + + ClientSideResourceManager.addPaths( + "preferences/scripts", + module, + [ "externals/jquery-1.7.2.min.js", - "externals/jquery.cookie.js", - "externals/suggest/suggest-4_0.min.js", + "externals/jquery.cookie.js", + "externals/suggest/suggest-4_1.min.js", "externals/jquery-ui/jquery-ui-1.8.20.custom.min.js", - "externals/imgareaselect/jquery.imgareaselect.js", - "externals/date.js", - "scripts/preferences.js" - ] - ); - ClientSideResourceManager.addPaths( - "preferences/styles", - module, - [ - "externals/suggest/css/suggest-4_0.min.css", - "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.20.custom.css", - "styles/jquery-ui-overrides.less", - "styles/common.less", - "styles/pure.css", - "styles/util/dialog.less" - ] - ); -} - -/* - * This is the function that is invoked by Butterfly - */ -function process(path, request, response) { - if (path == "wirings.js") { - var wirings = butterfly.getWirings(request); - butterfly.sendString( - request, - response, - "var ModuleWirings = " + butterfly.toJSONString(wirings) + ";", - encoding, - "text/javascript" - ); - } else { - if (path == "/" || path == "") { - path = "index"; - } else if (path.endsWith("/")) { - path = path.substring(0, path.length - 1); - } - - var slash = path.lastIndexOf("/"); - var lastSegment = slash >= 0 ? path.substring(slash + 1) : path; - - if (path.endsWith("-bundle.js")) { - lastSegment = lastSegment.substring(0, lastSegment.length - "-bundle.js".length); - - response.setContentType("text/javascript"); - response.setCharacterEncoding(encoding); - - var output = response.getWriter(); - try { - var paths = ClientSideResourceManager.getPaths(lastSegment + "/scripts"); - for each (var qualifiedPath in paths) { - var input = null; - try { - var url = qualifiedPath.module.getResource(qualifiedPath.path); - var urlConnection = url.openConnection(); - - input = new Packages.java.io.BufferedReader( - new Packages.java.io.InputStreamReader(urlConnection.getInputStream())); - - output.write("/* ===== "); - output.write(qualifiedPath.fullPath); - output.write(" ===== */\n\n"); - - Packages.org.apache.commons.io.IOUtils.copy(input, output); - - output.write("\n\n"); - } catch (e) { - // silent - } finally { - if (input != null) input.close(); - } - } - } catch (e) { - // silent - } finally { - butterfly.responded(); - } - return true; - } else { - if (lastSegment in templatedFiles) { - var context = {}; - - var params = new Packages.java.util.Properties(); - var e = request.getParameterNames(); - while (e.hasMoreElements()) { - var name = e.nextElement(); - params.put(name, request.getParameterValues(name)[0]); - } - context.params = params; - - // We prepend '' to convert the Java string to a Javascript string. - context.projectID = ('' + request.getParameter("project")).replace(/\D/g, ''); - - var styles = ClientSideResourceManager.getPaths(lastSegment + "/styles"); - var styleInjection = []; - for each (var qualifiedPath in styles) { - styleInjection.push( - ''); - } - context.styleInjection = styleInjection.join("\n"); - - if (bundle) { - context.scriptInjection = ''; - } else { - var scripts = ClientSideResourceManager.getPaths(lastSegment + "/scripts"); - var scriptInjection = []; - for each (var qualifiedPath in scripts) { - scriptInjection.push( - ''); - } - context.scriptInjection = scriptInjection.join("\n"); - } - - if (templatedFiles[lastSegment].outputEncodings) { - var encodings = []; - - var sortedCharsetMap = Packages.java.nio.charset.Charset.availableCharsets(); - for each (var code in sortedCharsetMap.keySet().toArray()) { - var charset = sortedCharsetMap.get(code); - var aliases = []; - for each (var alias in charset.aliases().toArray()) { - aliases.push(alias); - } - - encodings.push({ - code: code, - name: charset.displayName(), - aliases: aliases - }); - } - - context.encodingJson = butterfly.toJSONString(encodings); - context.defaultEncoding = butterfly.toJSONString(Packages.java.nio.charset.Charset.defaultCharset().name()); - } - - send(request, response, path + ".vt", context); - } - } - } -} - -function send(request, response, template, context) { - butterfly.sendTextFromTemplate(request, response, context, template, encoding, html); -} + "externals/imgareaselect/jquery.imgareaselect.js", + "externals/date.js", + "scripts/preferences.js" + ] + ); + ClientSideResourceManager.addPaths( + "preferences/styles", + module, + [ + "externals/suggest/css/suggest-4_1.min.css", + "externals/jquery-ui/css/ui-lightness/jquery-ui-1.8.20.custom.css", + "styles/jquery-ui-overrides.less", + "styles/common.less", + "styles/pure.css", + "styles/util/dialog.less" + ] + ); +} + +/* + * This is the function that is invoked by Butterfly + */ +function process(path, request, response) { + if (path == "wirings.js") { + var wirings = butterfly.getWirings(request); + butterfly.sendString( + request, + response, + "var ModuleWirings = " + butterfly.toJSONString(wirings) + ";", + encoding, + "text/javascript" + ); + } else { + if (path == "/" || path == "") { + path = "index"; + } else if (path.endsWith("/")) { + path = path.substring(0, path.length - 1); + } + + var slash = path.lastIndexOf("/"); + var lastSegment = slash >= 0 ? path.substring(slash + 1) : path; + + if (path.endsWith("-bundle.js")) { + lastSegment = lastSegment.substring(0, lastSegment.length - "-bundle.js".length); + + response.setContentType("text/javascript"); + response.setCharacterEncoding(encoding); + + var output = response.getWriter(); + try { + var paths = ClientSideResourceManager.getPaths(lastSegment + "/scripts"); + for each (var qualifiedPath in paths) { + var input = null; + try { + var url = qualifiedPath.module.getResource(qualifiedPath.path); + var urlConnection = url.openConnection(); + + input = new Packages.java.io.BufferedReader( + new Packages.java.io.InputStreamReader(urlConnection.getInputStream())); + + output.write("/* ===== "); + output.write(qualifiedPath.fullPath); + output.write(" ===== */\n\n"); + + Packages.org.apache.commons.io.IOUtils.copy(input, output); + + output.write("\n\n"); + } catch (e) { + // silent + } finally { + if (input != null) input.close(); + } + } + } catch (e) { + // silent + } finally { + butterfly.responded(); + } + return true; + } else { + if (lastSegment in templatedFiles) { + var context = {}; + + var params = new Packages.java.util.Properties(); + var e = request.getParameterNames(); + while (e.hasMoreElements()) { + var name = e.nextElement(); + params.put(name, request.getParameterValues(name)[0]); + } + context.params = params; + + // We prepend '' to convert the Java string to a Javascript string. + context.projectID = ('' + request.getParameter("project")).replace(/\D/g, ''); + + var styles = ClientSideResourceManager.getPaths(lastSegment + "/styles"); + var styleInjection = []; + for each (var qualifiedPath in styles) { + styleInjection.push( + ''); + } + context.styleInjection = styleInjection.join("\n"); + + if (bundle) { + context.scriptInjection = ''; + } else { + var scripts = ClientSideResourceManager.getPaths(lastSegment + "/scripts"); + var scriptInjection = []; + for each (var qualifiedPath in scripts) { + scriptInjection.push( + ''); + } + context.scriptInjection = scriptInjection.join("\n"); + } + + if (templatedFiles[lastSegment].outputEncodings) { + var encodings = []; + + var sortedCharsetMap = Packages.java.nio.charset.Charset.availableCharsets(); + for each (var code in sortedCharsetMap.keySet().toArray()) { + var charset = sortedCharsetMap.get(code); + var aliases = []; + for each (var alias in charset.aliases().toArray()) { + aliases.push(alias); + } + + encodings.push({ + code: code, + name: charset.displayName(), + aliases: aliases + }); + } + + context.encodingJson = butterfly.toJSONString(encodings); + context.defaultEncoding = butterfly.toJSONString(Packages.java.nio.charset.Charset.defaultCharset().name()); + } + + send(request, response, path + ".vt", context); + } + } + } +} + +function send(request, response, template, context) { + butterfly.sendTextFromTemplate(request, response, context, template, encoding, html); +} diff --git a/main/webapp/modules/core/externals/suggest/css/suggest-4_1.css b/main/webapp/modules/core/externals/suggest/css/suggest-4_1.css new file mode 100644 index 000000000..edd1814b5 --- /dev/null +++ b/main/webapp/modules/core/externals/suggest/css/suggest-4_1.css @@ -0,0 +1,565 @@ +/* +======================================================= + +FREEBASE SUGGEST + +This file is part of the freebase-suggest jQuery plugin. + +It is maintained by Metaweb Technologies, Inc. and +available for use under a Creative Commons License. + +Author: Kai Conragan (kai@metaweb.com) + + GLOSSARY + + .fbs-pane : Outermost container for result list
+ .fbs-subpane : Inner container for result list
+ .fbs-list : Contained by .fbs-subpane, this is the actual results list
    + .fbs-item : Individual item in results list
  • + .fbs-flyout-pane : Outermost container for flyout on specific object
    + +======================================================= +*/ + +/* +------------------------------------------------------- +Freebase Suggest Reset +------------------------------------------------------- + +reset all Freebase Suggest elements to insure consisten cross-browser rendering + +*/ + +.fbs-reset, +.fbs-reset h1, +.fbs-reset h2, +.fbs-reset h3, +.fbs-reset h4, +.fbs-reset h5, +.fbs-reset h6, +.fbs-reset p, +.fbs-reset img, +.fbs-reset dl, +.fbs-reset dt, +.fbs-reset dd, +.fbs-reset ol, +.fbs-reset ul, +.fbs-reset li { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} + +/* +------------------------------------------------------- +Freebase Suggest Chrome +------------------------------------------------------- + +You can change the colors of Freebase Suggest by overriding +the following rules. We recommended that you copy/paste the +below rules into your own stylesheet to customize. + +*/ + +.fbs-pane, +.fbs-flyout-pane, +li.fbs-nomatch, +a.fbs-more-link, +li.fbs-selected, +.fbs-flyout-images, +#fbs-topic-image { + background: #fff; +} + + +.fbs-suggestnew { + color: #444; +} + +.fbs-pane, +.fbs-flyout-pane, +.fbs-flyout-subtitle, +.fbs-topic-properties strong { + color: #666; +} + +h3.fbs-topic-properties, +.fbs-flyout-pane p { + color: #444; +} + +.fbs-item-name, +li.fbs-help-on-focus, +li.fbs-nomatch, +.fbs-nomatch-text, +.fbs-flyout-pane h3, +.fbs-properties-header { + color: #333; +} + +.fbs-pane, +.fbs-flyout-pane { + border: 1px solid #bbb; + padding: 2px; +} + +.fbs-flyout-pane { + border-color: #ccc; +} + +.fbs-list, +.fbs-list-icons, +.fbs-flyout-content, +.fbs-attribution, +.fbs-header { + background-color: #f5f5f5; +} + +.fbs-header { background: #fefefe; } + +li.fbs-help-on-focus, +li.fbs-nomatch { + border-bottom: 1px solid #dae3e9; +} + +.fbs-item-name { + border: 1px solid #f5f5f5; +} + +h1#fbs-flyout-title, +li.fbs-selected .fbs-item-name { + color: #f60; +} + +li.fbs-selected .fbs-item-name { + border-color: #f60; + background: #fff; +} + + +.fbs-nomatch-text { + border-bottom: 1px solid #dae3e9; + background: #f8f8f8; +} + +.fbs-suggestnew { + background: #eeeeee; + border-top: 1px solid #dae3e9; +} + + +#fbs-flyout-title .fbs-flyout-label { + color: #aaa; +} + +/* topic image */ +#fbs-topic-image, +.fbs-flyout-images { + border: 1px solid #a9a9a9; +} + +.fbs-suggestnew-button, +.fbs-flyout-pane { + border: 1px solid #9a9a9a; + color: #999999; +} + +.fbs-suggestnew-button { + color: #444444; +} + +ul.fbs-list, +.fbs-flyout-content, +.fbs-attribution, +.fbs-header { + border: 1px solid #dae3e9; +} + +.fbs-header { border-bottom: 0; } + +li.fbs-item { + border-bottom: 1px solid #dae3e9; + list-style-type: none; +} + +.fbs-attribution { + border-top: 0; +} + +/* +------------------------------------------------------- +Freebase Suggest Typography +------------------------------------------------------- + + establish base typography size by: + 1. Setting parent div to font-size 16px; + 2. Setting inner div to font-size 62.5%, giving us a 10px baseline + 3. Setting global style rules +*/ + +.fbs-pane, +.fbs-flyout-pane { + font-size: 16px; + font-family: Helvetica Neue, Arial, Helvetica, sans-serif; +} + +ul.fbs-list, +.fbs-flyout-content, +.fbs-attribution, +div.fbs-header { + font-size: 62.5%; +} + + +/* insure displays bold */ +.fbs-pane strong, +.fbs-flyout-pane strong { + font-weight: bold; +} + +/* +------------------------------------------------------- +Freebase Suggest Structure +------------------------------------------------------- +*/ + +.fbs-flyout-content, +.fbs-attribution { + margin: 2px; +} + +.fbs-flyout-content { margin-bottom: 0; } +.fbs-attribution { margin-top: 0; } + +.fbs-pane { width: 325px; } /* results list container */ +.fbs-flyout-pane { width: 319px; margin-left: 3px; } /* flyout container, 3px narrower on each side to create drawer appearance */ + +ul.fbs-list { + max-height: 320px; + overflow: auto; + overflow-x: hidden; + border-bottom: 0; + border-top: 0; +} + +.fbs-flyout-content, +.fbs-attribution { + padding: 5px; +} + +.fbs-flyout-content:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + + +/* +------------------------------------------------------- +Freebase Suggest Results List +------------------------------------------------------- +*/ + +/* each .fbs-item is a single returned result */ +li.fbs-help-on-focus, +li.fbs-nomatch { + padding: 6px 8px 7px 6px; + font-size: 1.4em; + line-height: 1; +} + +/* show more results */ +li.fbs-more { padding: 0; background: transparent;} + +a.fbs-more-link { + display: block; + padding: 4px; + font-weight: bold; + font-size: 12px; +} + +.fbs-more .fbs-help { + display: none; +} + +.fbs-header { + font-weight: bold; + padding: 4px 6px; + margin: 2px 2px -2px 2px; +} + +.fbs-item-name label { + font-size: 0.9em; +} + + +.fbs-item-type, +.fbs-item-name label { + display: block; + overflow: hidden; + white-space: nowrap; +/* text-overflow:ellipsis;*/ +} + +.fbs-item-name { + padding: 2px 8px 1px 6px; + font-size: 1.4em; + line-height: 1.4em; + background: #f4f8fb; +} + +/* result name */ +.fbs-item-name strong { + font-weight: bold; +} + +.fbs-item-type { + color: #777; + float: right; + font-size: 0.7em; + max-width: 40%; + padding-left: 0.25em; +} + +/* hover state of .fbs-item */ +li.fbs-selected { + cursor: pointer; +} + +/* +------------------------------------------------------- +Freebase Suggest Status +------------------------------------------------------- +*/ + +.fbs-status { + border: 1px solid #dae3e9; + padding: 4px 5px; + color: #000; + font-size: 0.7em; +} + +/* +------------------------------------------------------- +Freebase Suggest No Results +------------------------------------------------------- +*/ + +li.fbs-nomatch { + padding: 0; +} + +.fbs-nomatch-text { + display: block; + font-weight: bold; + line-height: 1; + font-size: .9em; +} + +.fbs-nomatch-text, +.fbs-nomatch h3, +ul.fbs-search-tips { + padding: 6px 8px 7px 6px; +} + +.fbs-nomatch h3 { + font-weight: bold; + font-size: 0.9em; +} + +ul.fbs-search-tips li { + list-style: disc; + margin-left: 1.6em; + margin-bottom: 0.3em; + font-size: 0.9em; +} + +/* +------------------------------------------------------- +Freebase Suggest Create New +------------------------------------------------------- +*/ + +/* suggest new container */ +.fbs-suggestnew { + padding: 0.4em 0.3em 0.5em 8px; +} + +.fbs-suggestnew-button { + cursor: pointer; + padding: 0.2em 0.3em; + margin-left: 0px !important; + max-width: 17em; + font-size: .8em; +} + +.fbs-suggestnew-description { + margin-bottom: 0.6em; + font-size: 0.7em; + } + +/* (Shift + Enter) */ +.fbs-more-shortcut, +.fbs-suggestnew-shortcut { + margin-left: 0.4em; + font-size: 70%; + color: #999999; +} + +/** placeholder text **/ +.fbs-placeholder { + color: #99a; + font-style: italic; +} + +/* +------------------------------------------------------- +Freebase Suggest Flyout Elements +------------------------------------------------------- +*/ + +.fbs-flyout-id { + color: #999 !important; +} + +/* the object title */ +h1#fbs-flyout-title { + font-size: 1.2em; + font-weight: bold; + margin-bottom: 0.5em; + margin-top: 0.3em; +} + +h1#fbs-flyout-title .fbs-flyout-template-label { + color: #999999; + font-size: 0.8em; +} + + +/* denotes topic, type, view, base, etc. */ +#fbs-flyout-title .fbs-flyout-label { + font-weight: normal; +} + +/* Image for single topic result */ +#fbs-topic-image { + float: left; + padding: 1px; + margin-right: 5px; + margin-bottom: 5px; +} + +/* Image pair for views/base/etc. */ +.fbs-flyout-images { + float: left; + margin: 0 10px 0 0; + padding: 1px 0 1px 1px; +} + +.fbs-flyout-images img { + float: left; + margin-right: 1px; +} + +.fbs-flyout-subtitle { + font-size: 1.1em; + margin-bottom: 0.5em; +} + +.fbs-flyout-pane h3 { + font-size: 1em; + line-height: 1.4; + margin-bottom: 0.25em; +} + +.fbs-properties-header { + font-size: 1em; + font-weight: bold; + margin: 0.5em 0; +} + +h3.fbs-topic-properties { + font-size: 1.2em; + font-weight: bold; +} + +.fbs-topic-properties strong { + display: inline; + font-size: 0.8em; +} + +.fbs-flyout-pane p { + font-size: 1.2em; + line-height: 1.4; +} + +/* this class is applied with fbs-topic-flyout when a thumbnail is present + in order to provide a fixed margin on text to prevent poor text wrapping + around thumbnail +*/ +p.fbs-flyout-image-true, +h3.fbs-flyout-image-true, +h1.fbs-flyout-image-true { margin-left: 85px; } + +.fbs-meta-info { margin-left: 110px; } +#fbs-user-flyout li { + margin-left: 100px; + } +#fbs-domain-flyout .fbs-meta-info { margin-left: 145px;} + +/* generic flyout list */ +.fbs-flyout-list li { + font-size: 1em; + margin-left: 15px; +} + +#fbs-domain-flyout #fbs-flyout-title { margin-bottom: 0.5em; } + +/* +------------------------------------------------------- +Freebase Suggest Attribution +------------------------------------------------------- +*/ + +.fbs-attribution { + padding-right: 72px; /* accommodate attribution background image */ + background-image: url(template/img/fbs-attribution.png); + background-repeat: no-repeat; + background-position: center right; + min-height: 15px; +} + +.fbs-flyout-types { + font-style: italic; + line-height: 1; + font-size: 1.2em; +} + +/* +------------------------------------------------------- +Freebase SuggestIE Hacks +------------------------------------------------------- +We can't use conditional comments so we have to resort +to inline Internet Explor fixes + +*/ + +* html .fbs-list, +* html .fbs-list-icons { height: expression( this.scrollHeight > 410 ? "410" : "auto" ); /* sets max-height for IE */ } + +* html .fbs-item-name { + width : 253px !important; +} + +* html .fbs-item-name{ width: 100%; } + +* html .fbs-flyout-content:after { height: 1px; } + diff --git a/main/webapp/modules/core/externals/suggest/css/suggest-4_1.min.css b/main/webapp/modules/core/externals/suggest/css/suggest-4_1.min.css new file mode 100644 index 000000000..b6989280e --- /dev/null +++ b/main/webapp/modules/core/externals/suggest/css/suggest-4_1.min.css @@ -0,0 +1,36 @@ + +/* + * Copyright 2012, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Additional Licenses for Third Party components can be found here: + * http://wiki.freebase.com/wiki/Freebase_Site_License + * + */ +.fbs-reset,.fbs-reset h1,.fbs-reset h2,.fbs-reset h3,.fbs-reset h4,.fbs-reset h5,.fbs-reset h6,.fbs-reset p,.fbs-reset img,.fbs-reset dl,.fbs-reset dt,.fbs-reset dd,.fbs-reset ol,.fbs-reset ul,.fbs-reset li{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}.fbs-pane,.fbs-flyout-pane,li.fbs-nomatch,a.fbs-more-link,li.fbs-selected,.fbs-flyout-images,#fbs-topic-image{background:#fff}.fbs-suggestnew{color:#444}.fbs-pane,.fbs-flyout-pane,.fbs-flyout-subtitle,.fbs-topic-properties strong{color:#666}h3.fbs-topic-properties,.fbs-flyout-pane p{color:#444}.fbs-item-name,li.fbs-help-on-focus,li.fbs-nomatch,.fbs-nomatch-text,.fbs-flyout-pane h3,.fbs-properties-header{color:#333}.fbs-pane,.fbs-flyout-pane{border:1px solid #bbb;padding:2px}.fbs-flyout-pane{border-color:#ccc}.fbs-list,.fbs-list-icons,.fbs-flyout-content,.fbs-attribution,.fbs-header{background-color:#f5f5f5}.fbs-header{background:#fefefe}li.fbs-help-on-focus,li.fbs-nomatch{border-bottom:1px solid #dae3e9}.fbs-item-name{border:1px solid #f5f5f5}h1#fbs-flyout-title,li.fbs-selected .fbs-item-name{color:#f60}li.fbs-selected .fbs-item-name{border-color:#f60;background:#fff}.fbs-nomatch-text{border-bottom:1px solid #dae3e9;background:#f8f8f8}.fbs-suggestnew{background:#eee;border-top:1px solid #dae3e9}#fbs-flyout-title .fbs-flyout-label{color:#aaa}#fbs-topic-image,.fbs-flyout-images{border:1px solid #a9a9a9}.fbs-suggestnew-button,.fbs-flyout-pane{border:1px solid #9a9a9a;color:#999}.fbs-suggestnew-button{color:#444}ul.fbs-list,.fbs-flyout-content,.fbs-attribution,.fbs-header{border:1px solid #dae3e9}.fbs-header{border-bottom:0}li.fbs-item{border-bottom:1px solid #dae3e9;list-style-type:none}.fbs-attribution{border-top:0}.fbs-pane,.fbs-flyout-pane{font-size:16px;font-family:Helvetica Neue,Arial,Helvetica,sans-serif}ul.fbs-list,.fbs-flyout-content,.fbs-attribution,div.fbs-header{font-size:62.5%}.fbs-pane strong,.fbs-flyout-pane strong{font-weight:bold}.fbs-flyout-content,.fbs-attribution{margin:2px}.fbs-flyout-content{margin-bottom:0}.fbs-attribution{margin-top:0}.fbs-pane{width:325px}.fbs-flyout-pane{width:319px;margin-left:3px}ul.fbs-list{max-height:320px;overflow:auto;overflow-x:hidden;border-bottom:0;border-top:0}.fbs-flyout-content,.fbs-attribution{padding:5px}.fbs-flyout-content:after{content:".";display:block;height:0;clear:both;visibility:hidden}li.fbs-help-on-focus,li.fbs-nomatch{padding:6px 8px 7px 6px;font-size:1.4em;line-height:1}li.fbs-more{padding:0;background:transparent}a.fbs-more-link{display:block;padding:4px;font-weight:bold;font-size:12px}.fbs-more .fbs-help{display:none}.fbs-header{font-weight:bold;padding:4px 6px;margin:2px 2px -2px 2px}.fbs-item-name label{font-size:.9em}.fbs-item-type,.fbs-item-name label{display:block;overflow:hidden;white-space:nowrap}.fbs-item-name{padding:2px 8px 1px 6px;font-size:1.4em;line-height:1.4em;background:#f4f8fb}.fbs-item-name strong{font-weight:bold}.fbs-item-type{color:#777;float:right;font-size:.7em;max-width:40%;padding-left:.25em}li.fbs-selected{cursor:pointer}.fbs-status{border:1px solid #dae3e9;padding:4px 5px;color:#000;font-size:.7em}li.fbs-nomatch{padding:0}.fbs-nomatch-text{display:block;font-weight:bold;line-height:1;font-size:.9em}.fbs-nomatch-text,.fbs-nomatch h3,ul.fbs-search-tips{padding:6px 8px 7px 6px}.fbs-nomatch h3{font-weight:bold;font-size:.9em}ul.fbs-search-tips li{list-style:disc;margin-left:1.6em;margin-bottom:.3em;font-size:.9em}.fbs-suggestnew{padding:.4em .3em .5em 8px}.fbs-suggestnew-button{cursor:pointer;padding:.2em .3em;margin-left:0!important;max-width:17em;font-size:.8em}.fbs-suggestnew-description{margin-bottom:.6em;font-size:.7em}.fbs-more-shortcut,.fbs-suggestnew-shortcut{margin-left:.4em;font-size:70%;color:#999}.fbs-placeholder{color:#99a;font-style:italic}.fbs-flyout-id{color:#999!important}h1#fbs-flyout-title{font-size:1.2em;font-weight:bold;margin-bottom:.5em;margin-top:.3em}h1#fbs-flyout-title .fbs-flyout-template-label{color:#999;font-size:.8em}#fbs-flyout-title .fbs-flyout-label{font-weight:normal}#fbs-topic-image{float:left;padding:1px;margin-right:5px;margin-bottom:5px}.fbs-flyout-images{float:left;margin:0 10px 0 0;padding:1px 0 1px 1px}.fbs-flyout-images img{float:left;margin-right:1px}.fbs-flyout-subtitle{font-size:1.1em;margin-bottom:.5em}.fbs-flyout-pane h3{font-size:1em;line-height:1.4;margin-bottom:.25em}.fbs-properties-header{font-size:1em;font-weight:bold;margin:.5em 0}h3.fbs-topic-properties{font-size:1.2em;font-weight:bold}.fbs-topic-properties strong{display:inline;font-size:.8em}.fbs-flyout-pane p{font-size:1.2em;line-height:1.4}p.fbs-flyout-image-true,h3.fbs-flyout-image-true,h1.fbs-flyout-image-true{margin-left:85px}.fbs-meta-info{margin-left:110px}#fbs-user-flyout li{margin-left:100px}#fbs-domain-flyout .fbs-meta-info{margin-left:145px}.fbs-flyout-list li{font-size:1em;margin-left:15px}#fbs-domain-flyout #fbs-flyout-title{margin-bottom:.5em}.fbs-attribution{padding-right:72px;background-image:url("/static/95a.lib.www.tags.svn.freebase-site.googlecode.dev/template/img/fbs-attribution.png");background-repeat:no-repeat;background-position:center right;min-height:15px}.fbs-flyout-types{font-style:italic;line-height:1;font-size:1.2em} \ No newline at end of file diff --git a/main/webapp/modules/core/externals/suggest/suggest-4_0.min.js b/main/webapp/modules/core/externals/suggest/suggest-4_0.min.js deleted file mode 100644 index 6a01564d4..000000000 --- a/main/webapp/modules/core/externals/suggest/suggest-4_0.min.js +++ /dev/null @@ -1,81 +0,0 @@ - -/* - * Copyright 2012, Google Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Additional Licenses for Third Party components can be found here: - * http://wiki.freebase.com/wiki/Freebase_Site_License - * - */ -(function(c,t){if(!("console"in window)){var q=window.console={};q.log=q.warn=q.error=q.debug=function(){}}c(function(){var a=c("
    ");c(document.body).append(a);var b=setTimeout(function(){if(c.cleanData){var d=c.cleanData;c.cleanData=function(e){for(var f=0,h;(h=e[f])!=null;f++)c(h).triggerHandler("remove");d(e)}}else{var g=c.fn.remove;c.fn.remove=function(e,f){return this.each(function(){if(!f)if(!e||c.filter(e,[this]).length)c("*",this).add([this]).each(function(){c(this).triggerHandler("remove")}); -return g.call(c(this),e,f)})}}},1);a.bind("remove",function(){clearTimeout(b)});a.remove()});var r={key:1,filter:1,spell:1,exact:1,lang:1,scoring:1,prefixed:1,stemmed:1,format:1,mql_output:1};c.suggest=function(a,b){c.fn[a]=function(d){this.length||console.warn("Suggest: invoked on empty element set");return this.each(function(){if(this.nodeName)if(this.nodeName.toUpperCase()==="INPUT")this.type&&this.type.toUpperCase()!=="TEXT"&&console.warn("Suggest: unsupported INPUT type: "+this.type);else console.warn("Suggest: unsupported DOM element: "+ -this.nodeName);var g=c.data(this,a);g&&g._destroy();c.data(this,a,new c.suggest[a](this,d))._init()})};c.suggest[a]=function(d,g){var e=this,f=this.options=c.extend(true,{},c.suggest.defaults,c.suggest[a].defaults,g),h=f.css_prefix=f.css_prefix||"",i=f.css;this.name=a;c.each(i,function(j){i[j]=h+i[j]});f.ac_param={};c.each(r,function(j){var m=f[j];m===null||m===""||(f.ac_param[j]=m)});f.flyout_lang=null;if(f.ac_param.lang){var k=f.ac_param.lang;if(c.type(k)==="string")k=k.split(",");if(c.isArray(k)&& -k.length)if(k=c.trim(k[0]))f.flyout_lang=k}this._status={START:"",LOADING:"",SELECT:"",ERROR:""};if(f.status&&f.status instanceof Array&&f.status.length>=3){this._status.START=f.status[0]||"";this._status.LOADING=f.status[1]||"";this._status.SELECT=f.status[2]||"";if(f.status.length===4)this._status.ERROR=f.status[3]||""}k=this.status=c('
    ').addClass(i.status);var n=this.list=c("
      ").addClass(i.list),l=this.pane=c('