Jump to content

Graham Quince

  • Posts

  • Joined

  • Last visited

Personal Information

  • School
    Frog Education

Recent Profile Visitors

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

Graham Quince's Achievements

  1. Hi Dean, Sorry, I've been away (and hoped someone else would have responded - oh well) We did use to offer a FrogCode widget which was a page changer, unfortunately this stopped working (and I couldn't figure out why). The Image Carousel is probably the best option these days. Add the widget to a page and point it to the site's timeline. Then any image you send to the site will appear. (I'd suggest using PowerPoint to make the slides and the "save as image" option. To hide the cookie warning, something like: <style> .cookie-consent-footer { height: 0% !important; } </style> Should do the trick on an HTML widget on the site.
  2. Remove the lines that end in (4) But make sure your last time includes a comma
  3. Our fantastic FrogStore's new home is packed with easy-to-use, pre-built resources to make your life easier. All the themes, teaching resources, widgets and academy products are now in one place so you can browse and explore the content easily. The teaching resources have all been submitted by our schools and we’ve spent a little bit of time making sure all the sites available are up to date. You can browse examples before installing. The support team will install any resources on request to ensure each resource is in working order. See the new FrogStore in action here!
  4. Something like this: <style> .policy_doc { border: 1px solid #CCCCCC; margin-bottom: 10px; padding: 5px; border-radius: 5px; background: #FFFFFF; color: #000000; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .policy_doc:hover { background: #dddddd; } .policy_icon { font-size: 20px; margin-right: 10px; margin-left: 10px; position: relative; top: 2px; cursor: pointer; } .policy_print { margin-right: 0px; } .file_name { font-size: 16px; font-weight: bold; } .date { font-size: 10px; } </style> <div class="file_list"></div> <script type="text/javascript"> var forceDownload = '?mode=download'; var fileList = arguments[0].find('.file_list'); var baseURL = Frog.Utilities.getBaseUrl(); var imagebank = baseURL+'/app/public/sprite/os-icon-ext/sprite.png?v=2106_0_15'; var fileDropUUID = 'FILE_DROP_UUID'; Frog.Model.api('filedrop.get', { filedrop: fileDropUUID }).done(function(filesResponse) { var files = filesResponse.data.resources; files.sort((a, b) => (a.file.name > b.file.name) ? 1 : -1); $.each(files, function(index, file) { if (file.deleted == '0') { var nameToShowArray = file.file.name.split('_'); var nameToShow = nameToShowArray[0]; var dateAdded = moment(file.date).format('DD/MM/YYYY'); fileList.append( '<div class="policy_doc">'+ '<div class="content-wrapper">'+ '<div class="">'+ '<span class="fa fa-file policy_icon"></span>'+ '<span class="file_name">'+nameToShow+'</span>'+ '<span class="ff-print-mono policy_icon policy_print" data-name="'+nameToShow+'" data-filelink="'+file.file.uuid+'"></span>'+ '<span class="ff-download-mono policy_icon policy_dl" data-name="'+nameToShow+'" data-filelink="'+file.file.uuid+'"></span>'+ '<span class="date">Updated: '+dateAdded+'</span>'+ '</div>'+ '</div>' ); } }) }); $(fileList).on('click', '.policy_dl', function(el){ Frog.Utilities.download( baseURL+'/app/file/resource/'+el.currentTarget.dataset.filelink + forceDownload,true ); }); $(fileList).on('click', '.policy_print', function(el){ Frog.Utilities.download( baseURL+'/app/file/resource/'+el.currentTarget.dataset.filelink,true ); }); </script>
  5. @C Wilson - yeah unfortunately no Frog Tags, but that's partly why I created the Data-to-Form widget, so we could get that functionality from Frog3 back.
  6. I think CSS is probably the way to go. If you add the subject headings to the table cells as a class, you should be able to hide them, something like: $.each(data, function(index1, datum) { var subjectClass= index1.replace(' ',''); if (index == 0) { myDataDiv.find('.hwheading').append('<th class="'+subjectClass+'">'+index1+'</th>'); } if (datum) { myDataDiv.find('.row'+index).append('<td class="pastel_'+index1+' '+subjectClass+'">'+datum+'</td>'); } Alternatively, you should be able to add an option into the If statement to determine if it should draw the heading and cell: if (index == 0 && datum) { myDataDiv.find('.hwheading').append('<th class="'+index1+'">'+index1+'</th>'); } if (datum) { myDataDiv.find('.row'+index).append('<td class="pastel_'+index1+'">'+datum+'</td>'); }
  7. Hi @Marcus Goluch This is a tricky one - I've checked but we would not provide any configurations as it can cause issues if not done correctly. Our advice is to leave Frog as it is, with ports 80 and 443 open directly to the server. Without these, we cannot provide support or updates.
  8. Try this, on the site in an HTML widget: <style> .modal { width: 90% !important; left: 20% !important; } </style>
  9. Here's a much neater, combined version both for students (and for staff to use with the user picker widget): <style> .my_data { border-radius: 6px; border: 1px solid #cccccc; padding: 10px; text-align: left; font-size: 19px; line-height: 25px; } </style> <div class="my_data"></div> <script> var myDataDiv = arguments[0].find('.my_data'); var FORM_UUID = 'FORM_UUID'; var USER_FIELD_UUID = 'USER_FIELD_UUID'; // Field value for the User ID, you may need to check the Developer console to confirm this UUID var user = FrogOS.getUser(); function getEntries(userUUID) { myDataDiv.empty(); var apiData = { content_uuid: FORM_UUID, current_user_only: false, form_uuid: FORM_UUID, limit: '5', module: 'form', offset: '0', sort_dir: 'DESC', sort_field: 'date' }; if (user.profile.name == 'Staff' || user.profile.name == 'Admin') { apiData.filters = [{ field_name: USER_FIELD_UUID, value: userUUID }]; } Frog.Model.api( 'dataviewer.gettable', apiData ).done(function(response) { var personalData = response.data; $.each(personalData, function(index, entry) { var data = entry.fields[1].responses[0].response; data = JSON.parse(data); $.each(data, function(index, datum) { if (datum) { // if (index == "Score" || index == "Grade") { // should you wish to only return some fields myDataDiv.append( index+ ': '+ datum+ '<BR>' ) // } } }) // end of data $.each }); // end of personalData $.each }).fail(function(e) { // Report Error console.log("failed to load data"); }); }; getEntries(user.uuid); $('div[data-content-uuid="75BD91D02002887198A0CF29FBAE2E0C598CBA9CDECD6026"]').on('broadcast.selectedUser',function(el, ev) { var user_uuid = ev.model.uuid; getEntries(user_uuid); }); </script>
  10. I thought you used @pconkie's version which didn't require dates.
  11. When you say Progress Reports, are these through SIMS Linked Documents or elsewhere?
  12. This widget uses the similar APIs - It's calling for an awful lot of data (every assignment for every student) and I suspect it would crash too.
  13. Hi @deanmoulder I think it's likely Microsoft have introduced a change. Joy. I do know that the maximum any file can have an open link is 12 months. Could that time have expired? We're probably going to need to look at it together. Drop me an email and we can book in a call. Graham
  14. Great idea @Sue Busher I've taken a crack at this, based on @Sean_M's christmas lights JUBILEE BUNTING https://concept-demo.frogos.net/bunting The hardest bit was getting an image - in the end I made this one myself by cropping a royalty-free image: <style> .ui-theme-basicnavigation-wrapmain {overflow-x: hidden;} body { background: #000; } .bunting { 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; } .bunting li { position: relative; list-style: none; margin: 0; padding: 0; display: block; width: 59px; height: 75px; margin: 20px; display: inline-block; background-image: url('IMAGE_FILE_URL_GOES_HERE'); } .bunting li:after { content: ""; top: -12px; left: 54px; position: absolute; width: 52px; height: 18.6666666667px; border-bottom: solid #222 2px; border-radius: 50%; } .bunting li:last-child:after { content: none; } .bunting li:first-child { margin-left: -40px; } </style> <ul class="bunting"> <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> Things to Note: This code is set to work on the default clouds theme. Just swap in the theme class at the top to prevent scrollbars Upload the pennant.png file to a text widget (easiest way to get the URL) and replace the placeholder code in the section .bunting li section background-image: url()
  15. Hi Sue, The Text widget can display some special characters, but that does depend on the fonts available (I think). This website is pretty handy for finding then copying and pasting icons: https://copychar.cc/ I find that if I make each link it's own single-celled table, it becomes easy to copy and paste and retain the layout. If you're trying to tidy up your policy pages, I recently posted this code: This doesn't look identical to yours, but it's all in HTML so can be adapted easily enough. The benefit of the HTML solution is that you can use both Frog's icons as fonts and we import FontAwesome, which is packed with icons. Graham
  • Create New...