Coder Social home page Coder Social logo

collaboraonline / online Goto Github PK

View Code? Open in Web Editor NEW
1.6K 44.0 618.0 264.34 MB

Collabora Online is a collaborative online office suite based on LibreOffice technology. This is also the source for the Collabora Office apps for iOS and Android.

Home Page: https://collaboraonline.com

License: Other

Makefile 1.15% Java 1.15% C++ 38.59% Shell 0.61% JavaScript 39.90% C 0.41% M4 0.84% Objective-C 0.83% HTML 2.92% TypeScript 8.49% CSS 4.11% Perl 0.32% Python 0.56% Dockerfile 0.09% Smarty 0.03%
hacktoberfest libreoffice productivity office javascript cpp opensource open-source free-software documents

online's People

Contributors

andreas-kainz avatar ashod avatar caolanm avatar darshan-upadhyay1110 avatar dennisfrancis avatar eszkadev avatar fitojb avatar gokaysatir avatar gulsahkose avatar hcvcastro avatar ihorhordiichuk avatar kendy avatar lpranam avatar matthaiks avatar mcecchetti avatar mikekaganski avatar minion3665 avatar mmeeks avatar mrkara avatar neilguertincollabora avatar pedropintosilva avatar pranavk avatar quikee avatar rash419 avatar smehrbrodt avatar thebearon avatar timar avatar tzolnai avatar vmiklos avatar yarons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

online's Issues

Debugging of postMessage

This is an Easy Hack.
Potential mentors: TBD

In debug mode, it would be nice to have incoming and outgoing postMessage contents written into the browser console.

Interested one can grep for console.log2 in the loleaflet/ code to find out how it’s done for messages in existing debug mode.

Debug mode is accessible with : ctrl + alt + shift + d

cypress-test: test switching between comments in Impress

This is an Easy Hack.
Potential mentors: @eszkadev @tzolnai

Detailed description and rationale

Would be good to cover with tests switching between comments on different pages in Impress. Feature was introduced as a response for issue #321 (see for more details).

Cases to test:

  • multiple comments on the same page (should stay on the page until reached last comment)
  • no comments on a current page but present on next page (switch to previous or next pages)
  • when no more comments on a current page switch to the next page with comment (will omit pages without comments)
  • not visible switch if there is only one comment (anywhere in the document) or no comments

Code pointers

test should be placed in: cypress_test/integration_tests/desktop/impress/

Links to related documentation

#321

Menu bar buttons are not properly middle aligned

With the new notebookbar, some icons in the tab line are not properly middle aligned. I've tried to highlight the affected ones with some blue lines compared to the rest:

image

LOOLWSD
6.4.0 (git hash: 6ad9d47)
Served by: 8464063a
LOKit
Collabora Office 6.4-6 (git hash: 16aec96)
"Ubuntu 18.04.4 LTS"

Cleanup HTTP header writing duplication

This is an Easy Hack.
Potential mentors: @mmeeks @kendy

We have a -lot- of code that duplicates HTTP header writing.

Take this chunk:

wsd/LOOLWSD.cpp- std::ostringstream oss;
wsd/LOOLWSD.cpp: oss << "HTTP/1.1 401 \r\n"
wsd/LOOLWSD.cpp- << "Content-Type: text/html charset=UTF-8\r\n"
wsd/LOOLWSD.cpp- << "Date: " << Poco::DateTimeFormatter::format(Poco::Timestamp(), Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
wsd/LOOLWSD.cpp- << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
wsd/LOOLWSD.cpp- << "WWW-authenticate: Basic realm="online"\r\n"
wsd/LOOLWSD.cpp- << "\r\n";

This is not using eg. "Date: " << Util::getHttpTimeNow() << "\r\n"

As many other instances do (oddly) - so perhaps a 1st patch to use the getHttpTimeNow() wherever it is not would be helpful.

After that we should really have a method that sends a nicely formed error message for all the error cases, that we can pass a number into, and perhaps some custom extra headers too - a little bit of API design - and then clean all of this up.

I'd expect the socket->send() to happen and an optional socket->shutdown() too - to simplify this left and right.

Thanks ! =)

Notebookbar switch to compact layout

The Notebookbar layout has now two rows which cause a big issue, cause some commands are merged in both rows and others not.

If you use an one row layout (Notebookbar compact) it would have the following advantages:

  • way easier implementation, cause the js/ui file don't have to respect the arrangement (command over two rows, ...)
  • compare to MSO Collabora Online didn't has that much commands so there are not two rows needed (see menubar items)
  • MSO has also a simplified ribbon approach
  • easier shrinking options possible (hide labels if width isn't enough)

I prepare in LibO the tabbed and tabbed compact layout and have to say, tabbed layout isn't needed and the drawbacks from dev point of view are in any relation to the benefits (be more compatible to MSO).

ColaboraOnline UI Layout

Colabora Online is a great product but I don't understood the need of an tabbed UI in the online release. I would prefer to have an layout that follow the UX guidelines of the software Colabora Online was used (Nextcloud, ...).

LibreOffice Online Layout
The idea is to use the UX guidelines of Nextcloud. There markdown editor has one smale toolbar and as everywhere in Nextcloud you can open and close an Sidebar. Here is the layout of the build-in markdown editor:
Markdown Editor Layout

ColaboraOnline layout mockup

  • menubar where in the markdown editor the filename is.
  • one toolbar where you have commands that are not available with the sidebar (default toolbar stuff from LibO)
  • sidebar open by default where you have all the contextual commands for formating, image, ...

Kill WebDAVStorage in the code

This is an Easy Hack.
Potential mentors: @kendy

git grep WebDAVStorage, remove all the occurrences of the WebDAVStorage and make the code building without that :-)

Also please remove the <webdav> section from loolwsd.xml.in

iOS app: not possible to add a comment in a writer document (with hardware keyboard)

Describe the bug
When taping on the "Comment" button in the notebookbar on 6.4.0 (5) the dialog to add the actual comment shows up for a wink of an eye and then will vanish again. It's not possible to actually type something into the dialog.

To Reproduce
Steps to reproduce the behavior:

  1. Open a writer document using the iOS app
  2. Tap on Home > Comment button

Expected behavior
A dialog where I can enter my comment shows up.

Actual behavior
The dialog pops up and vanishes immediately.

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

enhancement: add the language setting menu in mobile view

Currently, there is no way to set the language for a selection / document when using the mobile view.

Considering that mobile view is used on many tablets which are well suited for long time editing, adding the language menu would be a very welcomed usability enhancement.,

Introduce WOPI endpoints for local file access

This is an Easy Hack.
Potential mentors: @kendy

When the Collabora Online is built with --enable-debug, it is possible to open local files for easy testing. The problem with the current implementation is that it is a separate code path from what is later used in the real world - which always integrates through WOPI.

This task has two parts:

  1. Introduce serving the local files via WOPI endpoints directly from loolwsd.
  2. Kill the implementation of the local file storage, and do appropriate changes in the loolwsd.xml setting.

Ad 1) - this can be done in wsd/FileServer.cpp, see the FileServerRequestHandler::handleRequest - which would implement the GET and POST methods appropriately. For an inspiration what endpoints have to be implemented, have a look at test/WopiTestServer.hpp, method handleHttpRequest() that does the same thing for unit tests.

Ad 2) - git grep LocalStorage and kill all the uses. Then update the message that outputs the URL to be issued locally with the right one (git grep LOOLWSD_TEST_DOCUMENT_RELATIVE_PATH) and also check the setting in loolwsd.xml.in (the filesystem option).

loleaflet: Bump eslint version to 4.0.0

This is an Easy Hack.
Potential mentors: @mrkara

eslint is an npm package for identifying and reporting on patterns found in ECMAScript/JavaScript code and the version we have (3.0.0, specified in loleaflet/package.json) is a bit outdated. So let's update it to 4.0.0 at least for now.

Follow the instructions on the forum to send your first pull request. And consider the instructions below fits into the Do you changes, rebuild & test etc. step.

You need to first, find this line in loleaflet/package.json:

"eslint": "3.0.0"

and change it to look like this:

"eslint": "4.0.0"

Then issue this command so that the new version of the package will be downloaded, along with its dependencies, and a new check on the source code is trigerred:

make clean && make -j `nproc`

The command above might take a few minutes or more depending on the power of your PC. In the meantime, read through the
guide: Migrating to v4.0.0

The command above should end with something similar to this:

eslint-errors

As you see, most (or all?) are indentation errors, which can be easily fixable by running eslint with the --fix option. So run it on the listed files, one by one (I'll take file AdminSocketAnalytics.js as an example. Change it to fit the file you would like to fix.):

./loleaflet/node_modules/eslint/bin/eslint.js --fix loleaflet/admin/src/AdminSocketAnalytics.js

After fixing each file, check the diff to make sure it looks all okay:

git diff

When you are done with all of the listed files, make sure the code builds without errors now:

make clean && make -j `nproc`

Even better, run it, and connect to it via your browser to verify all looks okay:

make run

If you are satisfied with the results. Then commit your changes, push the commit to your forked repo, and create a pull request via web interface. :)

Mobile: Create new top bar comment icon

This is an Easy Hack.

The current icon used in the mobile for comment is with a plus denoting the "insert comment" but now @lpranam is working on a way to also use it to trigger to view comments (it will open the bottom wizard displaying existent comments and with possibility to insert from there)

👉 : Create new icon that replaces the existent "insert comment" asset
📍 : images/lc_insertcomment.svg
📄 : assigned in toolbar.css:765

Port to Util::make_unique()

This is an Easy Hack.
Potential mentors: @vmiklos

#211 introduces the Util::make_unique() function, which has some benefits: (quoting the PR description):

In the old code, if the evaluation first allocates the memory for the raw pointer, then calls firstLine() and an exception is thrown before the std::unique_ptr construction, then the memory is leaked. Using make_unique() has the benefit of avoiding this problem.

However, that PR only converts a single usage. The task is to find all cases where a unique_ptr is constructed or reset: std::unique_ptr<Foo> foo(new Foo()); or foo.reset(new Foo()) and replace those with Util::make_unique().

Example places which are not converted at the moment:

_tileCache.reset(new TileCache(_storage->getUriString(), _lastFileModifiedTime, dontUseCache));

std::unique_ptr<CallbackDescriptor>(new CallbackDescriptor({ this, viewId })));

cypress-test: test tool button control on mobile wizard.

This is an Easy Hack.
Potential mentors: @tzolnai

This issue is about covering tool button control behavior on the mobile wizard with tests. We call tool buttons those items that you can check/uncheck by pushing them. Let's test the Bold button in Writer for example.

Steps of the tests:

  • Open a document in Writer (in mobile view)
  • Enable editing.
  • Select text in the document.
  • Open mobile wizard by pushing 'A' button on the toolbar. -> Character panel should be opened.
  • Check Bold button state (it should not be checked)
  • Push Bold button and check it's state (it should be checked).
  • Close and reopen the mobile wizard.
  • Check Bold button state (it should be checked)
  • Push Bold button and check it's state (it should not be checked).
  • Close and reopen mobile wizard.
  • Check Bold button state (it should be checked)

The cypress test should do the above steps automatically.

For enabling cypress test in you build you need to add an additional --enable-cypress flag to configuration. Like this:
./configure --enable-silent-rules --with-lokit-path=${MASTER}/include
--with-lo-path=${MASTER}/instdir
--with-poco-includes=/include --with-poco-libs=/lib
--enable-debug --enable-cypress
and rebuild your code.

To run any cypress test you need to step into the cypress_test folder (cd cypress_test) and run make run-mobile or make check-mobile command. You should check https://github.com/CollaboraOnline/online/blob/master/cypress_test/README to see how this command can be used.

If you are new to cypress testing you can check the cypress tutorial: https://docs.cypress.io/guides/getting-started/writing-your-first-test.html#Write-a-real-test

We have a similar test in our code base with the name 'Apply bold font.'. It's a good start:
https://github.com/CollaboraOnline/online/blob/master/cypress_test/integration_tests/mobile/writer/apply_font_spec.js
In this case, we don't test whether Bold character property is applied to the text, but we test the control's behavior and state.

You can add a test file under cypress_test/integration_tests/mobile/writer/ folder with the name like jsdialog_controls_spec.js and add the test there. You need also to add a test document under cypress_test/data/mobile/writer with a name like jsdialog_controls.odt. This file can be opened by the test (see "Steps of the tests" section).

Menu setting problem

If I only need to preview, but cannot download and copy files, how do I set it up?thanks

Indication in the Admin console when the daemon shuts down

This is an Easy Hack.
Potential mentors: TBD

While wsd is running, open the admin console. Now Ctrl + C to stop the wsd process. The admin console should show the user that Online was shut down. Worse, when the wsd is restarted, the admin-console screen is not updated accordingly; it keeps showing the stale view from the previous launch.

An error box or the overlay saying that wsd has been shut down should be done and refresh the page with the new WS connection whenever user clicks on the overlay. This is similar to when the document becomes inactive.

How to hack:

Check what web socket messages we receive when wsd shuts down in the backend and handle it appropriately in the admin websocket. One can check the websocket handling for the documents in src/core/Socket.js and do something similar with the admin websocket. Code for admin websocket is in loleaflet/src/admin/

In debug mode, it would be nice to have incoming and outgoing postMessage contents written into the browser console.

Add "Actual behavior" to GitHub issue template and fix consistency issue

Describe the bug
The GitHub issue template misses a "Actual behavior" section and has some minor consistency issues regarding colons.

To Reproduce
Steps to reproduce the behavior:

  1. Create an issue in the "online" repository on GitHub
  2. Check the template

Expected behavior
There should be a "Actual behavior" session after the "Expected behavior" section.
Further more, some titles use colons, while others don't.

Nextcloud - Built-in CODE Server: Could not establish connection to the Collabora Online server

I am unable to use the built in code server to open documents in Nextcloud using Collabora online
To Reproduce

1.install Collabora Online - Built-in CODE Server app and enable
2. install Collabora online app
3. try to open office document - failed to load collabora online please try again later
4. Go to code server settings - says server is enabled
5. Click settings link, get 404 error
5. Go to Collabora online settings, says Could not establish connection to the Collabora Online server.
Expected behavior

Documents to open in libreoffice online within nextcloud and for the settings for libreoffice online to say connected. And settings link to open
Screenshots

image
image

OS/snapd/snap version

ubuntu 18.04

Name Version Rev Tracking Publisher Notes
nextcloud 19.0.4snap1 23743 latest/stable nextcloud✓ -

snap version
snap 2.47
snapd 2.47
series 16
ubuntu 18.04
kernel 4.15.0-121-generic

iOS app: cursor keys on a hardware keyboard seem not to work

Describe the bug
Cursor keys on the hardware keyboard seem not to work in many places in 6.4.0. For example:

  • move the cursor in a writer document
  • move the cusor in a tunneled dialog

However it seems to work in a spreadsheet document.

Regarding the tunneled dialogs: using the cursor keys in tunneled dialogs is sometimes useful. One example I encountered: Format > Paragraph... > Tabs > Position
It's quite hard to move the cursor to a specific position inside this field using the finger, the cursor key on my hardware keyboard would help here.

To Reproduce
Steps to reproduce the behavior:

  1. Open writer document
  2. Use the cursor keys on a hardware keyboard to move the cursor

Or (for tunneled dialogs):

  1. Open writer document a tunneled dialog
  2. Click into an input field
  3. Use the cursor keys on a hardware keyboard to move the cursor in the field

Expected behavior
The cursor key should work and move the cursor

Actual behavior
The cursor keys don't move the cursor

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

Additional context
I use an attached Apple Smarty Keyboard on my iPad.

Touch device: writer page scrolls while dragging selection handles

Describe the bug
While dragging the selection handles in a writer document using the iOS app (6.4.0) the page scrolls - this is not desirable and was an issue in 4.1 too. See https://bugs.documentfoundation.org/show_bug.cgi?id=122281

To Reproduce
Steps to reproduce the behavior:

  1. Open a writer document in the iOS app
  2. Select some text and try to select previous/following lines too

Expected behavior
The page itself doesn't move and the selection over multiple lines (or pages) is easily doable.

Actual behavior
Because the page scrolls with the finger movement it's hard to select multiple lines.

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

Additional context
Please see https://bugs.documentfoundation.org/show_bug.cgi?id=122281 for additional issues regarding how it was solved in the app version 4.1.x

links.txt support from LibO

In LibreOffice the icon themes are done that way that if you have an icon twice, you draw the icon once and the second, ... icon you wrote into the links.txt file (which is in the root folder of the icon theme).

This solve icon work, disk space, ...

For better usage of icon theme (easier sync between COOL and LibO) it would be great to have links.txt support for icons.

Impress: leaflet-control-scroll doesn't work

Describe the bug
.Both opening a pdf with comments or odp, ppt etc the scroll navigation controls (up and down) do not seem to work. It does not navigate between slides, it remains in the same slide. If the current slide has multiple comments than it scrolls only between them.

  • What:
    image

  • Where : Impress

Sidebar icons have a different styling

The sidebar buttons and select boxes seem to have a different styling compared to the ones in the menu bar:

image

I think it would be good to have a unified button design all over the place.

LOOLWSD
6.4.0 (git hash: 6ad9d47)
Served by: 8464063a
LOKit
Collabora Office 6.4-6 (git hash: 16aec96)
"Ubuntu 18.04.4 LTS"

Space between drop down widgets missing

Space between the dropdown widgets (Font Style, Font Name, Fonz Size) is missing.

top: staging COOL from Collabora (with collabora css file)
botton: COOL build yourself (without collabora css file)

2020-10-19 13_26_18-

Ensure consistent function declaration

This is an Easy Hack.
Potential mentors: @kendy

Some of the functions use declaration like:

blah: function blah(huh) {
    ...
}

Instead, we want it to be:

blah: function(huh) {
    ...
}

without the repeated function name. To find the occurrences of this, you can do:

git grep ': function [^(]+(' loleaflet/src/

iOS app: crash when cursor is in a writer table for ~30s

Describe the bug
When placing the cursor in a table in a writer document and just wait for ~30s the app will crash.

To Reproduce
Steps to reproduce the behavior:

  1. Open a writer document in the iOS app
  2. Add a table (in my case 3x3)
  3. Put the cursor in a cell of the table
  4. Wait for ~30s

Expected behavior
Nothing should happen.

Actual behavior
The app crashes.

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

Additional context
I have a hardware keyboard (Apple Smart Keyboard) attached.

icon usage

Icon subfolders compare to LibO repo
All icons are in loleaflet/images which mean in the end there are more than 1.000 icons there.

I would suggest to make subfolders (prefered like they are in LibO for easier usage to keep them up to date).

Notebookbar Separator lines missing

Compare to the toolbar layout in the notebookbar layout the vertical separator lines between different groups are missing see
CollaboraOnline_Writer_Notebookbar_home_zoom133_20200810_1920x982

toolbar layout has vertical separator lines between groups
CODE_640_Writer_Classic_Toolbar-3

cypress-test: test default subcolor selection of color picker control on mobile wizard

This is an Easy Hack.
Potential mentors: @tzolnai

This issue is about covering color picker default subcolor selection related behavior on the mobile wizard with a test. The color picker control can be used to select a color for some text property. Let's test the Font color selector in Writer for example.

Steps of the tests:

  • Open a document in Writer (in mobile view)
  • Enable editing.
  • Select text in the document.
  • Open mobile wizard by pushing 'A' button on the toolbar. -> Character panel should be opened.
  • Check the state of the font color button (it should have the right color selected).
  • Push Font Colour button and you get the color palette to choose from.
  • (Let's assume here that the set color is black, we should set that in the test document)
  • Select red color from the primary color palette. -> red color should be shown as selected (assert on this).
  • By default, the fourth sub color is selected on the secondary color palette (assert on this too),
  • Push the back button on mobile wizard (arrow like icon) -> You are back to Character panel.
  • Check whether the selected color is the right red color.
  • Close and reopen the mobile wizard.
  • Check whether the red color is still set for Font Colour button.
  • Push Font Colour button and check whether the right red color is selected on the color palette.

The cypress test should do the above steps automatically.

For enabling cypress test in you build you need to add an additional --enable-cypress flag to configuration. Like this:

./configure --enable-silent-rules --with-lokit-path=${MASTER}/include
--with-lo-path=${MASTER}/instdir
--with-poco-includes=/include --with-poco-libs=/lib
--enable-debug --enable-cypress

and rebuild your code.

To run any cypress test you need to step into the cypress_test folder (cd cypress_test) and run make run-mobile or make check-mobile command. You should check https://github.com/CollaboraOnline/online/blob/master/cypress_test/README to see how these commands can be used.

If you are new to cypress testing you can check the cypress tutorial: https://docs.cypress.io/guides/getting-started/writing-your-first-test.html#Write-a-real-test

We have a similar test in our code base with the name 'Apply font color.'. It's a good start:
https://github.com/CollaboraOnline/online/blob/master/cypress_test/integration_tests/mobile/writer/apply_font_spec.js
In this case, we don't test whether font color property is applied to the text, but we test the control's behavior and state.

You can add a test file (if it does not exist yet) under cypress_test/integration_tests/mobile/writer/ folder with the name like jsdialog_controls_spec.js and add the test there. You need also to add a test document under cypress_test/data/mobile/writer with a name like jsdialog_controls.odt. This file can be opened by the test (see "Steps of the tests" section).

iOS app: colors in the color picker are cut off in the sidebar

Describe the bug
Some/many colors in the color picker are not visible when the color picker in the sidebar is opened.

To Reproduce
Steps to reproduce the behavior:

  1. Open a writer document in the iOS app
  2. Open the sidebar
  3. Tap on the "font color" button

Expected behavior
The color picker should be fully visible.

Actual behavior
The color picker is partially cut of and not fully visible.

Screenshots
color_picker_cut_off

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

iOS app: button "Online Help" does not work

Describe the bug
The button "Online Help" (menu "Help" in the notebookbar) in the iOS app does not work. In contrast the button "Report an issue" seems to work and opens a browser window pointing to the GitHub issues. I believe "Online Help" should point to a similar page (not sure which one).

To Reproduce
Steps to reproduce the behavior:

  1. Open a writer document in the iOS app
  2. Menu > Help
  3. Tap on "Online Help"

Expected behavior
The online help should open in a browser.

Actual behavior
Nothing happens.

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

cypress-test: test auto color selection of color picker control on mobile wizard.

This is an Easy Hack.
Potential mentors: @tzolnai

This issue is about covering color picker auto color related behavior on the mobile wizard with a test. The color picker control can be used to select a color for some text property. Let's test the Font color selector in Writer for example.

Steps of the tests:

  • Open a document in Writer (in mobile view)
  • Enable editing.
  • Select text in the document.
  • Open mobile wizard by pushing 'A' button on the toolbar. -> Character panel should be opened.
  • Check the state of the font color button (it should have the right color selected).
  • Push Font Colour button and you get the colour palette to choose from.
  • Select 'Automatic color' by clicking on it (check that the tickmark is displayed on the right item).
  • Push the back button on mobile wizard (arrow like icon) -> You are back to Character panel.
  • Check whether the selected color is the auto color (it has a special icon).
  • Close and reopen the mobile wizard.
  • Check whether auto color is still set for Font Colour button.
  • Push Font Colour button and check whether auto color is selected.

The cypress test should do the above steps automatically.

For enabling cypress test in you build you need to add an additional --enable-cypress flag to configuration. Like this:

./configure --enable-silent-rules --with-lokit-path=${MASTER}/include
--with-lo-path=${MASTER}/instdir
--with-poco-includes=/include --with-poco-libs=/lib
--enable-debug --enable-cypress

and rebuild your code.

To run any cypress test you need to step into the cypress_test folder (cd cypress_test) and run make run-mobile or make check-mobile command. You should check https://github.com/CollaboraOnline/online/blob/master/cypress_test/README to see how these commands can be used.

If you are new to cypress testing you can check the cypress tutorial: https://docs.cypress.io/guides/getting-started/writing-your-first-test.html#Write-a-real-test

We have a similar test in our code base with the name 'Apply font color.'. It's a good start:
https://github.com/CollaboraOnline/online/blob/master/cypress_test/integration_tests/mobile/writer/apply_font_spec.js
In this case, we don't test whether font color property is applied to the text, but we test the control's behavior and state.

You can add a test file (if does not exist yet) under cypress_test/integration_tests/mobile/writer/ folder with the name like jsdialog_controls_spec.js and add the test there. You need also to add a test document under cypress_test/data/mobile/writer with a name like jsdialog_controls.odt. This file can be opened by the test (see "Steps of the tests" section).

X-LOOL-WOPI-Timestamp error

Looks like collabora parses milliseconds with error.
For example i sent 2020-09-22T21:45:12.583000Z in CheckFileInfo
but then i recieve 2020-09-22T21:45:12.000583Z in X-LOOL-WOPI-Timestamp in PutFile.

More dynamic Style panel in the Notebookbar

This is an Easy Hack.
Potential mentors: @lpranam

Switch the UI to using Notebookbar (in loolwsd.xml).

The style panel in notebookbar can be made more dynamic if we apply a style (show selected) with js/css (of course the remaining things can be kept untouched just overlap it with css). Style is applied to text almost instantly but in notebookbar it takes a few seconds to appear.

Screenshot_20201002_155959 (1)

Steps:

  1. Select some text
  2. Apply any style from the highlighted panel in the image

See the style is applied to the text is almost immediately but in the UI it takes a few seconds to reflect. We can speed this up if on click we apply some css on that panel.

Hint:
you can inspect the element and see how we are applying some style on that panel on hover and do something similar when clicked.

pep8 coding style conformance for the Python files

This is an Easy Hack.
Potential mentors: @mrkara

Check the Python files in the project for pep8 coding style conformance, and fix the found issues.

Install the code style checker:

pip install pycodestyle

Check the messages on this issue to see which files have already been taken, and choose one of the files below:

ALL DONE. Thanks to everyone who contributed! :)

Drop a message on this issue, stating which file you have chosen, to avoid merge conflicts and productivity losses.

Run the check on it (taking po2json.py as example):

pycodestyle loleaflet/util/po2json.py

Fix the listed style issues, and send one pull request for each file checked.

iOS app: status bar of the app not visible due to iOS "keyboard bar"

Describe the bug
When I open a document (e.g.) writer in 6.4.0 (5) with an attached hardware keyboard I can't see the status bar of the app (with e.g. the search field) - the iOS "keyboard bar" is visible instead. This is probably some sort of a regression as it was already a topic in the 4.2.x version, see: https://bugs.documentfoundation.org/show_bug.cgi?id=129380
With 6.4.x (or is it because of an iOS update?) it seems to be an issue again.

To Reproduce
Steps to reproduce the behavior:

  1. Open a document using the iOS app
  2. Try to reach the search field which should be in the bottom left corner

Expected behavior
The status bar should be visible, I should be able to enter something into the search field.

Actual behavior
The status bar of the app is not visible because the iOS "keyboard bar" is displayed above it.

Screenshots
keyboard_bar_over_status_bar

Tablet

  • OS: iOS, 14.0
  • Version: 6.4.0. (5)

Additional context
This already happend in 4.2.x, see: https://bugs.documentfoundation.org/show_bug.cgi?id=129380

loleaflet: Bump eslint version to 5.0.0

This is an Easy Hack.
Potential mentors: @mrkara

eslint is an npm package for identifying and reporting on patterns found in ECMAScript/JavaScript code and the version we have (3.0.0, specified in loleaflet/package.json) is a bit outdated. So let's update it to 4.0.0 at least for now.

Follow the instructions on the forum to send your first pull request. And consider the instructions below fits into the Do you changes, rebuild & test etc. step.

You need to first, find this line in loleaflet/package.json:

"eslint": "4.18.2"

and change it to look like this:

"eslint": "5.0.0"

Then issue this command so that the new version of the package will be downloaded, along with its dependencies, and a new check on the source code is trigerred:

make clean && make -j `nproc`

The command above might take a few minutes or more depending on the power of your PC. In the meantime, read through the
guide: Migrating to v5.0.0

If the command above gives any errors, fix the errors on the indicated files. (Error messages will tell you the line and column numbers for each error.)

After fixing each file, check the diff to make sure it looks all okay:

git diff

When you are done with all of the listed files, make sure the code builds without errors now:

make clean && make -j `nproc`

Even better, run it, and connect to it via your browser to verify all looks okay:

make run

If you are satisfied with the results. Then commit your changes, push the commit to your forked repo, and create a pull request via web interface. :)

Update Menubar with available commands

Writer

File

File

print moved after Download as, like you know from desktop. In addition the Separator line after Download as didn't look out of place.

View

View

Group everything show/hide stuff together

**Tools **

sync-menu-tools

add .uno:ChapterNumberingDialog and .uno:FootnoteDialog

iOS app: hamburger menu seems to show "below" notebook bar

Describe the bug
The hamburger menu which can be opened by taping on the hamburger menu in the upper right corner seems to be displayed below the notebookbar in the iOS app.

To Reproduce
Steps to reproduce the behavior:

  1. Open a document in the iOS app
  2. Tap on the hamburger menu in the upper right corner

Expected behavior
The menu should be shown (and be visible)

Actual behavior
The menu seems to be rendered below the notebookbar

Screenshots
hamburger_menu_below_notebookbar

Tablet

  • OS: iOS 14.0
  • Version: 6.4.0 (5)

native sidebar

How is it possible to bring the LibO sidebar to online. Is it possible to use the nextcloud sidebar or at least a similar layout and add there the different sidebars.
I would support with the UI related stuff if there is some code available.

Almost impossible to enter input bar in calc, in iOS app or browser on iPad, with notebookbar

Describe the bug
Most of the time I fail to be able to put the cursor into the input bar of calc. I mean the large input field which sits avove the actual spreadsheet. Also the button to expand that field into a multi line edit field (down arrow) right next to the input bar seems not to be clickable.

To Reproduce
Steps to reproduce the behavior:

  1. Open a spreadsheet in calc using the iOS app
  2. Try to put the cursor into the input bar above the spreadsheet

Expected behavior
The cursor should easily be placeable in the input bar.

Actual behavior
It's almost impossible to put the cursor into the input bar.

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

Additional context
I have a hardware keyboard attached to my iPad (Apple Smarty Keyboard).

iOS app: button "Keyboard shortcuts" does not work

Describe the bug
The button "Keyboard shortcuts" (menu "Help" in the notebookbar) in the iOS app does not work.

To Reproduce
Steps to reproduce the behavior:

  1. Open a writer document in the iOS app
  2. Menu > Help
  3. Tap on "Online Help"

Expected behavior
A dialog with the shortcuts that can be used should be shown.

Actual behavior
Nothing happens.

Tablet

  • OS: iOS 14.1
  • Version: 6.4.0 (5)

Poco::Time* replacement with std::chrono

This is an Easy Hack.
Potential mentors: TBD

We have a mix of Poco::Timestamp and std::chrono - we should move to using the latter consistently.

It would be good to move wsd/* first - since it doesn't use much Poco API anymore - although it would be good to consider whether we need some convenience wrappers around std::chrono to make it somewhat less verbose - particularly the cast to milliseconds is very ugly.

Thanks !

clone didn't copy Style

If you use clone at a header1 to a Text Body element, the Text Body element will get the same formating than Header 1, BUT it stay Text Body and all Formating was now direct formating instead the use of Styles.

loleaflet: Bump eslint version to 6.0.0

This is an Easy Hack.
Potential mentors: @mrkara

eslint is an npm package for identifying and reporting on patterns found in ECMAScript/JavaScript code and the version we have (5.0.0, specified in loleaflet/package.json) is a bit outdated. So let's update it to 6.0.0 at least for now.

Follow the instructions on the forum to send your first pull request. And consider the instructions below fits into the Do you changes, rebuild & test etc. step.

Follow the instructions here to skip the build step: https://forum.collaboraonline.com/t/start-developing-cool-on-any-platform-in-5-minutes/52

You need to first, find this line in loleaflet/package.json:

"eslint": "5.0.0"

and change it to look like this:

"eslint": "6.0.0"

Then issue this command so that the new version of the package will be downloaded, along with its dependencies, and a new check on the source code is triggered:

make clean && make -j `nproc`

The command above might take a few minutes or more depending on the power of your PC. In the meantime, read through the
guide: Migrating to v6.0.0

If the command above gives any errors, fix the errors on the indicated files. (Error messages will tell you the line and column numbers for each error.)

After fixing each file, check the diff to make sure it looks all okay:

git diff

When you are done with all of the listed files, make sure the code builds without errors now:

make clean && make -j `nproc`

Even better, run it, and connect to it via your browser to verify all looks okay:

make run

If you are satisfied with the results. Then commit your changes, push the commit to your forked repo, and create a pull request via web interface. :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.