view kallithea/templates/files/files_edit.html @ 6258:b7654d1675da

style: in preparation for bootstrap, use bootstrap compatible button class names Give all buttons a styling (default, success, danger, warning) and rename the sizes to sm and xs. This is a subset of a bigger changeset. The subset was extracted by Mads Kiilerich, mostly by: sed -i \ -e 's,btn btn-small,btn btn-default btn-sm,g' \ -e 's,btn btn-mini,btn btn-default btn-xs,g' \ -e 's,btn-default btn-\(xs\|sm\) btn-\(success\|danger\|warning\),btn-\2 btn-\1,g' \ -e 's,class_="btn",class_="btn btn-default",g' \ `hg mani`
author domruf <dominikruf@gmail.com>
date Sun, 18 Sep 2016 19:39:36 +0200
parents 6c02cd3efdd6
children 80a15e10857a
line wrap: on
line source

<%inherit file="/base/base.html"/>

<%block name="title">
    ${_('%s File Edit') % c.repo_name}
</%block>

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

<%block name="header_menu">
    ${self.menu('repositories')}
</%block>

<%def name="breadcrumbs_links()">
    ${_('Edit file')} @ ${h.show_id(c.cs)}
</%def>

<%def name="main()">
${self.repo_context_bar('files')}
<div class="box">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}
        <ul class="links">
            <li>
              <span><a href="#">${_('Branch')}: ${c.cs.branch}</a></span>
            </li>
        </ul>
    </div>
    <div class="table" id="edit">
        <div id="files_data">
            <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.raw_id,c.file.path)}</h3>
            ${h.form(h.url.current(),method='post',id='eform')}
            <div id="body" class="codeblock">
            <div class="code-header">
                <div class="stats">
                    <div class="left"><i class="icon-doc-inv"></i></div>
                    <div class="left item">${h.link_to(h.show_id(c.file.changeset),h.url('changeset_home',repo_name=c.repo_name,revision=c.file.changeset.raw_id))}</div>
                    <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
                    <div class="left item last">${c.file.mimetype}</div>
                    <div class="buttons">
                      ${h.link_to(_('Show Annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
                      ${h.link_to(_('Show as Raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
                      ${h.link_to(_('Download as Raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
                      % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
                       % if not c.file.is_binary:
                        ${h.link_to(_('Source'),h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
                       % endif
                      % endif
                    </div>
                </div>
                <label class="commit" for="mimetype">${_('Editing file')}: ${c.file.unicode_path}</label>
                <select id="mimetype" name="mimetype"/>
            </div>
                <pre id="editor_pre"></pre>
                <textarea id="editor" name="content" style="display:none">${h.escape(c.file.content)|n}</textarea>
                <div style="padding: 10px;color:#666666">${_('Commit Message')}</div>
                <textarea id="commit" name="message" style="height: 60px;width: 99%;margin-left:4px" placeholder="${c.default_message}"></textarea>
            </div>
            <div style="text-align: left;padding-top: 5px">
            ${h.submit('commit',_('Commit Changes'),class_="btn btn-success btn-sm")}
            ${h.reset('reset',_('Reset'),class_="btn btn-default btn-sm")}
            </div>
            ${h.end_form()}
        </div>
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function(){
        var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.file.path)}";
        var myCodeMirror = initCodeMirror('editor', "${request.script_name}", reset_url);

       //inject new modes, based on codeMirrors modeInfo object
        var $mimetype_select = $('#mimetype');
        $mimetype_select.each(function(){
            var modes_select = this;
            var index = 1;
            for(var i=0;i<CodeMirror.modeInfo.length;i++){
                var m = CodeMirror.modeInfo[i];
                var opt = new Option(m.name, m.mime);
                $(opt).attr('mode', m.mode);
                if (m.mime == 'text/plain') {
                    // default plain text
                    $(opt).prop('selected', true);
                    modes_select.options[0] = opt;
                } else {
                    modes_select.options[index++] = opt;
                }
            }
        });
        // try to detect the mode based on the file we edit
        var detected_mode = CodeMirror.findModeByExtension("${c.file.extension}");
        if(detected_mode){
            setCodeMirrorMode(myCodeMirror, detected_mode);
            $($mimetype_select.find('option[value="'+detected_mode.mime+'"]')[0]).prop('selected', true);
        }

        $mimetype_select.on('change', function(e){
            var selected = e.currentTarget;
            var node = selected.options[selected.selectedIndex];
            var detected_mode = CodeMirror.findModeByMIME(node.value);
            setCodeMirrorMode(myCodeMirror, detected_mode);
        });
    });
</script>
</%def>