mirror of
https://github.com/ParisNeo/lollms-webui.git
synced 2025-06-23 09:15:30 +00:00
upgraded ui
This commit is contained in:
7
app.py
7
app.py
@ -100,13 +100,14 @@ if __name__ == "__main__":
|
|||||||
from lollms.server.endpoints.lollms_extensions_infos import router as lollms_extensions_infos_router
|
from lollms.server.endpoints.lollms_extensions_infos import router as lollms_extensions_infos_router
|
||||||
from lollms.server.endpoints.lollms_generator import router as lollms_generator_router
|
from lollms.server.endpoints.lollms_generator import router as lollms_generator_router
|
||||||
from lollms.server.endpoints.lollms_configuration_infos import router as lollms_configuration_infos_router
|
from lollms.server.endpoints.lollms_configuration_infos import router as lollms_configuration_infos_router
|
||||||
|
from lollms.server.endpoints.lollms_skills_library import router as lollms_skills_library_router
|
||||||
|
|
||||||
from lollms.server.endpoints.lollms_user import router as lollms_user_router
|
from lollms.server.endpoints.lollms_user import router as lollms_user_router
|
||||||
from lollms.server.endpoints.lollms_xtts import router as lollms_xtts_add_router
|
from lollms.server.endpoints.lollms_xtts import router as lollms_xtts_add_router
|
||||||
from lollms.server.endpoints.lollms_sd import router as lollms_sd_router
|
from lollms.server.endpoints.lollms_sd import router as lollms_sd_router
|
||||||
from lollms.server.endpoints.lollms_ollama import router as lollms_ollama_router
|
from lollms.server.endpoints.lollms_ollama import router as lollms_ollama_router
|
||||||
from lollms.server.endpoints.lollms_vllm import router as lollms_vllm_router
|
from lollms.server.endpoints.lollms_vllm import router as lollms_vllm_router
|
||||||
from lollms.server.endpoints.lollms_motion_ctrl import router as lollms_motion_ctrl
|
from lollms.server.endpoints.lollms_motion_ctrl import router as lollms_motion_ctrl_router
|
||||||
|
|
||||||
from endpoints.lollms_webui_infos import router as lollms_webui_infos_router
|
from endpoints.lollms_webui_infos import router as lollms_webui_infos_router
|
||||||
from lollms.server.endpoints.lollms_discussion import router as lollms_discussion_router
|
from lollms.server.endpoints.lollms_discussion import router as lollms_discussion_router
|
||||||
@ -124,6 +125,7 @@ if __name__ == "__main__":
|
|||||||
from lollms.server.events.lollms_files_events import add_events as lollms_files_events_add
|
from lollms.server.events.lollms_files_events import add_events as lollms_files_events_add
|
||||||
from lollms.server.events.lollms_model_events import add_events as lollms_model_events_add
|
from lollms.server.events.lollms_model_events import add_events as lollms_model_events_add
|
||||||
from lollms.server.events.lollms_rag_events import add_events as lollms_rag_events_add
|
from lollms.server.events.lollms_rag_events import add_events as lollms_rag_events_add
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
from events.lollms_generation_events import add_events as lollms_webui_generation_events_add
|
from events.lollms_generation_events import add_events as lollms_webui_generation_events_add
|
||||||
@ -144,6 +146,7 @@ if __name__ == "__main__":
|
|||||||
app.include_router(lollms_models_infos_router)
|
app.include_router(lollms_models_infos_router)
|
||||||
app.include_router(lollms_personalities_infos_router)
|
app.include_router(lollms_personalities_infos_router)
|
||||||
app.include_router(lollms_extensions_infos_router)
|
app.include_router(lollms_extensions_infos_router)
|
||||||
|
app.include_router(lollms_skills_library_router)
|
||||||
|
|
||||||
app.include_router(lollms_webui_infos_router)
|
app.include_router(lollms_webui_infos_router)
|
||||||
app.include_router(lollms_discussion_router)
|
app.include_router(lollms_discussion_router)
|
||||||
@ -157,7 +160,7 @@ if __name__ == "__main__":
|
|||||||
app.include_router(lollms_ollama_router)
|
app.include_router(lollms_ollama_router)
|
||||||
app.include_router(lollms_petals_router)
|
app.include_router(lollms_petals_router)
|
||||||
app.include_router(lollms_vllm_router)
|
app.include_router(lollms_vllm_router)
|
||||||
app.include_router(lollms_motion_ctrl)
|
app.include_router(lollms_motion_ctrl_router)
|
||||||
|
|
||||||
|
|
||||||
app.include_router(lollms_playground_router)
|
app.include_router(lollms_playground_router)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# =================== Lord Of Large Language Multimodal Systems Configuration file ===========================
|
# =================== Lord Of Large Language Multimodal Systems Configuration file ===========================
|
||||||
version: 73
|
version: 74
|
||||||
binding_name: null
|
binding_name: null
|
||||||
model_name: null
|
model_name: null
|
||||||
model_variant: null
|
model_variant: null
|
||||||
@ -85,6 +85,10 @@ current_language: en
|
|||||||
enable_sd_service: false
|
enable_sd_service: false
|
||||||
sd_base_url: http://localhost:7860
|
sd_base_url: http://localhost:7860
|
||||||
|
|
||||||
|
# Motion control service
|
||||||
|
enable_motion_ctrl_service: false
|
||||||
|
motion_ctrl_base_url: http://localhost:7861
|
||||||
|
|
||||||
# ollama service
|
# ollama service
|
||||||
enable_ollama_service: false
|
enable_ollama_service: false
|
||||||
ollama_base_url: http://localhost:11434
|
ollama_base_url: http://localhost:11434
|
||||||
|
@ -124,49 +124,6 @@ async def execute_code(request: CodeRequest):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class OpenCodeFolderInVsCodeRequestModel(BaseModel):
|
|
||||||
discussion_id: Optional[int] = Field(None, gt=0)
|
|
||||||
message_id: Optional[int] = Field(None, gt=0)
|
|
||||||
code: Optional[str]
|
|
||||||
folder_path: Optional[str]
|
|
||||||
|
|
||||||
@router.post("/open_code_folder_in_vs_code")
|
|
||||||
async def open_code_folder_in_vs_code(request: OpenCodeFolderInVsCodeRequestModel):
|
|
||||||
if lollmsElfServer.config.headless_server_mode:
|
|
||||||
return {"status":False,"error":"Open code folder in vscode is blocked when in headless mode for obvious security reasons!"}
|
|
||||||
|
|
||||||
if lollmsElfServer.config.host!="localhost" and lollmsElfServer.config.host!="127.0.0.1":
|
|
||||||
return {"status":False,"error":"Open code folder in vscode is blocked when the server is exposed outside for very obvious reasons!"}
|
|
||||||
|
|
||||||
if lollmsElfServer.config.turn_on_open_file_validation:
|
|
||||||
if not show_yes_no_dialog("Validation","Do you validate the opening of folder in vscode?"):
|
|
||||||
return {"status":False,"error":"User refused the execution!"}
|
|
||||||
|
|
||||||
try:
|
|
||||||
if request.discussion_id:
|
|
||||||
ASCIIColors.info("Opening folder:")
|
|
||||||
root_folder = lollmsElfServer.lollms_paths.personal_outputs_path/"discussions"/f"d_{request.discussion_id}"
|
|
||||||
root_folder.mkdir(parents=True,exist_ok=True)
|
|
||||||
tmp_file = root_folder/f"ai_code_{request.message_id}.py"
|
|
||||||
with open(tmp_file,"w") as f:
|
|
||||||
f.write(request.code)
|
|
||||||
|
|
||||||
if os.path.isdir(root_folder):
|
|
||||||
subprocess.run(['code', root_folder], check=True)
|
|
||||||
elif request.folder_path:
|
|
||||||
ASCIIColors.info("Opening folder:")
|
|
||||||
root_folder = request.folder_path
|
|
||||||
root_folder.mkdir(parents=True,exist_ok=True)
|
|
||||||
|
|
||||||
if os.path.isdir(root_folder):
|
|
||||||
subprocess.run(['code', root_folder], check=True)
|
|
||||||
|
|
||||||
return {"status": True, "execution_time": 0}
|
|
||||||
except Exception as ex:
|
|
||||||
trace_exception(ex)
|
|
||||||
lollmsElfServer.error(ex)
|
|
||||||
return {"status":False,"error":"An error occurred during processing."}
|
|
||||||
|
|
||||||
class FilePath(BaseModel):
|
class FilePath(BaseModel):
|
||||||
path: Optional[str] = Field(None, max_length=500)
|
path: Optional[str] = Field(None, max_length=500)
|
||||||
|
|
||||||
@ -209,7 +166,49 @@ async def open_file(file_path: FilePath):
|
|||||||
lollmsElfServer.error(ex)
|
lollmsElfServer.error(ex)
|
||||||
return {"status":False,"error":str(ex)}
|
return {"status":False,"error":str(ex)}
|
||||||
|
|
||||||
|
|
||||||
|
class OpenCodeFolderInVsCodeRequestModel(BaseModel):
|
||||||
|
client_id: str = Field(...)
|
||||||
|
discussion_id: Optional[int] = Field(None, gt=0)
|
||||||
|
message_id: Optional[int] = Field(None, gt=0)
|
||||||
|
code: Optional[str]
|
||||||
|
|
||||||
|
@router.post("/open_code_folder_in_vs_code")
|
||||||
|
async def open_code_folder_in_vs_code(request: OpenCodeFolderInVsCodeRequestModel):
|
||||||
|
|
||||||
|
client = lollmsElfServer.session.get_client(request.client_id)
|
||||||
|
|
||||||
|
if lollmsElfServer.config.headless_server_mode:
|
||||||
|
return {"status":False,"error":"Open code folder in vscode is blocked when in headless mode for obvious security reasons!"}
|
||||||
|
|
||||||
|
if lollmsElfServer.config.host!="localhost" and lollmsElfServer.config.host!="127.0.0.1":
|
||||||
|
return {"status":False,"error":"Open code folder in vscode is blocked when the server is exposed outside for very obvious reasons!"}
|
||||||
|
|
||||||
|
if lollmsElfServer.config.turn_on_open_file_validation:
|
||||||
|
if not show_yes_no_dialog("Validation","Do you validate the opening of folder in vscode?"):
|
||||||
|
return {"status":False,"error":"User refused the execution!"}
|
||||||
|
|
||||||
|
try:
|
||||||
|
if request.discussion_id:
|
||||||
|
ASCIIColors.info("Opening folder:")
|
||||||
|
root_folder = client.discussion.discussion_folder
|
||||||
|
root_folder.mkdir(parents=True,exist_ok=True)
|
||||||
|
tmp_file = root_folder/f"ai_code_{request.message_id}.py"
|
||||||
|
with open(tmp_file,"w") as f:
|
||||||
|
f.write(request.code)
|
||||||
|
|
||||||
|
if os.path.isdir(root_folder):
|
||||||
|
subprocess.run(['code', root_folder], check=True)
|
||||||
|
|
||||||
|
|
||||||
|
return {"status": True, "execution_time": 0}
|
||||||
|
except Exception as ex:
|
||||||
|
trace_exception(ex)
|
||||||
|
lollmsElfServer.error(ex)
|
||||||
|
return {"status":False,"error":"An error occurred during processing."}
|
||||||
|
|
||||||
class VSCodeData(BaseModel):
|
class VSCodeData(BaseModel):
|
||||||
|
client_id: str = Field(...)
|
||||||
discussion_id: Optional[int] = Field(None, ge=0)
|
discussion_id: Optional[int] = Field(None, ge=0)
|
||||||
message_id: Optional[int] = Field(None, ge=0)
|
message_id: Optional[int] = Field(None, ge=0)
|
||||||
code: str = Field(...)
|
code: str = Field(...)
|
||||||
@ -222,6 +221,7 @@ async def open_code_in_vs_code(vs_code_data: VSCodeData):
|
|||||||
:param vs_code_data: The data object.
|
:param vs_code_data: The data object.
|
||||||
:return: A JSON response with the status of the operation.
|
:return: A JSON response with the status of the operation.
|
||||||
"""
|
"""
|
||||||
|
client = lollmsElfServer.session.get_client(vs_code_data.client_id)
|
||||||
if lollmsElfServer.config.headless_server_mode:
|
if lollmsElfServer.config.headless_server_mode:
|
||||||
return {"status":False,"error":"Open code in vs code is blocked when in headless mode for obvious security reasons!"}
|
return {"status":False,"error":"Open code in vs code is blocked when in headless mode for obvious security reasons!"}
|
||||||
|
|
||||||
@ -239,14 +239,15 @@ async def open_code_in_vs_code(vs_code_data: VSCodeData):
|
|||||||
|
|
||||||
ASCIIColors.info("Opening folder:")
|
ASCIIColors.info("Opening folder:")
|
||||||
# Create a temporary file.
|
# Create a temporary file.
|
||||||
root_folder = Path(os.path.realpath(lollmsElfServer.lollms_paths.personal_outputs_path/"discussions"/f"d_{discussion_id}"/f"{message_id}.py"))
|
root_folder = client.discussion.discussion_folder
|
||||||
|
|
||||||
root_folder.mkdir(parents=True,exist_ok=True)
|
root_folder.mkdir(parents=True,exist_ok=True)
|
||||||
tmp_file = root_folder/f"ai_code_{message_id}.py"
|
tmp_file = root_folder/f"ai_code_{message_id}.py"
|
||||||
with open(tmp_file,"w") as f:
|
with open(tmp_file,"w") as f:
|
||||||
f.write(code)
|
f.write(code)
|
||||||
|
|
||||||
# Use subprocess.Popen to safely open the file
|
# Use subprocess.Popen to safely open the file
|
||||||
subprocess.Popen(["code", str(root_folder)])
|
subprocess.Popen(["code", str(root_folder)], shell=True)
|
||||||
|
|
||||||
return {"status": True, "execution_time": 0}
|
return {"status": True, "execution_time": 0}
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
@ -255,6 +256,7 @@ async def open_code_in_vs_code(vs_code_data: VSCodeData):
|
|||||||
return {"status":False,"error":str(ex)}
|
return {"status":False,"error":str(ex)}
|
||||||
|
|
||||||
class FolderRequest(BaseModel):
|
class FolderRequest(BaseModel):
|
||||||
|
client_id: str = Field(...)
|
||||||
discussion_id: Optional[int] = Field(None, title="The discussion ID")
|
discussion_id: Optional[int] = Field(None, title="The discussion ID")
|
||||||
folder_path: Optional[str] = Field(None, title="The folder path")
|
folder_path: Optional[str] = Field(None, title="The folder path")
|
||||||
|
|
||||||
@ -266,6 +268,7 @@ async def open_code_folder(request: FolderRequest):
|
|||||||
:param request: The HTTP request object.
|
:param request: The HTTP request object.
|
||||||
:return: A JSON response with the status of the operation.
|
:return: A JSON response with the status of the operation.
|
||||||
"""
|
"""
|
||||||
|
client = lollmsElfServer.session.get_client(request.client_id)
|
||||||
if lollmsElfServer.config.headless_server_mode:
|
if lollmsElfServer.config.headless_server_mode:
|
||||||
return {"status":False,"error":"Open code folder is blocked when in headless mode for obvious security reasons!"}
|
return {"status":False,"error":"Open code folder is blocked when in headless mode for obvious security reasons!"}
|
||||||
|
|
||||||
@ -282,7 +285,7 @@ async def open_code_folder(request: FolderRequest):
|
|||||||
|
|
||||||
ASCIIColors.info("Opening folder:")
|
ASCIIColors.info("Opening folder:")
|
||||||
# Create a temporary file.
|
# Create a temporary file.
|
||||||
root_folder = lollmsElfServer.lollms_paths.personal_outputs_path / "discussions" / f"d_{discussion_id}"
|
root_folder = client.discussion.discussion_folder
|
||||||
root_folder.mkdir(parents=True, exist_ok=True)
|
root_folder.mkdir(parents=True, exist_ok=True)
|
||||||
if platform.system() == 'Windows':
|
if platform.system() == 'Windows':
|
||||||
subprocess.run(['start', str(root_folder)], check=True)
|
subprocess.run(['start', str(root_folder)], check=True)
|
||||||
|
Submodule lollms_core updated: 11f823bb8a...487aa45ce2
8
web/dist/assets/index-13bf9073.css
vendored
Normal file
8
web/dist/assets/index-13bf9073.css
vendored
Normal file
File diff suppressed because one or more lines are too long
8
web/dist/assets/index-37768396.css
vendored
8
web/dist/assets/index-37768396.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
web/dist/index.html
vendored
4
web/dist/index.html
vendored
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>LoLLMS WebUI - Welcome</title>
|
<title>LoLLMS WebUI - Welcome</title>
|
||||||
<script type="module" crossorigin src="/assets/index-f8b842b6.js"></script>
|
<script type="module" crossorigin src="/assets/index-d102c559.js"></script>
|
||||||
<link rel="stylesheet" href="/assets/index-37768396.css">
|
<link rel="stylesheet" href="/assets/index-13bf9073.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
@ -62,6 +62,10 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
client_id: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
code: {
|
code: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
@ -135,7 +139,8 @@ export default {
|
|||||||
},
|
},
|
||||||
executeCode() {
|
executeCode() {
|
||||||
this.isExecuting=true;
|
this.isExecuting=true;
|
||||||
const json = JSON.stringify({
|
const json = JSON.stringify({
|
||||||
|
'client_id': this.client_id,
|
||||||
'code': this.code,
|
'code': this.code,
|
||||||
'discussion_id': this.discussion_id,
|
'discussion_id': this.discussion_id,
|
||||||
'message_id': this.message_id,
|
'message_id': this.message_id,
|
||||||
@ -163,7 +168,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
openFolderVsCode(){
|
openFolderVsCode(){
|
||||||
const json = JSON.stringify({ 'code': this.code, 'discussion_id': this.discussion_id, 'message_id': this.message_id, 'language': this.language})
|
const json = JSON.stringify({'client_id': this.client_id, 'code': this.code, 'discussion_id': this.discussion_id, 'message_id': this.message_id})
|
||||||
console.log(json)
|
console.log(json)
|
||||||
fetch(`${this.host}/open_code_in_vs_code`, {
|
fetch(`${this.host}/open_code_in_vs_code`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -183,7 +188,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
openVsCode() {
|
openVsCode() {
|
||||||
const json = JSON.stringify({ 'code': this.code, 'discussion_id': this.discussion_id, 'message_id': this.message_id, 'language': this.language })
|
const json = JSON.stringify({ 'client_id': this.client_id, 'code': this.code, 'discussion_id': this.discussion_id, 'message_id': this.message_id})
|
||||||
console.log(json)
|
console.log(json)
|
||||||
fetch(`${this.host}/open_code_folder_in_vs_code`, {
|
fetch(`${this.host}/open_code_folder_in_vs_code`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -203,7 +208,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
openFolder() {
|
openFolder() {
|
||||||
const json = JSON.stringify({ 'discussion_id': this.discussion_id })
|
const json = JSON.stringify({ 'client_id': this.client_id, 'discussion_id': this.discussion_id })
|
||||||
console.log(json)
|
console.log(json)
|
||||||
fetch(`${this.host}/open_code_folder`, {
|
fetch(`${this.host}/open_code_folder`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
:code="item.code"
|
:code="item.code"
|
||||||
:discussion_id="discussion_id"
|
:discussion_id="discussion_id"
|
||||||
:message_id="message_id"
|
:message_id="message_id"
|
||||||
|
:client_id="client_id"
|
||||||
></code-block>
|
></code-block>
|
||||||
<div v-else v-html="item.html"></div>
|
<div v-else v-html="item.html"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -48,7 +49,11 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
required: false,
|
required: false,
|
||||||
default: "http://localhost:9600",
|
default: "http://localhost:9600",
|
||||||
},
|
},
|
||||||
|
client_id: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
markdownText: {
|
markdownText: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
|
@ -7,27 +7,6 @@
|
|||||||
<div class="group/avatar " >
|
<div class="group/avatar " >
|
||||||
<img :src="getImgUrl()" @error="defaultImg($event)" :data-popover-target="'avatar' + message.id" data-popover-placement="bottom"
|
<img :src="getImgUrl()" @error="defaultImg($event)" :data-popover-target="'avatar' + message.id" data-popover-placement="bottom"
|
||||||
class="w-10 h-10 rounded-full object-fill text-red-700">
|
class="w-10 h-10 rounded-full object-fill text-red-700">
|
||||||
|
|
||||||
<!-- ADDITIONAL INFO -->
|
|
||||||
<!-- <div data-popper :id="'avatar' + message.id" role="tooltip"
|
|
||||||
class=" -mx-2 absolute invisible rounded-lg bg-bg-light-tone-panel dark:bg-bg-dark-tone-panel block m-2 p-1 opacity-0 z-10 transition-opacity ease-in-out duration-500 group-hover/avatar:visible group-hover/avatar:opacity-100 ">
|
|
||||||
|
|
||||||
<div class="relative flex flex-row items-start">
|
|
||||||
|
|
||||||
<img :src="getImgUrl()" @error="defaultImg($event)" class=" border-2 border-primary p-1 rounded-lg w-60 h-60" />
|
|
||||||
|
|
||||||
<div class="flex flex-col justify-between p-4 leading-normal">
|
|
||||||
<h5 class="mb-2 text-2xl font-bold tracking-tight text-gray-900 dark:text-white">Noteworthy
|
|
||||||
technology acquisitions 2021</h5>
|
|
||||||
<p class="mb-3 font-normal text-gray-700 dark:text-gray-400">Here are the biggest enterprise
|
|
||||||
technology acquisitions of 2021 so far, in reverse chronological order.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -211,7 +190,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<MarkdownRenderer ref="mdRender" v-if="!editMsgMode" :host="host" :markdown-text="message.content" :message_id="message.id" :discussion_id="message.discussion_id">
|
<MarkdownRenderer ref="mdRender" v-if="!editMsgMode" :host="host" :markdown-text="message.content" :message_id="message.id" :discussion_id="message.discussion_id" :client_id="this.$store.state.client_id">
|
||||||
</MarkdownRenderer>
|
</MarkdownRenderer>
|
||||||
<div >
|
<div >
|
||||||
<textarea v-if="message.open" ref="mdTextarea" @keydown.tab.prevent="insertTab"
|
<textarea v-if="message.open" ref="mdTextarea" @keydown.tab.prevent="insertTab"
|
||||||
|
@ -35,7 +35,8 @@ export const store = createStore({
|
|||||||
ai_conditionning: '',
|
ai_conditionning: '',
|
||||||
ai_disclaimer: '',
|
ai_disclaimer: '',
|
||||||
ai_icon: null,
|
ai_icon: null,
|
||||||
},
|
},
|
||||||
|
client_id:"",
|
||||||
// count: 0,
|
// count: 0,
|
||||||
yesNoDialog:null,
|
yesNoDialog:null,
|
||||||
universalForm:null,
|
universalForm:null,
|
||||||
|
@ -1082,6 +1082,7 @@ export default {
|
|||||||
socketIOConnected() {
|
socketIOConnected() {
|
||||||
console.log("socketIOConnected")
|
console.log("socketIOConnected")
|
||||||
this.$store.state.isConnected=true;
|
this.$store.state.isConnected=true;
|
||||||
|
this.$store.state.client_id = socket.id
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
socketIODisconnected() {
|
socketIODisconnected() {
|
||||||
|
Submodule zoos/personalities_zoo updated: 30a43e4bd1...88735b0798
Reference in New Issue
Block a user