|
|
@@ -471,4 +471,71 @@ from desktop.views import _ko
|
|
|
});
|
|
|
})();
|
|
|
</script>
|
|
|
+
|
|
|
+ <script type="text/html" id="hue-favorite-app-template">
|
|
|
+ <!-- ko if: isHue4 -->
|
|
|
+ <div title="${ _('Toggle as the default Hue 4 action') }" class="inline pointer favorite-app" data-bind="click: setAsFavoriteApp">
|
|
|
+ <i class="fa" data-bind="css: {'fa-star-o muted': !isFavorite(), 'fa-star': isFavorite }"></i>
|
|
|
+ </div>
|
|
|
+ <!-- /ko -->
|
|
|
+ </script>
|
|
|
+
|
|
|
+ <script type="text/javascript">
|
|
|
+ (function () {
|
|
|
+
|
|
|
+ var FavoriteApp = function (params) {
|
|
|
+ var self = this;
|
|
|
+ self.isHue4 = ko.observable(params.hue4);
|
|
|
+ self.isFavorite = ko.observable(false);
|
|
|
+ self.app = params.app;
|
|
|
+ self.interpreter = params.interpreter;
|
|
|
+
|
|
|
+ self.parseCurrentFavorite = function (data) {
|
|
|
+ self.isFavorite(false);
|
|
|
+ if (data.status === 0 && data.data && data.data.default_app) {
|
|
|
+ try {
|
|
|
+ var defaultApp = JSON.parse(data.data.default_app);
|
|
|
+ self.isFavorite(defaultApp.app === self.app && ((self.app === 'editor' && defaultApp.interpreter === self.interpreter) || self.app !== 'editor'));
|
|
|
+ }
|
|
|
+ catch (e) {
|
|
|
+ console.error('${ _ko("There was a problem decoding the default app setting.") }');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ self.setAsFavoriteApp = function (vm, e) {
|
|
|
+ e.originalEvent.stopPropagation();
|
|
|
+ e.originalEvent.stopImmediatePropagation();
|
|
|
+ var postParams = {
|
|
|
+ app: self.app
|
|
|
+ }
|
|
|
+ if (self.app === 'editor' && self.interpreter !== '') {
|
|
|
+ postParams['interpreter'] = self.interpreter;
|
|
|
+ }
|
|
|
+ var post = {};
|
|
|
+ if (self.isFavorite()) {
|
|
|
+ post['delete'] = true;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ post['set'] = ko.mapping.toJSON(postParams);
|
|
|
+ }
|
|
|
+ $.post('/desktop/api2/user_preferences/default_app', post, function (data) {
|
|
|
+ self.parseCurrentFavorite(data);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (self.isHue4()) {
|
|
|
+ // load the fav app status
|
|
|
+ $.get('/desktop/api2/user_preferences/default_app', function (data) {
|
|
|
+ self.parseCurrentFavorite(data);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ ko.components.register('hue-favorite-app', {
|
|
|
+ viewModel: FavoriteApp,
|
|
|
+ template: {element: 'hue-favorite-app-template'}
|
|
|
+ });
|
|
|
+ })();
|
|
|
+ </script>
|
|
|
</%def>
|