我一直试图找到一种方法来禁用我自己的云上的文件覆盖。 它目前的工作方式是我发送一个公共上传链接,为任何有上传图像链接的用户发送。这一切都很好,直到其中一个图像与另一个图像具有相同的名称。发生这种情况时,我会收到此弹出窗口:
如果它不是一个包含大量图片的大型回购,那就没关系了。问题是,由于它是一个公共上传链接,我不希望覆盖其他用户的图像。如果用户选择JUST'新文件',它将覆盖旧文件,然后我可以恢复,但在用户覆盖500个文件的实例中,我不想再返回并逐个还原它们。
我到目前为止尝试的是:我找到了这个文件:fileexists.html,它概述了确切的弹出窗口,并尝试将其编辑到自动检查所有框并锁定它们的位置。 文件中的代码:
<div id="{dialog_name}" title="{title}" class="fileexists">
<span class="why">{why}<!-- Which files do you want to keep --></span><br/>
<span class="what">{what}<!-- If you select both versions, the copied file will have a number added to its name. --></span><br/>
<br/>
<table>
<th><label><input class="allnewfiles" checked disabled="disabled" type="checkbox" />{allnewfiles}<span class="count"></span></label></th>
<th><label><input class="allexistingfiles" checked disabled="disabled" type="checkbox" />{allexistingfiles}<span class="count"></span></label></th>
</table>
<div class="conflicts">
<div class="template">
<div class="filename"></div>
<div class="replacement">
<input checked disabled="disabled" type="checkbox" />
<span class="svg icon"></span>
<div class="mtime"></div>
<div class="size"></div>
</div>
<div class="original">
<input checked disabled="disabled" type="checkbox" />
<span class="svg icon"></span>
<div class="mtime"></div>
<div class="size"></div>
<div class="message"></div>
</div>
</div>
</div>
</div>
我已经尝试查看整个来源,但找不到办法来做到这一点。
编辑: 我发现了一些更多的数据来表明这些值,但我发现它的javascript并不太熟悉。
α-dialogue.js:
//add checkbox toggling actions
$(dialogId).find('.allnewfiles').on('click', function() {
var $checkboxes = $(dialogId).find('.conflict .replacement input[type="checkbox"]');
$checkboxes.prop('checked', $(this).prop('checked'));
});
$(dialogId).find('.allexistingfiles').on('click', function() {
var $checkboxes = $(dialogId).find('.conflict .original:not(.readonly) input[type="checkbox"]');
$checkboxes.prop('checked', $(this).prop('checked'));
});
$(dialogId).find('.conflicts').on('click', '.replacement,.original:not(.readonly)', function() {
var $checkbox = $(this).find('input[type="checkbox"]');
$checkbox.prop('checked', !$checkbox.prop('checked'));
});
$(dialogId).find('.conflicts').on('click', '.replacement input[type="checkbox"],.original:not(.readonly) input[type="checkbox"]', function() {
var $checkbox = $(this);
$checkbox.prop('checked', !checkbox.prop('checked'));
});
//update counters
$(dialogId).on('click', '.replacement,.allnewfiles', function() {
var count = $(dialogId).find('.conflict .replacement input[type="checkbox"]:checked').length;
if (count === $(dialogId+ ' .conflict').length) {
$(dialogId).find('.allnewfiles').prop('checked', true);
$(dialogId).find('.allnewfiles + .count').text(t('core','(all selected)'));
} else if (count > 0) {
$(dialogId).find('.allnewfiles').prop('checked', false);
$(dialogId).find('.allnewfiles + .count').text(t('core','({count} selected)',{count:count}));
} else {
$(dialogId).find('.allnewfiles').prop('checked', false);
$(dialogId).find('.allnewfiles + .count').text('');
}
});
$(dialogId).on('click', '.original,.allexistingfiles', function(){
var count = $(dialogId).find('.conflict .original input[type="checkbox"]:checked').length;
if (count === $(dialogId+ ' .conflict').length) {
$(dialogId).find('.allexistingfiles').prop('checked', true);
$(dialogId).find('.allexistingfiles + .count').text(t('core','(all selected)'));
} else if (count > 0) {
$(dialogId).find('.allexistingfiles').prop('checked', false);
$(dialogId).find('.allexistingfiles + .count')
.text(t('core','({count} selected)',{count:count}));
} else {
$(dialogId).find('.allexistingfiles').prop('checked', false);
$(dialogId).find('.allexistingfiles + .count').text('');
}
});