1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License
15 module meetup_creation
18 import opportunity_model
20 class MeetupCreationPage
23 var meet
: nullable Meetup = null is writable
25 var error
: nullable String = null is writable
27 var ans
: Set[String] = new HashSet[String] is writable
34 redef fun rendering
do
35 var n_answers
= ans
.length
+ 1
36 if n_answers
== 1 then n_answers
= 2
39 var nb_answers = {{{n_answers}}};
41 function new_answer(sender){
42 var ansdiv = $('#answers')
47 ansdiv.append('<div class="form-group">' +
48 '<label for="answer_' + nb + '" class="col-sm-4 control-label">' + nb + '</label>' +
49 '<div class="col-sm-8">' +
50 '<input name="answer_' + nb + '" id="answer_' + nb + '" class="form-control" type="text" placeholder="Another opportunity">' +
55 # Do stuff with body before rendering
56 var bdy
= new Template
58 bdy
.add
"<div class=\"container\
">"
63 bdy
.add
"""<div class="alert alert-danger alert-dismissible" role="alert">
64 <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
66 bdy
.add error
.as(not null)
71 <div class="page-header">
72 <center><h1>Create a meetup</h1></center>
75 bdy
.add
"""<form class="form-horizontal" action="meetup_create" method="POST" role="form">
76 <div class = "form-group">
77 <label for="meetup_name" class="col-sm-4 control-label">Meetup name</label>
78 <div class="col-sm-8">
79 <input name="meetup_name" id="meetup_name" type="text" class="form-control" placeholder="My Event" value="{{{if meet != null then meet.name else ""}}}" />
82 <div class = "form-group">
83 <label for="meetup_date" class="col-sm-4 control-label">When?</label>
84 <div class="col-sm-8">
85 <input name="meetup_date" id="meetup_date" type="text" class="form-control" placeholder="Time of the event" value="{{{if meet != null then meet.date else ""}}}">
88 <div class = "form-group">
89 <label for="meetup=place" class="col-sm-4 control-label">Where?</label>
90 <div class="col-sm-8">
91 <input name="meetup_place" id="meetup_place" type="text" class="form-control" placeholder="Place of the event" value="{{{if meet != null then meet.place else ""}}}">
94 <h2>Opportunities</h2>
100 <div class="form-group">
101 <label for="answer_1" class="col-sm-4 control-label">1</label>
102 <div class="col-sm-8">
103 <input name="answer_1" id="answer_1" type="text" class="form-control" placeholder="First opportunity">
111 <div class="form-group">
112 <label for="answer_{{{cnt}}}" class="col-sm-4 control-label">{{{cnt}}}</label>
113 <div class="col-sm-8">
114 <input name="answer_{{{cnt}}}" id="answer_{{{cnt}}}" type="text" class="form-control" value="{{{v}}}"/>
124 <div class="form-group">
125 <button type="button" class="btn btn-lg" onclick="new_answer(this)">Add an opportunity</button>
126 <button type="submit" class="btn btn-lg btn-success">Create meetup</button>