diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1f9c11fe5..f69ca01b8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,6 +19,7 @@ repos: - id: check-merge-conflict - id: end-of-file-fixer + exclude: \.json$ - id: mixed-line-ending args: [--fix=lf] - id: trailing-whitespace @@ -78,3 +79,11 @@ repos: pass_filenames: false language: script files: ^installer/config.yml$ + + - id: legacy-assets-checksum-update + name: legacy-assets-checksum-update + description: Update legacy assets checksum + entry: legacy/tools/assets-checksum-update.py + pass_filenames: false + language: script + files: ^legacy diff --git a/legacy/application/assets.json b/legacy/application/assets.json new file mode 100644 index 000000000..1cb0fd3cd --- /dev/null +++ b/legacy/application/assets.json @@ -0,0 +1,183 @@ +{ + "css/add-show.css": "1e89417870f9df366e72c436a3ef70c5", + "css/addmedia.css": "9b43917930fe9964e612e29451971829", + "css/bootstrap-3.3.1.min.css": "52153ebe5a0a0710a30e79281fe02af7", + "css/bootstrap-datetimepicker.min.css": "51fe9f67f01a852ea2cc10bc2cc15534", + "css/bootstrap.css": "fa73bb3d655ac6f52673f440e1058afd", + "css/colorpicker/css/colorpicker.css": "9de4d23a73575b4fe65dd8ae028727f1", + "css/dashboard.css": "17cb4aed5fa763fb303534a3aa60bd16", + "css/datatables/css/ColVis.css": "2c44752e3213cb5f1bb04c9d96dc796e", + "css/datatables/css/dataTables.colReorder.css": "ce3d6b98f7dff176c5e2b41b81400b0d", + "css/datatables/css/dataTables.colReorder.min.css": "e8038cbcbc4aadc9d8aeb58bb794b87a", + "css/datatables/css/jquery.dataTables.css": "a6428b46d65925d65b3a87687e4c1e8f", + "css/datatables/css/jquery.dataTables_themeroller.css": "87ef2122a6a0eee508d0c452b95303f8", + "css/dropzone/dropzone.min.css": "2f735dbf472afcd77604ecf439319f7b", + "css/embed/weekly-schedule-widget-basic.css": "2c3e4ea9fdb25caa66336e596d8019d8", + "css/embed/weekly-schedule-widget.css": "28119e7380b4f3d96078c1478218427a", + "css/fullcalendar-old.css": "e0ca5c5fe3acbd2886fc121b7200155e", + "css/fullcalendar.css": "079e686558001498dfd8951a241ea255", + "css/history_styles.css": "ae370a69cb5f44c8280c857dc11be6b3", + "css/jquery-ui-timepicker-addon.css": "7335e88549142fe732f7697f7d556a0b", + "css/jquery.contextMenu.css": "70348e70bee43196079b5d965dd9b928", + "css/jquery.ui.timepicker.css": "b4ad177f9f7e3793e3cf270847bf3c5a", + "css/landing-page.css": "8a94f1d65200ad519d025362b8386ea4", + "css/library_search.css": "3f6f8edc3af1d11f4fb01fa2367e3352", + "css/masterpanel.css": "693eac9f5f529c33a04a5a015c1da0da", + "css/media_library.css": "e1982d1f673543f7730898fb49450f8b", + "css/player-form.css": "e08a4545715fc56b75c845b44a5b2a1c", + "css/player.css": "904bc7aede4d5f0372468528d88094f1", + "css/playlist_builder.css": "e92ef56ddffca440a7741934edbb7f7f", + "css/playouthistory.css": "983cc1bac566b18b745b6e0da9ef3c0c", + "css/plupload.queue.css": "0acfb6b54c18654452727d4abf297394", + "css/pro_dropdown_3.css": "9848a27dad960c2218751c1656e9206a", + "css/qtip/jquery.qtip.css": "b5f67f49989a67002ef21c7d4350b3db", + "css/qtip/jquery.qtip.min.css": "ea9b43a6289c03831fbfe9947c992561", + "css/radio-page/premium_player.css": "c4eb9995cb4c1aff3d167b9a144f3225", + "css/radio-page/radio-page.css": "27c85c077856a575e8b895d1df1a4f04", + "css/radio-page/station-podcast.css": "649e10a5e26f9c4f069737047a7affdd", + "css/redmond/jquery-ui-1.8.8.custom.css": "4a04bbd7e5a47de479cef65e3dcb8168", + "css/redmond/jquery-ui-1.8.8.custom/jquery-ui-1.8.8.custom.css": "2a0058657bbf0ef3714b0a7243ed0a9f", + "css/schedule-widget.css": "53e485bb4b86eabb14b6e61d84e72876", + "css/setup/config-check.css": "8d9a1c2f925b9b9a62aced597d3228e3", + "css/setup/setup-config.css": "4bbce50de5edec6b2f0e4445b1502a2b", + "css/show_analytics.css": "4393c521308277447afabe8791779bf1", + "css/showbuilder.css": "4421c01b5c2dfb03f8d06dd6023b4bd7", + "css/station_podcast.css": "88e9b38ead71eddc69ef50bfc8cb2d0d", + "css/styles.css": "6890a553402f44cefc7c6915f38aa657", + "css/tipsy/jquery.tipsy.css": "b13517583583f83ed7d5fc067a0c9372", + "css/tracktypes.css": "94c94817a8505ff4dfcd090987859a7e", + "css/users.css": "94c94817a8505ff4dfcd090987859a7e", + "css/waveform.css": "4ce429708933e6da1a2f3bdb2a01db52", + "js/airtime/airtime_bootstrap.js": "9575982385f6c74e2b4ec61e30214a7c", + "js/airtime/audiopreview/preview_jplayer.js": "ad13f98d9a5ef4bd67bfcc97c8f6e639", + "js/airtime/buttons/buttons.js": "1a984b1e01262816c899c5fa3f12e3cd", + "js/airtime/common/audioplaytest.js": "93737dabc4cce4fcdcc6d54acf86d16d", + "js/airtime/common/common.js": "ca0e348031849d34b3e47ddd3645a5f6", + "js/airtime/common/facebook.js": "f1bdfa74224c9b4b4f88084b881f85db", + "js/airtime/dashboard/dashboard.js": "865cd63213b79285739087bf55f2201a", + "js/airtime/dashboard/helperfunctions.js": "734d24845014fa873bc737b23b493902", + "js/airtime/dashboard/versiontooltip.js": "f267c6ec0205e98f1ffba5f636928f7a", + "js/airtime/library/events/library_playlistbuilder.js": "1e0aa11953c7ff243cd2df241cc8a296", + "js/airtime/library/events/library_showbuilder.js": "996a5c3008eb17552ee8f891d88c9341", + "js/airtime/library/library.js": "8ab148f7fc5b177019dacf516c6b8fd6", + "js/airtime/library/plupload.js": "7f754a28ac2d4060aec918c688a74a22", + "js/airtime/library/podcast.js": "f4fd354d739e7121ba00162496c295df", + "js/airtime/library/publish.js": "851ef4c4caa9e9220acf945c21760189", + "js/airtime/library/spl.js": "5ef418220a200cd52d7b441ed0c2246f", + "js/airtime/listenerstat/listenerstat.js": "b4d4a2b35dca36b01df29ee4074e05be", + "js/airtime/listenerstat/showlistenerstat.js": "479842e8bef656b48cbccf4f4f058e22", + "js/airtime/login/login.js": "7278cf49618791d75bacce38dd1b1d46", + "js/airtime/nowplaying/dayview.js": "37586afbb39e7f16ac0d0b22e8c8ed01", + "js/airtime/nowplaying/lang-timezone-setup.js": "72d1c4a65966d164de8f5d6a130d9dd3", + "js/airtime/nowplaying/nowview.js": "303e2104be556dd4d736b43cbd7b403f", + "js/airtime/nowplaying/register.js": "bbd8c45f368e58a02f1524ab4608793f", + "js/airtime/player/player.js": "76a78bfc1bac0c5479916d9d4641a5b1", + "js/airtime/player/playerhtml5.js": "6e370f8572a012f50fd063580aebe861", + "js/airtime/playlist/smart_blockbuilder.js": "c06baaa7e4b341db15e072b2231cd9c7", + "js/airtime/playouthistory/configuretemplate.js": "08b1602cd2a528958c09228d082fdf83", + "js/airtime/playouthistory/historytable.js": "5d454ec89ec05248b2dd2c4d2416a001", + "js/airtime/playouthistory/template.js": "edf925a69fcb29c84568358bf1bade70", + "js/airtime/preferences/musicdirs.js": "72312faa4081949d5c17ce2d3428dbdc", + "js/airtime/preferences/preferences.js": "73aec5c4969eef8f6b02f044b00425c3", + "js/airtime/preferences/streamsetting.js": "b45e7ad91d0b3f5e582fd3bd4c697a05", + "js/airtime/schedule/add-show.js": "22ce11f5ffd513be4f3492af1001ebdf", + "js/airtime/schedule/full-calendar-functions.js": "09ac64ebbe48666dcc3c4669b12509b7", + "js/airtime/schedule/schedule.js": "d835a1c6110c033edf5c8d0abb701d7c", + "js/airtime/showbuilder/builder.js": "08338d5f8e957bda2bac397e958f5610", + "js/airtime/showbuilder/main_builder.js": "6db47cc75cb5072b09431fbd6c90b89f", + "js/airtime/showbuilder/tabs.js": "a0b5284afde950a6f32c7e9e75550690", + "js/airtime/status/status.js": "f8c99b7b30e66c9127470bc8c01fb4b1", + "js/airtime/tracktype/tracktype.js": "6f6107b8e628fe132617795ddb780544", + "js/airtime/user/user.js": "58b9a9951aca48bbed1ad080aa318080", + "js/airtime/utilities/utilities.js": "ef59f38fbef5a7807c9fe266c58e7a17", + "js/airtime/widgets/table-example.js": "0aa2d9c528ee2d3fdeca997c7e93bdee", + "js/airtime/widgets/table.js": "b50a9e26f39561b78e8e1dc6a320de11", + "js/blockui/jquery.blockUI.js": "3f1a8ca5b9f8907f3361a94b4344154d", + "js/bootstrap-datetime/bootstrap-datetimepicker.js": "cc1d5238ee226abb25fd7391c116124f", + "js/bootstrap/bootstrap.min.js": "f406e54c52f4fd0ade6ff6b459e4cbf8", + "js/colorpicker/js/colorpicker.js": "1ba6ec2946edadf7d3c61225d3e8f80c", + "js/contextmenu/jquery.contextMenu.js": "c7309ba38dc8a4c65673f6d7c1c412c7", + "js/cookie/js.cookie.js": "fa93e8894edb6245ab03883633b12b6e", + "js/datatables/js/jquery.dataTables.js": "030cf20c21fa5d853aa53fb0b282541f", + "js/datatables/plugin/dataTables.ColVis.js": "7541b945af3f4615e56327961fca1de7", + "js/datatables/plugin/dataTables.ColVis_orig.js": "27a8f71a9a1e14cf2b6ce3f99a2df624", + "js/datatables/plugin/dataTables.FixedColumns.js": "6576f19734388ebb68b3228ec443c98a", + "js/datatables/plugin/dataTables.FixedHeader.js": "474803d9f56be3fdff0cf260a9bb7a9b", + "js/datatables/plugin/dataTables.colReorder.js": "ac5ef911b80ab67d7ba12842de60248e", + "js/datatables/plugin/dataTables.colReorder.min.js": "42721df869bef756071de3cc373315bd", + "js/datatables/plugin/dataTables.columnFilter.js": "fe1f8c57455de0392fa298bd37e30352", + "js/datatables/plugin/dataTables.columnFilter_orig.js": "e99b7ec9c3ee3ef5a7c641abbbe8a101", + "js/datatables/plugin/dataTables.fnSetFilteringDelay.js": "8a153957e363984ac972216889cab038", + "js/datatables/plugin/dataTables.pluginAPI.js": "b4f5dad350a85a887f048d0cebe83ea7", + "js/flot/jquery.flot.crosshair.js": "a6f9a6aa5c12a43cccc48a5cf978e7c9", + "js/flot/jquery.flot.js": "61a4fe21f72c0fe5751ba7c081b7e908", + "js/flot/jquery.flot.resize.js": "add6f822511c6f60ee8c16a422f07dc1", + "js/fullcalendar/fullcalendar.js": "bca502099d07244ae318caffdf8259a9", + "js/fullcalendar/fullcalendar.orig.js": "47c54fe209efe131a11c596b3563387f", + "js/i18n/jquery.i18n.js": "41f4915c6a56ef02d7e044b1e1407e27", + "js/jplayer/jplayer.playlist.min.js": "4b79bafb497872b6a5478575c9ff63b7", + "js/jplayer/jquery.jplayer.inspector.js": "05fd6f70340aa71408df0f208dce7dbc", + "js/jplayer/jquery.jplayer.min.js": "51e3c57f1850d65993736b11a3776930", + "js/jplayer/popcorn/popcorn.jplayer.js": "1f99a1e5a2f5970d69535a974f8d0106", + "js/jplayer/skin/jplayer.airtime.audio.preview.css": "c721fe0587569391dcfa7d0f7b440d2b", + "js/jplayer/skin/jplayer.audio-preview.blue.monday.css": "8565bf8e077eeb5bbba3c88bed42a590", + "js/jplayer/skin/jplayer.blue.monday.css": "491c7a82ae4571ae4a73645bf9755eaf", + "js/libs/CSVexport.js": "07a91f824f41d2d0d1884b5dd10f63e4", + "js/libs/angular.min.js": "26680517e1024ca2c4f9ed4e0aa1619e", + "js/libs/dayjs.min.js": "bea3f1180a3e2e45eccf9d76f990f3b4", + "js/libs/dropzone.min.js": "f59ac59a89d9c569a27ca7ead38d2396", + "js/libs/handlebars.min.js": "90e3ec5c9ce9b231407bae1d6f573cce", + "js/libs/jquery-1.10.2.min.js": "628072e7212db1e8cdacb22b21752cda", + "js/libs/jquery-1.8.3.min.js": "24bd97b1de158c4f1a162336eeca4aa6", + "js/libs/jquery-ui-1.8.18.custom.min.js": "f77740989157b23ac36b805d2836c11d", + "js/libs/jquery-ui-1.8.24.min.js": "e01bb34a5398d67cf184275da477dcae", + "js/libs/pdfmake.min.js": "872f6cdd03396cafdf6fc15ff06df632", + "js/libs/timezone.min.js": "5f84c783dc0b60ae0892969080cb71e1", + "js/libs/underscore-min.js": "c7fd95c6a53e45d641065d506e016d26", + "js/libs/utc.min.js": "9c0ad1c38cbb912c163f593e234bdc38", + "js/libs/vfs_fonts.min.js": "0a4fc9036dce73223ae42c1fe9bd5135", + "js/plupload/i18n/cs_CZ.js": "87d6d71e54364bf72b2f7e296c968725", + "js/plupload/i18n/de_AT.js": "25dc8a7db88f7553517d86e584acabfe", + "js/plupload/i18n/de_DE.js": "41632d333ffdd3d71c9b7fbed9802a32", + "js/plupload/i18n/el_GR.js": "c9f58e22bca2b9239df501e042dc8d9d", + "js/plupload/i18n/en_CA.js": "bd5229fade0e99b679310a3ee7b44d8b", + "js/plupload/i18n/en_GB.js": "91ae8c65a8b1291de6aa6ecbff1531a6", + "js/plupload/i18n/en_US.js": "8b0d78ad730e928811a63abe5816b9d9", + "js/plupload/i18n/es_ES.js": "e10dc185e40b85de5e5b1bdf07e863f0", + "js/plupload/i18n/fr_FR.js": "0099a76c116a2ffa957724e9daa4cc73", + "js/plupload/i18n/hr_HR.js": "62636c391101fae894a402c662f40187", + "js/plupload/i18n/hu_HU.js": "a3cd6e62e80a268879df36a555f4a8e8", + "js/plupload/i18n/it_IT.js": "d54d63ce65b652322b9411d545223a20", + "js/plupload/i18n/ja_JP.js": "35ffcfa1681e2ffef02fe085ea041436", + "js/plupload/i18n/ko_KR.js": "16f238d8f3bc779345f5e9d16a3471a2", + "js/plupload/i18n/pl_PL.js": "5a32f95c5a79b846d3fc0388469beb40", + "js/plupload/i18n/pt_BR.js": "049e0eade66ed92564e1468051e70167", + "js/plupload/i18n/ru_RU.js": "a4ede8ec9bd8f1d703d55bc135453042", + "js/plupload/i18n/sr_RS.js": "0dc8d190d735dba2117e21a0aa462217", + "js/plupload/i18n/sr_RS@latin.js": "18d2bf17856360c076188f09d23c5951", + "js/plupload/i18n/zh_CN.js": "842fc7371333209a39faff51a64b110b", + "js/plupload/jquery.plupload.queue.min.js": "0c04e7215f135cbe3ef9c34b7a8bf4fa", + "js/plupload/plupload.full.min.js": "6e1ae77daf3e7c0d2ed724b3d54a865d", + "js/qtip/jquery.qtip.js": "b27696b8eccfdae9a260b454774617ca", + "js/qtip/jquery.qtip.min.js": "0d0d5b10606e8ed784b4577136015101", + "js/serverbrowse/serverbrowser.js": "b93084d04b244a9d1c5c91d18300300f", + "js/serverbrowse/serverbrowser_orig.js": "7c33174cef105376300ea6b369b75705", + "js/setup/setup-config.js": "0dae9781212f3c66c915dd1fdd00825e", + "js/sprintf/sprintf-0.7-beta1.js": "171cc293fff0b97a6d7bf357b32176d5", + "js/timepicker/jquery-ui-timepicker-addon.js": "7bca76bf04834c85b8d6dcb15e475857", + "js/timepicker/jquery.ui.timepicker.js": "2e8b4ca8b94126287075c5c835d2fb33", + "js/tipsy/jquery.tipsy.js": "667f625a80422fdaa1ff4e9f17499f11", + "js/tipsy/jquery.tipsy_orig.js": "20fb22b2d6593ec452b6e02a0db66666", + "js/waveformplaylist/config.js": "10acd17b88a621e1f307585ee08b562d", + "js/waveformplaylist/controls.js": "43ed394e1b86b2db9e5c7a1a900f5f18", + "js/waveformplaylist/curves.js": "4bbd58431db05bc5750bbdfc309217ca", + "js/waveformplaylist/fades.js": "780be43d860afe07e9762cf86c5c46af", + "js/waveformplaylist/loader.js": "3655187fd843a42ea6eb49164804af52", + "js/waveformplaylist/local_storage.js": "1beaf712464c1c3792e7cb2524953d63", + "js/waveformplaylist/observer/observer.js": "9982d149764feb1cb4a57a1832eb1184", + "js/waveformplaylist/playlist.js": "1608704359d7ce13a9efe2534eab8678", + "js/waveformplaylist/playout.js": "7dfc5fe760f3c6739e38499df7b61e47", + "js/waveformplaylist/time_scale.js": "74e0e17e1c8cd597449220c98de408ba", + "js/waveformplaylist/track.js": "5456e6081ffedf55a9e38571bc178781", + "js/waveformplaylist/track_render.js": "e371b582b23e4b618e039f096d2f0570" +} diff --git a/legacy/application/common/Assets.php b/legacy/application/common/Assets.php new file mode 100644 index 000000000..9835ea7c4 --- /dev/null +++ b/legacy/application/common/Assets.php @@ -0,0 +1,22 @@ +appendFile($baseUrl . $deps[$i] . '?' . $airtimeVersion, 'text/javascript'); + foreach (self::_getTableJavaScriptDependencies() as $path) { + $headScript->appendFile(Assets::url($path), 'text/javascript'); } } } diff --git a/legacy/application/controllers/AudiopreviewController.php b/legacy/application/controllers/AudiopreviewController.php index 913619fbb..976e385cc 100644 --- a/legacy/application/controllers/AudiopreviewController.php +++ b/legacy/application/controllers/AudiopreviewController.php @@ -27,15 +27,15 @@ class AudiopreviewController extends Zend_Controller_Action $baseUrl = Config::getBasePath(); $this->view->headScript()->appendFile( - $baseUrl . 'js/airtime/audiopreview/preview_jplayer.js?' . $CC_CONFIG['airtime_version'], + Assets::url('js/airtime/audiopreview/preview_jplayer.js'), 'text/javascript' ); $this->view->headScript()->appendFile( - $baseUrl . 'js/jplayer/jplayer.playlist.min.js?' . $CC_CONFIG['airtime_version'], + Assets::url('js/jplayer/jplayer.playlist.min.js'), 'text/javascript' ); $this->view->headLink()->appendStylesheet( - $baseUrl . 'js/jplayer/skin/jplayer.airtime.audio.preview.css?' . $CC_CONFIG['airtime_version'] + Assets::url('js/jplayer/skin/jplayer.airtime.audio.preview.css') ); $this->_helper->layout->setLayout('audioPlayer'); @@ -83,9 +83,9 @@ class AudiopreviewController extends Zend_Controller_Action $baseUrl = Config::getBasePath(); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/audiopreview/preview_jplayer.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/jplayer/jplayer.playlist.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'js/jplayer/skin/jplayer.airtime.audio.preview.css?' . $CC_CONFIG['airtime_version']); + $this->view->headScript()->appendFile(Assets::url('js/airtime/audiopreview/preview_jplayer.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/jplayer/jplayer.playlist.min.js'), 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('js/jplayer/skin/jplayer.airtime.audio.preview.css')); $this->_helper->layout->setLayout('audioPlayer'); $logo = Application_Model_Preference::GetStationLogo(); @@ -109,9 +109,9 @@ class AudiopreviewController extends Zend_Controller_Action $baseUrl = Config::getBasePath(); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/audiopreview/preview_jplayer.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/jplayer/jplayer.playlist.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'js/jplayer/skin/jplayer.airtime.audio.preview.css?' . $CC_CONFIG['airtime_version']); + $this->view->headScript()->appendFile(Assets::url('js/airtime/audiopreview/preview_jplayer.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/jplayer/jplayer.playlist.min.js'), 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('js/jplayer/skin/jplayer.airtime.audio.preview.css')); $this->_helper->layout->setLayout('audioPlayer'); $logo = Application_Model_Preference::GetStationLogo(); @@ -231,9 +231,9 @@ class AudiopreviewController extends Zend_Controller_Action $baseUrl = Config::getBasePath(); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/audiopreview/preview_jplayer.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/jplayer/jplayer.playlist.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'js/jplayer/skin/jplayer.airtime.audio.preview.css?' . $CC_CONFIG['airtime_version']); + $this->view->headScript()->appendFile(Assets::url('js/airtime/audiopreview/preview_jplayer.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/jplayer/jplayer.playlist.min.js'), 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('js/jplayer/skin/jplayer.airtime.audio.preview.css')); $this->_helper->layout->setLayout('audioPlayer'); $logo = Application_Model_Preference::GetStationLogo(); diff --git a/legacy/application/controllers/DashboardController.php b/legacy/application/controllers/DashboardController.php index a54f21043..9004be045 100644 --- a/legacy/application/controllers/DashboardController.php +++ b/legacy/application/controllers/DashboardController.php @@ -97,7 +97,7 @@ class DashboardController extends Zend_Controller_Action $baseUrl = Config::getBasePath(); - $this->view->headLink()->appendStylesheet($baseUrl . 'js/jplayer/skin/jplayer.blue.monday.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('js/jplayer/skin/jplayer.blue.monday.css')); $this->_helper->layout->setLayout('livestream'); $logo = Application_Model_Preference::GetStationLogo(); @@ -120,12 +120,8 @@ class DashboardController extends Zend_Controller_Action { Zend_Layout::getMvcInstance()->assign('parent_page', 'Help'); - $CC_CONFIG = Config::getConfig(); - - $baseUrl = Config::getBasePath(); - $headScript = $this->view->headScript(); - AirtimeTableView::injectTableJavaScriptDependencies($headScript, $baseUrl, $CC_CONFIG['airtime_version']); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/widgets/table-example.js?' . $CC_CONFIG['airtime_version']); + AirtimeTableView::injectTableJavaScriptDependencies($headScript); + $this->view->headScript()->appendFile(Assets::url('js/airtime/widgets/table-example.js')); } } diff --git a/legacy/application/controllers/EmbedController.php b/legacy/application/controllers/EmbedController.php index 8015f6364..004d15732 100644 --- a/legacy/application/controllers/EmbedController.php +++ b/legacy/application/controllers/EmbedController.php @@ -23,22 +23,20 @@ class EmbedController extends Zend_Controller_Action { $this->view->layout()->disableLayout(); - $CC_CONFIG = Config::getConfig(); - $request = $this->getRequest(); - $this->view->playerhtml5_js = '/js/airtime/player/playerhtml5.js?' . $CC_CONFIG['airtime_version']; - $this->view->jquery = '/js/libs/jquery-1.10.2.min.js'; + $this->view->playerhtml5_js = Assets::url('js/airtime/player/playerhtml5.js'); + $this->view->jquery = Assets::url('js/libs/jquery-1.10.2.min.js'); $this->view->metadata_api_url = '/api/live-info'; $this->view->player_title = json_encode($this->view->escape($request->getParam('title'))); - $this->view->jquery_i18n = '/js/i18n/jquery.i18n.js?'; + $this->view->jquery_i18n = Assets::url('js/i18n/jquery.i18n.js'); $styleParam = $request->getParam('style'); $player_style = isset($styleParam) ? $styleParam : 'basic'; if ($player_style == 'premium') { - $this->view->css = '/css/radio-page/premium_player.css?' . $CC_CONFIG['airtime_version']; + $this->view->css = Assets::url('css/radio-page/premium_player.css'); } else { - $this->view->css = '/css/player.css?' . $CC_CONFIG['airtime_version']; + $this->view->css = Assets::url('css/player.css'); } $this->view->player_style = $player_style; @@ -75,20 +73,18 @@ class EmbedController extends Zend_Controller_Action { $this->view->layout()->disableLayout(); - $CC_CONFIG = Config::getConfig(); - $request = $this->getRequest(); - $this->view->angular = Config::getPublicUrl() . 'js/libs/angular.min.js?' . $CC_CONFIG['airtime_version']; + $this->view->angular = Config::getPublicUrl() . Assets::url('js/libs/angular.min.js'); $widgetStyle = $request->getParam('style'); if ($widgetStyle == 'premium') { $this->view->widgetStyle = 'premium'; - $this->view->css = '/css/embed/weekly-schedule-widget.css?' . $CC_CONFIG['airtime_version']; + $this->view->css = Assets::url('css/embed/weekly-schedule-widget.css'); } else { $this->view->widgetStyle = 'basic'; - $this->view->css = '/css/embed/weekly-schedule-widget-basic.css?' . $CC_CONFIG['airtime_version']; + $this->view->css = Assets::url('css/embed/weekly-schedule-widget-basic.css'); } - $this->view->jquery = '/js/libs/jquery-1.8.3.min.js?' . $CC_CONFIG['airtime_version']; + $this->view->jquery = Assets::url('js/libs/jquery-1.8.3.min.js'); $weeklyScheduleData = WidgetHelper::getWeekInfoV2(); diff --git a/legacy/application/controllers/EmbeddablewidgetsController.php b/legacy/application/controllers/EmbeddablewidgetsController.php index 2242db977..039ced54a 100644 --- a/legacy/application/controllers/EmbeddablewidgetsController.php +++ b/legacy/application/controllers/EmbeddablewidgetsController.php @@ -10,10 +10,8 @@ class EmbeddableWidgetsController extends Zend_Controller_Action { Zend_Layout::getMvcInstance()->assign('parent_page', 'Widgets'); - $CC_CONFIG = Config::getConfig(); - $baseUrl = Config::getBasePath(); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/player-form.css?' . $CC_CONFIG['airtime_version']); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/player/player.js?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/player-form.css')); + $this->view->headScript()->appendFile(Assets::url('js/airtime/player/player.js')); $form = new Application_Form_Player(); @@ -58,7 +56,7 @@ class EmbeddableWidgetsController extends Zend_Controller_Action $facebookAppId = $CC_CONFIG['facebook-app-id']; $this->view->headScript()->appendScript('var FACEBOOK_APP_ID = ' . json_encode($facebookAppId) . ';'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/common/facebook.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/common/facebook.js'), 'text/javascript'); } /** Airtime makes an AJAX POST here after it successfully adds a tab to your Facebook page. */ diff --git a/legacy/application/controllers/ErrorController.php b/legacy/application/controllers/ErrorController.php index a81e1e1d5..1d2d09951 100644 --- a/legacy/application/controllers/ErrorController.php +++ b/legacy/application/controllers/ErrorController.php @@ -71,9 +71,7 @@ class ErrorController extends Zend_Controller_Action private function setupCSS() { - $CC_CONFIG = Config::getConfig(); - $staticBaseDir = Application_Common_OsPath::formatDirectoryWithDirectorySeparators($CC_CONFIG['staticBaseDir']); - $this->view->headLink()->appendStylesheet($staticBaseDir . 'css/styles.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/styles.css')); } public function getLog() diff --git a/legacy/application/controllers/IndexController.php b/legacy/application/controllers/IndexController.php index 88dfe151f..e08ab2354 100644 --- a/legacy/application/controllers/IndexController.php +++ b/legacy/application/controllers/IndexController.php @@ -11,24 +11,24 @@ class IndexController extends Zend_Controller_Action $CC_CONFIG = Config::getConfig(); $baseUrl = Config::getBasePath(); $this->view->headTitle(Application_Model_Preference::GetHeadTitle()); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/jquery-1.8.3.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/jquery-1.8.3.min.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/i18n/jquery.i18n.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'locale/general-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/i18n/jquery.i18n.js'), 'text/javascript'); + $this->view->headScript()->appendFile($baseUrl . 'locale/general-translation-table', 'text/javascript'); $this->view->headScript()->appendScript('$.i18n.setDictionary(general_dict)'); $this->view->headScript()->appendScript("var baseUrl='{$baseUrl}'"); // jplayer - $this->view->headScript()->appendFile($baseUrl . 'js/jplayer/jquery.jplayer.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/jplayer/jplayer.playlist.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/jplayer/jquery.jplayer.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/jplayer/jplayer.playlist.min.js'), 'text/javascript'); - $this->view->headLink()->setStylesheet($baseUrl . 'css/radio-page/radio-page.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/embed/weekly-schedule-widget.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/radio-page/station-podcast.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/bootstrap.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->setStylesheet(Assets::url('css/radio-page/radio-page.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/embed/weekly-schedule-widget.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/radio-page/station-podcast.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/bootstrap.css')); // jplayer control buttons - $this->view->headLink()->appendStylesheet($baseUrl . 'css/redmond/jquery-ui-1.8.8.custom.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/redmond/jquery-ui-1.8.8.custom.css')); $this->_helper->layout->setLayout('radio-page'); diff --git a/legacy/application/controllers/ListenerstatController.php b/legacy/application/controllers/ListenerstatController.php index 19716e727..2b0d530d7 100644 --- a/legacy/application/controllers/ListenerstatController.php +++ b/legacy/application/controllers/ListenerstatController.php @@ -12,21 +12,18 @@ class ListenerstatController extends Zend_Controller_Action public function indexAction() { - $CC_CONFIG = Config::getConfig(); - $request = $this->getRequest(); - $baseUrl = Config::getBasePath(); Zend_Layout::getMvcInstance()->assign('parent_page', 'Analytics'); - $this->view->headScript()->appendFile($baseUrl . 'js/flot/jquery.flot.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/flot/jquery.flot.crosshair.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/flot/jquery.flot.resize.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/listenerstat/listenerstat.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/timepicker/jquery.ui.timepicker.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/buttons/buttons.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/utilities/utilities.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.ui.timepicker.css?' . $CC_CONFIG['airtime_version']); + $this->view->headScript()->appendFile(Assets::url('js/flot/jquery.flot.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/flot/jquery.flot.crosshair.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/flot/jquery.flot.resize.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/listenerstat/listenerstat.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/timepicker/jquery.ui.timepicker.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/buttons/buttons.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/utilities/utilities.js'), 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.ui.timepicker.css')); [$startsDT, $endsDT] = Application_Common_HTTPHelper::getStartEndFromRequest($request); $userTimezone = new DateTimeZone(Application_Model_Preference::GetUserTimezone()); @@ -57,22 +54,19 @@ class ListenerstatController extends Zend_Controller_Action public function showAction() { - $CC_CONFIG = Config::getConfig(); - $request = $this->getRequest(); - $baseUrl = Config::getBasePath(); $headScript = $this->view->headScript(); - AirtimeTableView::injectTableJavaScriptDependencies($headScript, $baseUrl, $CC_CONFIG['airtime_version']); + AirtimeTableView::injectTableJavaScriptDependencies($headScript); Zend_Layout::getMvcInstance()->assign('parent_page', 'Analytics'); - $this->view->headScript()->appendFile($baseUrl . 'js/timepicker/jquery.ui.timepicker.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/buttons/buttons.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/utilities/utilities.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/listenerstat/showlistenerstat.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/timepicker/jquery.ui.timepicker.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/buttons/buttons.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/utilities/utilities.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/listenerstat/showlistenerstat.js'), 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/ColVis.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/dataTables.colReorder.min.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.ui.timepicker.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/show_analytics.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/ColVis.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/dataTables.colReorder.min.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.ui.timepicker.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/show_analytics.css')); $user = Application_Model_User::getCurrentUser(); if ($user->isUserType([UTYPE_SUPERADMIN, UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER])) { diff --git a/legacy/application/controllers/LoginController.php b/legacy/application/controllers/LoginController.php index 392cee93e..02d3844c0 100644 --- a/legacy/application/controllers/LoginController.php +++ b/legacy/application/controllers/LoginController.php @@ -4,13 +4,12 @@ class LoginController extends Zend_Controller_Action { public function init() { - $CC_CONFIG = Config::getConfig(); $baseUrl = Config::getBasePath(); - $this->view->headLink(['rel' => 'icon', 'href' => $baseUrl . 'favicon.ico?' . $CC_CONFIG['airtime_version'], 'type' => 'image/x-icon'], 'PREPEND') - ->appendStylesheet($baseUrl . 'css/bootstrap.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/redmond/jquery-ui-1.8.8.custom.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/styles.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink(['rel' => 'icon', 'href' => $baseUrl . 'favicon.ico', 'type' => 'image/x-icon'], 'PREPEND') + ->appendStylesheet(Assets::url('css/bootstrap.css')) + ->appendStylesheet(Assets::url('css/redmond/jquery-ui-1.8.8.custom.css')) + ->appendStylesheet(Assets::url('css/styles.css')); } public function indexAction() @@ -43,8 +42,6 @@ class LoginController extends Zend_Controller_Action $this->view->error = false; - $baseUrl = Config::getBasePath(); - $form = new Application_Form_Login(); $message = _('Please enter your username and password.'); @@ -111,11 +108,7 @@ class LoginController extends Zend_Controller_Action public function passwordRestoreAction() { - $CC_CONFIG = Config::getConfig(); - - $baseUrl = Config::getBasePath(); - - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/login/password-restore.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/login/password-restore.js'), 'text/javascript'); $request = $this->getRequest(); $stationLocale = Application_Model_Preference::GetDefaultLocale(); diff --git a/legacy/application/controllers/PlayouthistoryController.php b/legacy/application/controllers/PlayouthistoryController.php index 46f87802e..4e462cefc 100644 --- a/legacy/application/controllers/PlayouthistoryController.php +++ b/legacy/application/controllers/PlayouthistoryController.php @@ -42,25 +42,25 @@ class PlayouthistoryController extends Zend_Controller_Action $this->view->date_form = $form; - $this->view->headScript()->appendFile($baseUrl . 'js/contextmenu/jquery.contextMenu.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/datatables/js/jquery.dataTables.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/datatables/plugin/dataTables.pluginAPI.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/datatables/plugin/dataTables.fnSetFilteringDelay.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/contextmenu/jquery.contextMenu.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/datatables/js/jquery.dataTables.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/datatables/plugin/dataTables.pluginAPI.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/datatables/plugin/dataTables.fnSetFilteringDelay.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/timepicker/jquery.ui.timepicker.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/bootstrap-datetime/bootstrap-datetimepicker.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/buttons/buttons.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/utilities/utilities.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/CSVexport.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/pdfmake.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/vfs_fonts.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/playouthistory/historytable.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/timepicker/jquery.ui.timepicker.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/bootstrap-datetime/bootstrap-datetimepicker.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/buttons/buttons.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/utilities/utilities.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/CSVexport.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/pdfmake.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/vfs_fonts.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/playouthistory/historytable.js'), 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/bootstrap-datetimepicker.min.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.ui.timepicker.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/playouthistory.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/history_styles.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.contextMenu.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/bootstrap-datetimepicker.min.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.ui.timepicker.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/playouthistory.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/history_styles.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.contextMenu.css')); // set datatables columns for display of data. $historyService = new Application_Service_HistoryService(); diff --git a/legacy/application/controllers/PlayouthistorytemplateController.php b/legacy/application/controllers/PlayouthistorytemplateController.php index 717c0b1d6..fee23c346 100644 --- a/legacy/application/controllers/PlayouthistorytemplateController.php +++ b/legacy/application/controllers/PlayouthistorytemplateController.php @@ -20,8 +20,8 @@ class PlayouthistorytemplateController extends Zend_Controller_Action Zend_Layout::getMvcInstance()->assign('parent_page', 'Analytics'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/playouthistory/template.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/history_styles.css?' . $CC_CONFIG['airtime_version']); + $this->view->headScript()->appendFile(Assets::url('js/airtime/playouthistory/template.js'), 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('css/history_styles.css')); $historyService = new Application_Service_HistoryService(); $this->view->template_list = $historyService->getListItemTemplates(); @@ -36,8 +36,8 @@ class PlayouthistorytemplateController extends Zend_Controller_Action Zend_Layout::getMvcInstance()->assign('parent_page', 'Analytics'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/playouthistory/configuretemplate.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/history_styles.css?' . $CC_CONFIG['airtime_version']); + $this->view->headScript()->appendFile(Assets::url('js/airtime/playouthistory/configuretemplate.js'), 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('css/history_styles.css')); try { $templateId = $this->_getParam('id'); diff --git a/legacy/application/controllers/PluploadController.php b/legacy/application/controllers/PluploadController.php index c79fe0cec..1b9ac545e 100644 --- a/legacy/application/controllers/PluploadController.php +++ b/legacy/application/controllers/PluploadController.php @@ -12,21 +12,18 @@ class PluploadController extends Zend_Controller_Action public function indexAction() { - $CC_CONFIG = Config::getConfig(); - - $baseUrl = Config::getBasePath(); $locale = Application_Model_Preference::GetLocale(); - $this->view->headScript()->appendFile($baseUrl . 'js/datatables/js/jquery.dataTables.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/plupload/plupload.full.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/plupload/jquery.plupload.queue.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/plupload.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/plupload/i18n/' . $locale . '.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/dropzone.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/datatables/js/jquery.dataTables.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/plupload/plupload.full.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/plupload/jquery.plupload.queue.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/plupload.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/plupload/i18n/' . $locale . '.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/dropzone.min.js'), 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/plupload.queue.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/addmedia.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/dashboard.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/plupload.queue.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/addmedia.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/dashboard.css')); $this->view->quotaLimitReached = false; if (Application_Model_Systemstatus::isDiskOverQuota()) { diff --git a/legacy/application/controllers/PodcastController.php b/legacy/application/controllers/PodcastController.php index 99f517b40..587c3d3b2 100644 --- a/legacy/application/controllers/PodcastController.php +++ b/legacy/application/controllers/PodcastController.php @@ -4,23 +4,20 @@ class PodcastController extends Zend_Controller_Action { public function init() { - $CC_CONFIG = Config::getConfig(); - $baseUrl = Config::getBasePath(); - $headScript = $this->view->headScript(); - AirtimeTableView::injectTableJavaScriptDependencies($headScript, $baseUrl, $CC_CONFIG['airtime_version']); + AirtimeTableView::injectTableJavaScriptDependencies($headScript); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/library.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/events/library_showbuilder.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/library.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/events/library_showbuilder.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/widgets/table.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/podcast.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/widgets/table.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/podcast.js'), 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/ColVis.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/dataTables.colReorder.min.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/ColVis.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/dataTables.colReorder.min.css')); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/station_podcast.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/dashboard.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/station_podcast.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/dashboard.css')); } /** diff --git a/legacy/application/controllers/PreferenceController.php b/legacy/application/controllers/PreferenceController.php index caa4a3910..93a9c5b52 100644 --- a/legacy/application/controllers/PreferenceController.php +++ b/legacy/application/controllers/PreferenceController.php @@ -19,14 +19,13 @@ class PreferenceController extends Zend_Controller_Action public function indexAction() { - $CC_CONFIG = Config::getConfig(); $request = $this->getRequest(); Zend_Layout::getMvcInstance()->assign('parent_page', 'Settings'); $baseUrl = Config::getBasePath(); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/preferences/preferences.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/preferences/preferences.js'), 'text/javascript'); $this->view->statusMsg = ''; $form = new Application_Form_Preferences(); @@ -129,15 +128,11 @@ class PreferenceController extends Zend_Controller_Action public function streamSettingAction() { - $CC_CONFIG = Config::getConfig(); - $request = $this->getRequest(); Zend_Layout::getMvcInstance()->assign('parent_page', 'Settings'); - $baseUrl = Config::getBasePath(); - - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/preferences/streamsetting.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/preferences/streamsetting.js'), 'text/javascript'); SessionHelper::reopenSessionForWriting(); diff --git a/legacy/application/controllers/ScheduleController.php b/legacy/application/controllers/ScheduleController.php index 9eef37982..9a153fe90 100644 --- a/legacy/application/controllers/ScheduleController.php +++ b/legacy/application/controllers/ScheduleController.php @@ -42,10 +42,6 @@ class ScheduleController extends Zend_Controller_Action public function indexAction() { - $CC_CONFIG = Config::getConfig(); - - $baseUrl = Config::getBasePath(); - // Embed the schedule in our page response so we don't have to make an AJAX request to get this data after the page load. $scheduleController = new ScheduleController($this->getRequest(), $this->getResponse()); $scheduleController->eventFeedPreloadAction(); @@ -62,50 +58,50 @@ class ScheduleController extends Zend_Controller_Action "var calendarEvents = {$events};" ); - $this->view->headScript()->appendFile($baseUrl . 'js/contextmenu/jquery.contextMenu.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/contextmenu/jquery.contextMenu.js'), 'text/javascript'); // full-calendar-functions.js requires this variable, so that datePicker widget can be offset to server time instead of client time // this should be as a default, however with our new drop down timezone changing for shows, we should reset this offset then?? $this->view->headScript()->appendScript('var timezoneOffset = ' . Application_Common_DateHelper::getStationTimezoneOffset() . '; //in seconds'); // set offset to ensure it loads last - $this->view->headScript()->offsetSetFile(90, $baseUrl . 'js/airtime/schedule/full-calendar-functions.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->offsetSetFile(90, Assets::url('js/airtime/schedule/full-calendar-functions.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/fullcalendar/fullcalendar.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/timepicker/jquery.ui.timepicker.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/colorpicker/js/colorpicker.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/fullcalendar/fullcalendar.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/timepicker/jquery.ui.timepicker.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/colorpicker/js/colorpicker.js'), 'text/javascript'); // This block needs to be added before the add-show.js script - $this->view->headScript()->appendFile($baseUrl . 'js/libs/dayjs.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/utc.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/timezone.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/dayjs.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/utc.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/timezone.min.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/schedule/add-show.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->offsetSetFile(100, $baseUrl . 'js/airtime/schedule/schedule.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/blockui/jquery.blockUI.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/schedule/add-show.js'), 'text/javascript'); + $this->view->headScript()->offsetSetFile(100, Assets::url('js/airtime/schedule/schedule.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/blockui/jquery.blockUI.js'), 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.ui.timepicker.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/fullcalendar.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/colorpicker/css/colorpicker.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/add-show.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.contextMenu.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.ui.timepicker.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/fullcalendar.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/colorpicker/css/colorpicker.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/add-show.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.contextMenu.css')); // Start Show builder JS/CSS requirements $headScript = $this->view->headScript(); - AirtimeTableView::injectTableJavaScriptDependencies($headScript, $baseUrl, $CC_CONFIG['airtime_version']); + AirtimeTableView::injectTableJavaScriptDependencies($headScript); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/utilities/utilities.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/utilities/utilities.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/buttons/buttons.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/events/library_showbuilder.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/library.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/showbuilder/builder.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/buttons/buttons.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/events/library_showbuilder.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/library.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/showbuilder/builder.js'), 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/media_library.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.contextMenu.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/ColVis.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/dataTables.colReorder.min.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/showbuilder.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/dashboard.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/media_library.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.contextMenu.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/ColVis.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/dataTables.colReorder.min.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/showbuilder.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/dashboard.css')); // End Show builder JS/CSS requirements $this->createShowFormAction(true); diff --git a/legacy/application/controllers/ShowbuilderController.php b/legacy/application/controllers/ShowbuilderController.php index f82592434..f90faeec5 100644 --- a/legacy/application/controllers/ShowbuilderController.php +++ b/legacy/application/controllers/ShowbuilderController.php @@ -17,52 +17,50 @@ class ShowbuilderController extends Zend_Controller_Action public function indexAction() { - $CC_CONFIG = Config::getConfig(); - $baseUrl = Config::getBasePath(); $userType = Application_Model_User::GetCurrentUser()->getType(); // $this->_helper->layout->setLayout("showbuilder"); $this->view->headScript()->appendScript("localStorage.setItem( 'user-type', '{$userType}' );"); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/redmond/jquery-ui-1.8.8.custom.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/redmond/jquery-ui-1.8.8.custom.css')); - $this->view->headScript()->appendFile($baseUrl . 'js/contextmenu/jquery.contextMenu.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/contextmenu/jquery.contextMenu.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/blockui/jquery.blockUI.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/buttons/buttons.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/utilities/utilities.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/blockui/jquery.blockUI.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/buttons/buttons.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/utilities/utilities.js'), 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/media_library.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.contextMenu.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/ColVis.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/datatables/css/dataTables.colReorder.min.css?' . $CC_CONFIG['airtime_version']); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/library.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/events/library_showbuilder.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('css/media_library.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.contextMenu.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/ColVis.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/datatables/css/dataTables.colReorder.min.css')); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/library.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/events/library_showbuilder.js'), 'text/javascript'); $headScript = $this->view->headScript(); - AirtimeTableView::injectTableJavaScriptDependencies($headScript, $baseUrl, $CC_CONFIG['airtime_version']); + AirtimeTableView::injectTableJavaScriptDependencies($headScript); // PLUPLOAD - $this->view->headScript()->appendFile($baseUrl . 'js/libs/dropzone.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/dropzone.min.js'), 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/timepicker/jquery.ui.timepicker.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/showbuilder/tabs.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/showbuilder/builder.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/showbuilder/main_builder.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/timepicker/jquery.ui.timepicker.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/showbuilder/tabs.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/showbuilder/builder.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/showbuilder/main_builder.js'), 'text/javascript'); // MEDIA BUILDER - $this->view->headScript()->appendFile($baseUrl . 'js/libs/dayjs.min.js', 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/utc.min.js', 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/libs/timezone.min.js', 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/spl.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/podcast.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/library/publish.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/playlist/smart_blockbuilder.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/playlist_builder.css?' . $CC_CONFIG['airtime_version']); + $this->view->headScript()->appendFile(Assets::url('js/libs/dayjs.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/utc.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/libs/timezone.min.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/spl.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/podcast.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/library/publish.js'), 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/playlist/smart_blockbuilder.js'), 'text/javascript'); + $this->view->headLink()->appendStylesheet(Assets::url('css/playlist_builder.css')); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/jquery.ui.timepicker.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/showbuilder.css?' . $CC_CONFIG['airtime_version']); - $this->view->headLink()->appendStylesheet($baseUrl . 'css/dashboard.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/jquery.ui.timepicker.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/showbuilder.css')); + $this->view->headLink()->appendStylesheet(Assets::url('css/dashboard.css')); $csrf_namespace = new Zend_Session_Namespace('csrf_namespace'); $csrf_element = new Zend_Form_Element_Hidden('csrf'); @@ -99,8 +97,6 @@ class ShowbuilderController extends Zend_Controller_Action /** Check if we need to show the timezone/language setup popup and display it. (eg. on first run) */ public function checkAndShowSetupPopup($request) { - $CC_CONFIG = Config::getConfig(); - $baseUrl = Config::getBasePath(); $setupComplete = Application_Model_Preference::getLangTimezoneSetupComplete(); $previousPage = strtolower($request->getHeader('Referer')); $userService = new Application_Service_UserService(); @@ -113,7 +109,7 @@ class ShowbuilderController extends Zend_Controller_Action if ($currentUser->isSuperAdmin() && $previousPageWasLoginScreen && empty($setupComplete)) { $lang_tz_popup_form = new Application_Form_SetupLanguageTimezone(); $this->view->lang_tz_popup_form = $lang_tz_popup_form; - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/nowplaying/lang-timezone-setup.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/nowplaying/lang-timezone-setup.js'), 'text/javascript'); } } diff --git a/legacy/application/controllers/SystemstatusController.php b/legacy/application/controllers/SystemstatusController.php index 85d57a4ba..9b5697baf 100644 --- a/legacy/application/controllers/SystemstatusController.php +++ b/legacy/application/controllers/SystemstatusController.php @@ -7,8 +7,7 @@ class SystemstatusController extends Zend_Controller_Action public function init() { $config = Config::getConfig(); - $baseUrl = Config::getBasePath(); - $this->view->headScript()->appendFile($baseUrl . 'js/airtime/status/status.js?' . $config['airtime_version'], 'text/javascript'); + $this->view->headScript()->appendFile(Assets::url('js/airtime/status/status.js'), 'text/javascript'); $this->version = $config['airtime_version']; } diff --git a/legacy/application/controllers/TracktypeController.php b/legacy/application/controllers/TracktypeController.php index 7de28c2d8..bd9a6a68b 100644 --- a/legacy/application/controllers/TracktypeController.php +++ b/legacy/application/controllers/TracktypeController.php @@ -16,28 +16,20 @@ class TracktypeController extends Zend_Controller_Action // Start the session to re-open write permission to the session so we can // create the namespace for our csrf token verification SessionHelper::reopenSessionForWriting(); - $CC_CONFIG = Config::getConfig(); $request = $this->getRequest(); Zend_Layout::getMvcInstance()->assign('parent_page', 'Settings'); - $baseUrl = Config::getBasePath(); - - $js_files = [ - 'js/datatables/js/jquery.dataTables.js?', - 'js/datatables/plugin/dataTables.pluginAPI.js?', - 'js/airtime/tracktype/tracktype.js?', - ]; - - foreach ($js_files as $js) { - $this->view->headScript()->appendFile( - $baseUrl . $js . $CC_CONFIG['airtime_version'], - 'text/javascript' - ); + foreach ([ + 'js/datatables/js/jquery.dataTables.js', + 'js/datatables/plugin/dataTables.pluginAPI.js', + 'js/airtime/tracktype/tracktype.js', + ] as $file) { + $this->view->headScript()->appendFile(Assets::url($file), 'text/javascript'); } - $this->view->headLink()->appendStylesheet($baseUrl . 'css/tracktypes.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/tracktypes.css')); $form = new Application_Form_AddTracktype(); diff --git a/legacy/application/controllers/UserController.php b/legacy/application/controllers/UserController.php index b49f4ce9e..269d422f2 100644 --- a/legacy/application/controllers/UserController.php +++ b/legacy/application/controllers/UserController.php @@ -18,28 +18,20 @@ class UserController extends Zend_Controller_Action // Start the session to re-open write permission to the session so we can // create the namespace for our csrf token verification SessionHelper::reopenSessionForWriting(); - $CC_CONFIG = Config::getConfig(); $request = $this->getRequest(); Zend_Layout::getMvcInstance()->assign('parent_page', 'Settings'); - $baseUrl = Config::getBasePath(); - - $js_files = [ - 'js/datatables/js/jquery.dataTables.js?', - 'js/datatables/plugin/dataTables.pluginAPI.js?', - 'js/airtime/user/user.js?', - ]; - - foreach ($js_files as $js) { - $this->view->headScript()->appendFile( - $baseUrl . $js . $CC_CONFIG['airtime_version'], - 'text/javascript' - ); + foreach ([ + 'js/datatables/js/jquery.dataTables.js', + 'js/datatables/plugin/dataTables.pluginAPI.js', + 'js/airtime/user/user.js', + ] as $file) { + $this->view->headScript()->appendFile(Assets::url($file), 'text/javascript'); } - $this->view->headLink()->appendStylesheet($baseUrl . 'css/users.css?' . $CC_CONFIG['airtime_version']); + $this->view->headLink()->appendStylesheet(Assets::url('css/users.css')); $form = new Application_Form_AddUser(); diff --git a/legacy/application/controllers/plugins/PageLayoutInitPlugin.php b/legacy/application/controllers/plugins/PageLayoutInitPlugin.php index 1d640a99d..cd6e29899 100644 --- a/legacy/application/controllers/plugins/PageLayoutInitPlugin.php +++ b/legacy/application/controllers/plugins/PageLayoutInitPlugin.php @@ -152,20 +152,18 @@ class PageLayoutInitPlugin extends Zend_Controller_Plugin_Abstract protected function _initHeadLink() { - $CC_CONFIG = Config::getConfig(); - $view = $this->_bootstrap->getResource('view'); $baseUrl = Config::getBasePath(); - $view->headLink(['rel' => 'icon', 'href' => $baseUrl . 'favicon.ico?' . $CC_CONFIG['airtime_version'], 'type' => 'image/x-icon'], 'PREPEND') - ->appendStylesheet($baseUrl . 'css/bootstrap.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/redmond/jquery-ui-1.8.8.custom.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/pro_dropdown_3.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/qtip/jquery.qtip.min.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/styles.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/masterpanel.css?' . $CC_CONFIG['airtime_version']) - ->appendStylesheet($baseUrl . 'css/tipsy/jquery.tipsy.css?' . $CC_CONFIG['airtime_version']); + $view->headLink(['rel' => 'icon', 'href' => $baseUrl . 'favicon.ico', 'type' => 'image/x-icon'], 'PREPEND') + ->appendStylesheet(Assets::url('css/bootstrap.css')) + ->appendStylesheet(Assets::url('css/redmond/jquery-ui-1.8.8.custom.css')) + ->appendStylesheet(Assets::url('css/pro_dropdown_3.css')) + ->appendStylesheet(Assets::url('css/qtip/jquery.qtip.min.css')) + ->appendStylesheet(Assets::url('css/styles.css')) + ->appendStylesheet(Assets::url('css/masterpanel.css')) + ->appendStylesheet(Assets::url('css/tipsy/jquery.tipsy.css')); } protected function _initHeadScript() @@ -174,25 +172,23 @@ class PageLayoutInitPlugin extends Zend_Controller_Plugin_Abstract return; } - $CC_CONFIG = Config::getConfig(); - $view = $this->_bootstrap->getResource('view'); $baseUrl = Config::getBasePath(); - $view->headScript()->appendFile($baseUrl . 'js/libs/jquery-1.8.3.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/libs/jquery-ui-1.8.24.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/libs/angular.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/bootstrap/bootstrap.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/libs/underscore-min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') + $view->headScript()->appendFile(Assets::url('js/libs/jquery-1.8.3.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/libs/jquery-ui-1.8.24.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/libs/angular.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/bootstrap/bootstrap.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/libs/underscore-min.js'), 'text/javascript') - ->appendFile($baseUrl . 'js/qtip/jquery.qtip.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/jplayer/jquery.jplayer.min.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/sprintf/sprintf-0.7-beta1.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/cookie/js.cookie.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/i18n/jquery.i18n.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'locale/general-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'locale/datatables-translation-table?' . $CC_CONFIG['airtime_version'], 'text/javascript') + ->appendFile(Assets::url('js/qtip/jquery.qtip.js'), 'text/javascript') + ->appendFile(Assets::url('js/jplayer/jquery.jplayer.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/sprintf/sprintf-0.7-beta1.js'), 'text/javascript') + ->appendFile(Assets::url('js/cookie/js.cookie.js'), 'text/javascript') + ->appendFile(Assets::url('js/i18n/jquery.i18n.js'), 'text/javascript') + ->appendFile($baseUrl . 'locale/general-translation-table', 'text/javascript') + ->appendFile($baseUrl . 'locale/datatables-translation-table', 'text/javascript') ->appendScript('$.i18n.setDictionary(general_dict)') ->appendScript("var baseUrl='{$baseUrl}'"); @@ -212,14 +208,14 @@ class PageLayoutInitPlugin extends Zend_Controller_Plugin_Abstract } // scripts for now playing bar - $view->headScript()->appendFile($baseUrl . 'js/airtime/airtime_bootstrap.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/airtime/dashboard/helperfunctions.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/airtime/dashboard/dashboard.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/airtime/dashboard/versiontooltip.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/tipsy/jquery.tipsy.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') + $view->headScript()->appendFile(Assets::url('js/airtime/airtime_bootstrap.js'), 'text/javascript') + ->appendFile(Assets::url('js/airtime/dashboard/helperfunctions.js'), 'text/javascript') + ->appendFile(Assets::url('js/airtime/dashboard/dashboard.js'), 'text/javascript') + ->appendFile(Assets::url('js/airtime/dashboard/versiontooltip.js'), 'text/javascript') + ->appendFile(Assets::url('js/tipsy/jquery.tipsy.js'), 'text/javascript') - ->appendFile($baseUrl . 'js/airtime/common/common.js?' . $CC_CONFIG['airtime_version'], 'text/javascript') - ->appendFile($baseUrl . 'js/airtime/common/audioplaytest.js?' . $CC_CONFIG['airtime_version'], 'text/javascript'); + ->appendFile(Assets::url('js/airtime/common/common.js'), 'text/javascript') + ->appendFile(Assets::url('js/airtime/common/audioplaytest.js'), 'text/javascript'); $user = Application_Model_User::getCurrentUser(); if (!is_null($user)) { diff --git a/legacy/tools/assets-checksum-update.py b/legacy/tools/assets-checksum-update.py new file mode 100755 index 000000000..12ecfe667 --- /dev/null +++ b/legacy/tools/assets-checksum-update.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 + +# Extract the checksum for all the assets in the public directory. +import hashlib +import json +from pathlib import Path + +legacy_root = Path(__file__).parent.parent + +scan_dir = legacy_root / "public" +dest_file = legacy_root / "application/assets.json" +result = {} + + +def compute_md5(filepath: Path) -> str: + with filepath.open("rb") as file: + buffer = hashlib.md5() # nosec + while True: + blob = file.read(8192) + if not blob: + break + buffer.update(blob) + + return buffer.hexdigest() + + +def compute_md5_foreach_asset_in(root: Path): + for path in root.iterdir(): + if path.is_dir(): + compute_md5_foreach_asset_in(path) + else: + if path.suffix in (".js", ".css"): + result_key = str(path)[len(str(scan_dir)) + 1 :] + result[result_key] = compute_md5(path) + + +compute_md5_foreach_asset_in(scan_dir) +dest_file.write_text(json.dumps(dict(sorted(result.items())), indent=2) + "\n")