Allow multiple connections per browser
This commit is contained in:
		
							parent
							
								
									1cb64a2c8d
								
							
						
					
					
						commit
						1076bb2c9c
					
				@ -24,7 +24,7 @@ class BrowserModBrowser:
 | 
				
			|||||||
        self.entities = {}
 | 
					        self.entities = {}
 | 
				
			||||||
        self.data = {}
 | 
					        self.data = {}
 | 
				
			||||||
        self.settings = {}
 | 
					        self.settings = {}
 | 
				
			||||||
        self.connection = None
 | 
					        self._connections = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.update_entities(hass)
 | 
					        self.update_entities(hass)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -105,8 +105,7 @@ class BrowserModBrowser:
 | 
				
			|||||||
        if self.connection is None:
 | 
					        if self.connection is None:
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        connection, cid = self.connection
 | 
					        for (connection, cid) in self.connection:
 | 
				
			||||||
 | 
					 | 
				
			||||||
            connection.send_message(
 | 
					            connection.send_message(
 | 
				
			||||||
                event_message(
 | 
					                event_message(
 | 
				
			||||||
                    cid,
 | 
					                    cid,
 | 
				
			||||||
@ -130,6 +129,14 @@ class BrowserModBrowser:
 | 
				
			|||||||
        device = dr.async_get_device({(DOMAIN, self.browserID)})
 | 
					        device = dr.async_get_device({(DOMAIN, self.browserID)})
 | 
				
			||||||
        dr.async_remove_device(device.id)
 | 
					        dr.async_remove_device(device.id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @property
 | 
				
			||||||
 | 
					    def connection(self):
 | 
				
			||||||
 | 
					        return self._connections
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @connection.setter
 | 
				
			||||||
 | 
					    def connection(self, con):
 | 
				
			||||||
 | 
					        self._connections.append(con)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def getBrowser(hass, browserID, *, create=True):
 | 
					def getBrowser(hass, browserID, *, create=True):
 | 
				
			||||||
    """Get or create browser by browserID."""
 | 
					    """Get or create browser by browserID."""
 | 
				
			||||||
 | 
				
			|||||||
@ -1918,14 +1918,6 @@ const AutoSettingsMixin = (SuperClass) => {
 | 
				
			|||||||
            return link === null || link === void 0 ? void 0 : link.href;
 | 
					            return link === null || link === void 0 ? void 0 : link.href;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        _updateFavicon({ result }) {
 | 
					        _updateFavicon({ result }) {
 | 
				
			||||||
            // TEMP: Template for testing
 | 
					 | 
				
			||||||
            /*
 | 
					 | 
				
			||||||
              {% if is_state("light.bed_light", "on") %}
 | 
					 | 
				
			||||||
              /local/workspace/test/icons/green.png
 | 
					 | 
				
			||||||
              {% else %}
 | 
					 | 
				
			||||||
              /local/workspace/test/icons/red.png
 | 
					 | 
				
			||||||
              {% endif %}
 | 
					 | 
				
			||||||
            */
 | 
					 | 
				
			||||||
            const link = document.head.querySelector("link[rel~='icon']");
 | 
					            const link = document.head.querySelector("link[rel~='icon']");
 | 
				
			||||||
            link.href = result;
 | 
					            link.href = result;
 | 
				
			||||||
            window.browser_mod.fireEvent("browser-mod-favicon-update");
 | 
					            window.browser_mod.fireEvent("browser-mod-favicon-update");
 | 
				
			||||||
 | 
				
			|||||||
@ -109,14 +109,6 @@ export const AutoSettingsMixin = (SuperClass) => {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _updateFavicon({ result }) {
 | 
					    _updateFavicon({ result }) {
 | 
				
			||||||
      // TEMP: Template for testing
 | 
					 | 
				
			||||||
      /*
 | 
					 | 
				
			||||||
        {% if is_state("light.bed_light", "on") %}
 | 
					 | 
				
			||||||
        /local/workspace/test/icons/green.png
 | 
					 | 
				
			||||||
        {% else %}
 | 
					 | 
				
			||||||
        /local/workspace/test/icons/red.png
 | 
					 | 
				
			||||||
        {% endif %}
 | 
					 | 
				
			||||||
      */
 | 
					 | 
				
			||||||
      const link: any = document.head.querySelector("link[rel~='icon']");
 | 
					      const link: any = document.head.querySelector("link[rel~='icon']");
 | 
				
			||||||
      link.href = result;
 | 
					      link.href = result;
 | 
				
			||||||
      window.browser_mod.fireEvent("browser-mod-favicon-update");
 | 
					      window.browser_mod.fireEvent("browser-mod-favicon-update");
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user