Commit 18bac330 authored by Carsten  Rose's avatar Carsten Rose
Browse files

Merge branch 'Typo3integrated' of systemvcs.math.uzh.ch:it/qfq-jqw into Typo3integrated

parents e2892e40 8d8e173b
......@@ -208,6 +208,21 @@ module.exports = function (grunt) {
}
}
},
jasmine: {
frontend: {
src: ['tests/jasmine/spec/*Spec.js'],
options: {
vendor: [
'js/jquery.min.js',
'js/bootstrap.min.js',
'js/jqx-all.js',
'js/qfq-jqw.debug.js'
],
helpers: ['tests/jasmine/helper/mock-ajax.js'],
template: 'tests/jasmine/SpecRunner.tmpl'
}
}
},
watch: {
scripts: {
files: [
......@@ -231,8 +246,11 @@ module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-jasmine');
// Default task(s).
grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'copy', 'less']);
grunt.registerTask('run-jasmine', ['jshint', 'concat', 'jasmine']);
};
\ No newline at end of file
PHPDOC ?= support/pear/phpdoc
JSDOC ?= jsdoc
PKG_VERSION = $(shell awk '/version/ { print $$3 }' extension/ext_emconf.php | sed "s/'//g")
NIGHTLY_DATE = $(shell date '+%Y%m%d')
EXTENSION_CONTENT = Classes Configuration qfq Resources ext_emconf.php ext_localconf.php ext_tables.php config.example.ini
all: archive
......@@ -40,9 +42,14 @@ phpdoc: .phpdocinstall
archive: clean qfq_$(PKG_VERSION).zip
qfq_$(PKG_VERSION).zip: extension/Classes extension/Configuration extension/qfq extension/Resources extension/ext_emconf.php extension/ext_localconf.php extension/ext_tables.php extension/config.example.ini
cd extension; zip -r ../$@ Classes Configuration qfq Resources ext_emconf.php ext_localconf.php ext_tables.php config.example.ini
qfq_$(PKG_VERSION).zip:
cd extension; zip -r ../$@ $(EXTENSION_CONTENT)
clean:
rm -f qfq_$(PKG_VERSION).zip
nightly:
rm -f qfq_????????.zip
cd extension; zip -r ../qfq_$(NIGHTLY_DATE) $(EXTENSION_CONTENT)
.PHONY: nightly
......@@ -26,6 +26,10 @@ if (!QfqNS) {
this.$form = $(document.forms[this.formId]);
this.$form.on("change", this.changeHandler.bind(this));
// On text input elements, we specifically bind this events, in order to update the formChanged property
// immediately, not only after loosing focus.
this.$form.find("input[type=text]").on("input paste", this.changeHandler.bind(this));
};
/**
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p>
Intentionally empty.
</p>
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jqx-all.js"></script>
<script src="../js/qfq-jqw.debug.js"></script>
<script type="text/javascript">
var qfqPage = new QfqNS.QfqPage({
tabsId: 'myTabs',
formId: 'myForm',
submitTo: 'api/' + $("#submitTo").val(),
deleteUrl: 'api/' + $("#deleteUrl").val()
});
</script>
</body>
</html>
\ No newline at end of file
......@@ -11,6 +11,6 @@
<template name="clean"/>
</transformations>
<files>
<directory>qfq/</directory>
<directory>extension/qfq/qfq/</directory>
</files>
</phpdoc>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Jasmine Spec Runner</title>
<link rel="shortcut icon" type="image/png" href="<%= temp %>/jasmine_favicon.png">
<% css.forEach(function(style){ %>
<link rel="stylesheet" type="text/css" href="<%= style %>">
<% }) %>
</head>
<body>
<section class="container-fluid">
<header class="page-header">
<h1>Keep Track of Navigation State</h1>
</header>
<nav>
<ul id="qfqTabs" class="nav nav-pills" role="tablist">
<li role="presentation" class="active"><a href="#tab1" data-toggle="tab">Tab 1</a>
</li>
<li role="presentation"><a href="#tab2" data-toggle="tab">Tab 2</a>
</li>
<li role="presentation"><a href="#tab3" data-toggle="tab">Tab 3</a>
</li>
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button">
more <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#tab4" data-toggle="tab">Tab 4 Dropdown</a></li>
<li><a href="#tab5" data-toggle="tab">Tab 5 Dropdown</a></li>
</ul>
</li>
</ul>
</nav>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="tab1">
<div class="row">
<h1 class="col-sm-12">
Tab Pane 1
</h1>
</div>
<div class="row">
<p class="col-sm-8 col-sm-offset-2">
Tab 1 Content
</p>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="tab2">
<div class="row">
<h1 class="col-sm-12">
Tab Pane 2
</h1>
</div>
<div class="row">
<p class="col-sm-8 col-sm-offset-2">
Tab 2 Content
</p>
<div class="row">
<p class="col-sm-8 col-sm-offset-2">
<input type="text" name="input1">
</p>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="tab3">
<div class="row">
<h1 class="col-sm-12">
Tab Pane 3
</h1>
</div>
<div class="row">
<p class="col-sm-8 col-sm-offset-2">
Tab 3 Content
</p>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="tab4">
<div class="row">
<h1 class="col-sm-12">
Tab Pane 4
</h1>
</div>
<div class="row">
<p class="col-sm-8 col-sm-offset-2">
Tab 4 Content
</p>
</div>
<div class="row">
<p class="col-sm-8 col-sm-offset-2">
<input type="text" name="input2">
</p>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="tab5">
<div class="row">
<h1 class="col-sm-12">
Tab Pane 5
</h1>
</div>
<div class="row">
<p class="col-sm-8 col-sm-offset-2">
Tab 5 Content
</p>
</div>
</div>
</div>
<header>
<h1>Form</h1>
</header>
<form id="myForm" class="form-horizontal">
<div class="form-group">
<div class="col-md-2">
<label for="id" class="control-label">id</label>
</div>
<div class="col-md-6 ">
<p id="id" class="form-control-static">12345678</p>
</div>
</div>
<div class="form-group">
<div class="col-md-2">
<label for="name" class="control-label">Name</label>
</div>
<div class="col-md-6">
<input id="name" type="text" class="form-control">
</div>
</div>
<div class="form-group">
<div class="col-md-2">
<label for="firstname" class="control-label">Vorname</label>
</div>
<div class="col-md-6">
<input id="firstname" type="text" class="form-control">
</div>
</div>
<div class="form-group">
<div class="col-md-2">
<label for="nameShort" class="control-label">Vorname Kurz</label>
</div>
<div class="col-md-6">
<input id="nameShort" type="text" class="form-control">
</div>
<div class="col-md-4">
<p class="help-block ">Abgekürzter Vorname. Für "Christian" z.B. "Ch."</p>
</div>
</div>
<div class="form-group">
<div class="col-md-2">
<label for="personHandle" class="control-label">Kurzform</label>
</div>
<div class="col-md-6">
<input id="personHandle" type="text" class="form-control">
</div>
<div class="col-md-4">
<p class="help-block">Z.B. MC fuer Michel Chipot. Nur nach Absprache mit IT. Achtung: Check
emaillisten (AG...).</p>
</div>
</div>
<div class="form-group">
<div class="col-md-2">
<label for="personTitle" class="control-label">Titel</label>
</div>
<div class="col-md-6">
<select id="personTitle" class="form-control">
<option></option>
<option>Dr.</option>
<option>Prof. Dr.</option>
</select>
</div>
</div>
</form>
</section>
<% with (scripts) { %>
<% [].concat(polyfills, jasmine, boot, vendor, helpers, src, specs,reporters).forEach(function(script){ %>
<script src="<%= script %>"></script>
<% }) %>
<% }; %>
</body>
</html>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment