summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am21
-rw-r--r--browser/.beforeprettier212
-rw-r--r--browser/.eslintrc15
-rw-r--r--browser/.prettierignore10
-rw-r--r--browser/.prettierrc1
-rw-r--r--browser/package.json2
-rw-r--r--browser/src/docstatefunctions.js31
7 files changed, 263 insertions, 29 deletions
diff --git a/Makefile.am b/Makefile.am
index 92f039cf4e..e0842a7a12 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -508,7 +508,7 @@ COMMON_PARAMS = \
--o:ssl.ca_file_path="$(abs_top_srcdir)/etc/ca-chain.cert.pem" \
--o:admin_console.username=admin --o:admin_console.password=admin
-run: setup-wsd
+run: prettier-write setup-wsd
./coolwsd $(COMMON_PARAMS) \
--o:security.capabilities="$(CAPABILITIES)" \
--o:logging.file[@enable]=${OUTPUT_TO_FILE} --o:logging.level=trace \
@@ -649,6 +649,23 @@ eslint: browser/node_modules
--no-eslintrc \
--config browser/.eslintrc
+prettier: browser/node_modules
+ browser/node_modules/.bin/prettier \
+ --config browser/.prettierrc \
+ --ignore-path browser/.prettierignore \
+ --ignore-path browser/.beforeprettier \
+ --check \
+ browser/src browser/js browser/admin/src \
+ || echo "To run prettier, you can use 'make prettier-write' or run COOLWSD with 'make run'"
+
+prettier-write: browser/node_modules
+ browser/node_modules/.bin/prettier \
+ --config browser/.prettierrc \
+ --ignore-path browser/.prettierignore \
+ --ignore-path browser/.beforeprettier \
+ --write \
+ browser/src browser/js browser/admin/src
+
install-exec-hook:
cd $(DESTDIR)$(bindir) && \
$(LN_S) coolconfig loolconfig && \
@@ -692,7 +709,7 @@ check-for-system-nss:
check-recursive: eslint
-check: check-for-system-nss eslint check-recursive
+check: check-for-system-nss prettier eslint check-recursive
$(GEN_COVERAGE_COMMAND)
coverage-report:
diff --git a/browser/.beforeprettier b/browser/.beforeprettier
new file mode 100644
index 0000000000..1ab80634a6
--- /dev/null
+++ b/browser/.beforeprettier
@@ -0,0 +1,212 @@
+/src/control/ColorPicker.js
+/src/control/Control.AlertDialog.js
+/src/control/Control.Attribution.js
+/src/control/Control.ColumnGroup.ts
+/src/control/Control.ColumnHeader.ts
+/src/control/Control.Command.js
+/src/control/Control.ContextMenu.js
+/src/control/Control.CornerGroup.ts
+/src/control/Control.CornerHeader.ts
+/src/control/Control.DocumentNameInput.js
+/src/control/Control.DocumentRepair.js
+/src/control/Control.DownloadProgress.js
+/src/control/Control.FormulaBar.js
+/src/control/Control.FormulaBarJSDialog.js
+/src/control/Control.GroupBase.ts
+/src/control/Control.Header.ts
+/src/control/Control.IdleHandler.ts
+/src/control/Control.js
+/src/control/Control.JSDialog.js
+/src/control/Control.JSDialogBuilder.js
+/src/control/Control.LanguageDialog.js
+/src/control/Control.Layers.js
+/src/control/Control.LokDialog.js
+/src/control/Control.Mention.js
+/src/control/Control.Menubar.js
+/src/control/Control.MobileBottomBar.js
+/src/control/Control.MobileSlide.js
+/src/control/Control.MobileTopBar.js
+/src/control/Control.MobileWizard.js
+/src/control/Control.MobileWizardBuilder.js
+/src/control/Control.MobileWizardPopup.js
+/src/control/Control.MobileWizardWindow.js
+/src/control/Control.Notebookbar.js
+/src/control/Control.NotebookbarBuilder.js
+/src/control/Control.NotebookbarCalc.js
+/src/control/Control.NotebookbarDraw.js
+/src/control/Control.NotebookbarImpress.js
+/src/control/Control.NotebookbarWriter.js
+/src/control/Control.PartsPreview.js
+/src/control/Control.Permission.js
+/src/control/Control.PresentationBar.js
+/src/control/Control.RowGroup.ts
+/src/control/Control.RowHeader.ts
+/src/control/Control.Scroll.Annotation.js
+/src/control/Control.SearchBar.js
+/src/control/Control.Selection.js
+/src/control/Control.SheetsBar.js
+/src/control/Control.Sidebar.js
+/src/control/Control.StatusBar.js
+/src/control/Control.Tabs.js
+/src/control/Control.Toolbar.js
+/src/control/Control.TopToolbar.js
+/src/control/Control.UIManager.js
+/src/control/Control.UserList.js
+/src/control/Control.Zotero.js
+/src/control/IFrameDialog.js
+/src/control/jsdialog/Util.Dropdown.js
+/src/control/jsdialog/Util.FocusCycle.js
+/src/control/jsdialog/Util.ModalHelper.js
+/src/control/jsdialog/Util.StateChange.ts
+/src/control/jsdialog/Widget.Calendar.js
+/src/control/jsdialog/Widget.Combobox.js
+/src/control/jsdialog/Widget.DrawingArea.js
+/src/control/jsdialog/Widget.FormulabarEdit.js
+/src/control/jsdialog/Widget.Frame.js
+/src/control/jsdialog/Widget.IconView.js
+/src/control/jsdialog/Widget.LanguageSelector.js
+/src/control/jsdialog/Widget.MenuButton.js
+/src/control/jsdialog/Widget.MobileBorderSelector.js
+/src/control/jsdialog/Widget.MobileTabControl.js
+/src/control/jsdialog/Widget.MultilineEdit.js
+/src/control/jsdialog/Widget.Progressbar.js
+/src/control/jsdialog/Widget.ScrolledWindow.js
+/src/control/jsdialog/Widget.Timefield.js
+/src/control/jsdialog/Widget.TreeView.js
+/src/control/Parts.js
+/src/control/Permission.js
+/src/control/Ruler.js
+/src/control/Scroll.js
+/src/control/Search.js
+/src/control/Signing.js
+/src/control/Styles.js
+/src/control/Toolbar.js
+/src/core/Class.js
+/src/core/Debug.js
+/src/core/Events.js
+/src/core/Handler.js
+/src/core/Log.js
+/src/core/LOUtil.js
+/src/core/Matrix.js
+/src/core/Rectangle.ts
+/src/core/Socket.js
+/src/core/Util.js
+/src/docstate.js
+/src/dom/DomEvent.js
+/src/dom/DomEvent.MultiClick.js
+/src/dom/DomEvent.Pointer.js
+/src/dom/DomUtil.js
+/src/dom/Draggable.js
+/src/dom/NotebookbarAccessibility.js
+/src/dom/NotebookbarAccessibilityDefinitions.js
+/src/dom/PosAnimation.js
+/src/dom/PosAnimation.Timer.js
+/src/errormessages.js
+/src/geo/crs/CRS.js
+/src/geo/LatLng.js
+/src/geo/LatLngBounds.js
+/src/geo/projection/Projection.LonLat.js
+/src/geometry/Bounds.ts
+/src/geometry/LineUtil.js
+/src/geometry/Point.ts
+/src/geometry/PolyUtil.js
+/src/geometry/Transformation.ts
+/src/layer/BackgroundColor.js
+/src/layer/CalcSplitPanesContext.ts
+/src/layer/FeatureGroup.js
+/src/layer/FormFieldButtonLayer.js
+/src/layer/Layer.js
+/src/layer/Layer.Popup.js
+/src/layer/LayerGroup.js
+/src/layer/marker/A11yTextInput.js
+/src/layer/marker/Cursor.ts
+/src/layer/marker/DivIcon.js
+/src/layer/marker/Icon.Default.js
+/src/layer/marker/Icon.js
+/src/layer/marker/Marker.Drag.js
+/src/layer/marker/Marker.js
+/src/layer/marker/Marker.Popup.js
+/src/layer/marker/ProgressOverlay.js
+/src/layer/marker/TextInput.js
+/src/layer/Popup.js
+/src/layer/SplitPanesContext.ts
+/src/layer/tile/AutoFillMarkerSection.ts
+/src/layer/tile/CalcTileLayer.js
+/src/layer/tile/CanvasSectionContainer.ts
+/src/layer/tile/CanvasSectionProps.js
+/src/layer/tile/CanvasTileLayer.js
+/src/layer/tile/CommentListSection.ts
+/src/layer/tile/CommentSection.ts
+/src/layer/tile/ContentControlSection.ts
+/src/layer/tile/ImpressTileLayer.js
+/src/layer/tile/ScrollSection.ts
+/src/layer/tile/SheetGeometry.ts
+/src/layer/tile/SheetSwitch.ts
+/src/layer/tile/TileLayer.TableOverlay.js
+/src/layer/tile/TilesSection.ts
+/src/layer/tile/WriterTileLayer.js
+/src/layer/vector/Canvas.js
+/src/layer/vector/CanvasOverlay.ts
+/src/layer/vector/CDarkOverlay.ts
+/src/layer/vector/CEventsHandler.ts
+/src/layer/vector/Circle.js
+/src/layer/vector/CircleMarker.js
+/src/layer/vector/CLineUtil.ts
+/src/layer/vector/CPath.ts
+/src/layer/vector/CPointSet.ts
+/src/layer/vector/CPolygon.ts
+/src/layer/vector/CPolyline.ts
+/src/layer/vector/CPolyUtil.ts
+/src/layer/vector/CRectangle.ts
+/src/layer/vector/CSplitterLine.ts
+/src/layer/vector/Path.Drag.js
+/src/layer/vector/Path.Drag.Transform.js
+/src/layer/vector/Path.js
+/src/layer/vector/Path.Popup.js
+/src/layer/vector/Path.Transform.Canvas.js
+/src/layer/vector/Path.Transform.js
+/src/layer/vector/Path.Transform.SVG.js
+/src/layer/vector/Path.Transform.SVG.VML.js
+/src/layer/vector/Path.Transform.Util.js
+/src/layer/vector/Polygon.js
+/src/layer/vector/Polyline.js
+/src/layer/vector/Rectangle.js
+/src/layer/vector/Renderer.js
+/src/layer/vector/SplitPanesRenderer.js
+/src/layer/vector/SplitPanesSVG.js
+/src/layer/vector/SVG.js
+/src/layer/vector/SVG.VML.js
+/src/layer/vector/SVGGroup.js
+/src/main.js
+/src/map/anim/Map.PanAnimation.js
+/src/map/Clipboard.js
+/src/map/handler/Map.DoubleClickZoom.js
+/src/map/handler/Map.Drag.js
+/src/map/handler/Map.Feedback.js
+/src/map/handler/Map.FileInserter.js
+/src/map/handler/Map.Keyboard.js
+/src/map/handler/Map.KeyboardShortcuts.ts
+/src/map/handler/Map.Mouse.js
+/src/map/handler/Map.Print.js
+/src/map/handler/Map.Scroll.js
+/src/map/handler/Map.SlideShow.js
+/src/map/handler/Map.StateChanges.js
+/src/map/handler/Map.TouchGesture.js
+/src/map/handler/Map.VersionBar.js
+/src/map/handler/Map.Welcome.js
+/src/map/handler/Map.WOPI.js
+/src/map/Map.js
+/src/UNO/Key.js
+/js/global.js
+/js/ResizeObserverPolyfill.js
+/admin/src/AdminClusterOverview.js
+/admin/src/AdminClusterOverviewAbout.js
+/admin/src/AdminSocketAnalytics.js
+/admin/src/AdminSocketBase.js
+/admin/src/AdminSocketHistory.js
+/admin/src/AdminSocketLog.js
+/admin/src/AdminSocketOverview.js
+/admin/src/AdminSocketSettings.js
+/admin/src/Base.js
+/admin/src/ModalDialogCreator.ts
+/admin/src/Util.js
diff --git a/browser/.eslintrc b/browser/.eslintrc
index 62939a361e..a274e41045 100644
--- a/browser/.eslintrc
+++ b/browser/.eslintrc
@@ -1,25 +1,18 @@
{
- "extends": "eslint:recommended",
+ "extends": [
+ "eslint:recommended",
+ "prettier"
+ ],
"rules": {
- "camelcase": 2,
- "quotes": [2, "single"],
"no-mixed-spaces-and-tabs": [2, "smart-tabs"],
- "space-in-parens": 2,
- "space-before-blocks": 2,
- "keyword-spacing": 2,
"no-lonely-if": 2,
- "comma-style": 2,
- "indent": "off",
"no-underscore-dangle": 0,
"no-constant-condition": 0,
- "no-multi-spaces": 0,
"strict": 0,
- "key-spacing": 0,
"no-shadow": 0,
"no-console": 0,
"no-control-regex": 0,
"no-useless-escape": 0,
- "semi": 2,
"no-redeclare": 0,
/// Rules that are set to warn will fail in CI but not when building for development:
"no-debugger": 1,
diff --git a/browser/.prettierignore b/browser/.prettierignore
new file mode 100644
index 0000000000..2b68ec50be
--- /dev/null
+++ b/browser/.prettierignore
@@ -0,0 +1,10 @@
+# We only directly edit toolbar.js in dist/
+**/js/Autolinker.js
+**/js/select2.js
+**/js/sanitize-url.js
+**/js/l10n.js
+**/js/w2ui-1.5.rc1.js
+**/src/unocommands.js
+**/js/viamapi-client.js
+node_modules
+dist/src \ No newline at end of file
diff --git a/browser/.prettierrc b/browser/.prettierrc
new file mode 100644
index 0000000000..0176969226
--- /dev/null
+++ b/browser/.prettierrc
@@ -0,0 +1 @@
+singleQuote: true
diff --git a/browser/package.json b/browser/package.json
index df0ffed6c9..10f9f85e61 100644
--- a/browser/package.json
+++ b/browser/package.json
@@ -18,6 +18,7 @@
"canvas": "^2.6.1",
"d3": "6.7.0",
"eslint": "7.0.0",
+ "eslint-config-prettier": "^9.1.0",
"fzstd": "0.1.0",
"hammerjs": "2.0.8",
"jquery": "3.5.1",
@@ -27,6 +28,7 @@
"jscpd": "3.5.10",
"l10n-for-node": "0.0.1",
"mocha": "8.2.1",
+ "prettier": "^3.1.1",
"select2": "4.0.13",
"shrinkpack": "1.0.0-alpha",
"smartmenus": "1.0.0",
diff --git a/browser/src/docstatefunctions.js b/browser/src/docstatefunctions.js
index e10403cbd9..1b2485767c 100644
--- a/browser/src/docstatefunctions.js
+++ b/browser/src/docstatefunctions.js
@@ -15,30 +15,29 @@
/* global app */
-app.isReadOnly = function() {
+app.isReadOnly = function () {
return app.file.readOnly;
};
-app.isCommentEditingAllowed = function() {
+app.isCommentEditingAllowed = function () {
return app.file.editComment;
};
-app.setPermission = function(permission) {
- app.file.permission = permission;
- if (permission === 'edit') {
- app.file.readOnly = false;
- app.file.editComment = true;
- }
- else if (permission === 'readonly') {
- app.file.readOnly = true;
- app.file.editComment = false;
- }
+app.setPermission = function (permission) {
+ app.file.permission = permission;
+ if (permission === 'edit') {
+ app.file.readOnly = false;
+ app.file.editComment = true;
+ } else if (permission === 'readonly') {
+ app.file.readOnly = true;
+ app.file.editComment = false;
+ }
};
-app.setCommentEditingPermission = function(isAllowed) {
- app.file.editComment = isAllowed;
+app.setCommentEditingPermission = function (isAllowed) {
+ app.file.editComment = isAllowed;
};
-app.getPermission = function() {
- return app.file.permission;
+app.getPermission = function () {
+ return app.file.permission;
};