Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (101)
Showing with 3787 additions and 425 deletions
image: node:6.6.0
image: node:21.2.0
pages:
stage: deploy
script:
- npm install -g grunt-cli bower
- npm install
- bower install --allow-root
- grunt public:dev
- npm run build
artifacts:
paths:
- public
cache:
paths:
- node_modules
key: project
only:
- master
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt);
require('time-grunt')(grunt);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
htmlhint: {
options: {
'attr-lower-case': true,
'attr-value-not-empty': false,
'tag-pair': true,
'tag-self-close': false,
'tagname-lowercase': true,
'id-class-value': true,
'id-unique': true,
'img-alt-require': true,
'img-alt-not-empty': true
},
main: {
src: ['public/**.html']
}
},
jshint: {
main: {
files: [{
src: ['Gruntfile.js', 'js/**/*.js']
}]
},
options: {
globals: {
'jQuery': true,
'console': true
}
}
},
pug: {
options: {
pretty: true,
data: {
debug: true
}
},
pages: {
files: [{
expand: true,
cwd: 'pug/pages',
src: '*.pug',
dest: 'public/',
ext: '.html'
}]
}
},
copy: {
iejs: {
expand: true,
files: [{
expand: true,
cwd: 'bower_components/html5shiv/dist',
src: "**",
dest: 'public/js'
},
{
expand: true,
cwd: 'bower_components/respond/src',
src: "**",
dest: 'public/js'
}
]
},
lfltcss: {
expand: true,
files: [{
expand: true,
cwd: 'bower_components/leaflet/dist/images',
src: "**",
dest: 'public/img'
}]
},
fonts: {
expand: true,
files: [{
expand: true,
cwd: 'fonts',
src: "**",
dest: 'public/fonts'
}]
},
imgrsrc: {
expand: true,
files: [{
expand: true,
cwd: 'img',
src: "**",
dest: 'public/img'
}]
}
},
uglify: {
compress: {
files: {
'public/js/index.js': [
//'bower_components/jquery/dist/jquery.min.js',
//'bower_components/bootstrap/dist/js/bootstrap.min.js',
'bower_components/leaflet/dist/leaflet.js',
'js/*.js'
]
},
options: {
mangle: true,
unused: true
}
}
},
cssmin: {
options: {
sourceMap: true
},
compress: {
files: {
'public/css/index.css': [
'bower_components/bootstrap/dist/css/bootstrap.min.css',
//'public/bower_components/font-awesome/css/font-awesome.min.css',
//'public/bower_components/normalize-css/normalize.css',
'bower_components/leaflet/dist/leaflet.css',
'css/*.css'
]
}
}
},
watch: {
grunt: {
files: ['Gruntfile.js'],
options: {
nospawn: true,
keepalive: true,
livereload: true
},
tasks: ['public:dev']
},
html: {
files: ['public/*.html'],
options: {
nospawn: true,
keepalive: true,
livereload: true
},
tasks: ['htmlhint']
},
js: {
files: 'js/**',
options: {
nospawn: true,
livereload: true
},
tasks: ['jshint', 'uglify']
},
pug: {
files: ['pug/**'],
options: {
nospawn: true,
livereload: true
},
tasks: ['pug']
},
css: {
files: 'css/**',
options: {
nospawn: true,
livereload: true
},
tasks: ['cssmin']
}
},
connect: {
server: {
options: {
port: 8080,
base: 'public',
hostname: 'localhost',
livereload: true
}
}
}
});
grunt.registerTask('public:dev', function(target) {
grunt.task.run([
'pug',
'htmlhint',
'jshint',
'copy',
'uglify',
'cssmin'
]);
});
grunt.registerTask('serve', function(target) {
grunt.task.run([
'public:dev',
'connect',
'watch'
]);
});
};
## Official Website of Free Software User Groups in India
## Dependencies
1. Node
......@@ -8,93 +7,30 @@
## Presteps
1. Install Node ( Welcome to the world of Node <3 )
2. run `npm install -g grunt-cli`
3. run `npm install -g bower`
## Installation
1. `npm install` from root folder
2. `bower install` from root folder
## Running the application
* `grunt serve` - starts a local server and keeps watching the file changes
### Under the Hood!
Okay, Let's look at it one by one.
We installed [Node](https://nodejs.org/en/) so that we can use [Grunt](https://gruntjs.com) ( The super awesome javascript task runnner).
But why do we even need a task runner? I'm sure you guys had fun at Selenium workshop, automating things. Grunt helps you automate a lot of things.
Now, take a look at package.json file. You'll see a lot of grunt-* dependencies each serving a special purpose in your project. eg. `grunt-contrib-concat` is for concatenating files.
Now, `Gruntfile.js`: This is where you configure/define your grunt tasks. Let's see what all things are defined there now.
Look at jshint
```
jshint: {
main: {
files : [{
src : ['Gruntfile.js', 'js/**/*.js']
}]
},
options: {
globals: {
'jQuery': true,
'angular': true,
'console': true,
'$': true,
'_': true,
'moment': true
}
}
},
```
Here `main` corresponds to a subtask. That means you run this task as `grunt jshint:main`. `grunt jshint`, as you would expect, will run all the subtasks associated with jshint(In this case we've only one, ie `main`)
Now, what does this `jshint:main` task do?
It checks all the files (ie,`Gruntfile.js` and all the javascript files within js folder) for syntax errors.
Similarly we've htmlhint, [pug](https://pugjs.org/) and concat.
Now the cool part! `watch` is the task which lets you watch different files for changes and runs associated task whenever some change happens.
for example,
```
js: {
files: 'js/**',
options: {
nospawn: true,
livereload: true
},
tasks: ['jshint', 'concat']
},
```
This portion inside `watch` configures `jshint` and `uglify` to be run whenever files inside js folder (`js/**`) changes.
Is that a lot to take in?
Just one more! `connect` task starts a local server at [http://localhost:8080](http://localhost:8080). It also inject a script to your page that keeps a live connection to the server, so that browser will automatically refresh whenever you change and save code. Doesn't that sound awesome to you?
Let us know ;)
## Building
1. `npm run build`
## License
Official Website of Free Software User Groups in India
Copyleft (ɔ) 2017 FSCI (Free Software Community of India) - All rights reseved, all wrongs reversed.
Official Website of Free Software User Groups in India
Copyleft (ɔ) 2017 FSCI (Free Software Community of India) - All rights reserved, all wrongs reversed
This project comes under free software license: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
(at your option) any later version.
This project is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
{
"name": "fsug",
"authors": [
"FSCI - Free Software Community of India <fosscommunity.in@disroot.org>"
],
"description": "Free Software User Groups in India",
"license": "GPL-3.0",
"homepage": "http://fsug.in/",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"bootstrap": "^3.3.7",
"normalize-css": "normalize.css#4.1.1",
"jquery": "2.2.4",
"html5shiv": "3.7.0",
"respond": "https://github.com/scottjehl/Respond.git#1.4.0",
"leaflet": "^1.0.3"
},
"resolutions": {
"jquery": "~2.2.4"
}
}
echo "Processing assets"
mkdir -p public/fonts public/img
cp node_modules/bootstrap/fonts/*.{ttf,woff,eot,svg,woff2} node_modules/font-awesome/fonts/*.{ttf,woff,eot,svg,woff2,otf} fonts/*.{ttf,woff,woff2} node_modules/bootcards/dist/fonts/*.{ttf,woff,eot,svg,woff2,otf} public/fonts
cp node_modules/leaflet/dist/images/** img/** public/img
npx pug pug/pages --out public
echo "Processing events"
mkdir -p public/events
echo "events:" > public/events/index.yaml
for f in $(ls -r events/details); do
event=$(basename $f .yaml)
echo "Processing $event"
echo " $event:" >> public/events/index.yaml
cat "events/details/$f" | sed 's/^/ /' >> public/events/index.yaml
if ! [ -f public/events/$event.html ]; then
npx js-yaml "events/details/$f" > "public/events/$event.json"
npx pug -O public/events/$event.json pug/templates/individual_event_page.pug
mv pug/templates/individual_event_page.html public/events/$event.html
fi
done
npx js-yaml public/events/index.yaml > public/events/index.json
npx pug -O public/events/index.json pug/templates/events.pug
mv pug/templates/events.html public/events/index.html
echo "Processing CSS"
mkdir -p public/css
cat 'node_modules/bootstrap/dist/css/bootstrap.min.css' 'node_modules/font-awesome/css/font-awesome.min.css' 'node_modules/leaflet/dist/leaflet.css' 'node_modules/bootcards/dist/css/bootcards-desktop.min.css' css/*.css | npx postcss > public/css/index.css
echo "Processing JS"
mkdir -p public/js
npx uglify-js 'node_modules/jquery/dist/jquery.min.js' 'node_modules/bootstrap/dist/js/bootstrap.min.js' 'node_modules/leaflet/dist/leaflet.js' 'node_modules/bootcards/dist/js/bootcards.min.js' 'js/*.js' -o public/js/index.js
\ No newline at end of file
.events-list {
min-height: 65px;
}
.event-details {
min-height: 80vh;
}
.bootcards-richtext>.panel-body {
font-size: 16px;
max-width: 968px;
padding: 25px 35px;
}
.bootcards-richtext>.panel-body img {
margin: 15px 0;
}
.col-sm-8 .panel-heading .panel-title {
padding-left: 20px;
}
.panel-heading .panel-title {
font-weight: 700;
margin-top: 15px;
}
.event-card .panel-body img {
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.3);
max-width: 80%;
}
.separator {
margin: -1px 15px;
padding: 15px 0 10px;
}
.separator-top {
margin-right: 15px;
padding: 15px 0 10px;
}
a.list-group-item::before {
display: none;
}
.list-group-item.events-list.separator:hover {
margin-right: 0;
}
.panel .panel-heading .pull-right {
margin-top: -36px;
margin-right: 10px;
padding: 6px 25px;
}
.improve {
background-color: #EEEEEE;
border-radius: 2px;
font-size: 12px;
margin-top: 30px;
padding: 10px;
vertical-align: middle;
}
/* csslint ignore:start */
@font-face {
font-family: Amaranth-Regular;
src: url(../fonts/Amaranth-Regular.ttf) format('truetype');
}
@font-face {
font-family: Roboto-Thin;
src: url(../fonts/Roboto-Thin.ttf) format('truetype');
}
/* csslint ignore:end */
.main {
margin: 8px;
text-align: center;
}
/* https://github.com/CSSLint/csslint/wiki/Disallow-qualified-headings */
h1 {
color: #949494;
font-family: "Amaranth-Regular";
}
.main>p {
text-align: justify;
}
.wrapper {
color: #454545;
margin: auto;
max-width: 968px;
}
/* csslint ignore:start */
#mapid {
height: 60vh;
margin: 20px auto;
}
/* Override values in leaflet.css */
#mapid.leaflet-container .leaflet-pane .leaflet-popup .leaflet-popup-content-wrapper .leaflet-popup-content {
margin: 5px 20px 15px;
}
/* csslint ignore:end */
.preamble-list {
padding-left: 15px;
text-align: left;
}
.preamble-list li {
padding: 10px;
}
@font-face {
font-family: Amaranth-Regular;
src: url(../fonts/Amaranth-Regular.ttf);
}
@font-face {
font-family: Roboto-Thin;
src: url(../fonts/Roboto-Thin.ttf);
}
#wrapper {
max-width: 968px;
margin: auto;
color: #454545;
}
#main {
text-align: center;
margin: 8px;
}
#main h1 {
font-family: "Amaranth-Regular";
color: #949494;
}
#main h2 {
font-family: "Roboto-Thin";
color: #898989;
}
#main p {
text-align: justify;
}
#mapid {
height: 60vh;
margin: 20px auto;
}
#improve {
font-size: 12px;
vertical-align: middle;
background-color: #EEEEEE;
padding: 10px;
border-radius: 2px;
margin-top: 30px;
}
id: "2017-06-17-00"
name: "GNU/Linux Install Fest and Debian Stretch Release Party - Wayanad"
state: "Kerala"
district: "Wayanad"
venue: "Pazhassi Library, Mananthavady"
lat: ""
lon: ""
organizedby: "FSUG Wayanad"
when: "17-06-2017 10:00 AM to 02:00 PM"
description: "GNU/Linux install fest"
contactinfo: ""
imgurl: "https://wiki.debian.org/ReleasePartyStretch/India/Kerala/Mananthavady?action=AttachFile&do=get&target=wayanadfest.jpeg"
id: "2017-06-18-00"
name: "GNU/Linux Install Fest and Debian Stretch Release Party - Calicut"
state: "Kerala"
district: "Calicut"
venue: "Parishad Bhavan"
lat: ""
lon: ""
organizedby: "FSUG Calicut"
when: "18-06-2017 10:00 AM"
description: "GNU/Linux Install Fest"
contactinfo: ""
imgurl: "https://wiki.debian.org/ReleasePartyStretch/India/Kerala/Kozhikode?action=AttachFile&do=get&target=cltfest.png"
id: "2017-06-24-00"
name: "Debian Stretch Release Party - Kochi"
state: "Kerala"
district: "Ernakulam"
venue: "CUSAT"
lat: ""
lon: ""
organizedby: "FOSSClub, ILUG Cochin and DAKF"
when: "24-06-2017 03:00 PM to 06:00 PM"
description: "Debian Stretch Release Party - Kochi"
contactinfo: "TBA"
imgurl: "https://wiki.debian.org/ReleasePartyStretch/India/Kerala/Cochin/CUSAT?action=AttachFile&do=get&target=cochin_cufest.jpeg"
id: "2017-07-05-00"
name: "GNU/Linux Install Fest and Debian Stretch Release Party - Thrissur"
state: "Kerala"
district: "Thrissur"
venue: "St.Mary's College"
lat: ""
lon: ""
organizedby: "FSUG Thrissur, ICFOSS and KSSP"
when: "05-07-2017 09:30 AM to 12:30 PM"
description: "Debian Stretch Release Party along with GNU/Linux Install Fest - Thrissur"
contactinfo: "Riot room #fsugtcr:matrix.org"
imgurl: "https://wiki.debian.org/ReleasePartyStretch/India/Kerala/Thrissur?action=AttachFile&do=get&target=fsug_thrissur_debian_stretch_release_party_poster.png"
id: "2018-02-17-00"
name: "FOSSMeet'18 - NIT Calicut"
state: "Kerala"
district: "Calicut"
venue: "National Institute of Technology, Calicut"
lat: "11.3200"
lon: "75.9327"
organizedby: "FOSSCell, NITC"
when: "17-02-2018 09:00 AM to 18-02-2018 07:00 PM"
description: "FOSSMeet is an annual event on Free and Open Source Software, conducted at National Institute of Technology, Calicut."
contactinfo: "Riot room #fosscell:matrix.org"
imgurl: "https://pbs.twimg.com/profile_images/834881470275604480/HI0hdYp1.jpg"
events: !!inc/dir [ 'details' , { ignoreTopLevelDir: true, ignoreIndicator: '-', excludeTopLevelDirSeparator: true } ]
/*
a well structured JSON, containing the following fields:
1. LAT: mandatory
2. LNG: mandatory
3. TITLE: mandatory
4. URL: optional
5. MLIST: optional
6. MATURL: optional
7. TGURL: optional
(have I missed something?)
*/
var locations = [{
"LAT": "9.918897",
"LNG": "77.10249",
"TITLE": "FSUG (Free Software User Group) Idukki",
"URL": "https://groups.google.com/group/fsug-idk",
"MLIST": "groups.google.com/group/fsug-idk",
"MATURL": "https://matrix.to/#/#fsug-idk:matrix.org",
"TGURL": ""
}, {
"LAT": "17.4359194",
"LNG": "78.3604184",
"TITLE": "Swecha",
"URL": "http://www.swecha.org/",
"MLIST": "http://swecha.net/mailman/listinfo",
"MATURL": "https://matrix.to/#/#swecha:matrix.org",
"TGURL": ""
}, {
"LAT": "12.9473557",
"LNG": "77.5996612",
"TITLE": "FSMK (Free Software Movement Karnataka)",
"URL": "https://fsmk.org/",
"MLIST": "https://discuss.fsmk.org/",
"MATURL": "https://matrix.to/#/#fsmk-discuss:matrix.org",
"TGURL": "https://telegram.me/joinchat/AZWi6jvE1RV2eckTYg4YGg"
}, {
"LAT": "12.501389",
"LNG": "74.99",
"TITLE": "Kasargod FSUG (Free Software User Group)",
"URL": "https://groups.google.com/group/fsug-ksd",
"MLIST": "https://groups.google.com/group/fsug-ksd",
"MATURL": "https://matrix.to/#/#fsug-ksd:matrix.org",
"TGURL": ""
}, {
"LAT": "23.483333",
"LNG": "87.316667",
"TITLE": "dgplug (Linux Users' Group of Durgapur)",
"URL": "https://www.dgplug.org/",
"MLIST": "http://lists.dgplug.org/listinfo.cgi/users-dgplug.org",
"MATURL": "https://matrix.to/#/#dgplug:libera.chat",
"TGURL": ""
}, {
"LAT": "18.975",
"LNG": "72.825833",
"TITLE": "ILUG (Indian Libre Software user Group) Bombay",
"URL": "http://www.ilug-bom.org.in/",
"MLIST": "http://mm.ilug-bom.org.in/mailman/listinfo/linuxers",
"MATURL": "https://matrix.to/#/#ilug-bom:matrix.org",
"TGURL": ""
}, {
"LAT": "11.605",
"LNG": "76.083",
"TITLE": "FSUG (Free Software User Group) Wayanad",
"URL": "http://wayanad.fsug.in",
"MLIST": "https://groups.google.com/group/fsug-wayanad",
"MATURL": "https://matrix.to/#/#fsug-wayanad:matrix.org",
"TGURL": "https://t.me/fsug_wayanad"
}, {
"LAT": "9.49",
"LNG": "76.33",
"TITLE": "ILUG (Indian Libre Software User Group) Alleppey",
"URL": "http://alpy.ilug.org.in",
"MLIST": "https://groups.google.com/group/ilug-alpy",
"MATURL": "https://matrix.to/#/#ilug-alpy:diasp.in",
"TGURL": "https://t.me/ilug_alpy"
}, {
"LAT": "11.8689",
"LNG": "75.3555",
"TITLE": "FSUG (Free Software User Group) Kannur",
"URL": "https://groups.google.com/group/fsugknr",
"MLIST": "https://groups.google.com/group/fsugknr",
"MATURL": "https://matrix.to/#/#fsugknr:matrix.org",
"TGURL": "https://t.me/fsugknr"
}, {
"LAT": "8.88",
"LNG": "76.60",
"TITLE": "SSUG (Swathanthra Software Users Group) Kollam",
"URL": "http://kollam.fsug.in",
"MLIST": "https://www.freelists.org/list/ssug-kollam",
"MATURL": "https://matrix.to/#/#ssug-kollam:matrix.org",
"TGURL": "https://t.me/ssugk"
}, {
"LAT": "",
"LNG": "",
"TITLE": "ILUG (Indian Libre Software User Group) Kottayam",
"URL": "",
"MLIST": "",
"MATURL": "https://matrix.to/#/#ilug-ktm:matrix.org",
"TGURL": "https://t.me/ilugkottayam"
}, {
"LAT": "11.25",
"LNG": "75.78",
"TITLE": "FSUG (Free Software User Group) Calicut",
"URL": "http://calicut.fsug.in",
"MLIST": "https://www.freelists.org/list/fsug-calicut",
"MATURL": "https://matrix.to/#/#fsug-calicut:matrix.org",
"TGURL": "https://t.me/fsugcalicut"
}, {
"LAT": "11.04",
"LNG": "76.08",
"TITLE": "SSUG (Swathanthra Software Users Group) Malappuram",
"URL": "http://ssug.ml",
"ORL": "http://kl10.fsug.in",
"MLIST": "https://www.freelists.org/list/ssug-malappuram",
"MATURL": "https://matrix.to/#/#ssugm:diasp.in",
"TGURL": "https://t.me/ssugm"
}, {
"LAT": "10.77",
"LNG": "76.65",
"TITLE": "PLUS (Palakkad Libre software Users Society)",
"URL": "http://plus.fosscommunity.in",
"MLIST": "https://www.loomio.org/g/p9JCX308/plus",
"MATURL": "https://matrix.to/#/#plus:matrix.org",
"TGURL": "https://t.me/PlusFreedom"
}, {
"LAT": "8.49",
"LNG": "76.95",
"TITLE": "FSUG (Free Software User Group) Thiruvananthapuram",
"URL": "https://tvm.fsug.in",
"MLIST": "https://groups.google.com/d/forum/ilug-tvm",
"MATURL": "https://matrix.to/#/#fsug-tvm:matrix.org",
"TGURL": "https://t.me/fsugtvm"
}, {
"LAT": "10.52",
"LNG": "76.21",
"TITLE": "FSUG (Free Software User Group) Thrissur",
"URL": "http://thrissur.fsug.in",
"MLIST": "http://www.freelists.org/list/fsug-thrissur",
"MATURL": "https://matrix.to/#/#fsug-tcr:matrix.org",
"TGURL": "https://t.me/fsugtcr"
}, {
"LAT": "9.97",
"LNG": "76.28",
"TITLE": "ILUG (Indian Libre Software User Group) Cochin",
"URL": "http://ilugcoch.in",
"MLIST": "https://www.loomio.org/g/UPxFGw8I/ilugcochin",
"MATURL": "https://matrix.to/#/#ilugcochin:matrix.org",
"TGURL": "https://t.me/ilugcochin"
}, {
"LAT": "10.00",
"LNG": "76.33",
"TITLE": "FOSSClub, Ernakulam",
"URL": "http://fossclub.in",
"MLIST": "",
"MATURL": "",
"TGURL": ""
}, {
"LAT": "10.01",
"LNG": "76.34",
"TITLE": "RSETFC (Rajagiri School of Engineering & Technology FOSS Club), Ernakulam",
"URL": "",
"MLIST": "",
"MATURL": "https://matrix.to/#/#rsetfc:matrix.org",
"TGURL": "https://t.me/rsetfossclub"
}, {
"LAT": "12.50",
"LNG": "75.05",
"TITLE": "FSUG (Free Software User Group) at LBS College of Engineering, Kasargode",
"URL": "http://lbs.fsug.in/",
"MLIST": "https://groups.google.com/group/fsug-lbs",
"MATURL": "",
"TGURL": ""
}, {
"LAT": "10.84",
"LNG": "76.03",
"TITLE": "FSUG (Free Software User Group) at MES College of Engineering, Malappuram",
"URL": "https://groups.google.com/group/mes-fsug",
"MLIST": "https://groups.google.com/forum/#!forum/mes-fsug",
"MATURL": "",
"TGURL": ""
}, {
"LAT": "18.5293994",
"LNG": "73.8560156",
"TITLE": "FSUG (Free Software User Group) at College of Engineering, Pune",
"URL": "http://co.fsug.in/",
"MLIST": "https://groups.google.com/forum/#!forum/cofsug",
"MATURL": "https://matrix.to/#/#cofsug:disroot.org",
"TGURL": ""
}, {
"LAT": "15.49",
"LNG": "73.82",
"TITLE": "FSUG (Free Software User Group) Goa",
"URL": "http://goa.fsug.in",
"MLIST": "https://groups.yahoo.com/group/fsug-goa",
"MATURL": "https://matrix.to/#/#fsug-goa:matrix.org",
"TGURL": ""
}, {
"LAT": "18.519368",
"LNG": "73.855321",
"TITLE": "Pune GNU/Linux Users Group, Pune",
"URL": "http://plug.org.in",
"MLIST": "",
"MATURL": "",
"TGURL": ""
}, {
"LAT": "28.99",
"LNG": "77.7",
"TITLE": "GLUG (Gnu/Linux Users Group) Meerut",
"MLIST": "https://groups.google.com/forum/#!forum/glug-meerut",
"MATURL": "",
"TGURL": ""
}, {
"LAT": "28.7140",
"LNG": "77.3000",
"TITLE": "NDBUG (New Delhi BSD User Group)",
"URL": "http://ndbug.in",
"MLIST": "",
"MATURL": "",
"TGURL": ""
}, {
"LAT": "11.3217",
"LNG": "75.9342",
"TITLE": "NIT Calicut FOSS Cell",
"URL": "http://fosscell.nitc.ac.in",
"MLIST": "https://groups.google.com/forum/#!forum/nitcosc",
"MATURL": "https://matrix.to/#/#fosscell:diasp.in",
"TGURL": "https://t.me/fosscell"
}, {
"LAT": "28.6139",
"LNG": "77.2090",
"TITLE": "Indian Linux User's Group Delhi",
"URL": "http://www.linuxdelhi.org/",
"MLIST": "",
"MATURL": "https://matrix.to/#/#ilugd:matrix.org",
"TGURL": "https://t.me/joinchat/AAAAAEAc48wCHkUXViXBcg"
}, {
"LAT":" 23.6",
"LNG": "72.95",
"TITLE": "UnitedBSD (BSD users Group) ",
"URL": "https://unitedbsd.com",
"MLIST": "",
"MATURL": "https://riot.im/app/#/room/#bsd:matrix.org",
"TGURL": "https://t.me/unitedbsd"
}, {
"LAT":" 10.62655",
"LNG": "76.14496",
"TITLE": "FOSSers VAST",
"URL": "http://fossers.vidyaacademy.ac.in",
"MLIST": "https://lists.fsci.org.in/postorius/lists/fossersvast.lists.fsci.org.in",
"MATURL": "https://matrix.to/#/#FOSSersVAST:matrix.org",
"TGURL": "https://t.me/fossersvast"
}, {
"LAT":"11.93855",
"LNG": "79.4984801",
"TITLE": "Viluppuram GLUG",
"URL": "https://vglug.org",
"MLIST": "https://groups.google.com/forum/#!forum/viluppuramglug",
"MATURL": "https://matrix.to/#/+vglug:matrix.org",
"TGURL": ""
}, {
"LAT": "28.6129",
"LNG": "77.2277",
"TITLE": "PyDelhi",
"URL": "https://pydelhi.org/",
"MLIST": "https://mail.python.org/mailman/listinfo/ncr-python.in",
}, {
"LAT": "28.6328",
"LNG": "77.2195",
"TITLE": "Mozilla Delhi",
"URL": "https://wiki.mozilla.org/India/Delhi",
"TGURL": "https://t.me/mozilladelhi",
}, {
"LAT": "28.4653",
"LNG": "77.5106",
"TITLE": "Greater Noida Developer Group",
"URL": "http://www.gndg.in/",
"TGURL": "https://t.me/joinchat/AoNm4T5dyUMR40KBgwuF8w",
}, {
"LAT":"9.727128",
"LNG": "76.726013",
"TITLE": "The Nexus, SJCET Palai (Free Software and Hardware Users Group/Club) ",
"URL": "https://github.com/thenexusproject",
"MLIST": "",
"MATURL": "",
"TGURL": ""
}, {
"LAT":"12.991829015583626",
"LNG": "80.22862809291958",
"TITLE": "ILUGC (Indian Linux User Group - Chennai)",
"URL": "https://ilugc.in",
"MLIST": "https://www.freelists.org/list/ilugc",
"MATURL": "https://matrix.to/#/#ilugc:libera.chat",
"TGURL": ""
}];
\ No newline at end of file
var mymap = L.map('mapid').setView([21, 78], 4);
L.tileLayer('//{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(mymap);
var mapMarker = L.icon({
iconUrl: 'img/marker-icon.png',
shadowUrl: 'img/marker-shadow.png',
iconSize: [20, 30],
shadowSize: [30, 30],
shadowAnchor: [10, 14]
iconUrl: 'img/marker-icon.png',
shadowUrl: 'img/marker-shadow.png',
iconSize: [20, 30],
shadowSize: [30, 30],
shadowAnchor: [10, 14]
});
var goa = L.marker([15.49, 73.82], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://goa.fsug.in" target="__blank" style="text-decoration: none">FSUG Goa</a></b>');
var coep = L.marker([18.5293994, 73.8560156], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://co.fsug.in" target="__blank" style="text-decoration: none">FSUG at College of Engineering, Pune</a></b>');
var plug = L.marker([18.519368, 73.855321], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://plug.org.in" target="__blank" style="text-decoration: none">Pune GNU/Linux Users Group, Pune</a></b>');
var thrissur = L.marker([10.52, 76.21], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://thrissur.fsug.in" target="__blank" style="text-decoration: none">FSUG Thrissur</a></b>');
var calicut = L.marker([11.25, 75.78], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://calicut.fsug.in" target="__blank" style="text-decoration: none">FSUG Calicut</a></b>');
var lbs = L.marker([12.50, 75.05], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://lbs.fsug.in" target="__blank" style="text-decoration: none">FSUG at LBS College of Engineering, Kasargode</a></b>');
var rset = L.marker([10.01, 76.34], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="https://riot.im/app/#/room/rsetfc:matrix.org" target="__blank" style="text-decoration: none">RSETFC (Rajagiri School of Engineering & Technology FOSS Club), Ernakulam</a></b>');
var fossclub = L.marker([10.00, 76.33], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://fossclub.in" target="__blank" style="text-decoration: none">FOSSClub, Ernakulam</a></b>');
var malappuram = L.marker([11.04, 76.08], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="https://www.freelists.org/list/ssug-malappuram" target="__blank" style="text-decoration: none">SSUG (Swathanthra Software Users Group) Malappuram</a></b>');
var mes = L.marker([10.84, 76.03], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="https://groups.google.com/forum/#!forum/mes-fsug" target="__blank" style="text-decoration: none">FSUG at MES College of Engineering, Malappuram</a></b>');
var thiruvananthapuram = L.marker([8.49, 76.95], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="https://www.freelists.org/list/ssug-malappuram" target="__blank" style="text-decoration: none">FSUG Thiruvananthapuram</a></b>');
var kollam = L.marker([8.88, 76.60], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="https://www.freelists.org/list/ssug-kollam" target="__blank" style="text-decoration: none">SSUG (Swathanthra Software Users Group) Kollam</a></b>');
var meerut = L.marker([28.99, 77.7], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="https://groups.google.com/forum/#!forum/glug-meerut" target="__blank" style="text-decoration: none">GLUG (Gnu/Linux Users Group) Meerut</a></b>');
var palakkad = L.marker([10.77, 76.65], {
icon: mapMarker
}).addTo(mymap).bindPopup('<b><a href="http://plus.fosscommunity.in" target="__blank" style="text-decoration: none">PLUS (Palakkad Libre software Users Society)</a></b>');
// see locations.js file to add new locations
var locations_length = locations.length;
for (var i = 0; i < locations_length; i++) {
var texttodisplay = "";
texttodisplay += "<b>";
texttodisplay += "";
texttodisplay += "<br>";
if (locations[i].URL !== "") {
// a homepage exists
texttodisplay += "<a href='";
texttodisplay += locations[i].URL;
texttodisplay += "' target='_blank' style='text-decoration:none;'>";
texttodisplay += locations[i].TITLE;
texttodisplay += "</a>";
} else {
texttodisplay += locations[i].TITLE;
}
texttodisplay += "<br>";
if (locations[i].MLIST !== "") {
// there is a mailing list for this usergroup
texttodisplay += "<a href='";
texttodisplay += locations[i].MLIST;
texttodisplay += "' target='_blank' style='text-decoration:none;'>";
texttodisplay += "Mailing List";
texttodisplay += "</a>";
texttodisplay += "<br>";
}
if (locations[i].MATURL !== "") {
// there is a matrix room for this usergroup
texttodisplay += "<a href='";
texttodisplay += locations[i].MATURL;
texttodisplay += "' target='_blank' style='text-decoration:none;'>";
texttodisplay += "Matrix Room";
texttodisplay += "</a>";
texttodisplay += "<br>";
}
if (locations[i].TGURL !== "") {
// not recommended
texttodisplay += "<a href='";
texttodisplay += locations[i].TGURL;
texttodisplay += "' target='_blank' style='text-decoration:none;'>";
texttodisplay += "Telegram Group";
texttodisplay += "</a>";
texttodisplay += "<br>";
}
texttodisplay += "";
texttodisplay += "</b>";
if ((locations[i].LAT !== "") || (locations[i].LNG !== "")) {
L.marker([locations[i].LAT, locations[i].LNG], {
icon: mapMarker
}).addTo(mymap).bindPopup(texttodisplay);
}
}
This diff is collapsed.