mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-21 19:35:38 +00:00
feat(calendar): add copy to clipboard button in "links to calendar" panel
This commit is contained in:
@@ -565,6 +565,7 @@ vtodo_class2 = "(Confidential task)";
|
|||||||
"CalDAV URL" = "CalDAV URL ";
|
"CalDAV URL" = "CalDAV URL ";
|
||||||
"WebDAV ICS URL" = "WebDAV ICS URL";
|
"WebDAV ICS URL" = "WebDAV ICS URL";
|
||||||
"WebDAV XML URL" = "WebDAV XML URL";
|
"WebDAV XML URL" = "WebDAV XML URL";
|
||||||
|
"Clipboard" = "Copy to clipboard";
|
||||||
|
|
||||||
/* Error messages */
|
/* Error messages */
|
||||||
"dayFieldInvalid" = "Please specify a numerical value in the Days field greater or equal to 1.";
|
"dayFieldInvalid" = "Please specify a numerical value in the Days field greater or equal to 1.";
|
||||||
|
|||||||
@@ -35,34 +35,58 @@
|
|||||||
|
|
||||||
<div layout="column" ng-hide="::links.calendar.isWebCalendar">
|
<div layout="column" ng-hide="::links.calendar.isWebCalendar">
|
||||||
<div class="sg-md-title"><var:string label:value="Authenticated User Access"/></div>
|
<div class="sg-md-title"><var:string label:value="Authenticated User Access"/></div>
|
||||||
<md-input-container class="md-block">
|
<md-input-container class="md-input-clipboard">
|
||||||
<label><var:string label:value="CalDAV URL"/></label>
|
<label><var:string label:value="CalDAV URL"/></label>
|
||||||
<input type="text" ng-model="::links.calendar.urls.calDavURL" ng-readonly="true"/>
|
<input id="user-caldav-url" type="text" ng-model="::links.calendar.urls.calDavURL" ng-readonly="true"/>
|
||||||
|
<md-button aria-label="Copy to clipboard" class="md-icon-button" ng-click="links.clipboard('user-caldav-url')">
|
||||||
|
<md-tooltip><var:string label:value="Clipboard"/></md-tooltip>
|
||||||
|
<md-icon label:aria-label="Copy Icon">content_copy</md-icon>
|
||||||
|
</md-button>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
<md-input-container class="md-block">
|
<md-input-container class="md-input-clipboard">
|
||||||
<label><var:string label:value="WebDAV ICS URL"/></label>
|
<label><var:string label:value="WebDAV ICS URL"/></label>
|
||||||
<input type="text" ng-model="::links.calendar.urls.webDavICSURL" ng-readonly="true"/>
|
<input id="user-webdav-ics-url" type="text" ng-model="::links.calendar.urls.webDavICSURL" ng-readonly="true"/>
|
||||||
|
<md-button aria-label="Copy to clipboard" class="md-icon-button" ng-click="links.clipboard('user-webdav-ics-url')">
|
||||||
|
<md-tooltip><var:string label:value="Clipboard"/></md-tooltip>
|
||||||
|
<md-icon label:aria-label="Content_copy">content_copy</md-icon>
|
||||||
|
</md-button>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
<md-input-container class="md-block">
|
<md-input-container class="md-input-clipboard">
|
||||||
<label><var:string label:value="WebDAV XML URL"/></label>
|
<label><var:string label:value="WebDAV XML URL"/></label>
|
||||||
<input type="text" ng-model="::links.calendar.urls.webDavXMLURL" ng-readonly="true"/>
|
<input id="user-webdav-xml-url" type="text" ng-model="::links.calendar.urls.webDavXMLURL" ng-readonly="true"/>
|
||||||
|
<md-button aria-label="Copy to clipboard" class="md-icon-button" ng-click="links.clipboard('user-webdav-xml-url')">
|
||||||
|
<md-tooltip><var:string label:value="Clipboard"/></md-tooltip>
|
||||||
|
<md-icon label:aria-label="Content_copy">content_copy</md-icon>
|
||||||
|
</md-button>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<var:if condition="isPublicAccessEnabled">
|
<var:if condition="isPublicAccessEnabled">
|
||||||
<div layout="column" ng-hide="::links.calendar.isWebCalendar">
|
<div layout="column" ng-hide="::links.calendar.isWebCalendar">
|
||||||
<div class="sg-md-title"><var:string label:value="Public Access"/></div>
|
<div class="sg-md-title"><var:string label:value="Public Access"/></div>
|
||||||
<md-input-container class="md-block">
|
<md-input-container class="md-input-clipboard">
|
||||||
<label><var:string label:value="CalDAV URL"/></label>
|
<label><var:string label:value="CalDAV URL"/></label>
|
||||||
<input type="text" ng-model="::links.calendar.urls.publicCalDavURL" ng-readonly="true"/>
|
<input id="public-caldav-url" type="text" ng-model="::links.calendar.urls.publicCalDavURL" ng-readonly="true"/>
|
||||||
|
<md-button aria-label="Copy to clipboard" class="md-icon-button" ng-click="links.clipboard('public-caldav-url')">
|
||||||
|
<md-tooltip><var:string label:value="Clipboard"/></md-tooltip>
|
||||||
|
<md-icon label:aria-label="Content_copy">content_copy</md-icon>
|
||||||
|
</md-button>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
<md-input-container class="md-block">
|
<md-input-container class="md-input-clipboard">
|
||||||
<label><var:string label:value="WebDAV ICS URL"/></label>
|
<label><var:string label:value="WebDAV ICS URL"/></label>
|
||||||
<input type="text" ng-model="::links.calendar.urls.publicWebDavICSURL" ng-readonly="true"/>
|
<input id="public-webdav-ics-url" type="text" ng-model="::links.calendar.urls.publicWebDavICSURL" ng-readonly="true"/>
|
||||||
|
<md-button aria-label="Copy to clipboard" class="md-icon-button" ng-click="links.clipboard('public-webdav-ics-url')">
|
||||||
|
<md-tooltip><var:string label:value="Clipboard"/></md-tooltip>
|
||||||
|
<md-icon label:aria-label="Content_copy">content_copy</md-icon>
|
||||||
|
</md-button>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
<md-input-container class="md-block">
|
<md-input-container class="md-input-clipboard">
|
||||||
<label><var:string label:value="WebDAV XML URL"/></label>
|
<label><var:string label:value="WebDAV XML URL"/></label>
|
||||||
<input type="text" ng-model="::links.calendar.urls.publicWebDavXMLURL" ng-readonly="true"/>
|
<input id="public-webdav-xml-url" type="text" ng-model="::links.calendar.urls.publicWebDavXMLURL" ng-readonly="true"/>
|
||||||
|
<md-button aria-label="Copy to clipboard" class="md-icon-button" ng-click="links.clipboard('public-webdav-xml-url')">
|
||||||
|
<md-tooltip><var:string label:value="Clipboard"/></md-tooltip>
|
||||||
|
<md-icon label:aria-label="Content_copy">content_copy</md-icon>
|
||||||
|
</md-button>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
</div>
|
</div>
|
||||||
</var:if>
|
</var:if>
|
||||||
|
|||||||
@@ -293,10 +293,16 @@
|
|||||||
var vm = this;
|
var vm = this;
|
||||||
vm.calendar = calendar;
|
vm.calendar = calendar;
|
||||||
vm.close = close;
|
vm.close = close;
|
||||||
|
vm.clipboard = clipboard
|
||||||
|
|
||||||
function close() {
|
function close() {
|
||||||
$mdDialog.hide();
|
$mdDialog.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function clipboard(elem_id) {
|
||||||
|
let linkUrl = document.getElementById(elem_id);
|
||||||
|
navigator.clipboard.writeText(linkUrl.value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ md-input-container {
|
|||||||
&.md-no-flex {
|
&.md-no-flex {
|
||||||
flex: none !important;
|
flex: none !important;
|
||||||
}
|
}
|
||||||
|
&.md-input-clipboard {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
}
|
||||||
.md-errors-spacer {
|
.md-errors-spacer {
|
||||||
// Temporary fix for https://github.com/angular/material/issues/6214
|
// Temporary fix for https://github.com/angular/material/issues/6214
|
||||||
min-height: 0 !important;
|
min-height: 0 !important;
|
||||||
|
|||||||
Reference in New Issue
Block a user