aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Module/Connedit.php5
-rw-r--r--include/connections.php3
-rw-r--r--view/css/mod_connedit.css105
-rw-r--r--view/js/mod_connedit.js65
-rwxr-xr-xview/tpl/abook_edit.tpl185
5 files changed, 182 insertions, 181 deletions
diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php
index aac42abb9..55113eb82 100644
--- a/Zotlabs/Module/Connedit.php
+++ b/Zotlabs/Module/Connedit.php
@@ -654,12 +654,9 @@ class Connedit extends \Zotlabs\Web\Controller {
}
$vc = get_abconfig(local_channel(),$contact['abook_xchan'],'system','vcard');
-logger('vc: ' . $vc);
$vctmp = (($vc) ? \Sabre\VObject\Reader::read($vc) : null);
- $vcard = (($vctmp) ? get_vcard_array($vctmp) : [] );
-
-logger('vcard: ' . print_r($vcard,true));
+ $vcard = (($vctmp) ? get_vcard_array($vctmp,$contact['abook_id']) : [] );
$tpl = get_markup_template("abook_edit.tpl");
diff --git a/include/connections.php b/include/connections.php
index 3d52d1a48..ca6931601 100644
--- a/include/connections.php
+++ b/include/connections.php
@@ -720,7 +720,7 @@ function update_vcard($arr,$vcard = null) {
}
-function get_vcard_array($vc) {
+function get_vcard_array($vc,$id) {
$photo = '';
if($vc->PHOTO) {
@@ -810,6 +810,7 @@ function get_vcard_array($vc) {
}
$card = [
+ 'id' => $id,
'photo' => $photo,
'fn' => $fn,
'org' => $org,
diff --git a/view/css/mod_connedit.css b/view/css/mod_connedit.css
index 87eff66d4..176554ed9 100644
--- a/view/css/mod_connedit.css
+++ b/view/css/mod_connedit.css
@@ -16,3 +16,108 @@
#perms-tool-table td {
vertical-align: top;
}
+
+
+.vcard-header {
+ cursor: pointer;
+ padding: 7px 10px;
+ margin-bottom: 3px;
+}
+
+.vcard-header:hover,
+.vcard-header.active {
+ background-color: rgb(238,238,238);
+ cursor: pointer;
+}
+
+.vcard-header.active:hover {
+ cursor: initial;
+}
+
+.vcard-add-field {
+ margin-top: 8px;
+ display: none;
+}
+
+.vcard-cancel {
+ margin: 6px 10px;
+ height: 32px;
+ line-height: 32px;
+ color: #777;
+ font-size: 16px;
+
+ cursor: pointer;
+ display: none;
+ float: right;
+}
+
+.vcard-info {
+ display: none;
+}
+
+.vcard-nophoto {
+ display: inline-block;
+ width: 32px;
+ height: 32px;
+ border-radius: 4px;
+ border: 1px solid #ccc;
+ text-align: center;
+ font-size: 20px;
+ color: #fff;
+ background-color: #ddd;
+}
+
+.vcard-photo {
+ width: 32px;
+ height: 32px;
+ border-radius: 4px;
+ border: 1px solid #ccc;
+ text-align: center;
+}
+
+.vcard-fn-preview,
+input.vcard-fn {
+ font-size: 16px !important;
+ margin-left: 5px;
+}
+
+.vcard-email-preview,
+.vcard-tel-preview {
+ color: #999;
+}
+
+
+.vcard-fn,
+#create_form,
+#more_block {
+ display: none;
+}
+
+input.vcard-fn,
+.vcard-fn-create input,
+.vcard-org input,
+.vcard-title input,
+.vcard-tel input,
+.vcard-email input,
+.vcard-impp input,
+.vcard-url input,
+.vcard-adr input,
+.vcard-note input {
+ padding: 0px;
+ margin-left: 5px;
+ border-width: 0px 0px 1px 0px;
+ border-radius: 0px;
+ background-color: transparent;
+ min-width: 160px;
+}
+
+#template-form-vcard-org,
+#template-form-vcard-title,
+#template-form-vcard-tel,
+#template-form-vcard-email,
+#template-form-vcard-impp,
+#template-form-vcard-url,
+#template-form-vcard-adr,
+#template-form-vcard-note {
+ display: none;
+}
diff --git a/view/js/mod_connedit.js b/view/js/mod_connedit.js
index 84fff5ed1..252ed9e7c 100644
--- a/view/js/mod_connedit.js
+++ b/view/js/mod_connedit.js
@@ -16,6 +16,71 @@ $(document).ready(function() {
connectFullShare();
});
+ $(document).on('click', '.vcard-header, .vcard-cancel-btn', updateView);
+ $(document).on('click', '.add-field', doAdd);
+ $(document).on('click', '.remove-field', doRemove);
+
+ function updateView() {
+ var id = $(this).data('id');
+ var action = $(this).data('action');
+ var header = $('#vcard-header-' + id);
+ var cancel = $('#vcard-cancel-' + id);
+ var addField = $('#vcard-add-field-' + id);
+ var info = $('#vcard-info-' + id);
+ var vcardPreview = $('#vcard-preview-' + id);
+ var fn = $('#vcard-fn-' + id);
+
+ if(action === 'open') {
+ $(header).addClass('active');
+ $(cancel).show();
+ $(addField).show();
+ $(info).show();
+ $(fn).show();
+ $(vcardPreview).hide();
+ }
+ else {
+ $(header).removeClass('active');
+ $(cancel).hide();
+ $(addField).hide();
+ $(info).hide();
+ $(fn).hide();
+ $(vcardPreview).show();
+ }
+ }
+
+ function doAdd() {
+ var what = $(this).data('add');
+ var id = $(this).data('id');
+ var element = '#template-form-' + what;
+ var where = '#abook-edit-form';
+
+ $(element + ' .remove-field').attr('data-id', id)
+
+ if(what === 'vcard-adr') {
+ var adrCount = $(where + ' .form-' + what).length;
+ var attrName = 'adr[' + adrCount + '][]';
+ $(element + ' input').attr('name', attrName);
+ }
+
+ if(what === 'vcard-org' || what === 'vcard-title' || what === 'vcard-note') {
+ $(where + ' .add-' + what).hide()
+ }
+
+ $(element).clone().removeAttr('id').appendTo(where + ' .form-' + what + '-wrapper');
+ }
+
+ function doRemove() {
+ var what = $(this).data('remove');
+ var element = $(this).parents('div.form-' + what);
+ var where = '#abook_edit_form' + $(this).data('id');
+
+ if(what === 'vcard-org' || what === 'vcard-title' || what === 'vcard-note') {
+ $(where + ' .add-' + what).show()
+ }
+
+ $(element).remove();
+ }
+
});
function connectFullShare() {
diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl
index 0b18e5d4c..383eb49ed 100755
--- a/view/tpl/abook_edit.tpl
+++ b/view/tpl/abook_edit.tpl
@@ -98,172 +98,6 @@
<div id="vcard-tool-collapse" class="panel-collapse collapse{{if !$is_pending || $section == 'vcard'}} in{{/if}}" role="tabpanel" aria-labelledby="vcard-tool">
-<script>
-$(document).ready(function() {
-
- $(document).on('click', '.vcard-header, .vcard-cancel-btn', updateView);
- $(document).on('click', '.add-field', doAdd);
- $(document).on('click', '.remove-field', doRemove);
-
- function updateView() {
- var id = $(this).data('id');
- var action = $(this).data('action');
- var header = $('#vcard-header-' + id);
- var cancel = $('#vcard-cancel-' + id);
- var addField = $('#vcard-add-field-' + id);
- var info = $('#vcard-info-' + id);
- var vcardPreview = $('#vcard-preview-' + id);
- var fn = $('#vcard-fn-' + id);
-
- if(action === 'open') {
- $(header).addClass('active');
- $(cancel).show();
- $(addField).show();
- $(info).show();
- $(fn).show();
- $(vcardPreview).hide();
- }
- else {
- $(header).removeClass('active');
- $(cancel).hide();
- $(addField).hide();
- $(info).hide();
- $(fn).hide();
- $(vcardPreview).show();
- }
- }
-
- function doAdd() {
- var what = $(this).data('add');
- var id = $(this).data('id');
- var element = '#template-form-' + what;
- var where = '#card_form_' + id;
-
- $(element + ' .remove-field').attr('data-id', id)
-
- if(what === 'vcard-adr') {
- var adrCount = $(where + ' .form-' + what).length;
- var attrName = 'adr[' + adrCount + '][]';
- $(element + ' input').attr('name', attrName);
- }
-
- if(what === 'vcard-org' || what === 'vcard-title' || what === 'vcard-note') {
- $(where + ' .add-' + what).hide()
- }
-
- $(element).clone().removeAttr('id').appendTo(where + ' .form-' + what + '-wrapper');
- }
-
- function doRemove() {
- var what = $(this).data('remove');
- var element = $(this).parents('div.form-' + what);
- var where = '#card_form_' + $(this).data('id');
-
- if(what === 'vcard-org' || what === 'vcard-title' || what === 'vcard-note') {
- $(where + ' .add-' + what).show()
- }
-
- $(element).remove();
- }
-
-});
-</script>
-
-
-
- <div class="dropdown pull-right">
- <button data-toggle="dropdown" type="button" class="btn btn-default btn-sm dropdown-toggle"><i class="fa fa-plus"></i> {{$add_field}}</button>
- <ul class="dropdown-menu">
- <li class="add-vcard-org" style="display: none"><a href="#" data-add="vcard-org" data-id="new" class="add-field" onclick="return false;">{{$org_label}}</a></li>
- <li class="add-vcard-title" style="display: none"><a href="#" data-add="vcard-title" data-id="new" class="add-field" onclick="return false;">{{$title_label}}</a></li>
- <li class="add-vcard-tel"><a href="#" data-add="vcard-tel" data-id="new" class="add-field" onclick="return false;">{{$tel_label}}</a></li>
- <li class="add-vcard-email"><a href="#" data-add="vcard-email" data-id="new" class="add-field" onclick="return false;">{{$email_label}}</a></li>
- <li class="add-vcard-impp"><a href="#" data-add="vcard-impp" data-id="new" class="add-field" onclick="return false;">{{$impp_label}}</a></li>
- <li class="add-vcard-url"><a href="#" data-add="vcard-url" data-id="new" class="add-field" onclick="return false;">{{$url_label}}</a></li>
- <li class="add-vcard-adr"><a href="#" data-add="vcard-adr" data-id="new" class="add-field" onclick="return false;">{{$adr_label}}</a></li>
- <li class="add-vcard-note"><a href="#" data-add="vcard-note" data-id="new" class="add-field" onclick="return false;">{{$note_label}}</a></li>
- </ul>
- </div>
-
- <div class="vcard-fn-create form-group">
- <div class="form-vcard-fn-wrapper">
- <div class="form-group form-vcard-fn">
- <div class="vcard-nophoto"><i class="fa fa-user"></i></div><input type="text" name="fn" value="" placeholder="{{$name_label}}">
- </div>
- </div>
- </div>
-
- <div class="vcard-org form-group">
- <div class="form-vcard-org-wrapper">
- <div class="form-group form-vcard-org">
- <input type="text" name="org" value="" placeholder="{{$org_label}}">
- <i data-remove="vcard-org" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
- </div>
- </div>
- </div>
-
- <div class="vcard-title form-group">
- <div class="form-vcard-title-wrapper">
- <div class="form-group form-vcard-title">
- <input type="text" name="title" value="" placeholder="{{$title_label}}">
- <i data-remove="vcard-title" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
- </div>
- </div>
- </div>
-
- <div class="vcard-tel form-group">
- <div class="form-vcard-tel-wrapper">
- <div class="form-group form-vcard-tel">
- <select name="tel_type[]">
- <option value="CELL">{{$mobile}}</option>
- <option value="HOME">{{$home}}</option>
- <option value="WORK">{{$work}}</option>
- <option value="OTHER">{{$other}}</option>
- </select>
- <input type="text" name="tel[]" value="" placeholder="{{$tel_label}}">
- <i data-remove="vcard-tel" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
- </div>
- </div>
- </div>
-
-
- <div class="vcard-email form-group">
- <div class="form-vcard-email-wrapper">
- <div class="form-group form-vcard-email">
- <select name="email_type[]">
- <option value="HOME">{{$home}}</option>
- <option value="WORK">{{$work}}</option>
- <option value="OTHER">{{$other}}</option>
- </select>
- <input type="text" name="email[]" value="" placeholder="{{$email_label}}">
- <i data-remove="vcard-email" data-id="new" class="fa fa-trash-o remove-field drop-icons fakelink"></i>
- </div>
- </div>
- </div>
-
- <div class="vcard-impp form-group">
- <div class="form-vcard-impp-wrapper">
- </div>
- </div>
-
- <div class="vcard-url form-group">
- <div class="form-vcard-url-wrapper">
- </div>
- </div>
-
- <div class="vcard-adr form-group">
- <div class="form-vcard-adr-wrapper">
- </div>
- </div>
-
- <div class="vcard-note form-group">
- <div class="form-vcard-note-wrapper">
- </div>
- </div>
-
- <div class="clear"></div>
-
-
<div id="template-form-vcard-org" class="form-group form-vcard-org">
<div class="form-group form-vcard-org">
@@ -362,15 +196,6 @@ $(document).ready(function() {
- <div class="settings-submit-wrapper" >
- <button type="submit" name="done" value="{{$submit}}" class="btn btn-primary">{{$submit}}</button>
- </div>
-
-
- </div>
-
-
-
<div class="section-content-wrapper-np">
@@ -389,7 +214,6 @@ $(document).ready(function() {
</ul>
</div>
<div id="vcard-header-{{$vcard.id}}" class="vcard-header" data-id="{{$vcard.id}}" data-action="open">
- {{if $vcard.photo}}<img class="vcard-photo" src="{{$vcard.photo}}" width="32px" height="32px">{{else}}<div class="vcard-nophoto"><i class="fa fa-user"></i></div>{{/if}}
<span id="vcard-preview-{{$vcard.id}}" class="vcard-preview">
{{if $vcard.fn}}<span class="vcard-fn-preview">{{$vcard.fn}}</span>{{/if}}
{{if $vcard.emails.0.address}}<span class="vcard-email-preview hidden-xs">{{$vcard.emails.0.address}}</span>{{/if}}
@@ -568,6 +392,15 @@ $(document).ready(function() {
+ <div class="settings-submit-wrapper" >
+ <button type="submit" name="done" value="{{$submit}}" class="btn btn-primary">{{$submit}}</button>
+ </div>
+
+
+ </div>
+
+
+
{{if $affinity }}