1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-01 23:38:37 +00:00

Use static download page

This commit is contained in:
zhengxie 2013-12-19 14:49:39 +08:00
parent 9e330c29d2
commit b694b8013e
6 changed files with 1 additions and 291 deletions

View File

@ -533,35 +533,6 @@ class CommandsLastCheck(models.Model):
command_type = models.CharField(max_length=100)
last_check = models.DateTimeField()
class SystemCustomizeManager(models.Manager):
def set_download_content(self, content):
"""
Arguments:
- `self`:
- `content`:
"""
m = self.model(custom_key="download", custom_val=content)
m.save(using=self._db)
return m
def get_download_content(self):
"""
Arguments:
- `self`:
"""
try:
return super(SystemCustomizeManager, self).get(
custom_key="download").custom_val
except SystemCustomize.DoesNotExist:
return None
class SystemCustomize(models.Model):
custom_key = models.CharField(max_length=50)
custom_val = models.TextField()
objects = SystemCustomizeManager()
###### Deprecated
class InnerPubMsg(models.Model):
"""

View File

@ -128,8 +128,7 @@
<div class="item">
<h4 class="hd">{% trans "Client" %}</h4>
<ul>
<li><a href="http://www.seafile.com/{% if LANGUAGE_CODE != 'zh-cn' %}en/{% endif %}download/">{% trans "Seafile for Windows, Mac and Linux" %}</a></li>
<li><a href="{% url 'download' %}">Download</a></li>
<li><a href="{% url 'download' %}">{% trans "Seafile for Windows, Mac and Linux" %}</a></li>
</ul>
</div>
<div class="item">

View File

@ -4,28 +4,12 @@
{% block sub_title %}{% trans "Download" %} - {% endblock %}
{% block main_panel %}
{% if request.user.is_staff %}
<button id="edit">Edit</button>
{% endif %}
<div id="sf" class="article">
{% if content %}
{{content|safe}}
{% else %}
{% if LANGUAGE_CODE == 'zh-cn' %}
<p>你可以从Seafile的<a href="http://seafile.com/download/">官方下载页面</a>下载WindowsMac以及Linux的客户端。</p>
{% else %}
<p>You can download Seafile desktop client for Windows, Mac and Linux from Seafile's <a href="http://seafile.com/en/download/">official download page</a>.</p>
{% endif %}
{% endif %}
</div>
{% endblock %}
{% block extra_script %}
<script type="text/javascript">
$('#edit').click(function() {
location.href = "{% url 'download_edit' %}";
});
</script>
{% endblock %}

View File

@ -1,222 +0,0 @@
{% extends "myhome_base.html" %}
{% load i18n %}
{% block extra_style %}
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/sf_editor_toolbar.css" />
<style type="text/css">
#main {
width:100%;
}
#footer {
display:none;
}
#edit-hd, #path-op {
width:950px;
margin:0 auto;
}
#path-op {
padding-bottom:6px;
}
#path-op .path {
margin-top:1.2em
}
#file-edit {
min-height:700px;
padding:30px 0 60px;
background:#f4f4f4;
border-top:1px solid #ededed;
}
#sf, #md-edit, #edit-tip {
box-shadow:0 0 6px #ccc;
border:1px solid #ccc;
margin:0 auto;
}
#sf {
min-height:620px;
outline:none;
}
#edit-tip {
min-height:200px;
padding:10px;
width:928px;
background:#fff;
margin:0 auto;
}
.fixed-path-op {
position:fixed;
background:#fff;
border-bottom:1px solid #ededed;/*for ie*/
box-shadow:0 1px 3px #777;
z-index:1010;/*make seaf image show below path-op*/
}
.CodeMirror {
width:950px;
margin:0 auto;
box-shadow:0 0 6px #272822;
}
</style>
{% endblock %}
{% block main_panel %}
<div>
<div id="op-after-edit" class="fright">
<button id="edit-submit">{% trans "Submit" %}</button>
<a href="{{cancel_url}}" id="file-edit-cancel">{% trans "Cancel" %}</a>
</div>
</div>
<div>
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#sf">
<div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" title="{% trans "Font" %}"><i class="icon-font"></i><span class="caret"></span></a>
<ul class="dropdown-menu" id="font-list"></ul>
</div>
<div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" title="{% trans "Font Size" %}"><i class="icon-text-height"></i><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a data-edit="fontSize 5"><font size="5">{% trans "Huge" %}</font></a></li>
<li><a data-edit="fontSize 3"><font size="3">{% trans "Normal" %}</font></a></li>
<li><a data-edit="fontSize 1"><font size="1">{% trans "Small" %}</font></a></li>
</ul>
</div>
<div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" title="{% trans "Font Color" %}"><i class="icon-tint" style="color:#e83;"></i><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a data-edit="forecolor #333" title="{% trans "defaut color" %}"><span class="color-block" style="background:#333;"></span></a></li>
<li><a data-edit="forecolor #FF0000"><span class="color-block" style="background:#FF0000;"></span></a></li>
<li><a data-edit="forecolor #FF704F"><span class="color-block" style="background:#FF704F;"></span></a></li>
<li><a data-edit="forecolor #007000"><span class="color-block" style="background:#007000;"></span></a></li>
<li><a data-edit="forecolor #4D90FE"><span class="color-block" style="background:#4D90FE;"></span></a></li>
<li><a data-edit="forecolor #999999"><span class="color-block" style="background:#999999;"></span></a></li>
<li><a data-edit="forecolor #811201"><span class="color-block" style="background:#811201;"></span></a></li>
<li><a data-edit="forecolor #1E4152"><span class="color-block" style="background:#1E4152;"></span></a></li>
</ul>
</div>
<div class="btn-group">
<a class="btn" data-edit="bold" title="{% trans "Bold (Ctrl/Cmd+B)" %}"><i class="icon-bold"></i></a>
<a class="btn" data-edit="italic" title="{% trans "Italic (Ctrl/Cmd+I)" %}"><i class="icon-italic"></i></a>
<a class="btn" data-edit="strikethrough" title="{% trans "Strikethrough" %}"><i class="icon-strikethrough"></i></a>
<a class="btn" data-edit="underline" title="{% trans "Underline (Ctrl/Cmd+U)" %}"><i class="icon-underline"></i></a>
<a class="btn" data-edit="removeFormat" title="{% trans "Remove format" %}"><i class="sf-icon-removeformat"></i></a>
</div>
<div class="btn-group">
<a class="btn" data-edit="insertunorderedlist" title="{% trans "Bullet list" %}"><i class="icon-list-ul"></i></a>
<a class="btn" data-edit="insertorderedlist" title="{% trans "Number list" %}"><i class="icon-list-ol"></i></a>
<a class="btn" data-edit="outdent" title="{% trans "Reduce indent (Shift+Tab)" %}"><i class="icon-indent-left"></i></a>
<a class="btn" data-edit="indent" title="{% trans "Indent (Tab)" %}"><i class="icon-indent-right"></i></a>
</div>
<div class="btn-group">
<a class="btn" data-edit="justifyleft" title="{% trans "Align Left (Ctrl/Cmd+L)" %}"><i class="icon-align-left"></i></a>
<a class="btn" data-edit="justifycenter" title="{% trans "Center (Ctrl/Cmd+E)" %}"><i class="icon-align-center"></i></a>
<a class="btn" data-edit="justifyright" title="{% trans "Align Right (Ctrl/Cmd+R)" %}"><i class="icon-align-right"></i></a>
<a class="btn" data-edit="justifyfull" title="{% trans "Justify (Ctrl/Cmd+J)" %}"><i class="icon-align-justify"></i></a>
</div>
<div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" title="{% trans "Hyperlink" %}"><i class="icon-link"></i></a>
<div class="dropdown-menu input-append">
<input placeholder="URL" type="text" data-edit="createLink" />
<button class="btn" type="button">{% trans "Add" %}</button>
</div>
<a class="btn" data-edit="unlink" title="{% trans "Remove Hyperlink" %}"><i class="icon-cut"></i></a>
</div>
<div class="btn-group">
<a class="btn" id="pictureBtn"><i class="icon-picture"></i></a>
<input type="file" title="{% trans "Insert picture (or just drag & drop)" %}" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" />
</div>
<div class="btn-group">
<a class="btn" data-edit="undo" title="{% trans "Undo (Ctrl/Cmd+Z)" %}"><i class="icon-undo"></i></a>
<a class="btn" data-edit="redo" title="{% trans "Redo (Ctrl/Cmd+Y)" %}"><i class="icon-repeat"></i></a>
</div>
</div>
<div id="sf" class="article"><p>You can download from <a href="http://seafile.com/download/">http://seafile.com/download/</a></p></div>
</div>
{% endblock %}
{% block extra_script %}
<script type="text/javascript" src="{{MEDIA_URL}}js/jquery.hotkeys.js"></script>
<script type="text/javascript" src="{{MEDIA_URL}}js/bootstrap.min.js"></script>
<script type="text/javascript" src="{{MEDIA_URL}}js/bootstrap-wysiwyg.js"></script>
<script type="text/javascript">
var toolbar = $('.btn-toolbar');
var sf_editor = $('#sf');
if ($(window).scrollTop() > sf_editor.offset().top - toolbar.outerHeight(true) - $('.fixed-path-op').outerHeight(true)) {
$('#sf').css('margin-top', toolbar.outerHeight(true));
toolbar.css({'position':'fixed'}); //'fixed' before get the right 'left' value
toolbar.css({'left':($(window).width() - toolbar.width())/2, 'top':$('#path-op').outerHeight(true)});
} else {
toolbar.removeAttr('style');
$('#sf').css('margin-top', 0);
}
$(function() {
function initToolbarBootstrapBindings() {
var fonts = ['Serif', 'Sans', 'Arial', 'Arial Black', 'Courier',
'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande', 'Lucida Sans', 'Tahoma', 'Times',
'Times New Roman', 'Verdana'],
fontTarget = $('#font-list');
$.each(fonts, function (idx, fontName) {
fontTarget.append($('<li><a data-edit="fontName ' + fontName +'" style="font-family:\''+ fontName +'\'">'+fontName + '</a></li>'));
});
$('a[title]').tooltip({container:'body'});
$('.dropdown-menu input').click(function() {return false;})
.change(function () {$(this).parent('.dropdown-menu').siblings('.dropdown-toggle').dropdown('toggle');})
.keydown('esc', function () {this.value='';$(this).change();});
$('[data-role=magic-overlay]').each(function () {
var overlay = $(this), target = $(overlay.data('target'));
overlay.css('opacity', 0).css('position', 'absolute').offset(target.offset()).width(target.outerWidth()).height(target.outerHeight());
});
};
initToolbarBootstrapBindings();
$('#sf').wysiwyg();
try {
document.execCommand('styleWithCss',0, true);
} catch(e) {
try {
document.execCommand('useCss',0, false);
} catch(e) {
}
}
});
$('#edit-submit').click(function () {
disable($(this));
editSubmit();
});
function editSubmit() {
var content = $('#sf').html();
$.ajax({
type: "POST",
url: "{% url 'download_edit' %}",
dataType: 'json',
cache: false,
beforeSend: prepareCSRFToken,
data: {content: content, encoding: $('#file-enc').val()},
success: function(data) {
location.href = data['href'];
},
error: function(xhr, textStatus, errorThrown) {
if (xhr.responseText) {
var resp = jQuery.parseJSON(xhr.responseText);
feedback(resp['error'], 'error');
if (resp['op'] == 'decrypt') {
$('#repo-decrypt-form').modal();
$('#simplemodal-container').css({'height':'auto'});
}
} else {
feedback("{% trans "Submit failed. Please check the network." %}", 'error');
}
enable($('#file-edit-submit'));
}
});
}
</script>
{% endblock %}

View File

@ -109,7 +109,6 @@ urlpatterns = patterns('',
url(r'^user/(?P<id_or_email>[^/]+)/shares/$', user_share_list, name='user_share_list'),
url(r'^modules/toggle/$', toggle_modules, name="toggle_modules"),
url(r'download/$', download, name="download"),
url(r'download/edit/$', download_edit, name="download_edit"),
### Ajax ###
(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/remove/$', repo_remove),

View File

@ -2062,26 +2062,5 @@ def download(request):
"""Show download page.
"""
content = SystemCustomize.objects.get_download_content()
return render_to_response('download.html', {
'content': content,
}, context_instance=RequestContext(request))
@login_required
def download_edit(request):
"""Edit download page.
"""
if request.method == 'POST':
content_type = 'application/json; charset=utf-8'
content = request.POST.get('content', '')
SystemCustomize.objects.set_download_content(content)
next = reverse('download')
return HttpResponse(json.dumps({'href': next}),
content_type=content_type)
return render_to_response('download_edit.html', {
}, context_instance=RequestContext(request))