@@ -290,11 +290,6 @@ def template_disabled(name, plugin):
290
290
291
291
# register API blueprint
292
292
self ._setup_blueprints ()
293
- def blueprint_enabled (name , plugin ):
294
- if plugin .implementation is None or not isinstance (plugin .implementation , octoprint .plugin .BlueprintPlugin ):
295
- return
296
- self ._register_blueprint_plugin (plugin .implementation )
297
- pluginLifecycleManager .add_callback (["enabled" ], blueprint_enabled )
298
293
299
294
## Tornado initialization starts here
300
295
@@ -313,7 +308,7 @@ def blueprint_enabled(name, plugin):
313
308
# camera snapshot
314
309
(r"/downloads/camera/current" , util .tornado .UrlForwardHandler , dict (url = s .get (["webcam" , "snapshot" ]), as_attachment = True , access_validation = util .tornado .access_validation_factory (app , loginManager , util .flask .user_validator ))),
315
310
# generated webassets
316
- (r"/static/webassets/(.*)" , util .tornado .LargeResponseHandler , dict (path = s .getBaseFolder ("webassets" )))
311
+ (r"/static/webassets/(.*)" , util .tornado .LargeResponseHandler , dict (path = os . path . join ( s .getBaseFolder ("generated" ), "webassets" )))
317
312
]
318
313
for name , hook in pluginManager .get_hooks ("octoprint.server.http.routes" ).items ():
319
314
try :
@@ -667,12 +662,28 @@ def _setup_assets(self):
667
662
global assets
668
663
global pluginManager
669
664
665
+ base_folder = settings ().getBaseFolder ("generated" )
666
+
670
667
AdjustedEnvironment = type (Environment )(Environment .__name__ , (Environment ,), dict (
671
668
resolver_class = util .flask .PluginAssetResolver
672
669
))
673
- assets = AdjustedEnvironment (app )
674
-
675
- dynamic_assets = util .flask .collect_plugin_assets ()
670
+ class CustomDirectoryEnvironment (AdjustedEnvironment ):
671
+ @property
672
+ def directory (self ):
673
+ return base_folder
674
+
675
+ assets = CustomDirectoryEnvironment (app )
676
+ assets .debug = not settings ().getBoolean (["devel" , "webassets" , "bundle" ])
677
+
678
+ enable_gcodeviewer = settings ().getBoolean (["gcodeViewer" , "enabled" ])
679
+ enable_timelapse = (settings ().get (["webcam" , "snapshot" ]) and settings ().get (["webcam" , "ffmpeg" ]))
680
+ preferred_stylesheet = settings ().get (["devel" , "stylesheet" ])
681
+
682
+ dynamic_assets = util .flask .collect_plugin_assets (
683
+ enable_gcodeviewer = enable_gcodeviewer ,
684
+ enable_timelapse = enable_timelapse ,
685
+ preferred_stylesheet = preferred_stylesheet
686
+ )
676
687
677
688
js_libs = [
678
689
"js/lib/jquery/jquery.min.js" ,
@@ -696,16 +707,15 @@ def _setup_assets(self):
696
707
"js/lib/jquery/jquery.fileupload.js" ,
697
708
"js/lib/jquery/jquery.slimscroll.min.js" ,
698
709
"js/lib/jquery/jquery.qrcode.min.js" ,
699
- "js/lib/sockjs-0.3.4.min.js" ,
700
710
"js/lib/moment-with-locales.min.js" ,
701
711
"js/lib/pusher.color.min.js" ,
702
712
"js/lib/detectmobilebrowser.js" ,
703
713
"js/lib/md5.min.js" ,
704
714
"js/lib/pnotify.min.js" ,
705
715
"js/lib/bootstrap-slider-knockout-binding.js" ,
706
- "js/lib/loglevel.min.js"
716
+ "js/lib/loglevel.min.js" ,
717
+ "js/lib/sockjs-0.3.4.min.js"
707
718
]
708
-
709
719
js_app = dynamic_assets ["js" ] + [
710
720
"js/app/dataupdater.js" ,
711
721
"js/app/helpers.js" ,
@@ -721,29 +731,24 @@ def _setup_assets(self):
721
731
"css/jquery.fileupload-ui.css" ,
722
732
"css/pnotify.min.css"
723
733
]
724
-
725
- css_app = []
726
- less_app = []
727
- for sheet , path in dynamic_assets ["stylesheets" ]:
728
- if sheet == "css" :
729
- css_app .append (path )
730
- elif sheet == "less" :
731
- less_app .append (path )
734
+ css_app = ["empty" ] + dynamic_assets ["css" ]
735
+ less_app = ["empty" ] + dynamic_assets ["less" ]
732
736
733
737
js_libs_bundle = Bundle (* js_libs , output = "webassets/packed_libs.js" )
734
- js_app_bundle = Bundle (* js_app , output = "webassets/package_app.js" )
735
- css_libs_bundle = Bundle (* css_libs , output = "webassets/packed_libs.css" )
738
+ if settings ().getBoolean (["devel" , "webassets" , "minify" ]):
739
+ js_app_bundle = Bundle (* js_app , output = "webassets/package_app.js" , filters = "rjsmin" )
740
+ else :
741
+ js_app_bundle = Bundle (* js_app , output = "webassets/package_app.js" )
742
+ all_js_bundle = Bundle (js_libs_bundle , js_app_bundle , output = "webassets/packed.js" )
736
743
737
- assets .register ("js_libs" , js_libs_bundle )
738
- assets .register ("js_app" , js_app_bundle )
739
- assets .register ("css_libs" , css_libs_bundle )
744
+ css_libs_bundle = Bundle (* css_libs , output = "webassets/packed_libs.css" )
745
+ css_app_bundle = Bundle (* css_app , output = "webassets/packed_app.css" )
746
+ all_css_bundle = Bundle (css_libs_bundle , css_app_bundle , output = "webassets/packed.css" )
747
+ all_less_bundle = Bundle (* less_app , output = "webassets/packed_app.less" )
740
748
741
- if len (css_app ):
742
- css_app_bundle = Bundle (* css_app , output = "webassets/packed_app.css" )
743
- assets .register ("css_app" , css_app_bundle )
744
- if len (less_app ):
745
- less_app_bundle = Bundle (* less_app , output = "webassets/packed_app.less" )
746
- assets .register ("less_app" , less_app_bundle )
749
+ assets .register ("all_js" , all_js_bundle )
750
+ assets .register ("all_css" , all_css_bundle )
751
+ assets .register ("less_app" , all_less_bundle )
747
752
748
753
749
754
class LifecycleManager (object ):
0 commit comments