Jump to content

Graham Quince

  • Content Count

  • Joined

  • Last visited

Community Reputation

562 Knows loads about Frog


About Graham Quince

  • Rank
    Frog Guru

Personal Information

  • School
    Frog Education

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Just something I'm working on, a new widget which you can link to a form and display a list of people from the group and a tick and time / date of submission. I think it needs more work with formatting - I've used the group selector from the Random Name Selector (included here because I know @pconkie was also talking about group selectors and I bet others are interested too) 'widget.live': function(el, ev, data) { this.element.html( this.view( 'main.ejs', {widgettitle: this.prefs.widgettitle.value} ) ); this.element.find('.memberlist').hide(); var warn = this.element.find('.warning'); if (JSON.parse(this.prefs.preselected_form.value).formUuid=="") { warn.html('<h4>No Form selected</h4>'); warn.addClass('alert-danger'); } else { warn.hide(); } steal.import('frogui/modules/selectusers/selectusers!frog-component').then(function() { var groupName = this.element.find("div.group-select input.groupName"), groupSelect = this.element.find("div.group-select"); groupSelect.frogui_modules_selectusers({ show_label: false, show_permission: false, show_submit: true, submit_label: 'Check submissions', allow_convert: false, search_users: false, max_selections: 1, profiles: ['admin','staff','parent','governor','student','external admin','external staff'] }); }.bind(this)); }, 'selectusers.submitted': function() { var groupSelect = this.element.find("div.group-select"); groupSelect.trigger('selectusers.getSelected', function(data) { if (!data.groups.length) { return; } var selectedGroup = data.groups[0].uuid, formData = JSON.parse(this.prefs.preselected_form.value), formEntries = [], timeEntries = []; ....
  2. Hi Sean, Martyn from North Lakes asked about this a while ago, but the trouble is all the browsers (from May 2018) block autoplay videos unless audio is muted 👿*. So if you want a silent video to autoplay this is still possible, otherwise you have to set an override in the browser's settings. For example: <video controls autoplay muted> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> Your browser does not support the video tag. </video> Here's the bit in Chrome you'll need to change, just paste this into your browser’s address bar chrome://flags/#autoplay-policy For Martyn, we got the videos playing for his digital signage, using the above workaround and the HTML widget. If you want us to add this into the Media widget, the Ideas Portal is the best option for highlighting this to the Product Team. * Which i understand as it’s about the browser companies clamping down on intrusive background ads on webpages. but it's still frustrating when you want to do it.
  3. @pconkie - Thank you for sharing as always. Paul's new application is now available to download from the Community: https://www.frogeducation.com/community/frogcode/frogcode-showcase/seatingplans
  4. I'll probably end up turning this into a widget, but in the meantime, if you want to display the user's picture when they log in: <div class="userpic"></div> <script> var user = FrogOS ? FrogOS.getUser() : this.getUser(); Frog.Model.api('users.getOne', { uuid: user.uuid }).done(function(listResponse) { var photo = listResponse.data.categories[0].fields[6].value; if (!photo) { photo = "users/public/images/default_no_gender.png"; } this.element.find('.userpic').html( '<img style="width: 150px; max-height: 150px;" src="'+photo+'">' ) }.bind(this)); </script>
  5. I've just been working with a school who uses lesson Attendance codes as a way of reporting behaviour. The widget works pretty well anyway, but you have to mouse over the green tick to see the behaviour. Using CSS to target the widget and the tick's Title, we were able to add a pseudo element. Thought I'd share it here: <style> div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Outstanding]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Outstanding]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Outstanding]"]::after { content: " Outstanding"; white-space: pre; } div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Outstanding]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Outstanding]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Outstanding]"] { border-right: 50px solid #15a100 !important; } div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Good]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Good]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Good]"]::after { content: " Good"; white-space: pre; } div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Good]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Good]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Good]"] { border-right: 50px solid #C0C0C0 !important; } div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Requires improvement]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Requires improvement]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Requires improvement]"]::after { content: " Requires \a improvement"; white-space: pre; } div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Requires improvement]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Requires improvement]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Requires improvement]"] { border-right: 50px solid #cd7f32 !important; } div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Inadequate]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Inadequate]"]::after, div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Inadequate]"]::after { content: " Inadequate"; white-space: pre; } div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Maths. [Inadequate]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="Science [Inadequate]"], div[data-content-uuid="widgetuuid"] .attdetail_lesson[title="English [Inadequate]"] { border-right: 50px solid #FF0000 !important; } </style> It needs tidy up and unfortunately, using the Title means that each subject needs to be included,
  6. 👍 What would that look like? Just a summary of how it's going? Or is it more a whole section for the dev plan with a form to record updates?
  7. Hey folks, I'm busy updating the Frog Templates at the moment. Changing their looks and adding in new functionality. I'm currently looking at the SLT Portal and wondering if anyone has set one up and what sort of things they have on it, Graham
  8. Yup, I believe with a fair wind, you should have the ability to run SCORM from Beathoven release. A couple of caveats: We've only built for v2004. Any SCORM files you have uploaded to Frog3 cannot be downloaded. Frog3 unpacks the SCORM files and provides no way for you to download them. Hopefully you still have your original files* *That being said, drop me a line and we can look into options.
  9. I think this is a good approach, but i reckon beyond me @Adam @simon brahan @Simon Law ? @Matt
  10. Hi everyone, I've been sitting with @simon brahan and if i understand this correctly, technically we can turn on the ability for parents to view and manage all entries in the datastore. But this would be global and so we're a bit uncomfortable doing this. Each parent already has the ability to write their own entry to the datastore, rather than editing the single shared entry as it is now. Admins can still read all entries. It feels A LOT safer to use this option. @pconkie - how does that option sound to you? I can probably get you some help/advice to rewrite the widget if you need it?
  11. Twitter don't provide a typical IFRAME code, which makes it slightly awkward to use with Frog sites, as each site opens above the dashboards. However, we had a school figure out a solution a while back and we turned their code into a FrogCode widget, which you can download here: https://www.frogeducation.com/community/frogcode/frogcode-showcase/twitter
  12. Apparently there's going to be emails with links at the end of this week.
  13. Hi - i'll try to get some help on this, Adam isn't available this week.
  14. Well, you can use the Data-Viewer widget to access the Poll information - and point it to the poll directly. The data-viewer also has the option to reset the poll too.
  15. If you create a new Drama subject and she sets up markbooks, she can assign from there and never have to pick a subject again, if that helps.
  • Create New...