Jump to content

Graham Quince

  • Posts

  • Joined

  • Last visited

Everything posted by Graham Quince

  1. I know a few schools have made secure requests - the school I used to work at used PHP and a session cookie on Frog login to authenticate the user into the intranet environment. Every intranet page which loaded then checked the session cookie. I think @pconkie has also explored this too. If you can't get anywhere with direct authentication, I created the Data to Form widget to allow you to import any spreadsheet into one of our forms and use the form's Access Control to act asa secure db. https://schools.frogeducation.com/community/training/frogcode/a-f/data-to-form
  2. Are you wanting to create a "login via Frog" button for your website? I checked with one of our developers and you might be able to put something together by creating an app and intercepting the auth requests. Problem is we only currently support OAuth1 and not OAuth2. These two github pages might help: https://github.com/frogeducation/oauth-php-example https://github.com/frogeducation/oauth-js-example
  3. Hi @ann Try this variation: <script> /* snow flakes */ 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="text-shadow: 2px 2px black; 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> I've added a text-shadow to each snow flake: text-shadow: 2px 2px black;
  4. Just had a quick look on your platform and I couldn't spot the code. Have you removed it?
  5. Hi @gbligh You need to change the theme name on the top line. change: .ui-theme-basicnavigation-wrapmain {overflow-x: hidden;} to this: .ui-theme-pageicon1-wrapmain {overflow-x: hidden;}
  6. I think all the included subjects have the same UUID across platforms, so this list might make things easier: Activity option[value="B939F08620031500DAB86FB96C4BA40D0D1B92EC7677D491"], Art and Design option[value="91364E8D20031F44E5244F062C65370F4736605C0C4B293B"], Chemistry option[value="CD762717200313840B86EF50FC38E601B5D6B6CC58F31D03"], Citizenship option[value="915A2B0620031C89E9285FE88413E90EE51BCC6CB0055C68"], Classics option[value="91364E9A200315B7F0258FCBBA46CC0686964E3C90F3007D"], Communication and Language option[value="915A2B0C20031111E9EA8FDA55AE020EE8B93A6C2A1B3B83"], Creative Development option[value="915A2B112003128D14F1CF3F351B3A045DEC1D2CDC49578E"], Critical thinking option[value="91364EA020031B8E8A2B1F70D3881D01CFCC93EC4EB30AC3"], Design and Technology option[value="91364EA52003124301368FBB9E1BA507F4637AAC99DFE21D"], Development Matters option[value="71172E6020031B664A668FE22D2EAC000E69577CBEDE8156"], Drama, Theatre and Dance option[value="91364EAA20031758394D2FD216679A0DB2E89F6C28890974"], Engineering option[value="91364EB920031267045DFF90CDE6D40C7DB6F28CF53DD93F"], English option[value="91364EAF20031403D0DDBF34E5065C0179757BCC6529343C"], Enrichment studies option[value="91364EB4200314FE2A43EF9E3B15A80650724EECF7C20C62"], Expressive Arts and Design option[value="330041332003118293577F8641DFC8097E9AD92C8868F6CC"], Food option[value="498BA13820031E4FFC516F33F72DD10BEF663A2C4D56601F"], French option[value="C541A6052003149A90BF5F69F03D7B0AF42C7DACE598665C"], Geography option[value="91364EBD20031714E63CCF67478DE90B537717AC3FF40642"], German option[value="C547CC8720031ACDD1828FE40D927203208F9D5C77880F42"], Government and Politics option[value="91364EC2200319876ECE3F589C8F6B071134BE0C28FA2A9F"], History option[value="91364EC720031934250A2F97CF3BD40F4596C49CA98D361E"], Hospitality &amp; Tourism option[value="9BAB2A03200317EC3A5D6F94C81917057113999CFEA7D7A5"], ICT option[value="915A2B2920031E70B3AC1F96FBEEDF0B2874743C42D1E95A"], Languages option[value="A70A9AD12003119ABF176F744DB98508D503D5CC1D97A207"], Latin option[value="91364ED620031CC91D128F788F86C9047F4E0DAC1503B330"], Law option[value="91364EDB20031B535809DF0BA64941011103089C80143E0D"], Literacy option[value="915A2B2E2003165CF1405FA75F99C008B8F30F6C0158C705"], Literacy & Numeracy (Functional Skills) option[value="91364EE020031FB6E898DFD3F0CAAC02C074502CED526516"], Mathematics option[value="91364EE520031CB80E753FE310D95207FE0C6B1CECB022E9"], Media option[value="91364EEA20031DC7FB24BF6E77DC690E25B80CAC6ADC9609"], Modern Foreign Languages (MFL) option[value="91364EEF200314315AA34F77CEA240007F2E21BC2A7A9462"], Music option[value="91364EF32003198650DEEFC3D3A685080A7F2DEC93937A52"], No Subject Selected option[value="736CB4D82003183B060EEFE86B52FF015FC320CC7689DB25"], Other option[value="91364EF8200315B9E2860F434EE3E1095264861C43D05233"], Personal, Social and Emotional Development (PSED) option[value="915A2B4720031B1C381E7FAFEEDAD10555CF820C29BC92F7"], Personal, Social Health and Economic Education (PSHE) option[value="91364F0C20031C9563355FC19480C60AD799839C8BC7AF1F"], Philosophy &amp; Ethics option[value="91364F0720031E29A7200FAEC904A1024EB1F51CD05050E4"], Physical Development option[value="B939F09820031844ED411F20FCFEFA0AA0354FCC33460AEB"], Physical Education option[value="91364F0220031EA4CC72EF5DED3B7303EE1B4DDC29ED6CC7"], Physics option[value="CD76271F2003168C0F573F726CE8DA0EC3E46F0C57AD3809"], Problem Solving, Reasoning and Numeracy (PSRN) option[value="915A2B5120031AC78A95BF7656C8BC06EFBACF7CCCEEB770"], PSHE and Citizenship option[value="2511BFEC20031075E7A8BF034B65C40006CEEA6CA07651E3"], Psychology option[value="91364EFD20031EED04EF2FB13DB3110E6811438C07740894"], Reading option[value="A6C4DB8F200316613650CF995B835C06B47CA22CDAAC2F62"], Religious Education option[value="91364F10200311CB5E9F8FA0E944FB023330F7FCF9E81997"], Science option[value="91364F1520031DB70162AFEE72134306E4B0D0CC582444B7"], Sociology option[value="91364F1A20031A1604F3AF34159F390B3DD468EC1F257E34"], Spanish option[value="C54D934620031A29E5707F5D32FD2E0E59752CAC2B3278D8"], Understanding the World option[value="915A2B602003141F09682FB6F9441D0B2EC6135C65FA04B9"], Vocational Studies option[value="91364F1F2003173A8E190FD8932DF20BAB9FC05C893524CD"], Writing option[value="A6C4DB9E200311439945EF32051D26058C06563C5CA2D536"],
  7. Just been helping a school who wanted help hiding a subject as it was causing confusion. As you know, the assignment wizard comes pre-populated with 45 subjects you cannot hide. I didn't think it was possible, but it is (or appears to be) to use CSS to hide the options. Drop this code onto your staff dashboard: <style> /* Hide Assignment Subject options*/ option[value="SUBJECT_UUID"], /* Bus&Economics */ option[value="SUBJECT_UUID"] /* Law */ { display: none !important; } </style> To get an option UUID, it's probably simplest to: right-click on the subject dropdown in the Assignment wizard and choose Inspect. Expand the line: <select class="input-fill" data-attr="subject"> Each subject will be listed with their UUID as the value I've only just tried this, let me know if it works or you run into any issues.
  8. Thanks George. Including the new requirement for second-hand?
  9. I saw on Schools Week that there's new guidance been released regarding uniforms: https://schoolsweek.co.uk/new-uniform-guidance-what-schools-need-to-know/ Including a requirement about second-hand clothes being made available. I started to think if this was something Frog could help with, maybe a site with a form, possibly some HTML to update the stock? Does anyone have a uniform site already? Is there anything else I should think of including?
  10. @ADT - well this thread talks about Adam's custom widget, so I was just checking. Have you reported it to the service desk?
  11. Is that just the regular create event widget?
  12. Glitter Text A less distracting option for the festive season is: Hard to depict in a screenshot, but the white dots twinkle / sparkle. To change the message, simply adapt the line: <h1 class="christmas">Seasons Greetings!</h1> Here's the full code: <style> @import url(https://fonts.googleapis.com/css?family=Mountains+of+Christmas:700); .christmas-blue { color: #035ee2; background: -webkit-linear-gradient(transparent, transparent), url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/191814/blue_glitter.gif) repeat; background: -o-linear-gradient(transparent, transparent) !important; -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; margin: 0; padding: 0; font-weight: 900; width: 100%; text-align: center; letter-spacing: 1px; z-index: 999999; -webkit-background-clip: text; } .christmas-gold { color: #D81E1E; color: gold; background: -webkit-linear-gradient(transparent, transparent), url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/191814/gold_glitter.gif) repeat; background: -o-linear-gradient(transparent, transparent) !important; -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; margin: 0; padding: 0; font-weight: 900; width: 100%; text-align: center; letter-spacing: 1px; z-index: 999999; -webkit-background-clip: text; } .christmas { font-size: 100px; line-height: 100px; text-align: center; color: #000000; font-family: 'Mountains of Christmas', cursive; } </style> <h1 class="christmas">Seasons Greetings!</h1> <script> var christmasText = arguments[0].find('.christmas'); function glitterLetters() { christmasArray = christmasText.text().split(''); christmasText.empty(); for (var i = 0; i < christmasArray.length; i++) { christmasText.append( '<span class="christmas-' + (i % 2 == 0 ? 'gold' : 'blue') + '">' + christmasArray[i] + '</span>' ) } } glitterLetters(); </script>
  13. Flying Santa If anyone would like a Flying Santa for the Dashboards, then I found and adjusted the code below. To use, you'll need to upload a gif to somewhere on the same site, I prefer to use a Text widget for this, as you can right-click on the image and get the URL. Once you've copied the URL, you can hide the widget and add it to the code, like so: background: url('WEB_ADDRESS_OF_SANTA_GIF'); becomes: background: url('/app/file/asset/A273372C200303B6297B8F7901942B050783045C6F3B715C'); <!-- GIF from https://www.animatedimages.org/cat-santa-claus-359.htm --> <style> .ui-theme-basicnavigation-wrapmain { overflow-x: hidden; } .santa { background: url('WEB_ADDRESS_OF_SANTA_GIF'); animation-name: sleigh; animation-duration: 10s; animation-iteration-count: infinite; width: 350px; height: 120px; position: fixed; z-index: 1; -moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH"; } /* The animation code */ @keyframes sleigh { 0% { left: -550px; top: 0px; } 33% { top: 500px; } 66% { top: 100px; } 100% { left: calc(100vw + 350px); top: 0px; } } </style> <div class="santa"></div> I used this GIF: https://www.animatedimages.org/cat-santa-claus-359.htm Feedback from the team though was this was particularly distracting, if you alter the line to change the value of 10vw, you can increase the distance Santa flies so he is off screen longer. left: calc(100vw + 350px);
  14. Hi @Sue Busher Inspired by some other recent work, I've put together a new Academy product as a Staff Directory: There's an HTML widget which uses the Users API to display a table of all Staff, Admins and Governor profiles. It then cross-references a form staff need to complete so they tag their own department, room and extension. Being based in an HTML widget, it's simple to remove columns for photos etc... When Parents / Students view the same, they can only see the entries made in the Your Details form, so it will be sparse until most staff complete the form. There's the "Who has filled in my form?" widget so you can quickly see who you need to chase. The Your Details form allows staff to supplement their data (I've shortened the department list) for the screenshot. Staff can send a message if their name / email is wrong in Frog
  15. This bit of code took a lot more faffing than I was expecting, but I think it might be useful. Imagine you want to display a random tip from a bank of tips each time someone logs in: Add a noticeboard Hide the Refresh options Get the noticeboard's UUID and add the following code: <div class="styling"></div> <script> var noticeboardUUID = '5594BCA620028E9D37048F60FB777D056CBF7E6CC2DFC92B'; function shuffle(array) { let currentIndex = array.length, randomIndex; while (currentIndex != 0) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex--; // And swap it with the current element. [array[currentIndex], array[randomIndex]] = [ array[randomIndex], array[currentIndex]]; } return array; } arguments[0].find('.styling').append( '<style>'+ 'div[data-content-uuid="' + noticeboardUUID + '"] .notice-table {'+ 'display: none;'+ '}'+ '</style>' ); setTimeout(function(){ tips = $('div[data-content-uuid="' + noticeboardUUID + '"]').find('.notice-table'); var tipsArray = []; $.each(tips.find('.topic-row'), function (key, tip) { tipsArray.push( $(this).attr('class') ); $(this).hide(); }); shuffle(tipsArray); var classToShow = tipsArray[0].split(' '); tips.find('.'+classToShow[3]).show(); tips.show(); }, 3000); </script>
  16. I loved both of these ideas when Martyn shared them with me - which he did while working through the Frog Genius course.
  17. I've just had a thought. Frog's Calendars could actually serve this purpose. I could put together a widget which allowed the students to quickly add events to their calendar. I think they could delete and amend them directly AND if so, i could include a "tag" in the title to highlight when the item is completed. Teachers would be able to add To Do Events to their class (probably) and be able to view all the events for a student either by going to My Class. and viewing their calendar or it would be simple enough to build in a listener for the User Select widget. Does this cover everything a To-Do List / Student-compete Planner needs to do?
  18. Just in time for autumn, I've adapted @Sean_M's code for falling leaves: <script> var widthArray = [], sA = [10,11,12], timeArray = [2,4,6,8,10,12,14], sizeArray = [20,30,40], coloursArray = ['#B31218','#FFB900','#A29A0F','#E28204','#D83708'], leafArray = ['&#127809;', '&#127810;', '<i class="fa fa-pagelines"></i>','<i class="fa fa-leaf"></i>']; function randomise(arraytoUse) { return arraytoUse[Math.floor(Math.random() * arraytoUse.length)]; } for (var i = 0; i < $(window).innerWidth(); i++) { widthArray.push(i) }; for (var i = 0; i < 15; i++) { $('<div class="leaf" style="position: fixed; color: '+randomise(coloursArray)+'; top: -20px; left: '+randomise(widthArray)+'px; font-size: '+randomise(sizeArray)+'px;">'+randomise(leafArray)+'</div>').appendTo( this.element.closest('.app-sites') ) }; $('.leaf').each(function(){ var el = $(this) setTimeout(function(){ el.animate({'top' : '100%'}, randomise(sA) * 1000, function(){ $(this).css('top', -20); setInterval(function(){ el.animate({'top' : '100%'}, randomise(sA) * 1000, function(){ $(this).css('top', -20); })}, randomise(timeArray) * 1000); }) }, randomise(timeArray) * 1000); }); </script>
  19. Graham Quince


    Yes, please. The Service Desk will need to configure the settings in Frog and I think they also have to contact SchoolCloud to have them configure settings.
  20. Graham Quince


    Just Staff SSO, I'm afraid.
  21. Hi, We are aware of this issue, and it's been addressed. Unfortunately the fix does require an update to your platforms as well as a release to the app. It's expected to be out in the next update. It's currently in testing.
  22. it came very close, but all the extra requirements you added meant it was becoming too difficult to debug - so I gave up. Sorry.
  23. Yeah - this is why I need help testing it - I need real world examples so I can spot the differences in the API returned data. I know I could ask the Devs, but they are pretty busy at the moment.
  24. Send me a message to where it is. Did you set the UUID?
  25. The above code works for FrogCode widgets, this code works for the HTML widgetL <script> $('div[data-content-uuid="SELECT_USER_WIDGET_CONTENT_UUID"]').on('broadcast.selectedUser',function(el, ev) { console.log(ev); console.log("user name = "+ev.model.displayname); console.log("user uuid = "+ev.model.uuid); }); </script>
  • Create New...