I have released a significant update of the Jmol (JSmol) filter for the interactive display of 3D chemical structures. This fixes some long-standing issues and adds a range of new features and performance/usability improvements. Here is a brief list of changes. If required, can elaborate on these in this forum or in Moodle Docs.
Each iframe is resizeable (click-and-drag bottom right hand corner) and can also be toggled to full-screen display.
Chemical structure file handling
The filter now works with a range of text or binary format structure files, irrespective of the client web browser (recent HTML5-capable versions of Firefox, Chrome, Opera, Safari, Internet Explorer and Edge should all work). This involves the automatic copying of the relevant structure files from the Moodle file system to the Jmol filters own 'cache' in /filter/jmol/temp. Files in the cache are automatically updated or deleted as appropriate. This enables consistent cross-browser functionality with binary files such as compressed PDB (.pdb.gz), PyMOL session files (.pse) and PNGJ (e.g. .mol.png, .cif.png or .pdb.png).
Hence PNGJ files are fast becoming the recommended default for use with Jmol/JSmol. I routinely use .mol.png files for simple inorganic and organic chemical structures, .cif.png files for crystal structures and .pdb.png files for biopolymer (protein and nucleic acid) structures. Appropriate controls for each of these file types are displayed in a panel underneath the structures. A Jmol popup menu can also be displayed by right-clicking the Jmol instance. If the popup menu is obscured, the containing iframe can be resized or displayed full screen.
The controls also allow some performance improvements, e.g. wireframe rendering during rotation which may help on some mobile devices.
This has been extensively tested on Moodle 2.9 but should also work with earlier versions (2.8? 2.7? earlier?). However, due to the significant refactoring, I have currently marked this as a Beta release. So, it is best installed on a development server in the first instance.
Happy to receive feedback, bug reports, feature requests etc - either in reply to this post or as GitHub issues