mirror of
https://github.com/owncloudarchive/contacts.git
synced 2024-11-29 11:24:11 +01:00
adapted import ui to fit in the ocdialog
might be some bugs left though
This commit is contained in:
parent
f3272ad159
commit
da0d990472
@ -446,16 +446,16 @@ dt[data-element="org"] { margin-top: 4px; }
|
||||
}
|
||||
|
||||
/* Single elements */
|
||||
#file_upload_form, #file_upload_target, #import_upload_target, #crop_target { display:none; }
|
||||
#import_upload_start, .import-upload-button {
|
||||
#file_upload_form { display:none; }
|
||||
#contacts-import-upload-start, .import-upload-button {
|
||||
width: 30px !important; height: 30px !important;
|
||||
display:block;
|
||||
position: absolute;
|
||||
right: 0; top: 0;
|
||||
right: 0; bottom: 0;
|
||||
margin: 5px !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
#import_upload_start {
|
||||
#contacts-import-upload-start {
|
||||
cursor: pointer;
|
||||
z-index: 1001;
|
||||
}
|
||||
@ -530,7 +530,7 @@ input[type=checkbox].propertytype { width: 10px; }
|
||||
background-size: 80%;
|
||||
}
|
||||
#phototools li a:hover { opacity: 0.8; }
|
||||
#contactphoto_fileupload, #import_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:1001; }
|
||||
#contactphoto_fileupload, #contacts-import-upload-start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:1001; }
|
||||
|
||||
#dialog-merge-contacts .mergelist {
|
||||
margin: 10px;
|
||||
@ -850,6 +850,17 @@ tbody tr.contact.active, tbody tr.contact:hover {
|
||||
}
|
||||
}
|
||||
|
||||
#contacts-import-div > p > select {
|
||||
width:200px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#contacts-import-div > p > label {
|
||||
vertical-align:top;
|
||||
width:200px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1400px) {
|
||||
#contactlist tr td.categories { display: none; }
|
||||
#contactsHeader tr td.categories { display: none; }
|
||||
|
@ -252,8 +252,8 @@ OC.Contacts = OC.Contacts || {};
|
||||
this.$bookTemplate = bookTemplate;
|
||||
this.$bookList = this.$bookTemplate.find('.addressbooklist');
|
||||
this.$bookItemTemplate = bookItemTemplate;
|
||||
this.$importIntoSelect = $('#import_into');
|
||||
this.$importFormatSelect = $('#import_format');
|
||||
this.$importIntoSelect = $('#contacts-import-into');
|
||||
this.$importFormatSelect = $('#contacts-import-format');
|
||||
this.$importProgress = $('#import-status-progress');
|
||||
this.$importStatusText = $('#import-status-text');
|
||||
this.addressBooks = [];
|
||||
@ -261,7 +261,7 @@ OC.Contacts = OC.Contacts || {};
|
||||
if(this.isFileAction) {
|
||||
return;
|
||||
}
|
||||
this.$importFileInput = $('#import_upload_start');
|
||||
this.$importFileInput = $('#contacts-import-upload-start');
|
||||
var $addInput = this.$bookTemplate.find('#add-address-book');
|
||||
$addInput.addnew({
|
||||
ok: function(event, name) {
|
||||
@ -282,11 +282,7 @@ OC.Contacts = OC.Contacts || {};
|
||||
$(document).bind('status.addressbook.removed', function(e, data) {
|
||||
var addressBook = data.addressbook;
|
||||
self.addressBooks.splice(self.addressBooks.indexOf(addressBook), 1);
|
||||
self.buildImportSelect();
|
||||
});
|
||||
$(document).bind('status.addressbook.added', function() {
|
||||
self.buildImportSelect();
|
||||
})
|
||||
$('#oc-import-nocontact').unbind('click').click(function(event) {
|
||||
console.log("triggered", event);
|
||||
self.importDialog();
|
||||
@ -327,11 +323,11 @@ OC.Contacts = OC.Contacts || {};
|
||||
}
|
||||
|
||||
AddressBookList.prototype.openImportDialog = function() {
|
||||
this.$importIntoSelect = $('#import_into');
|
||||
this.$importFormatSelect = $('#import_format');
|
||||
this.$importIntoSelect = $('#contacts-import-into');
|
||||
this.$importFormatSelect = $('#contacts-import-format');
|
||||
this.$importProgress = $('#import-status-progress');
|
||||
this.$importStatusText = $('#import-status-text');
|
||||
this.$importFileInput = $('#import_upload_start');
|
||||
this.$importFileInput = $('#contacts-import-upload-start');
|
||||
var me = this;
|
||||
var self = this;
|
||||
this.$importFileInput.fileupload({
|
||||
@ -339,7 +335,6 @@ OC.Contacts = OC.Contacts || {};
|
||||
start: function(e, data) {
|
||||
me.$importProgress.progressbar({value:false});
|
||||
$('.tipsy').remove();
|
||||
$('.import-upload').hide();
|
||||
$('.import-status').show();
|
||||
me.$importProgress.fadeIn();
|
||||
me.$importStatusText.text(t('contacts', 'Starting file import'));
|
||||
@ -347,7 +342,7 @@ OC.Contacts = OC.Contacts || {};
|
||||
done: function (e, data) {
|
||||
if (me.$importFormatSelect.find('option:selected').val() != 'automatic') {
|
||||
me.$importStatusText.text(t('contacts', 'Format selected: {format}',
|
||||
{format: $('#import_format').find('option:selected').text() }));
|
||||
{format: $('#contacts-import-format').find('option:selected').text() }));
|
||||
} else {
|
||||
me.$importStatusText.text(t('contacts', 'Automatic format detection'));
|
||||
}
|
||||
@ -357,11 +352,10 @@ OC.Contacts = OC.Contacts || {};
|
||||
fail: function(e, data) {
|
||||
console.log('fail', data);
|
||||
OC.notify({message:data.errorThrown + ': ' + data.textStatus});
|
||||
$('.import-upload').show();
|
||||
$('.import-status').hide();
|
||||
}
|
||||
});
|
||||
var $import_into = $('#import_into');
|
||||
var $import_into = $('#contacts-import-into');
|
||||
$import_into.change(function() {
|
||||
if ($(this).val() != '-1') {
|
||||
var url = OC.generateUrl(
|
||||
@ -387,7 +381,7 @@ OC.Contacts = OC.Contacts || {};
|
||||
$.each(response.data.addressbooks, function(idx, addressBook) {
|
||||
if (addressBook.permissions & OC.PERMISSION_UPDATE) {
|
||||
var $option=$('<option></option>').val(addressBook.id).html(addressBook.displayname).attr('backend', addressBook.backend);
|
||||
self.insertAddressBook(addressBook);
|
||||
self.insertAddressBook(addressBook, false);
|
||||
$import_into.append($option);
|
||||
nbOptions++;
|
||||
}
|
||||
@ -497,11 +491,11 @@ OC.Contacts = OC.Contacts || {};
|
||||
console.log('response', response);
|
||||
if(!response.error) {
|
||||
console.log('Import done');
|
||||
$('#contacts-import-upload').hide();
|
||||
self.$importStatusText.text(t('contacts', 'Total:{total}, Success:{imported}, Errors:{failed}',
|
||||
{total: response.data.total, imported:response.data.imported, failed: response.data.failed}));
|
||||
self.$importProgress.progressbar('option', 'max', response.data.total);
|
||||
self.$importProgress.progressbar('value', response.data.total);
|
||||
self.buildImportSelect();
|
||||
var addressBook = self.find({id:data.addressBookId, backend: data.backend});
|
||||
console.log('addressBook', self.count(), self.addressBooks);
|
||||
$(document).trigger('status.addressbook.imported', {
|
||||
@ -520,9 +514,6 @@ OC.Contacts = OC.Contacts || {};
|
||||
$(document).trigger('status.contacts.error', response);
|
||||
done = true;
|
||||
});
|
||||
/*interval = setInterval(function() {
|
||||
getStatus(data.backend, data.addressBookId, data.importType, data.progresskey, interval, done);
|
||||
}, 1500);*/
|
||||
} else {
|
||||
defer.reject(response);
|
||||
done = true;
|
||||
@ -533,54 +524,23 @@ OC.Contacts = OC.Contacts || {};
|
||||
return defer;
|
||||
};
|
||||
|
||||
/**
|
||||
* Rebuild the select to choose which address book to import into.
|
||||
*/
|
||||
AddressBookList.prototype.buildImportSelect = function() {
|
||||
console.log('buildImportSelect', this);
|
||||
/*var self = this;
|
||||
this.$importIntoSelect.find('option:not([value="-1"])').remove();
|
||||
var addressBooks = self.selectByPermission(OC.PERMISSION_UPDATE);
|
||||
if (addressBooks.length > 0) {
|
||||
console.log('ImportInto Select', self.$importIntoSelect);
|
||||
console.log('addressbooks', addressBooks);
|
||||
$.each(addressBooks, function(idx, book) {
|
||||
var $opt = $('<option />');
|
||||
$opt.val(book.getId()).text(book.getDisplayName()).data('backend', book.getBackend());
|
||||
self.$importIntoSelect.append($opt);
|
||||
console.log('appending', $opt, 'to', self.$importIntoSelect);
|
||||
});
|
||||
if(!this.isFileAction) {
|
||||
if(addressBooks.length === 1) {
|
||||
//console.log("coin !");
|
||||
this.$importIntoSelect.val(this.$importIntoSelect.find('option:not([value="-1"])').first().val()).hide().trigger('change');
|
||||
self.$importFileInput.prop('disabled', false);
|
||||
} else {
|
||||
//console.log("coin !!!");
|
||||
this.$importIntoSelect.show();
|
||||
self.$importFileInput.prop('disabled', true);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
};
|
||||
|
||||
/**
|
||||
* Create an AddressBook object, save it in internal list and append it's rendered result to the list
|
||||
*
|
||||
* @param object addressBook
|
||||
* @param bool rebuild If true rebuild the address book select for import.
|
||||
* @param bool rendered If true add the addressbook to the addressbook list
|
||||
* @return AddressBook
|
||||
*/
|
||||
AddressBookList.prototype.insertAddressBook = function(addressBook) {
|
||||
AddressBookList.prototype.insertAddressBook = function(addressBook, rendered = true) {
|
||||
var book = new AddressBook(this.storage, addressBook, this.$bookItemTemplate, this.isFileAction);
|
||||
if(!this.isFileAction) {
|
||||
if(!this.isFileAction && rendered) {
|
||||
var result = book.render();
|
||||
this.$bookList.append(result);
|
||||
}
|
||||
this.addressBooks.push(book);
|
||||
return book;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Get an AddressBook
|
||||
*
|
||||
@ -715,8 +675,6 @@ OC.Contacts = OC.Contacts || {};
|
||||
$.each(response.data.addressbooks, function(idx, addressBook) {
|
||||
self.insertAddressBook(addressBook);
|
||||
});
|
||||
self.buildImportSelect();
|
||||
console.log('After buildImportSelect');
|
||||
if(!self.isFileAction) {
|
||||
if(typeof OC.Share !== 'undefined') {
|
||||
OC.Share.loadIcons('addressbook');
|
||||
|
@ -51,7 +51,7 @@ OC.ContactsImporter = OC.ContactsImporter || {
|
||||
self.$dialog = null;
|
||||
}
|
||||
});
|
||||
self.$importIntoSelect = $('#import_into');
|
||||
self.$importIntoSelect = $('#contacts-import-into');
|
||||
self.$importIntoSelect.on('change', function() {
|
||||
var $selected = $(this).find('option:selected');
|
||||
if($(this).val() === '-1') {
|
||||
|
@ -310,10 +310,4 @@ class ImportController extends Controller {
|
||||
$response->setParams(array('progress' => $this->cache->get($progresskey), 'total' => $this->cache->get($progresskey.'_total') ));
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
*/
|
||||
public function detectFileType() {
|
||||
}
|
||||
}
|
||||
|
@ -490,31 +490,35 @@ use OCA\Contacts\ImportManager;
|
||||
|
||||
<script id="contactsImportTemplate" class="hidden" type="text/template">
|
||||
<div id="contacts-import-div" class="contacts-import-class">
|
||||
<p>
|
||||
<ul>
|
||||
<!--<li data-id="import" tabindex="0" role="button"><?php p($l->t('Import')); ?></li>-->
|
||||
<li class="import-upload">
|
||||
<select id="import_into">
|
||||
<option value="-1"><?php p($l->t('Import into...')); ?></option>
|
||||
</select>
|
||||
<select id="import_format">
|
||||
<option value="automatic"><?php p($l->t('Automatic format')); ?></option>
|
||||
<?php
|
||||
$importManager = new ImportManager();
|
||||
$types = $importManager->getTypes();
|
||||
foreach ($types as $id => $label) {
|
||||
echo "<option value=\"$id\">$label</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button class="icon-upload svg tooltipped import-upload-button" title="<?php p($l->t('Select file...')); ?>"></button>
|
||||
<input id="import_upload_start" class="tooltipped" title="<?php p($l->t('Select file...')); ?>" type="file" name="file" disabled />
|
||||
</li>
|
||||
<li class="import-status">
|
||||
<label id="import-status-text"></label>
|
||||
<div id="import-status-progress"></div>
|
||||
</li>
|
||||
</ul>
|
||||
<p id="contacts-import-into-p">
|
||||
<label for="contacts-import-into"><?php p($l->t('Addresbook')); ?></label>
|
||||
<select id="contacts-import-into">
|
||||
<option value="-1"><?php p($l->t('Import into...')); ?></option>
|
||||
</select>
|
||||
</p>
|
||||
<p id="contacts-import-format-p">
|
||||
<label for="contacts-import-into"><?php p($l->t('Format')); ?></label>
|
||||
<select id="contacts-import-format">
|
||||
<option value="automatic"><?php p($l->t('Automatic format')); ?></option>
|
||||
<?php
|
||||
$importManager = new ImportManager();
|
||||
$types = $importManager->getTypes();
|
||||
foreach ($types as $id => $label) {
|
||||
echo "<option value=\"$id\">$label</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</p>
|
||||
<p id="contacts-import-upload">
|
||||
<!--<label for="contacts-import-upload"><?php p($l->t('Select file')); ?></label>-->
|
||||
<button class="icon-upload svg tooltipped import-upload-button" title="<?php p($l->t('Select file...')); ?>"></button>
|
||||
<input id="contacts-import-upload-start" class="tooltipped" title="<?php p($l->t('Select file...')); ?>" type="file" name="file" disabled />
|
||||
</p>
|
||||
<p id="contacts-import-status">
|
||||
<div class="import-status">
|
||||
<label id="import-status-text"></label>
|
||||
<div id="import-status-progress"></div>
|
||||
</div>
|
||||
</p>
|
||||
</div>
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user