Wrap Rows with Google Spreadsheet

  • 2
  • Question
  • Updated 1 year ago
  • Answered
When I have a Google Spreadsheet running, some of my announcements are lengthy (multiple sentences) while other entries are smaller (a few words). However, if I want to get all of the text to show in the player while scrolling, I have to set my Row Height to something very high, but that also leaves large spaces between the smaller text entries. 

How can I get Rise to wrap the text/rows to what data is present in the Google Spreadsheet without setting the row height to something astronomical?
Photo of Tim Nunnikhoven

Tim Nunnikhoven

  • 80 Points 75 badge 2x thumb

Posted 2 years ago

  • 2
Photo of Darius - PRODO.us

Darius - PRODO.us, Champion

  • 26,850 Points 20k badge 2x thumb
This worked quite nicely with the old sheets widget, but in the new version you get one fixed height. It is silly and I addressed this issue with them a couple of times before. The last one just a couple of weeks ago. I agree this fixed row height doe not work on so many levels. For example it same height does not work for header and body: header usually has just a couple of words and body the entire paragraph. makes it pretty much impossible to make anything more complicated and just a silly list of things.
Photo of Matthew

Matthew

  • 970 Points 500 badge 2x thumb
Its also silly that you have no individual control over each heading column alignment, even though you can align the content, the headings are aligned in a singular fashion across the board for each individual widget, so to create columns with multiple alignments and such, you would have to make a separate text layer for the headings that cannot be dynamically updated (or adding extra senseless API calls with a mini widget on widget on widget).... or creating a widget for each individual column to align them appropriately.
Photo of Robb

Robb, Official Rep

  • 76,676 Points 50k badge 2x thumb
Matthew,

Just to confirm, you mean that you want to be able to change the alignment, font, color, etc of EACH heading, do I have that right? The Widget allows for you to modify the heading row, but not individual heading items. One option you may want to try out is to take a copy of the Widget from the GitHub Repo, and build a version that allows you to modify the header in the fashion that you want to. I hope that helps!
Photo of Matthew

Matthew

  • 970 Points 500 badge 2x thumb
That's exactly right. It is unfortunate. 

Thanks for the tip, but it would be highly beneficial to a lot of people that use your software if you could implement this into the main build.

I am actually beginning the development of my first widget for Rise here soon if it pans out. I am attempting to integrate with a POS System using their API with an authentication token. So essentially a rebuild of the Google Sheets widget (consuming and parsing JSON data output with either GET or WebSockets).  

React seems to be my favorite option so far...

Also, I noticed while looking at the Git Repo it appears you're still using Bower for the Sheets widget rather than Yarn, and I have no experience with Gulp. 

I know its going to be a fun road... I did mostly research last night which is why I was on the forums here, but the documentation for building your own widgets is pretty sparse....

Is there a more in depth guide on the matter?

Am I correct in assuming I am going to need to create a Google Cloud Account and utilize the platform to store and run the widget? Are there any approval processes required to use my own widget or will I just be able to point towards a link and it will automatically work?

If that fails, I will simply create an HTML/jQuery frontend embedded within the HTML Widget which will get quite tedious to make changes in the future.
Photo of Robb

Robb, Official Rep

  • 76,676 Points 50k badge 2x thumb
Matthew,

Did you check the Developer Documentation for steps on building Widgets? We have a lot of stuff there: https://developer.risevision.com/documentation

I think all your questions should be answered there, but if they are not, please be sure to let me know.

Thanks!
Photo of Matthew

Matthew

  • 970 Points 500 badge 2x thumb
Well, where I got a little sidetracked was when you look at the JavaScript client for Google Cloud Endpoints API, they are shutting it down on August 2, 2018 and migrating to 2.0  (Cloud Endpoints Frameworks for App Engine) which requires Java or Python and no longer supporting JavaScript so far as I can see.

And the "Widget API" section says "[to be added]".

I just need to parse JSON data and display it in a table. Id like to actually make a widget that allows you to customize this, fonts, colors, etc. Basically redeveloping the sheets widget with a different source.
Photo of Alan Clayton

Alan Clayton, Official Rep

  • 8,788 Points 5k badge 2x thumb
Hi Matthew, our Google Spreadsheet Widget uses the React Fixed Data Table for rendering content. The defect in our Widget preventing the Spreadsheet Widget from wrapping cell actually resides in the React Component (this is the issue we logged). Point being, if you are going to leverage existing libraries for rendering content you might want to experiment with them first to make sure they will provide you with what you're looking for. 

As for getting JSON data. You might want to check out our Sheets Component as an example. This is what we use with the Spreadsheet Widget for retrieving the JSON data from the sheets api.

To simplify your efforts, I wouldn't worry about the Widget API. I would first get the data retrieval and rendering worked out. And I don't think you need to worry about the Google Cloud Endpoints API. That would only be needed if you were building an application that needed to interact with our Server, which Widgets don't need to do. 

When your ready, you can find the Widget documentation here, https://developer.risevision.com/documentation/widget-api/widget-tutorials

Hope that helps. Thanks!
Photo of Matthew

Matthew

  • 970 Points 500 badge 2x thumb
Thank you, I believe that answered my questions. I was hoping to be able to use React to render the front-end data as in my experience this is one of the easiest methods of rendering JSON data from a live feed.

I will be using WebSockets to interact with the API and consume the data. I just was unsure regarding where the app needed to be hosted or how in order to get it to work as a widget.