fix issue of selecting can or can not modify answers

This commit is contained in:
tykayn 2020-04-11 15:16:30 +02:00
commit 23dc45f198
284 changed files with 85679 additions and 18495 deletions

16
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,16 @@
build:
image: node:12
before_script:
- npm ci
script:
- npm run build
artifacts:
paths:
- dist/
test:
image: node:12
type: test
before_script:
- npm ci
script:
- npm run test

4
.storybook/main.js Normal file
View File

@ -0,0 +1,4 @@
module.exports = {
stories: ['../src/**/*.stories.ts'],
addons: ['@storybook/addon-actions', '@storybook/addon-links', '@storybook/addon-notes'],
};

20
.storybook/tsconfig.json Normal file
View File

@ -0,0 +1,20 @@
{
"extends": "../tsconfig.app.json",
"compilerOptions": {
"types": [
"node"
]
},
"exclude": [
"../src/test.ts",
"../src/**/*.spec.ts",
"../projects/**/*.spec.ts"
],
"include": [
"../src/**/*",
"../projects/**/*"
],
"files": [
"./typings.d.ts"
]
}

4
.storybook/typings.d.ts vendored Normal file
View File

@ -0,0 +1,4 @@
declare module '*.md' {
const content: string;
export default content;
}

View File

@ -1,133 +1,137 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"framadate": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "framadate",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/framadate",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": false,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": [
"node_modules/marked/lib/marked.js",
"node_modules/prismjs/prism.js",
"node_modules/prismjs/components/prism-css.min.js"
]
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"framadate": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
"root": "",
"sourceRoot": "src",
"prefix": "framadate",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/framadate",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"node_modules/primeicons/primeicons.css",
"node_modules/font-awesome/css/font-awesome.css",
"node_modules/primeng/resources/themes/nova-light/theme.css",
"node_modules/primeng/resources/primeng.min.css",
"src/styles.scss"
],
"scripts": [
"node_modules/marked/lib/marked.js",
"node_modules/prismjs/prism.js",
"node_modules/prismjs/components/prism-css.min.js"
]
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "framadate:build"
},
"configurations": {
"production": {
"browserTarget": "framadate:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "framadate:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "framadate:serve"
},
"configurations": {
"production": {
"devServerTarget": "framadate:serve:production"
}
}
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "framadate:build"
},
"configurations": {
"production": {
"browserTarget": "framadate:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "framadate:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "framadate:serve"
},
"configurations": {
"production": {
"devServerTarget": "framadate:serve:production"
}
}
}
}
}},
"defaultProject": "framadate"
},
"defaultProject": "framadate"
}

View File

@ -0,0 +1,266 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>framadate-funky-frontend documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">framadate-funky-frontend documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>AppPage</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>e2e/src/app.po.ts</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#getTitleText">getTitleText</a>
</li>
<li>
<a href="#navigateTo">navigateTo</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getTitleText"></a>
<span class="name">
<b>
getTitleText
</b>
<a href="#getTitleText"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getTitleText()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="8"
class="link-to-prism">e2e/src/app.po.ts:8</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="navigateTo"></a>
<span class="name">
<b>
navigateTo
</b>
<a href="#navigateTo"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>navigateTo()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="4"
class="link-to-prism">e2e/src/app.po.ts:4</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { browser, by, element } from &#x27;protractor&#x27;;
export class AppPage {
navigateTo() {
return browser.get(browser.baseUrl) as Promise&lt;any&gt;;
}
getTitleText() {
return element(by.css(&#x27;app-root h1&#x27;)).getText() as Promise&lt;string&gt;;
}
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'AppPage.html';
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

View File

@ -0,0 +1,390 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>framadate-funky-frontend documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">framadate-funky-frontend documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>MyMissingTranslationHandler</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/app.module.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code>MissingTranslationHandler</code>
</p>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#handle">handle</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="handle"></a>
<span class="name">
<b>
handle
</b>
<a href="#handle"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>handle(params: MissingTranslationHandlerParams)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="62"
class="link-to-prism">src/app/app.module.ts:62</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>params</td>
<td>
<code>MissingTranslationHandlerParams</code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {BrowserModule} from &#x27;@angular/platform-browser&#x27;;
import {NgModule} from &#x27;@angular/core&#x27;;
import {AppRoutingModule} from &#x27;./app-routing.module&#x27;;
import {AppComponent} from &#x27;./app.component&#x27;;
import {BaseComponent} from &#x27;./pages/base-page/base.component&#x27;;
import {KindComponent} from &#x27;./pages/kind/kind.component&#x27;;
import {HeaderComponent} from &#x27;./header/header.component&#x27;;
import {FormsModule} from &#x27;@angular/forms&#x27;;
import {NavigationComponent} from &#x27;./ui/navigation/navigation.component&#x27;;
import {RouterModule} from &#x27;@angular/router&#x27;;
import {Routes} from &#x27;./config/Routes&#x27;;
import {CommonModule, registerLocaleData} from &#x27;@angular/common&#x27;;
import {DatesComponent} from &#x27;./pages/dates/dates.component&#x27;;
import {DebuggerComponent} from &#x27;./debugger/debugger.component&#x27;;
import {VisibilityComponent} from &#x27;./pages/visibility/visibility.component&#x27;;
import {ResumeComponent} from &#x27;./pages/resume/resume.component&#x27;;
import {PicturesComponent} from &#x27;./pages/pictures/pictures.component&#x27;;
import {AnswersComponent} from &#x27;./pages/answers/answers.component&#x27;;
import {EndConfirmationComponent} from &#x27;./pages/end-confirmation/end-confirmation.component&#x27;;
import {CreateOrRetrieveComponent} from &#x27;./pages/create-or-retrieve/create-or-retrieve.component&#x27;;
import localeFr from &#x27;@angular/common/locales/fr&#x27;;
import localeEn from &#x27;@angular/common/locales/en&#x27;;
import {VotingSummaryComponent} from &#x27;./pages/voting/voting-summary/voting-summary.component&#x27;;
import {VotingGraphComponent} from &#x27;./pages/voting/voting-graph/voting-graph.component&#x27;;
import {VotingChoiceComponent} from &#x27;./pages/voting/voting-choice/voting-choice.component&#x27;;
import {PasswordComponent} from &#x27;./pages/password/password.component&#x27;;
import {HomeComponent} from &#x27;./pages/home/home.component&#x27;;
import {HttpClient, HttpClientModule} from &#x27;@angular/common/http&#x27;;
import {MarkdownModule} from &#x27;ngx-markdown&#x27;;
import {
MissingTranslationHandler,
MissingTranslationHandlerParams,
TranslateLoader,
TranslateModule,
TranslateService
} from &#x27;@ngx-translate/core&#x27;;
import {TranslateHttpLoader} from &#x27;@ngx-translate/http-loader&#x27;;
import {PollGraphicComponent} from &#x27;./poll-graphic/poll-graphic.component&#x27;;
import {AdminComponent} from &#x27;./pages/admin/admin.component&#x27;;
import {SelectorComponent} from &#x27;./ui/selector/selector.component&#x27;;
import {BrowserAnimationsModule} from &quot;@angular/platform-browser/animations&quot;;
import {ConfigService} from &quot;./services/config.service&quot;;
import {PollService} from &quot;./services/poll.service&quot;;
import {ToastModule} from &#x27;primeng/toast&#x27;;
import {ConfirmationService, MessageModule, MessageService} from &quot;primeng&quot;;
import {PollDisplayComponent} from &#x27;./pages/poll-display/poll-display.component&#x27;;
import {VotingComponent} from &#x27;./pages/voting/voting.component&#x27;;
import {VotingCommentComponent} from &#x27;./pages/voting/voting-comment/voting-comment.component&#x27;;
import {ResettableInputDirective} from &#x27;./ui/directives/resettable-input.directive&#x27;;
import {ClipboardModule} from &quot;ngx-clipboard&quot;;
import {ErasableInputComponent} from &#x27;./ui/erasable-input/erasable-input.component&#x27;;
import {ConfirmDialogModule} from &#x27;primeng/confirmdialog&#x27;;
import {DialogModule} from &#x27;primeng/dialog&#x27;;
import {DateValueAccessorModule} from &quot;./custom-lib/date-value-accessor&quot;;
import {CopyTextComponent} from &#x27;./ui/copy-text/copy-text.component&#x27;;
import {CommentsListComponent} from &#x27;./pages/voting/comments-list/comments-list.component&#x27;;
import {ChoicesListComponent} from &#x27;./pages/voting/choices-list/choices-list.component&#x27;;
import {VotingNavigationComponent} from &#x27;./pages/voting/voting-navigation/voting-navigation.component&#x27;;
export class MyMissingTranslationHandler implements MissingTranslationHandler {
handle(params: MissingTranslationHandlerParams) {
return &#x27;some value&#x27;;
}
}
registerLocaleData(localeFr, &#x27;fr&#x27;);
registerLocaleData(localeEn, &#x27;en&#x27;);
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http);
}
@NgModule({
declarations: [
AppComponent,
BaseComponent,
KindComponent,
HeaderComponent,
NavigationComponent,
DatesComponent,
DebuggerComponent,
VisibilityComponent,
ResumeComponent,
PicturesComponent,
AnswersComponent,
EndConfirmationComponent,
CreateOrRetrieveComponent,
VotingSummaryComponent,
VotingGraphComponent,
VotingChoiceComponent,
PasswordComponent,
HomeComponent,
PollGraphicComponent,
AdminComponent,
SelectorComponent,
PollDisplayComponent,
VotingComponent,
VotingCommentComponent,
ResettableInputDirective,
ErasableInputComponent,
CopyTextComponent,
CommentsListComponent,
ChoicesListComponent,
VotingNavigationComponent,
],
imports: [
ConfirmDialogModule,
ClipboardModule,
CommonModule,
BrowserModule,
DialogModule,
DateValueAccessorModule,
BrowserAnimationsModule,
AppRoutingModule,
ToastModule,
MessageModule,
MarkdownModule.forRoot(),
TranslateModule.forRoot({
missingTranslationHandler: {
provide: MissingTranslationHandler,
useClass: MyMissingTranslationHandler,
},
// useDefaultLang: false,
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
HttpClientModule,
FormsModule,
RouterModule.forRoot(Routes, {useHash: true})
],
providers: [TranslateService, ConfigService, PollService, MessageService, ConfirmationService],
bootstrap: [AppComponent]
})
export class AppModule {
}
</code></pre>
</div>
</div>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'MyMissingTranslationHandler.html';
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,618 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>framadate-funky-frontend documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">framadate-funky-frontend documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>AdminComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/admin/admin.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>framadate-admin</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./admin.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./admin.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Public</span>
<a href="#config">config</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(config: <a href="../injectables/ConfigService.html">ConfigService</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="9" class="link-to-prism">src/app/pages/admin/admin.component.ts:9</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>config</td>
<td>
<code><a href="../injectables/ConfigService.html" target="_self" >ConfigService</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="14"
class="link-to-prism">src/app/pages/admin/admin.component.ts:14</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="config"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
config</b>
<a href="#config"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../injectables/ConfigService.html" target="_self" >ConfigService</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11" class="link-to-prism">src/app/pages/admin/admin.component.ts:11</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {Component, OnInit} from &#x27;@angular/core&#x27;;
import {ConfigService} from &#x27;../../services/config.service&#x27;;
@Component({
selector: &#x27;framadate-admin&#x27;,
templateUrl: &#x27;./admin.component.html&#x27;,
styleUrls: [&#x27;./admin.component.scss&#x27;]
})
export class AdminComponent implements OnInit {
constructor(public config: ConfigService) {
}
ngOnInit() {
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;form&gt;
&lt;h1&gt;Nom du sondage&lt;/h1&gt;
&lt;!--Infos--&gt;
&lt;h2&gt;{{&quot;admin.info_section_title&quot;|translate}}&lt;/h2&gt;
&lt;label for&#x3D;&quot;title&quot;&gt;
{{&quot;admin.choose_title&quot;|translate}}
&lt;/label&gt;
&lt;input type&#x3D;&quot;text&quot; name&#x3D;&quot;title&quot;&gt;
&lt;label for&#x3D;&quot;desc&quot;&gt;
{{&quot;admin.description&quot;|translate}}
&lt;/label&gt;
&lt;textarea name&#x3D;&quot;desc&quot;&gt; &lt;/textarea&gt;
&lt;label for&#x3D;&quot;name&quot;&gt;
{{&quot;creation.name&quot;|translate}}
&lt;/label&gt;
&lt;input type&#x3D;&quot;text&quot; name&#x3D;&quot;name&quot;&gt;
&lt;!--Params--&gt;
&lt;h2&gt;{{&quot;admin.settings_section_title&quot;|translate}}&lt;/h2&gt;
&lt;h3&gt;{{&quot;visibility.title&quot;|translate}}&lt;/h3&gt;
&lt;section class&#x3D;&quot;row&quot;&gt;
&lt;label for&#x3D;&quot;answer-visible&quot;&gt;
{{&quot;visibility.visibility_want&quot;|translate}}
&lt;/label&gt;
&lt;select name&#x3D;&quot;answer-visible&quot;&gt;
&lt;option value&#x3D;&quot;all&quot; selected&gt;
{{&quot;visibility.visibility_link&quot;|translate}}
&lt;/option&gt;
&lt;option value&#x3D;&quot;per&quot;&gt;
{{&quot;visibility.visibility_nobody&quot;|translate}}
&lt;/option&gt;
&lt;/select&gt;
&lt;label for&#x3D;&quot;answer-visible&quot;&gt;
{{&quot;visibility.visibility_see&quot;|translate}}
&lt;/label&gt;
&lt;/section&gt;
&lt;h3&gt;{{&quot;visibility.votes&quot;|translate}}&lt;/h3&gt;
&lt;section&gt;
&lt;label for&#x3D;&quot;vote-date&quot;&gt;
{{&quot;visibility.archiving&quot;|translate}}
&lt;/label&gt;
&lt;input type&#x3D;&quot;date&quot; name&#x3D;&quot;vote-date&quot;&gt;
&lt;/section&gt;
&lt;section&gt;
&lt;label for&#x3D;&quot;alter-vote&quot;&gt;
{{&quot;visibility.archiving_start&quot;|translate}}
&lt;/label&gt;
&lt;select name&#x3D;&quot;alter-vote&quot;&gt;
&lt;option value&#x3D;&quot;yes&quot; selected&gt;
{{&quot;visibility.archiving_can&quot;|translate}}
&lt;/option&gt;
&lt;option value&#x3D;&quot;no&quot;&gt;
{{&quot;visibility.archiving_can_not&quot;|translate}}
&lt;/option&gt;
&lt;/select&gt;
&lt;label for&#x3D;&quot;type-vote&quot;&gt;
{{&quot;visibility.archiving_end&quot;|translate}}
&lt;/label&gt;
&lt;select name&#x3D;&quot;type-vote&quot;&gt;
&lt;option value&#x3D;&quot;solo&quot; selected&gt;
{{&quot;visibility.modfiy_their&quot;|translate}}
&lt;/option&gt;
&lt;option value&#x3D;&quot;all&quot;&gt;
{{&quot;visibility.modfiy_everyone&quot;|translate}}
&lt;/option&gt;
&lt;/select&gt;
&lt;/section&gt;
&lt;label for&#x3D;&quot;del-vote&quot;&gt;
{{&quot;admin.votes_deletion_desc&quot;|translate}}
&lt;/label&gt;
&lt;button class&#x3D;&quot;btn btn--alert btn--outline&quot;
(click)&#x3D;&quot;config.deleteVotes()&quot;
&gt;
&lt;i class&#x3D;&quot;fa fa-trash&quot;&gt;&lt;/i&gt;
{{&#x27;admin.votes_deletion_btn&#x27;|translate}}
&lt;i class&#x3D;&quot;fa fa-object-group&quot;&gt;&lt;/i&gt;&lt;/button&gt;
&lt;h3&gt;{{&quot;admin.comments_deletion_title&quot;|translate}}&lt;/h3&gt;
&lt;label for&#x3D;&quot;del-com&quot;&gt;
{{&quot;admin.comments_deletion_desc&quot;|translate}}
&lt;/label&gt;
&lt;button class&#x3D;&quot;btn btn--alert btn--outline&quot;
(click)&#x3D;&quot;config.deleteComments()&quot;
&gt;
&lt;i class&#x3D;&quot;fa fa-trash&quot;&gt;&lt;/i&gt;
{{&#x27;admin.comments_deletion_btn&#x27;|translate}}
&lt;i class&#x3D;&quot;fa fa-comments-o&quot;&gt;&lt;/i&gt;&lt;/button&gt;
&lt;h3&gt;{{&quot;admin.archiving_title&quot;|translate}}&lt;/h3&gt;
&lt;section class&#x3D;&quot;row&quot;&gt;
&lt;label for&#x3D;&quot;arch&quot;&gt;
{{&quot;admin.archiving_desc&quot;|translate}}
&lt;/label&gt;
&lt;input type&#x3D;&quot;date&quot; name&#x3D;&quot;arch&quot;&gt;
&lt;/section&gt;
&lt;h3&gt;{{&quot;visibility.access&quot;|translate}}&lt;/h3&gt;
&lt;section class&#x3D;&quot;row&quot;&gt;
&lt;label for&#x3D;&quot;password&quot;&gt;Je&lt;/label&gt;
&lt;select name&#x3D;&quot;password&quot;&gt;
&lt;option value&#x3D;&quot;yes&quot; selected&gt;
{{&quot;visibility.access_want_yes&quot;|translate}}
&lt;/option&gt;
&lt;option value&#x3D;&quot;no&quot;&gt;
{{&quot;visibility.access_want_no&quot;|translate}}
&lt;/option&gt;
&lt;/select&gt;
&lt;label for&#x3D;&quot;alter-vote&quot;&gt;
{{&quot;visibility.access_protect&quot;|translate}}
&lt;/label&gt;
&lt;/section&gt;
&lt;h3&gt;{{&quot;admin.deletion&quot;|translate}}&lt;/h3&gt;
&lt;label for&#x3D;&quot;del&quot;&gt; {{&quot;admin.deletion_desc&quot;|translate}} &lt;/label&gt;
&lt;input class&#x3D;&quot;btn btn--alert&quot; type&#x3D;&quot;submit&quot;
name&#x3D;&quot;del&quot; value&#x3D;&quot;{{&#x27;admin.deletion_btn&#x27;|translate}}&quot;&gt;
&lt;!-- Access link --&gt;
&lt;h2&gt;{{&quot;admin.link&quot;|translate}}&lt;/h2&gt;
&lt;h3&gt;{{&quot;admin.link_admin&quot;|translate}}&lt;/h3&gt;
&lt;label for&#x3D;&quot;copy-link-admin&quot;&gt;
{{&quot;admin.link_admin_desc&quot;|translate}}
https://framadate.org/urladmindusondage
&lt;/label&gt;
&lt;input class&#x3D;&quot;btn btn--mini&quot; type&#x3D;&quot;submit&quot; name&#x3D;&quot;copy-link-admin&quot;
value&#x3D;&quot;{{&#x27;admin.copy_link&#x27;|translate}}&quot;&gt;
&lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;next&quot;&gt;{{&quot;admin.link_admin_btn&quot;|translate}}&lt;/a&gt;
&lt;h3&gt;{{&quot;admin.polled_people&quot;|translate}}&lt;/h3&gt;
&lt;label for&#x3D;&quot;copy-link&quot;&gt;
{{&quot;admin.polled_people_desc&quot;|translate}}
{{config.urlPublic}}&lt;/label&gt;
&lt;input class&#x3D;&quot;btn btn--mini&quot; type&#x3D;&quot;submit&quot; name&#x3D;&quot;copy-link&quot;
value&#x3D;&quot;{{&#x27;admin.copy_link&#x27;|translate}}&quot;&gt;
&lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;next&quot;&gt;{{&quot;admin.polled_people_btn&quot;|translate}}&lt;/a&gt;
&lt;h3&gt;{{&quot;admin.email_links&quot;|translate}}&lt;/h3&gt;
&lt;label for&#x3D;&quot;mail&quot;&gt;{{&quot;admin.email_links_desc&quot;|translate}}&lt;/label&gt;
&lt;input type&#x3D;&quot;email&quot; name&#x3D;&quot;mail&quot;&gt;
&lt;input class&#x3D;&quot;btn btn--mini&quot; type&#x3D;&quot;submit&quot; name&#x3D;&quot;send-mail&quot;
value&#x3D;&quot;{{&#x27;admin.email_links_btn&#x27;|translate}}&quot;&gt;
&lt;/form&gt;
&lt;p-confirmDialog header&#x3D;&quot;Confirmation&quot; icon&#x3D;&quot;pi pi-exclamation-triangle&quot;&gt;&lt;/p-confirmDialog&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./admin.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss">form{
display:flex;
flex-direction: column;
width:340px;
margin:auto;
}
.row{
flex-direction: row;
flex-wrap: wrap;
padding-bottom: 65px;
}
textarea{
height:115px;
margin-bottom: 50px;
}
label{
padding-bottom: 10px;
flex-wrap: wrap;
}
h2,h1{
margin-bottom: 40px;
}
h2{
margin-top: 40px;
padding-left:16px;
}
.btn--alert{
font-weight: 600;
}
h3{
padding-left: 28px;
padding-bottom:15px;
}
select,input[type&#x3D;date]{
max-width: 130px;
}
.btn--outline{
margin-bottom: 70px;
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>