Jump to content

Graham Quince

Administrators
  • Posts

    2,046
  • Joined

  • Last visited

Everything posted by Graham Quince

  1. Just been asked by a school if they could have an alert when their policies page is visited. The Email API requires a logged in user, but the Form widget does not. Using this code in an HTML widget with a Form on the page, you can auto-submit the form and trigger an email: <script> setTimeout(function(){ $('.btn-success').click(); }, 5000); </script> <style> div[data-content-uuid="FORM_WIDGET_UUID"] { /* Hides the form from view */ display: none !important; } </style>
  2. This virtual workshop is all about you, our Frog family. We know that this year has thrown plans into chaos and brought about the steepest of learning curves with the switch to online and blended learning. Your Frog platform should be working harder than ever in support of all this activity but in reality there are bound to be gaps where knowledge, time and motivation is just not on your side. The Frog Virtual Workshop is designed to bring you practical support and inspiration in a convenient format that's easy to digest. https://www.frogeducation.com/community/events/calendar/workshops-dec20 Now & Next Real World Learning - Meet, Share & Learn FrogPlay Live ePortfolios Workshop
  3. As we find ourselves in yet another lockdown situation, we are keen to provide Frog schools with as much help and support as we can. In the Frog Virtual Workshop held in December, we asked how we could best support you in 2021 and our audience voted for more webinars. Whilst we intended to work on a programme that would run over a few months, we believe we can be of greater help to you by accelerating these sessions and providing the help needed NOW. We have started the ball rolling with five pre-planned LIVE sessions that begin this Thursday (7th January) at 4pm. The LIVE format ensures you get the opportunity to ask questions and chat to others throughout. As your availability is most likely 'subject to change' at this time, we recommend registering for the session(s) you are most interested in, as we can send recordings out to those who couldn't make it. https://www.frogeducation.com/community/events/calendar/ws2021
  4. Hi @mhamilton, Our Azure documentation is a bit outdated apparently (MS keeps making changes to the process). If you would like to set this up, I can create a ticket for you and one of our systems team will walk you through the process.
  5. If you try again, then report the date and time of the attempt to the service desk, they can run a check which might indicate what the issue is. I know all files uploaded to Frog are virus checked, so I doubt that's the cause.
  6. Hi @Miss Morgan, I've logged into your school platform and trying to spot the assignment in question. It looks like most of the assignments have file drops which are allowing students to upload. We might need to know the name of the assignment to work out any specific issues. If the students are trying to use FrogSnap to hand in work, then for the moment, only the iOS version allows them to take a photo and send it to an assignment. The Android version should be released in the next couple of months. However, students can use MyFrog and their phone's camera to submit photos on both Android and iOS. If you would prefer, I can drop you a line and we can look into this over the phone. Graham
  7. Hi Megan, You're not the first person to ask for this feature. It is a little tricky if pupils are handing in work but not actually uploading. One solution we've come up with is the Assignment Activity Hand-in report Frogcode widget: https://www.frogeducation.com/community/frogcode/frogcode-showcase/assignmentactivity Which was designed with pastoral staff in mind to be able to view individual students, their assignments and whether they were handing in work across all their subjects. One question I would ask you about the icon change you describe, is that if students hand in their assignment without uploading work to the filedrop, you still need to return the assignment to them to complete, so knowing that before opening the assignment doesn't seem like there's much benefit. This idea on the ideas portal addresses the issue another way: Filedrop - reminder for pupils prior to 'Handing in' if nothing has been uploaded https://ideas.frogcommunity.com/ideas/FRG-I-1420 Please feel free to log your suggestion on the ideas portal. Our product team run that environment, which ties directly into the product management software they use.
  8. I have managed to get Google Translate working with the HTML widget, if anyone would like to try it out and report back: <script> var google_translate_element, googleTranslate = document.createElement('script'); google_translate_element = $("<div>", { id: Frog.Utilities.generateSimpleId() }); window.setTimeout(function() { new google.translate.TranslateElement({pageLanguage: 'en'}, google_translate_element.attr('id')); }, 5000); googleTranslate.src = "//translate.google.com/translate_a/element.js"; document.head.appendChild(googleTranslate); arguments[0].append(google_translate_element); google_translate_element.addClass('translateBar'); </script> <style> .translateBar { position: absolute; top: 0px; right: 0px; } </style> Google seems keen to encourage users to run Google Translate directly in the Chrome browser, using the Google Translate extension: https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb You can share this link with parents, and all they need to do is click the button marked Add to Chrome. The extension will appear in their browser's toolbar and translate most text on all websites into their chosen language.
  9. The 21 users who logged in after midnight on New Year's Eve/Day ?
  10. I love this annual tradition. Huge jump in logins on Christmas Day and New Year's?!
  11. From the end of December 2020, Flash will be removed from Google Chrome, Microsoft Edge, OSX Safari and Mozilla Firefox. You will no longer be able to run any Flash files from your browser. Flash was a powerful tool for animations, games and interactive content, but unfortunately became a security risk. Once Adobe announced they were ending support for Flash, the browser companies took the decision to prevent it running. How does this affect my Frog platform? We’ve had plenty of time to prepare for Flash’s removal. Feedback - The audio recording tool in Feedback has been replaced. It works in the same way, but no longer requires Flash. FrogPlay Games - The Flash-based games have mostly been replaced and we’ve taken the opportunity to update the graphics and gameplay. There are a few games which will disappear in 2021 as they have not been rebuilt without Flash, so if anyone asks about them, this is why. Frog is continually developing new games, so keep an eye out for new releases in the new year. Media & SCORM widgets - The media widget does allow you to upload Flash files, so you may have uploaded content on your Sites which you will no longer be able to use. There’s nothing Frog Education can do about the decision to remove Flash unfortunately. From January 2021, you’ll see a warning message instead of the Flash file. Frog Admins – you may find it a sensible precaution to remove the ‘swf’ extension from the File Types whitelist to prevent users uploading Flash files. (click here for more information: https://www.frogeducation.com/community/training/administratortraining/systempreferences/filetypes). For further information on the deprecation of the Flash Player please refer to the link below: https://www.adobe.com/uk/products/flashplayer/end-of-life.html
  12. Honestly, it was unintended consequences. The My Child section loads in the separate Frog Application, My Child. This required its own child selector, so the original child selector was deprecated and no one anticipated that some parents would prefer the assignment list over the calendar.
  13. So we know that the latest version of the MyFrog app no longer lists assignments for parents. We added in the assignment calendar instead within the My Child section, but if you're in MyFrog and wanting a list of the work, it's not possible. On a desktop or logging into FrogLearn on your phone makes this simple enough as you have access to the Assignment menu in the FrogBar (and My Child's Work on a desktop). I've dug out some code from Chris Smith and adapted it for parents: <style> .row-template { display: none; } .assignment-widget-header { background-color: #231f20; padding: 1em; position: relative; text-align: left; } .assignment-widget-header::after { content: ""; width: 98%; height: 60%; position: absolute; top: 3%; left: 1%; border-radius: 5px; } .assignment-widget-header h1 { color: #fff; font-size: 20px; margin: 0; } .no-homework { padding: 1em; text-align: center; } .assignment-list { list-style: none; padding: 0 1em; margin:0 0 0 0; } .assignment-list :hover{ background-color:#ededed; } .assignment-list .assignment-link { border-bottom: 1px solid #ddd; padding: 10px 10px 10px 10px; margin: 0.5em 0; cursor: pointer; } .assignment-list .assignment-link p { margin: 0; } .assignment-list .assignment-link .assign-icon { width: 32px; height: 32px; display: block; float: left; margin-top: 2px; background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAgACADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDtfAvgzxT8eoW8W6j4l1meW+1Gb+0JYvEE9rFp0PmSYIhSRQkKJGQPU8euNH4N/DrQPFXxs8a6Hea54t8R+GdI8PrqVkLXxBqEcs7/AGmVCy7ZgzFkQKFJwTyBzXk/w/8AAvjDXtA05NG8W6nZQ6rPLYR2dtpsTxEtcOfJMh+8CVL4bsCegr0n4D/DPx1p/wC0B4w0WD4nz+GdU0vw7E15qaaXZzKY1upB5ZDAoFUgtuGDzg9K+TwdWUsY1zN6vvbytpY8LDzlLEWu3q+//DHRLqHwyYA/8Kn/AGgf+/8Aq/8A8l1p3Z0rwp4Hi+JXgKw+JHgjVNF8Q6fYTaf4zvb1o9SguJ4opEaC4lkDJtl4YYIZa7b7Vq3/AEeFpP8A4B6NXGfHDQ/E198KW1g/HiP4kaFa67pMVzp9pp1gImc30G0NLANylSytjPOOeDX1R7p4f8L/AI1eOfAPgxtL8P8Ah3WJrK6M6C5gltiu4zSDzYA0gZHwSmcZx26EdX+zh488QaD8aPEzQfCjxB4imuPDUVnc6PHPZiVY/tUu55PNlClWJZduScg5GOaZ4D+IWj/A2zufDXjXwu6eKtFvZprNru0nG2YSyeW5KqRLbkOJFwfvD8RqfAr45eGNM+OHjLxH4p8T3FjFrXhuO0/taGynVvtJuZWYIBEdrKrKRxjp1r5XB05Rxl5Rf2v5rLXz018jwsPFrEarv30/T7j1UabonT/hiuT/AMAtC/8Aj1ct8ZPEFxpfwnfQdN/Z+1L4X6Pe69pM9zfxjTYrZZFvoMM6W8pYs21UB2nqM4FKPEnwz/6Oo+Kf/fw//INTa94h8P8AjjwHB8OPA/j3xb8WfEWteIdNu/P12GR/7Ot4LiKWV3l8iNUiCxHrklnGK+qPdP/Z) no-repeat; } .assignment-list .assignment-link .assign-details { padding: 0 1em; float: left; } .list-header { width: 100%; height:50px; line-height:50px; vertical-align:top; padding-left: 20px; box-sizing: border-box; background-color: #0497da; border-top-left-radius: 6px; border-top-right-radius: 6px; border: 1px solid #cccccc; border-bottom-width: 0; color: #ffffff; font-size:12pt; background: #0497da; /* Old browsers */ background: -moz-linear-gradient(top, #0497da 0%, #0064cd 100%); /* FF3.6-15 */ background: -webkit-linear-gradient(top, #0497da 0%,#0064cd 100%); /* Chrome10-25,Safari5.1-6 */ background: linear-gradient(to bottom, #0497da 0%,#0064cd 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0497da', endColorstr='#0064cd',GradientType=0 ); /* IE6-9 */ } .list-body { background-color: white; border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; border: 1px solid #cccccc; border-top-width: 0; } </style> <div class="Assignments"></div> <script> var getHTMLElem = this.element.find('.Assignments'); var getAssignments = function(child) { var assignments = FrogOS.fdp({ url: 'assignment/getAssigned', data: { status: 'closed', limit: 15, order: 'start desc', assigned_user: child.uuid } }); assignments.done(function(data) { var assignments = data.response.assignments, assignment; for (var uuid in assignments) { if (assignments.hasOwnProperty(uuid)) { assignment = assignments[uuid].assignment; getHTMLElem.find('.assignment-list'+child.uuid).show(); var assignSubject = '<p><strong>' + assignment.subject.name + '</strong></p>'; var assignTitle = '<p>' + assignment.name + '</p>'; var assignEnd = '<span style="color: red;"><strong>Due: ' + moment(assignment.end, 'X').format('Do MMM YYYY') + '</strong></span>'; var assignLink = assignment.link; var activity = ' | Activities done: <b>'+assignments[uuid].activities.complete+' / '+assignments[uuid].activities.total+'</b>'; var status = ' | Status: '; switch(assignments[uuid].user_info.status) { case 'notdone': status = status+' Not done'; break; case 'ontime': status = status+' Handed in'; break; case 'late': status = status+' Late'; break; default: break; } var liElem = '<li class="assignment-link clearfix" data-assignment-link="' + assignLink + '"><div class="assign-icon"></div>'+ '<div class="assign-details">' + assignSubject + '' + assignTitle + '' + assignEnd + activity + status +'</div></li>'; getHTMLElem.find('.assignment-list'+child.uuid).append(liElem); } } }); }; $(getHTMLElem).on('click', '.assignment-link', function(el){ $(this).trigger('os.app.siteviewer', { data: { site: el.currentTarget.dataset.assignmentLink } }); }); Frog.Model.api('users.getChildren').done(function(listResponse) { var children = listResponse.data; $.each(children, function(index,child) { getHTMLElem.append( '<div class="list">'+ "<div class='list-header'>"+child.displayname+"'s recent homeworks</div>"+ '<div class="list-body">'+ '<ul class="assignment-list assignment-list'+child.uuid+'" style="display: none;"></ul>'+ '</div><hr>' ); getAssignments(child); }); }); </script> I'll most likely turn this into a widget at some point, but in the meantime adding this to the Parent Portal will list each child and all their assignments. Change the limit from 15 if that's not enough.
  14. It is for the My Child and My Learning sections. In Groups and Policies, edit the profile and then expand Apps then expand My Child / My Learning. In there you can turn off each section. You cannot hide the assignments or calendar from the main menu though.
  15. That doesn't sound right at all. I'll create a ticket for you and have one of the support team take a look at what's happening
  16. We certainly can help you decorate your Frog. Although you will need the HTML widget. Click here to find out more about that. Festive Options (All the items here link to posts in this thread) Falling Snow and Christmas Lights (this post) Falling Snow with a slight outline (good for sites with white backgrounds) Flying Santa Glitter / Sparkling text Falling leaves Jubilee Bunting There is also an Advent Calendar site available from the FrogStore! Falling Snow To add animated snow to your school dashboards, copy this code and paste it into an HTML widget on your first dashboard: <script> var wA = [], sA = [10,11,12], tA = [2,4,6,8,10,12,14], fA = ['&#10052;', '&#10053;', '&#10054;']; function r(a) {return a[Math.floor(Math.random() * a.length)]} for (var i = 0; i < $(window).innerWidth(); i++) {wA.push(i)} for (var i = 0; i < 15; i++) {$('<div class="s-fl" style="position: fixed; color: #fff; top: -20px; left: '+r(wA)+'px; font-size: 20px;">'+r(fA)+'</div>').appendTo(this.element.closest('.app-sites'))} $('.s-fl').each(function(){ var el = $(this) setTimeout(function(){ el.animate({'top' : '100%'}, r(sA) * 1000, function(){ $(this).css('top', -20); setInterval(function(){ el.animate({'top' : '100%'}, r(sA) * 1000, function(){ $(this).css('top', -20); })}, r(tA) * 1000); }) }, r(tA) * 1000); }); </script> Christmas Lights To add flickering lights across your FrogBar, we can thank @Sean_M and @pconkie : <style> .ui-theme-basicnavigation-wrapmain {overflow-x: hidden;} body { background: #000; } .lightrope { text-align: center; white-space: nowrap; overflow: hidden; position: absolute; top: -65px; left: -660px; z-index: 1; margin: 0 0 0 0; padding: 0; pointer-events: none; width: auto; } .lightrope li { position: relative; animation-fill-mode: both; animation-iteration-count: infinite; list-style: none; margin: 0; padding: 0; display: block; width: 12px; height: 28px; border-radius: 50%; margin: 20px; display: inline-block; background: rgba(12, 236, 65, 1); box-shadow: 0px 4.6666666667px 24px 3px rgba(12, 236, 65, 1); animation-name: flash-1; animation-duration: 2s; } .lightrope li:nth-child(2n+1) { background: rgba(255, 236, 122, 1); box-shadow: 0px 4.6666666667px 24px 3px rgba(255, 236, 122, 0.5); animation-name: flash-2; animation-duration: 0.4s; } .lightrope li:nth-child(4n+2) { background: rgba(220, 0, 77, 1); box-shadow: 0px 4.6666666667px 24px 3px rgba(220, 0, 77, 1); animation-name: flash-3; animation-duration: 1.1s; } .lightrope li:nth-child(odd) { animation-duration: 1.8s; } .lightrope li:nth-child(3n+1) { animation-duration: 1.4s; } .lightrope li:before { content: ""; position: absolute; background: #222; width: 10px; height: 9.3333333333px; border-radius: 3px; top: -4.6666666667px; left: 1px; } .lightrope li:after { content: ""; top: -14px; left: 9px; position: absolute; width: 52px; height: 18.6666666667px; border-bottom: solid #222 2px; border-radius: 50%; } .lightrope li:last-child:after { content: none; } .lightrope li:first-child { margin-left: -40px; } @keyframes flash-1 { 0%, 100% { background: rgba(12, 236, 65, 1); box-shadow: 0px 4.6666666667px 24px 3px rgba(12, 236, 65, 1); } 50% { background: rgba(12, 236, 65, 0.4); box-shadow: 0px 4.6666666667px 24px 3px rgba(12, 236, 65, 0.2); } } @keyframes flash-2 { 0%, 100% { background: rgba(255, 236, 122, 1); box-shadow: 0px 4.6666666667px 24px 3px rgba(255, 236, 122, 1); } 50% { background: rgba(255, 236, 122, 0.4); box-shadow: 0px 4.6666666667px 24px 3px rgba(255, 236, 122, 0.2); } } @keyframes flash-3 { 0%, 100% { background: rgba(220, 0, 77, 1); box-shadow: 0px 4.6666666667px 24px 3px rgba(220, 0, 77, 1); } 50% { background: rgba(220, 0, 77, 0.4); box-shadow: 0px 4.6666666667px 24px 3px rgba(220, 0, 77, 0.2); } } </style> <ul class="lightrope"> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
  17. Hi everyone, We're continuing our regular webinars with the next one being 8th December. The focus this time is all about the tools in Frog, including the Frog Academy and a preview of what's coming next. I'll also be running a workshop on ePortfolios. https://www.frogeducation.com/community/events/calendar/workshops-dec20 We're going for a Meet-Share-Learn type experience, so if anyone would like to take to the stage to show how they have been using Frog recently, drop me a line and I'll make sure you're included. Graham
  18. This widget was the brainchild of @ADT - it allows a logged-user to add themselves to a specified group. It also works with External Profiles, so FrogConnect users can add themselves to a group on your MAT Portal. Join a Group gets you to specify a group in the editor, using the standard group selector. Then when a user visits the page, they are able to click a button and are automatically added to the group. Features: Select either a button, upload an image to act as a button or silently add the user when the widget is loaded. Set the site to refresh after adding, so that any Rules based on groups run. Ideal for club sites where there is a hidden members area. Send a message to a specified email address when someone joins the group. Works with FrogConnect’s External Users too. This feature allows you to add your connected schools to school-based groups on your central hub. Note: MIS-linked groups will not work with this widget, which is to be expected. https://www.frogeducation.com/community/frogcode/frogcode-showcase/join-group
  19. Ah - my mistake - that option is only visible to the Support account. Let me look into it.
  20. Hi @Chris Goluch, I've asked one of our developers to respond to your more technical questions, but I can answer the product roadmap-type ones. Frog's front-end was designed around security. No front-end tools have direct access to the databases - all access is through API requests. This makes Frog very secure, for instance, you cannot send a "Delete Tables" query. But it does mean that any data you wish to retrieve needs to have an API you can use to get it first. Connecting to a 3rd-party database is awkward, because you need somewhere to store the secret keys, which is not possible without a major reworking of customer access to the data. This was actually looked into, but the work involved was extensive and there just hasn't been that many schools asking for it. It's a sad fact that there's not many @Chris Goluch in our schools. We have to focus on features the majority will make use of. Adding a database to FrogCode is a feature I would like to see, but we already have the Forms for secure data and the Data-Store. both of these tools are accessible to FrogCode. I'd be happy to share with you what I know about how to access and write to them. We made the decision at the start of the year to look again at FrogCode, but then the world changed and priorities rightly shifted. We do support it and maintain it, but the main focus is on stability. I recommended leaving the Beta tag on the title for this reason. It's a work-in-progress, just like the widgets it makes.
  21. In FrogDrive > FrogCode, you should be able to select a widget project and use the delete option on the Action Cog
  22. In the Developer console, it's reporting that it cannot find the main.ehs widget. Which is really strange, but the other widgets preview fine. Best guess is that something corrupted on making the widget - you might be better off starting fresh
  23. Oh - sorry @pconkie - i didn't see your message. Glad you got it sorted though.
×
×
  • Create New...