Multiple fixes listed in 2024-01-03 changelog
This commit is contained in:
		
							parent
							
								
									9dc7561238
								
							
						
					
					
						commit
						5095bc8404
					
				
							
								
								
									
										60
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								app.py
									
									
									
									
									
								
							| @ -14,6 +14,18 @@ from stark import run | ||||
| UPLOAD_FOLDER = 'uploads' | ||||
| ALLOWED_EXTENSIONS = {'conllu'} | ||||
| DAYS_BEFORE_DELETION = 1 | ||||
| TABLE_COLUMNS2DISPLAYED_TABLE_COLUMNS = { | ||||
|     'Tree': 'Tree', | ||||
|     'Absolute frequency': 'Frequency', | ||||
|     'Number of nodes': 'Number of nodes', | ||||
|     'Head node': 'Head node', | ||||
|     'Grew-match URL': 'Grew-match URL', | ||||
|     'Order': 'Order', | ||||
|     'MI': 'MI', | ||||
|     'logDice': 'logDice', | ||||
|     't-score': 't-score' | ||||
| } | ||||
| DISPLAYED_TABLE_COLUMNS2TABLE_COLUMNS = {v: k for k, v in TABLE_COLUMNS2DISPLAYED_TABLE_COLUMNS.items()} | ||||
| 
 | ||||
| 
 | ||||
| def create_app(): | ||||
| @ -73,17 +85,10 @@ def create_app(): | ||||
|             f.save(secure_filename(f.filename)) | ||||
|             return 'file uploaded successfully' | ||||
| 
 | ||||
| 
 | ||||
|     @app.route('/about', methods=['GET']) | ||||
|     def about(): | ||||
|         return render_template('about.html') | ||||
| 
 | ||||
| 
 | ||||
|     # @app.route('/result/<result_id>/download', methods=['GET']) | ||||
|     # def download_result(result_id): | ||||
|     #     return | ||||
| 
 | ||||
| 
 | ||||
|     @app.route('/result/<result_id>', methods=['GET', 'POST']) | ||||
|     def result(result_id): | ||||
| 
 | ||||
| @ -99,15 +104,16 @@ def create_app(): | ||||
|             # TODO TEST VARYING SIZES OF TEXT IN TABLE | ||||
|             return send_file(os.path.join('media', result_id), as_attachment=True, download_name='results.tsv') | ||||
| 
 | ||||
|         order_by = request.args.get('order_by') | ||||
|         order_by_display = request.args.get('order_by') | ||||
|         order_by = DISPLAYED_TABLE_COLUMNS2TABLE_COLUMNS[order_by_display[:-1]] if order_by_display is not None else None | ||||
|         order_type = request.args.get('order_type') | ||||
|         with open(os.path.join('media', result_id), 'r') as rf: | ||||
| 
 | ||||
|             content = list(csv.reader(rf, delimiter='\t')) | ||||
|             head = content[0] | ||||
|             content_dict = {h: [] for h in head} | ||||
|             if order_by is not None and order_by[:-1] in head: | ||||
|                 sort_id = head.index(order_by[:-1]) | ||||
|             if order_by is not None and order_by in head: | ||||
|                 sort_id = head.index(order_by) | ||||
|                 if order_type == 'asc': | ||||
|                     # check if a number can be converted to float or int | ||||
|                     ordered_content = sorted(content[1:], key=lambda x: -1 * float(x[sort_id]) if x[sort_id].isnumeric() or re.match(r'^-?\d+(?:\.\d+)$', x[sort_id]) is not None else x[sort_id], reverse=True) | ||||
| @ -120,11 +126,12 @@ def create_app(): | ||||
|                 for j, v in enumerate(row): | ||||
|                     content_dict[head[j]].append(v) | ||||
| 
 | ||||
|         # content.sort(key=lambda x: x[1]) | ||||
|         a = request | ||||
|         print(result_id) | ||||
|         return render_template('result.html', head_row=head, content=content_dict) | ||||
| 
 | ||||
|         displayed_head = [TABLE_COLUMNS2DISPLAYED_TABLE_COLUMNS[col] for col in head if col in TABLE_COLUMNS2DISPLAYED_TABLE_COLUMNS] | ||||
|         displayed_content_dict = {} | ||||
|         for column, v in content_dict.items(): | ||||
|             if column in TABLE_COLUMNS2DISPLAYED_TABLE_COLUMNS: | ||||
|                 displayed_content_dict[TABLE_COLUMNS2DISPLAYED_TABLE_COLUMNS[column]] = v | ||||
|         return render_template('result.html', head_row=displayed_head, content=displayed_content_dict) | ||||
| 
 | ||||
|     @app.route('/', methods=['GET', 'POST']) | ||||
|     def index(): | ||||
| @ -188,7 +195,7 @@ def create_app(): | ||||
|                 # TODO EXPAND NODE TYPE | ||||
|                 node_type_options = {'upos', 'form', 'lemma', 'upos', 'xpos', 'feats', 'deprel'} | ||||
|                 if len(node_type) == 0: | ||||
|                     validation['node_type'] = 'Please provide information about node type.' | ||||
|                     validation['node_type'] = 'Please select at least one node type.' | ||||
|                     return False | ||||
| 
 | ||||
|                 for el in node_type: | ||||
| @ -219,6 +226,7 @@ def create_app(): | ||||
|             configs['complete_tree_type'] = True | ||||
|             configs['dependency_type'] = 'labeled_trees' in form and form['labeled_trees'] == 'on' | ||||
|             configs['node_order'] = 'fixed_order' in form and form['fixed_order'] == 'on' | ||||
|             configs['association_measures'] = 'association_measures' in form and form['association_measures'] == 'on' | ||||
| 
 | ||||
|             configs['label_whitelist'] = [] | ||||
|             configs['root_whitelist'] = [] | ||||
| @ -240,23 +248,19 @@ def create_app(): | ||||
|             if configs['compare'] is not None: | ||||
|                 configs['other_input_path'] = configs['compare'] | ||||
| 
 | ||||
|             ######################################## | ||||
|             #config = configparser.ConfigParser() | ||||
|             #config.read('config.ini') | ||||
| 
 | ||||
|             # configs = read_configs(config, args) | ||||
| 
 | ||||
|             configs['association_measures'] = False | ||||
|             configs['grew_match'] = 'grewmatch_patterns' in form and form['grewmatch_patterns'] == 'on' | ||||
|             configs['grew_match'] = True | ||||
|             configs['depsearch'] = False | ||||
|             name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=60)) | ||||
|             configs['output'] = os.path.join('media', name) | ||||
| 
 | ||||
|             if len(validation) > 0: | ||||
|                 return render_template('index.html', validation=validation) | ||||
|             try: | ||||
|                 run(configs) | ||||
|             # TODO DELETE STORED FILE AFTER PROCESSING | ||||
|             except Exception as e: | ||||
|                 validation['general'] = 'Processing failed! Please recheck your settings.' | ||||
|             if len(validation) > 0: | ||||
|                 return render_template('index.html', validation=validation) | ||||
|             return redirect(url_for('result', result_id=name)) | ||||
|             # return send_file(configs['output'], as_attachment=True) | ||||
|         # return render_template('index.html') | ||||
|         return render_template('index.html') | ||||
| 
 | ||||
|     return app | ||||
|  | ||||
| @ -75,3 +75,17 @@ td { | ||||
|   border-right: solid 1px #bbbbbb; | ||||
|   border-left: solid 1px #bbbbbb; | ||||
| } | ||||
| 
 | ||||
| .validation-error { | ||||
|   display: block; | ||||
|   color: #F44336; | ||||
|   position: relative; | ||||
|   min-height: 18px; | ||||
|   font-size: 12px; | ||||
| } | ||||
| 
 | ||||
| @media only screen and (min-width: 993px) { | ||||
|   .container { | ||||
|     width: 60%; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,4 +1,55 @@ | ||||
| // Global array to store input names
 | ||||
| var globalInputList = ['tree_size_min', 'tree_size_max', 'file', 'association_measures', 'labeled_trees', 'node_type_upos', 'fixed_order', 'input_url', 'node_type_lemma', 'root_restriction', 'node_type_form']; | ||||
| 
 | ||||
| // Function to store values to local storage
 | ||||
| function storeValuesToLocalstorage() { | ||||
|     globalInputList.forEach(function(inputName) { | ||||
|         var inputElement = $('[name="' + inputName + '"]'); | ||||
| 
 | ||||
|         if (inputElement.length > 0) { | ||||
|             var inputType = inputElement.attr('type'); | ||||
|             if (inputType === 'text' | inputType === 'hidden') { | ||||
|                 localStorage.setItem(inputName, inputElement.val()); | ||||
|             } else if (inputType === 'checkbox') { | ||||
|                 localStorage.setItem(inputName, inputElement.prop('checked')); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| // Function to read values from local storage
 | ||||
| function readValuesFromLocalstorage() { | ||||
|     globalInputList.forEach(function(inputName) { | ||||
|         var inputElement = $('[name="' + inputName + '"]'); | ||||
| 
 | ||||
|         if (inputElement.length > 0) { | ||||
|             var inputType = inputElement.attr('type'); | ||||
|             if (inputType === 'text') { | ||||
|                 var text_val = localStorage.getItem(inputName); | ||||
|                 if (text_val !== '' & text_val !== null) { | ||||
|                     // set label to active
 | ||||
|                     $("label[for='" + inputElement.attr('id') + "']").addClass('active'); | ||||
|                 } | ||||
|                 inputElement.val(text_val); | ||||
| 
 | ||||
|             } else if (inputType === 'checkbox') { | ||||
|                 var check_value = localStorage.getItem(inputName); | ||||
|                 if (check_value !== null) { | ||||
|                     inputElement.prop('checked', check_value === 'true'); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|     }); | ||||
|     var tree_size_min = localStorage.getItem('tree_size_min') !== null ? localStorage.getItem('tree_size_min') : 2; | ||||
|     var tree_size_max = localStorage.getItem('tree_size_max') !== null ? localStorage.getItem('tree_size_max') : 3; | ||||
|     return [tree_size_min, tree_size_max] | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| document.addEventListener("DOMContentLoaded", function(event) { | ||||
|   tree_size = readValuesFromLocalstorage() | ||||
| 
 | ||||
|   var valuesForSlider = [2,3,4,5]; | ||||
| 
 | ||||
|   var format = { | ||||
| @ -11,7 +62,7 @@ document.addEventListener("DOMContentLoaded", function(event) { | ||||
|     }; | ||||
|   var slider = document.getElementById('slider'); | ||||
|   noUiSlider.create(slider, { | ||||
|    start: [2, 3], | ||||
|    start: [tree_size[0], tree_size[1]], | ||||
|    connect: true, | ||||
|    tooltips: true, | ||||
|    step: 1, | ||||
| @ -30,11 +81,15 @@ document.addEventListener("DOMContentLoaded", function(event) { | ||||
| 
 | ||||
|   }); // end of document ready
 | ||||
|   $(document).ready(function(){ | ||||
|     $('#advanced-tree').hide(); | ||||
|     $('.input-field span.helper-text').hide(); | ||||
|     $('.input-field').bind('mouseenter', function(e) { | ||||
|       $(this).find('span.helper-text').show('fast') | ||||
|     $('.input-field input[type="checkbox"]').on('change', function() { | ||||
|       var isChecked = $('.input-field input[type="checkbox"]:checked').length > 0; | ||||
|       $('#node-type-error').hide(); | ||||
|     }); | ||||
|     $('#submit-form input').on('change', function() { | ||||
|       $('#unknown-error').hide(); | ||||
|     }); | ||||
| 
 | ||||
|     $('#advanced-tree').hide(); | ||||
|     var advancedTreeExpanded = false; | ||||
|     $('#advanced-tree-expand').bind('click', function(e) { | ||||
|       if (!advancedTreeExpanded){ | ||||
| @ -46,10 +101,6 @@ document.addEventListener("DOMContentLoaded", function(event) { | ||||
|         $('#advanced-tree').hide('fast'); | ||||
|         $('#advanced-tree-expand i').text('add'); | ||||
|       } | ||||
|       $(this).find('span.helper-text').show('fast') | ||||
|     }); | ||||
|     $('.input-field').bind('mouseleave', function(e) { | ||||
|       $(this).find('span.helper-text').hide('fast') | ||||
|     }); | ||||
|   }); | ||||
| 
 | ||||
| @ -66,6 +117,8 @@ document.addEventListener("DOMContentLoaded", function(event) { | ||||
|       .attr("name", "tree_size_max") | ||||
|       .attr("value", tree_size_max) | ||||
|       .appendTo("#submit-form"); | ||||
| 
 | ||||
|     storeValuesToLocalstorage(); | ||||
|     return true; | ||||
|   }); | ||||
| })(jQuery); // end of jQuery name space
 | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
| <head> | ||||
|   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0"/> | ||||
|   <title>Starter Template - Materialize</title> | ||||
|   <title>STARK</title> | ||||
| 
 | ||||
|   <!-- CSS  --> | ||||
|   <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> | ||||
| @ -13,72 +13,12 @@ | ||||
| </head> | ||||
| <body> | ||||
|   <nav class="grey darken-2" role="navigation"> | ||||
|     <div class="nav-wrapper container"><a id="logo-container" href="#" class="brand-logo">STARK</a> | ||||
| <!--      <ul class="right hide-on-med-and-down">--> | ||||
| <!--        <li><a href="#">Navbar Link</a></li>--> | ||||
| <!--      </ul>--> | ||||
| 
 | ||||
| <!--      <ul id="nav-mobile" class="sidenav">--> | ||||
| <!--        <li><a href="#">Navbar Link</a></li>--> | ||||
| <!--      </ul>--> | ||||
| <!--      <a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>--> | ||||
|     <div class="nav-wrapper container"><a id="logo-container" href="/" class="brand-logo">STARK</a> | ||||
|       <ul id="nav-mobile" class="right hide-on-med-and-down"> | ||||
|         <li><a href="/">Processing</a></li> | ||||
|         <li><a href="/about">About</a></li> | ||||
|       </ul> | ||||
|     </div> | ||||
|   </nav> | ||||
| <!--  <div class="section no-pad-bot" id="index-banner">--> | ||||
| <!--    <div class="container">--> | ||||
| <!--      <br><br>--> | ||||
| <!--      <h1 class="header center orange-text">Starter Template</h1>--> | ||||
| <!--      <div class="row center">--> | ||||
| <!--        <h5 class="header col s12 light">A modern responsive front-end framework based on Material Design</h5>--> | ||||
| <!--      </div>--> | ||||
| <!--      <div class="row center">--> | ||||
| <!--        <a href="http://materializecss.com/getting-started.html" id="download-button" class="btn-large waves-effect waves-light orange">Get Started</a>--> | ||||
| <!--      </div>--> | ||||
| <!--      <br><br>--> | ||||
| 
 | ||||
| <!--    </div>--> | ||||
| <!--  </div>--> | ||||
| 
 | ||||
| 
 | ||||
| <!--  <div class="container">--> | ||||
| <!--    <div class="section">--> | ||||
| 
 | ||||
| <!--      <!–   Icon Section   –>--> | ||||
| <!--      <div class="row">--> | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">flash_on</i></h2>--> | ||||
| <!--            <h5 class="center">Speeds up development</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| 
 | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">group</i></h2>--> | ||||
| <!--            <h5 class="center">User Experience Focused</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| 
 | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">settings</i></h2>--> | ||||
| <!--            <h5 class="center">Easy to work with</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| <!--      </div>--> | ||||
| 
 | ||||
| <!--    </div>--> | ||||
| <!--    <br><br>--> | ||||
|     <div class="container"> | ||||
|       <br> | ||||
|       <div class="row"> | ||||
| @ -95,27 +35,7 @@ | ||||
|         <div class="col l6 s12"> | ||||
|           <h5 class="white-text">Credits</h5> | ||||
|           <p class="grey-text text-lighten-4">Add some logos here?</p> | ||||
| 
 | ||||
| 
 | ||||
|         </div> | ||||
| <!--        <div class="col l3 s12">--> | ||||
| <!--          <h5 class="white-text">Settings</h5>--> | ||||
| <!--          <ul>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 1</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 2</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 3</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 4</a></li>--> | ||||
| <!--          </ul>--> | ||||
| <!--        </div>--> | ||||
| <!--        <div class="col l3 s12">--> | ||||
| <!--          <h5 class="white-text">Connect</h5>--> | ||||
| <!--          <ul>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 1</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 2</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 3</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 4</a></li>--> | ||||
| <!--          </ul>--> | ||||
| <!--        </div>--> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="footer-copyright"> | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
| <head> | ||||
|   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0"/> | ||||
|   <title>Starter Template - Materialize</title> | ||||
|   <title>STARK</title> | ||||
| 
 | ||||
|   <!-- CSS  --> | ||||
|   <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> | ||||
| @ -13,72 +13,12 @@ | ||||
| </head> | ||||
| <body> | ||||
|   <nav class="grey darken-2" role="navigation"> | ||||
|     <div class="nav-wrapper container"><a id="logo-container" href="#" class="brand-logo">STARK</a> | ||||
| <!--      <ul class="right hide-on-med-and-down">--> | ||||
| <!--        <li><a href="#">Navbar Link</a></li>--> | ||||
| <!--      </ul>--> | ||||
| 
 | ||||
| <!--      <ul id="nav-mobile" class="sidenav">--> | ||||
| <!--        <li><a href="#">Navbar Link</a></li>--> | ||||
| <!--      </ul>--> | ||||
| <!--      <a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>--> | ||||
|     <div class="nav-wrapper container"><a id="logo-container" href="/" class="brand-logo">STARK</a> | ||||
|       <ul id="nav-mobile" class="right hide-on-med-and-down"> | ||||
|         <li><a href="/">Processing</a></li> | ||||
|         <li><a href="/about">About</a></li> | ||||
|       </ul> | ||||
|     </div> | ||||
|   </nav> | ||||
| <!--  <div class="section no-pad-bot" id="index-banner">--> | ||||
| <!--    <div class="container">--> | ||||
| <!--      <br><br>--> | ||||
| <!--      <h1 class="header center orange-text">Starter Template</h1>--> | ||||
| <!--      <div class="row center">--> | ||||
| <!--        <h5 class="header col s12 light">A modern responsive front-end framework based on Material Design</h5>--> | ||||
| <!--      </div>--> | ||||
| <!--      <div class="row center">--> | ||||
| <!--        <a href="http://materializecss.com/getting-started.html" id="download-button" class="btn-large waves-effect waves-light orange">Get Started</a>--> | ||||
| <!--      </div>--> | ||||
| <!--      <br><br>--> | ||||
| 
 | ||||
| <!--    </div>--> | ||||
| <!--  </div>--> | ||||
| 
 | ||||
| 
 | ||||
| <!--  <div class="container">--> | ||||
| <!--    <div class="section">--> | ||||
| 
 | ||||
| <!--      <!–   Icon Section   –>--> | ||||
| <!--      <div class="row">--> | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">flash_on</i></h2>--> | ||||
| <!--            <h5 class="center">Speeds up development</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| 
 | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">group</i></h2>--> | ||||
| <!--            <h5 class="center">User Experience Focused</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| 
 | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">settings</i></h2>--> | ||||
| <!--            <h5 class="center">Easy to work with</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| <!--      </div>--> | ||||
| 
 | ||||
| <!--    </div>--> | ||||
| <!--    <br><br>--> | ||||
|   <div class="container"> | ||||
|     <br> | ||||
|     <div class="row"> | ||||
| @ -95,15 +35,19 @@ | ||||
|                    <input type = "file" name="file"/> | ||||
|                 </div> | ||||
|                 <div class = "file-path-wrapper"> | ||||
|                      <input class="file-path validate" type="text" placeholder="Upload"/> | ||||
| 
 | ||||
|                    <input class="file-path validate{% if 'file' in validation %} invalid{% endif %}" type="text" placeholder="Upload"/> | ||||
|                    {% if 'file' in validation %} | ||||
|                     <span class="helper-text" data-error="{{validation['file']}}"></span> | ||||
|                   {% endif %} | ||||
|                 </div> | ||||
|               </div> | ||||
|               <div class="row"> | ||||
|                 <div class="input-field col s12"> | ||||
|                     <input id="input_url" name="input_url" type="text" class="validate"> | ||||
|                   <input id="input_url" name="input_url" type="text" class="validate{% if 'input_url' in validation %} invalid{% endif %}"> | ||||
|                   <label for="input_url"><u>Or</u> insert a URL link to a treebank in CONLL-U format</label> | ||||
| <!--                    <span class="helper-text" data-error="wrong" data-success="right">Insert a link to treebank in CONLL-U format.</span>--> | ||||
|                   {% if 'input_url' in validation %} | ||||
|                     <span class="helper-text" data-error="{{validation['input_url']}}"></span> | ||||
|                   {% endif %} | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
| @ -125,22 +69,31 @@ | ||||
|                 <div class="input-field"> | ||||
|                   <div class="col s4"> | ||||
|                     <label> | ||||
|                         <input type="checkbox" class="filled-in" name="node_type_upos" checked="checked" /> | ||||
|                         <span>UPOS</span> | ||||
|                       </label> | ||||
|                     </div> | ||||
|                     <div class="col s4"> | ||||
|                       <label> | ||||
|                         <input type="checkbox" class="filled-in" name="node_type_form"/> | ||||
|                         <span>form</span> | ||||
|                       <input type="checkbox" class="filled-in {% if 'node_type' in validation %} invalid{% endif %}" name="node_type_upos" checked="checked" /> | ||||
|                       <span>Part-of-speech</span> | ||||
|                       {% if 'node_type' in validation %} | ||||
|                         <span class="helper-text" data-error="{{validation['node_type']}}"></span> | ||||
|                       {% endif %} | ||||
|                     </label> | ||||
|                   </div> | ||||
|                   <div class="col s4"> | ||||
|                     <label> | ||||
|                       <input type="checkbox" class="filled-in" name="node_type_lemma"/> | ||||
|                         <span>lemma</span> | ||||
|                       <span>Lemma</span> | ||||
|                     </label> | ||||
|                   </div> | ||||
|                   <div class="col s4"> | ||||
|                     <label> | ||||
|                       <input type="checkbox" class="filled-in" name="node_type_form"/> | ||||
|                       <span>Form</span> | ||||
|                     </label> | ||||
|                   </div> | ||||
|                   <!-- Shared error message for all checkboxes --> | ||||
|                   {% if 'node_type' in validation %} | ||||
|                     <div class="col s12"> | ||||
|                       <span class="validation-error" id="node-type-error">{{ validation['node_type'] }}</span> | ||||
|                     </div> | ||||
|                   {% endif %} | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
| @ -150,7 +103,7 @@ | ||||
|           <div class="card" id="advanced-tree"> | ||||
|             <div class="card-content"> | ||||
|               <div class="row"> | ||||
|                   <div class="col s6"> | ||||
|                 <div class="col s12"> | ||||
|                   <label><b>Labeled trees</b>: include names of dependency relations (<a class="nav-link" href="https://github.com/clarinsi/STARK/blob/master/settings.md#--labeled" title="Help"><span class="menu-title sr-only">Help</span></a>)</label> | ||||
|                   <div class="input-field"> | ||||
|                     <div class="switch"> | ||||
| @ -163,8 +116,9 @@ | ||||
|                     </div> | ||||
|                   </div> | ||||
|                 </div> | ||||
| 
 | ||||
|                   <div class="col s6"> | ||||
|               </div> | ||||
|               <div class="row"> | ||||
|                 <div class="col s12"> | ||||
|                   <label><b>Fixed order</b>: differentiate trees based on surface word order (<a class="nav-link" href="https://github.com/clarinsi/STARK/blob/master/settings.md#--fixed" title="Help"><span class="menu-title sr-only">Help</span></a>)</label> | ||||
|                   <div class="input-field"> | ||||
|                     <div class="switch"> | ||||
| @ -187,7 +141,7 @@ | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="row"> | ||||
|                   <div class="col s6"> | ||||
|                 <div class="col s12"> | ||||
|                   <label><b>Association measures</b>: print MI, MI3, Dice, logDice, t-score and simple-LL scores (<a class="nav-link" href="https://github.com/clarinsi/STARK/blob/master/settings.md#--association_measures" title="Help"><span class="menu-title sr-only">Help</span></a>)</label> | ||||
|                   <div class="input-field"> | ||||
|                     <div class="switch"> | ||||
| @ -200,22 +154,15 @@ | ||||
|                     </div> | ||||
|                   </div> | ||||
|                 </div> | ||||
|                   <div class="col s6"> | ||||
|                     <label><b>Grew-match</b>: convert tree structures to Grew-match patterns (<a class="nav-link" href="https://github.com/clarinsi/STARK/blob/master/settings.md#--grew_match" title="Help"><span class="menu-title sr-only">Help</span></a>)</label> | ||||
|                     <div class="input-field"> | ||||
|                       <div class="switch"> | ||||
|                         <label> | ||||
|                           No | ||||
|                           <input type="checkbox" name="grewmatch_patterns"> | ||||
|                           <span class="lever"></span> | ||||
|                           Yes | ||||
|                         </label> | ||||
|                       </div> | ||||
|                     </div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|           {% if 'general' in validation %} | ||||
|           <div class="col s12"> | ||||
|             <span class="validation-error" id="unknown-error">{{ validation['general'] }}</span> | ||||
|           </div> | ||||
|           </br> | ||||
|           {% endif %} | ||||
|           <button class="btn waves-effect waves-light btn-large" type="submit" name="action">Submit | ||||
|             <i class="material-icons right">send</i> | ||||
|           </button> | ||||
| @ -233,24 +180,6 @@ | ||||
| 
 | ||||
| 
 | ||||
|         </div> | ||||
| <!--        <div class="col l3 s12">--> | ||||
| <!--          <h5 class="white-text">Settings</h5>--> | ||||
| <!--          <ul>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 1</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 2</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 3</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 4</a></li>--> | ||||
| <!--          </ul>--> | ||||
| <!--        </div>--> | ||||
| <!--        <div class="col l3 s12">--> | ||||
| <!--          <h5 class="white-text">Connect</h5>--> | ||||
| <!--          <ul>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 1</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 2</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 3</a></li>--> | ||||
| <!--            <li><a class="white-text" href="#!">Link 4</a></li>--> | ||||
| <!--          </ul>--> | ||||
| <!--        </div>--> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="footer-copyright"> | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
| <head> | ||||
|   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0"/> | ||||
|   <title>Starter Template - Materialize</title> | ||||
|   <title>STARK</title> | ||||
| 
 | ||||
|   <!-- CSS  --> | ||||
|   <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> | ||||
| @ -13,72 +13,12 @@ | ||||
| </head> | ||||
| <body> | ||||
|   <nav class="grey darken-2" role="navigation"> | ||||
|     <div class="nav-wrapper container"><a id="logo-container" href="#" class="brand-logo">STARK</a> | ||||
| <!--      <ul class="right hide-on-med-and-down">--> | ||||
| <!--        <li><a href="#">Navbar Link</a></li>--> | ||||
| <!--      </ul>--> | ||||
| 
 | ||||
| <!--      <ul id="nav-mobile" class="sidenav">--> | ||||
| <!--        <li><a href="#">Navbar Link</a></li>--> | ||||
| <!--      </ul>--> | ||||
| <!--      <a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>--> | ||||
|     <div class="nav-wrapper container"><a id="logo-container" href="/" class="brand-logo">STARK</a> | ||||
|       <ul id="nav-mobile" class="right hide-on-med-and-down"> | ||||
|         <li><a href="/">Processing</a></li> | ||||
|         <li><a href="/about">About</a></li> | ||||
|       </ul> | ||||
|     </div> | ||||
|   </nav> | ||||
|   <div class="section no-pad-bot" id="index-banner"> | ||||
|     <div class="container"> | ||||
| <!--      <br><br>--> | ||||
| <!--      <h1 class="header center orange-text">Starter Template</h1>--> | ||||
| <!--      <div class="row center">--> | ||||
| <!--        <h5 class="header col s12 light">A modern responsive front-end framework based on Material Design</h5>--> | ||||
| <!--      </div>--> | ||||
| <!--      <div class="row center">--> | ||||
| <!--        <a href="http://materializecss.com/getting-started.html" id="download-button" class="btn-large waves-effect waves-light orange">Get Started</a>--> | ||||
| <!--      </div>--> | ||||
| <!--      <br><br>--> | ||||
| 
 | ||||
| <!--    </div>--> | ||||
| <!--  </div>--> | ||||
| 
 | ||||
| 
 | ||||
| <!--  <div class="container">--> | ||||
| <!--    <div class="section">--> | ||||
| 
 | ||||
| <!--      <!–   Icon Section   –>--> | ||||
| <!--      <div class="row">--> | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">flash_on</i></h2>--> | ||||
| <!--            <h5 class="center">Speeds up development</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| 
 | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">group</i></h2>--> | ||||
| <!--            <h5 class="center">User Experience Focused</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
| 
 | ||||
| <!--        <div class="col s12 m4">--> | ||||
| <!--          <div class="icon-block">--> | ||||
| <!--            <h2 class="center light-blue-text"><i class="material-icons">settings</i></h2>--> | ||||
| <!--            <h5 class="center">Easy to work with</h5>--> | ||||
| 
 | ||||
| <!--            <p class="light">We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.</p>--> | ||||
| <!--          </div>--> | ||||
| <!--        </div>--> | ||||
|       </div> | ||||
| 
 | ||||
|     </div> | ||||
| <!--    <br><br>--> | ||||
|   <div class="container"> | ||||
|     <br> | ||||
|     <div class="row"> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user