view kallithea/templates/admin/gists/new.html @ 4197:d208416c84c6 kallithea-2.2.5-rebrand

Rename rhodecode_user to authuser - it is an AuthUser instance
author Bradley M. Kuhn <bkuhn@sfconservancy.org>
date Wed, 02 Jul 2014 19:05:10 -0400
parents d1addaf7a91e
children a540f7e69c82
line wrap: on
line source

## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${_('New Gist')}
    %if c.rhodecode_name:
        &middot; ${c.rhodecode_name}
    %endif
</%def>

<%def name="js_extra()">
<script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
<script type="text/javascript" src="${h.url('/js/codemirror_loadmode.js')}"></script>
<script type="text/javascript" src="${h.url('/js/mode/meta.js')}"></script>
<script type="text/javascript" src="${h.url('/js/mode/meta_ext.js')}"></script>
</%def>
<%def name="css_extra()">
<link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
</%def>

<%def name="breadcrumbs_links()">
    ${_('New Gist')}
</%def>

<%def name="page_nav()">
    ${self.menu('gists')}
</%def>

<%def name="main()">
<div class="box">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}
    </div>

    <div class="table">
        <div id="files_data">
          ${h.form(h.url('gists'), method='post',id='eform')}
            <div>
                <div class="gravatar">
                   <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.authuser.full_contact),32)}"/>
                </div>
                <textarea style="resize:vertical; width:400px;border: 1px solid #ccc;border-radius: 3px;" id="description" name="description" placeholder="${_('Gist description ...')}"></textarea>
                <div style="padding:0px 0px 0px 42px">
                <label for='lifetime'>${_('Gist lifetime')}</label>
                ${h.select('lifetime', '', c.lifetime_options)}
                </div>
            </div>
            <div id="body" class="codeblock">
                <div style="padding: 10px 10px 10px 26px;color:#666666">
                    ${h.text('filename', size=30, placeholder=_('name this file...'))}
                    ${h.select('mimetype','plain',[('plain',_('plain'))])}
                </div>
                <div id="editor_container">
                    <pre id="editor_pre"></pre>
                    <textarea id="editor" name="content" style="display:none"></textarea>
                </div>
            </div>
            <div style="padding-top: 5px">
            ${h.submit('private',_('Create Private Gist'),class_="btn btn-mini btn-success")}
            ${h.submit('public',_('Create Public Gist'),class_="btn btn-mini")}
            ${h.reset('reset',_('Reset'),class_="btn btn-mini")}
            </div>
            ${h.end_form()}
            <script type="text/javascript">
            var myCodeMirror = initCodeMirror('editor', '');
            CodeMirror.modeURL = "${h.url('/js/mode/%N/%N.js')}";

            //inject new modes
            var modes_select = $('#mimetype');
            for(var i=0;i<CodeMirror.modeInfo.length;i++){
                var m = CodeMirror.modeInfo[i];
                var opt = new Option(m.name, m.mime);
                YUD.setAttribute(opt, 'mode', m.mode)
                modes_select[0].options[i+1] = opt;
            }

            var filename_selector = '#filename';
            // on select change set new mode
            modes_select.on('change', function(e){
                var selected = e.currentTarget;
                var node = selected.options[selected.selectedIndex];
                var mimetype = node.value;
                var new_mode = YUD.getAttribute(node, 'mode')
                setCodeMirrorMode(myCodeMirror, new_mode);

                var proposed_ext = getExtFromMimeType(mimetype);
                var file_data = getFilenameAndExt($(filename_selector).val());
                var filename = file_data['filename'] || 'filename1';
                $(filename_selector).val(filename + proposed_ext);
            })

            // on type the new filename set mode
            $(filename_selector).on('keyup', function(e){
                var file_data = getFilenameAndExt(this.value);
                if(file_data['ext'] != null){
                    var mimetype = getMimeTypeFromExt(file_data['ext']);
                    var detected_mode = detectCodeMirrorMode(this.value, mimetype);
                    if (detected_mode){
                        setCodeMirrorMode(myCodeMirror, detected_mode);
                        modes_select.val(mimetype)
                    }
                }
            })
            </script>
        </div>
    </div>

</div>
</%def>