mirror of
https://github.com/appwrite/appwrite
synced 2026-05-22 08:28:42 +00:00
Merge pull request #878 from appwrite/feat-add-cli-packaging-to-function-ui
Feat add cli packaging to function UI
This commit is contained in:
commit
0d3e0e2bd5
8 changed files with 77 additions and 41 deletions
|
|
@ -147,41 +147,7 @@ $usageStatsEnabled = $this->getParam('usageStatsEnabled',true);
|
|||
</div>
|
||||
|
||||
<div class="pull-start">
|
||||
<div data-ui-modal class="modal close box sticky-footer" data-button-text="Deploy Tag">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
|
||||
<h1>Deploy a New Tag</h1>
|
||||
|
||||
<form
|
||||
data-analytics
|
||||
data-analytics-activity
|
||||
data-analytics-event="submit"
|
||||
data-analytics-category="console"
|
||||
data-analytics-label="Create Function Tag"
|
||||
data-service="functions.createTag"
|
||||
data-scope="sdk"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger,reset"
|
||||
data-success-param-alert-text="Created function tag successfully"
|
||||
data-success-param-trigger-events="functions.createTag"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to create function tag"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
||||
<input type="hidden" name="functionId" data-ls-bind="{{router.params.id}}" />
|
||||
|
||||
<label for="tag-command">Command</label>
|
||||
<input type="text" id="tag-command" name="command" required autocomplete="off" class="margin-bottom" placeholder="node main.js" />
|
||||
|
||||
<label for="tag-code">Gzipped Code (tar.gz file)</label>
|
||||
<input type="file" name="code" id="tag-code" size="1" required accept="application/x-gzip">
|
||||
<div class="text-fade text-size-xs margin-top-negative-small margin-bottom-large">(Max file size allowed: <?php echo $fileLimitHuman; ?>)</div>
|
||||
|
||||
<footer>
|
||||
<button type="submit">Create</button> <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
|
||||
</footer>
|
||||
</form>
|
||||
</div>
|
||||
<button data-ls-ui-trigger="deploy-tag">Deploy Tag</button>
|
||||
</div>
|
||||
|
||||
<div class="pull-end paging">
|
||||
|
|
@ -607,4 +573,71 @@ $usageStatsEnabled = $this->getParam('usageStatsEnabled',true);
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-ui-modal class="modal close box sticky-footer" data-button-hide="on" data-open-event="deploy-tag">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
|
||||
<h1 class="margin-bottom-xl">Deploy a New Tag</h1>
|
||||
|
||||
<ul class="phases padding margin-top-negative-small" data-ui-phases>
|
||||
<li>
|
||||
<h2 style="display: none">CLI</h2>
|
||||
|
||||
<p><b>Unix</b></p>
|
||||
|
||||
<div class="margin-bottom">
|
||||
<textarea type="hidden" data-ls-bind="appwrite functions createTag \
|
||||
--functionId={{project-function.$id}} \
|
||||
--command='mycommand' \
|
||||
--code='/myrepo/myfunction'" data-forms-code="bash" data-lang="bash" data-lang-label="Bash"></textarea>
|
||||
</div>
|
||||
|
||||
<p><b>PowerShell</b></p>
|
||||
|
||||
<div class="margin-bottom">
|
||||
<textarea type="hidden" data-ls-bind="appwrite functions createTag \
|
||||
--functionId={{project-function.$id}} ,
|
||||
--command='mycommand' ,
|
||||
--code='/myrepo/myfunction'" data-forms-code="powershell" data-lang="powershell" data-lang-label="PowerShell"></textarea>
|
||||
</div>
|
||||
|
||||
<p>Learn more about <a href="" target="_blank">creating tags</a>, installing and using the <a href="" target="_blank">Appwrite CLI</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h2 style="display: none">Manual</h2>
|
||||
<form class="margin-top-negative"
|
||||
data-analytics
|
||||
data-analytics-activity
|
||||
data-analytics-event="submit"
|
||||
data-analytics-category="console"
|
||||
data-analytics-label="Create Function Tag"
|
||||
data-service="functions.createTag"
|
||||
data-scope="sdk"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger,reset"
|
||||
data-success-param-alert-text="Created function tag successfully"
|
||||
data-success-param-trigger-events="functions.createTag"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to create function tag"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
||||
<input type="hidden" name="functionId" data-ls-bind="{{router.params.id}}" />
|
||||
|
||||
<label for="tag-command">Command</label>
|
||||
<input type="text" id="tag-command" name="command" required autocomplete="off" class="margin-bottom" placeholder="node main.js" />
|
||||
|
||||
<label for="tag-code">Gzipped Code (tar.gz file)</label>
|
||||
<input type="file" name="code" id="tag-code" size="1" required accept="application/x-gzip,.gz">
|
||||
<div class="text-fade text-size-xs margin-top-negative-small margin-bottom-large">(Max file size allowed: <?php echo $fileLimitHuman; ?>)</div>
|
||||
|
||||
<footer>
|
||||
<button type="submit">Create</button> <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
|
||||
</footer>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
2
public/dist/scripts/app-all.js
vendored
2
public/dist/scripts/app-all.js
vendored
|
|
@ -2318,7 +2318,7 @@ let dateFormat=(value.range&&range[value.range])?range[value.range]:'d F Y';for(
|
|||
if(chart){chart.destroy();}
|
||||
else{}
|
||||
chart=new Chart(child.getContext("2d"),config);wrapper.dataset["canvas"]=true;}
|
||||
check();element.addEventListener('change',check);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);div.className="ide";pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.textContent="Click Here to Copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(code);window.getSelection().addRange(range);try{document.execCommand("copy");alerts.add({text:"Copied to clipboard",class:""},3000);}catch(err){alerts.add({text:"Failed to copy text ",class:"error"},3000);}
|
||||
check();element.addEventListener('change',check);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);element.style.display='none';div.className="ide";div.dataset['langLabel']=element.dataset["langLabel"]||'JSON';div.dataset['lang']=element.dataset["lang"]||'json';pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.textContent="Click Here to Copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(code);window.getSelection().addRange(range);try{document.execCommand("copy");alerts.add({text:"Copied to clipboard",class:""},3000);}catch(err){alerts.add({text:"Failed to copy text ",class:"error"},3000);}
|
||||
window.getSelection().removeAllRanges();});let check=function(){if(!element.value){return;}
|
||||
let value=null;try{value=JSON.stringify(JSON.parse(element.value),null,4);}catch(error){value=element.value;}
|
||||
code.innerHTML=value;Prism.highlightElement(code);div.scrollTop=0;};element.addEventListener("change",check);check();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-color",controller:function(element){var preview=document.createElement("div");var picker=document.createElement("input");picker.type="color";preview.className="color-preview";preview.appendChild(picker);picker.addEventListener("change",syncA);picker.addEventListener("input",syncA);element.addEventListener("input",update);element.addEventListener("change",update);function update(){if(element.validity.valid){preview.style.background=element.value;syncB();}}
|
||||
|
|
|
|||
2
public/dist/scripts/app.js
vendored
2
public/dist/scripts/app.js
vendored
|
|
@ -363,7 +363,7 @@ let dateFormat=(value.range&&range[value.range])?range[value.range]:'d F Y';for(
|
|||
if(chart){chart.destroy();}
|
||||
else{}
|
||||
chart=new Chart(child.getContext("2d"),config);wrapper.dataset["canvas"]=true;}
|
||||
check();element.addEventListener('change',check);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);div.className="ide";pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.textContent="Click Here to Copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(code);window.getSelection().addRange(range);try{document.execCommand("copy");alerts.add({text:"Copied to clipboard",class:""},3000);}catch(err){alerts.add({text:"Failed to copy text ",class:"error"},3000);}
|
||||
check();element.addEventListener('change',check);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);element.style.display='none';div.className="ide";div.dataset['langLabel']=element.dataset["langLabel"]||'JSON';div.dataset['lang']=element.dataset["lang"]||'json';pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.textContent="Click Here to Copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(code);window.getSelection().addRange(range);try{document.execCommand("copy");alerts.add({text:"Copied to clipboard",class:""},3000);}catch(err){alerts.add({text:"Failed to copy text ",class:"error"},3000);}
|
||||
window.getSelection().removeAllRanges();});let check=function(){if(!element.value){return;}
|
||||
let value=null;try{value=JSON.stringify(JSON.parse(element.value),null,4);}catch(error){value=element.value;}
|
||||
code.innerHTML=value;Prism.highlightElement(code);div.scrollTop=0;};element.addEventListener("change",check);check();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-color",controller:function(element){var preview=document.createElement("div");var picker=document.createElement("input");picker.type="color";preview.className="color-preview";preview.appendChild(picker);picker.addEventListener("change",syncA);picker.addEventListener("input",syncA);element.addEventListener("input",update);element.addEventListener("change",update);function update(){if(element.validity.valid){preview.style.background=element.value;syncB();}}
|
||||
|
|
|
|||
2
public/dist/styles/default-ltr.css
vendored
2
public/dist/styles/default-ltr.css
vendored
File diff suppressed because one or more lines are too long
2
public/dist/styles/default-rtl.css
vendored
2
public/dist/styles/default-rtl.css
vendored
File diff suppressed because one or more lines are too long
|
|
@ -15,8 +15,11 @@
|
|||
pre.appendChild(code);
|
||||
|
||||
element.parentNode.appendChild(div);
|
||||
element.style.display = 'none';
|
||||
|
||||
div.className = "ide";
|
||||
div.dataset['langLabel'] = element.dataset["langLabel"] || 'JSON';
|
||||
div.dataset['lang'] = element.dataset["lang"] || 'json';
|
||||
pre.className = "line-numbers";
|
||||
code.className = "prism language-" + lang;
|
||||
copy.className = "icon-docs copy";
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
.func-end(0);
|
||||
.func-start(0);
|
||||
color: var(--config-color-normal);
|
||||
z-index: 4;
|
||||
z-index: 1001;
|
||||
margin: 0 auto;
|
||||
bottom: 15px;
|
||||
max-width: 560px;
|
||||
|
|
|
|||
|
|
@ -559,7 +559,7 @@ class FunctionsCustomServerTest extends Scope
|
|||
],
|
||||
];
|
||||
|
||||
sleep(count($envs) * 15);
|
||||
sleep(count($envs) * 20);
|
||||
fwrite(STDERR, ".");
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue