Jump to content


School User
  • Posts

  • Joined

  • Last visited

Everything posted by Chris.Smith

  1. Hi @pconkie, This was introduced in the last patch. We have fixed it but I have no idea when that fix will get to you. @Graham Quince can you chase this one from a customer perspective as then Paul won't have to wait until Galileo for the fix. ~ Chris
  2. Hi @Matt Mason, In the Da vinci release, we updated the library that loads FrogOS (StealJS). Unfortunately, the new version of that library works slightly differently to the old one. Here is the change you need to make. steal.import('dataviewer/dataviewer!frog-component').then(function() { var formUuid = '..'; // the rest should be the same }); As always, let us know how you get on and if you have any other questions don't hesitate to ask. ~ Chris
  3. Hi @pconkie, I've just helped the release team perform User Acceptance Testing (UAT) on this bug in the upcoming 7.2 release which should be with you inside of the next few weeks. ~ Chris
  4. Hey Paul, This is now fixed. At our end and hopefully will be with you soon. @Graham Quince Can you follow up with the release team later today to find out when Paul can expect to get this fix. ~ Chris
  5. Hey Paul, This looks like an issue with release 7.1.1 - I know where the problem is and how to fix it, we are working with our rollout team to figure out when we can get this fix to you. ~ Chris
  6. Hi Virginia, It looks to be working fine to me... Worth pointing out that it's not designed to handle human interference (clicking on the 2nd page) as it keeps an internal record of where it is. I didn't think in the case of digital signage that such a requirement would exist Let me know if this is something you need adding. ~ Chris
  7. Hi Virginia, I've created you a FrogCode Widget which does everything that you need it to... I say "need" because due to time and technical limits I have not been able to implement transition effects (fade in/out). When you come to use the widget, make sure it is on the first page of the site only... this is important. Once on, it will be invisible when the site is live. In edit mode, you will be able to set a time in seconds for how long each page is visible before it proceeds to the next page. The last page will wrap back to the beginning. Please note that the timings won't be 100% reliable due to how JavaScript works. I could explain it but, when I explained it to Quincy he needed a sit down and a cup of tea to fix him. Ultimately, the pages will be visible for the amount of time you've specify at a minimum. If you need any help installing this widget, let us know, otherwise you should be good to go! ~ Chris 5F9F0F832001BD9A84355FD5266C4D02419699EC9881C2AC.tgz
  8. Hi Virginia, So the suggestion is to have one site that your raspberry pi's can view. We can then use a combination of nested page widgets and external embed widgets to add content from frog and external websites respectively. Being digital signage, obviously we are going to want something that will cycle through the pages, displaying the content for a set amount of time for each page. Does this all sound correct? ~ Chris
  9. I am on holiday as of 01/09/2017! If you need any Development-based support give @Graham Quince a nudge and he'll help as best he can :)

  10. Hi Paul, There are two methods of catching the "close" event on an app. The first is move involved than the other. { 'app.close': function(el, ev) { this.closeFirebaseConnection(); this.trigger('os.app.close'); // <--- This has to be run or the app will not close!!! } } The next one is the advised one to use... { onClose: function(close) { this.closeFirebaseConnection(); close(); // <-- Tells FrogOS that you are ready for the app to close. } } Both are fine to use, however the onClose hook is safe from future changes. Hope that answers your question, ~ Chris
  11. @pconkie, There is are a differences between native platform apps and FrogCode apps and unfortunately this is one. Because there may be another app on the system called 'polls', you have to enter your package's id. There is currently a problem with the openApp method however, so use the following example to get you started: this.trigger('os.internal.launchapp', { name: appID, view: 'student', appModel: new Com.Frog.Model({ 'uuid' : appID, 'role_name': Object.values(_Roles.serialize()).filter(function(role) { return /app\.externalapps\.(?:[0-9A-F]{8}\.)+polls$/gim.test(role); })[0], 'extended_data' : { 'from_package' : true } }) }); Don't look deeply into exactly what is going on here, as I will be fixing this as soon as I get chance. ~ Chris
  12. Hi @pconkie, When an app is opened with some data - or options - it is available from instantiation as it may be required to tell the app how to set up, where to deeplink to, etc. This is done in the form of an object that is assigned to the prototype scope - this.options Consider the following example: // package/widget/48F1...AB73/widget.js FrogOS.openApp('7C974713200486AFDC475F8BD94B0000FD3A143C6506D1A6', { foo: 'bar' }); // package/application/7C97...D1A6/production.js Com.Frog.Controllers.Application.extend('7C974713200486AFDC475F8BD94B0000FD3A143C6506D1A6.Controllers.Core', { defaults: { foo: 'baz' } }, { packageID: '7C974713200486AFDC475F8BD94B0000FD3A143C6506D1A6', init: function() { this.main(); }, update: function(options) { this._super(options); this.main(); }, main: function() { this.render(); }, render: function() { this.element.html( this.view('main.ejs', { title: this.options.foo }) // renders out <h1>Bar</h1> ); } }); You open your app by passing the package id into FrogOS.openApp as the first param, your data is the second param. Your app will then open/focus and FrogOS will set the apps options to match/include the data passed in. When opening the app, this.options is set to the contents of the defaults object in the static object; which is then overridden by the data passed in. When focusing the application (calling openApp when there is already one open) your entry point is the update method. this._super(options) merges the any new data with the existing this.options. In this example: we started with a default of this.options.foo = 'baz'. We initialised with a value of 'bar' so this replaced 'baz' as this.options.foo = 'bar'. If we tried to open the application again, this time with a different value, 'bar' would be overwritten by that value. There are some complications that you may experience depending how complex this setup gets, but usually you should be fine. ~ Chris
  13. Finally caught up on forum messages after being ill for three weeks... normal service shall now resume!

  14. @sfoster - The work hasn't been shelved... I still intend to add the ability for you to develop themes inside of FrogCode and add them to the system yourself; however there is more demand for other features than for themes. That being said, the people who want other things will probably also want themes as well. If it's not already on the ideas portal please create the idea and get as many people as you can up-vote it. The more noise there is, the more it is likely to get to the top of the page. @Graham Quince - It won't work. Also can you co-ordinate with @sfoster with regards to the Ideas portal. ~ Chris
  15. @pconkie, @Graham Quince, It's pretty niche, a better approach would be for @Graham Quince to convince the management to let us open source the Forum widget as a FrogCode widget thus allowing @pconkie to copy it, and update it to his own needs. However, if you want to go down the preference route, then there are a copy of approaches I can think of. The best would be to add a hidden preference to the widget, and then in edit mode get the user to click on the widget they want the "Class Discussion" widget to listen to. You could then store its content uuid in the hidden preference's value attribute. Let me know how you get on, ~ Chris
  16. @pconkie, @Graham Quince, @ADT, I have arisen... @pconkie - Lets answer these questions: The correct url for your assets is '//package/{type}/{uuid}/assets/picture.png' You may get problems previewing your image as this is served from a different address. You can change 'package' to 'staging', just don't forget it change it back. This won't be the case after the October release. If you haven't already, checkout the documentation (https://froglearn.backwellschool.net/app/lib/packaging/docs/Preferences.App.html) for the app preference. The App preference returns the Apps UUID. You can then use the App Lib Model to get a the rest of the info you need. if (this.prefs.app.value) { this.showLoader(); Lib.Models.Applications.findOne(this.prefs.app.value) .always(this.hideLoader.bind(this)) .fail(this.handleError.bind(this)) .done( function(app) { this.app = app; this.render(); }.bind(this) ); } I'm guessing you'll then want to use the CodeEditor pref to store the object you want to send to the app. That in itself is a nice little widget. With regards to testing if an app is already open, you can use this code: // Inside your Widget/App controller var apps = {}; this.trigger('os.app.getRunning', function(running_apps) { // this code is synchronous! // data structure is {"app_name": num_instances} apps = running_apps; }); // FC apps use their uuid's to open! if (this.app.getUuid() in apps) { // Your app is already open } Our Document conversion service does not have an API unfortunately. It is driven independently from within the Server. @ADT - ~ Chris
  17. Hi @pconkie, Sorry for the delay... It's taken me til today to get back at the head of the charge... Hopefully this should help. https://froglearn.backwellschool.net/app/lib/packaging/docs/FrogOS.html#.openApp__anchor FrogOS comes with some built in documentation which is install-able via the Package Manager; here's the relevant page though. Let me know how you get on, Chris
  18. Hi @Sue Busher, This is actually an issue in the FileDrop api, that as chance would have it I literally have just fixed. You're sites should be back to normal after the next update! ~ Chris /cc @Graham Quince
  19. @clangstaff, You can but not as directly as you would probably like. If you open Assignment Manager and filter to a particular Student, the resulting network request in Developer Tools should give you some ideas. The keys you need to look out for are: Report Name Filters Options Stay away from limit and offset. I don't think the order object is particularly important in your use case. Hope this helps, ~ Chris
  20. Currently working on: Updates to FrogCode (Post-migration to Steal.js 2)

  21. Currently working on: #BKU-294-14988 - Package Manager Updating Issue (Radclyffe School)

  22. Hi Simon, I am currently logged into your platform looking at the issue now. I will be in touch shortly with an update and hopefully an action plan. ~ Chris
  23. Hi @pconkie, Just looking at Bug #2 a.k.a. HMQ-712-33082. Any chance you can tell me what package you were working on at the time so we can focus in on it in the logs. Thanks, Chris
  • Create New...