Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

Jason Rivard 6 éve
szülő
commit
8bd982a87e

+ 1 - 2
client/package.json

@@ -12,8 +12,7 @@
         "clean": "rimraf dist/",
         "test": "karma start test/karma.conf.js",
         "test-single-run": "karma start test/karma.conf.js --singleRun --no-auto-watch",
-        "start": "webpack-dev-server --mode=development --port 4000 --history-api-fallback --colors",
-        "sync": "webpack --env.disableMinimize=true --mode=production --output-path=../webapp/target/pwm-1.8.0-SNAPSHOT/public/resources/webjars/pwm-client --watch --progress --colors"
+        "start": "webpack-dev-server --mode=development --port 4000 --history-api-fallback --colors"
     },
     "author": "",
     "license": "ISC",

+ 4 - 3
client/src/modules/helpdesk/helpdesk-search-table.component.html

@@ -76,14 +76,15 @@
             <ias-icon icon="view_list_thin"></ias-icon>
         </ias-button>
         <div class="icon-divider vertical"></div>
-        <ias-button class="ias-icon-button table-configuration-menu-toggle" ias-toggle="menu1">
+        <ias-button class="ias-icon-button table-configuration-menu-toggle" ias-toggle="menu1"
+                    ng-attr-title="{{ 'Title_Settings' | translate }}">
             <ias-icon icon="configure_thick"></ias-icon>
         </ias-button>
         <ias-menu name="menu1" ias-align="end end" class="ias-styles-root">
             <div class="ias-input-container">
                 <div class="checkbox-button" ng-repeat="(key, value) in $ctrl.columnConfiguration">
-                    <input type="checkbox" ng-checked="value.visible" aria-label="Toggle column visibility" disabled/>
-                    <ias-button ng-click="$ctrl.toggleColumnVisible($event, key)">{{value.label}}</ias-button>
+                    <input type="checkbox" ng-model="value.visible" aria-label="Toggle column visibility" />
+                    <ias-button class="toggle-column-btn" ng-click="value.visible = !value.visible; $event.stopImmediatePropagation();">{{value.label}}</ias-button>
                 </div>
             </div>
         </ias-menu>

+ 0 - 12
client/src/modules/helpdesk/helpdesk-search-table.component.ts

@@ -106,18 +106,6 @@ export default class HelpDeskSearchTableComponent extends HelpDeskSearchBaseComp
         this.toggleView('search.cards');
     }
 
-    toggleColumnVisible(event, columnId): void {
-        const visibleColumns = Object.keys(this.columnConfiguration).filter((columnId) => {
-            return this.columnConfiguration[columnId].visible;
-        });
-
-        if (!(visibleColumns.length === 1 && this.columnConfiguration[columnId].visible)) {
-            this.columnConfiguration[columnId].visible = !this.columnConfiguration[columnId].visible;
-        }
-
-        event.stopImmediatePropagation();
-    }
-
     private onSearchResult(searchResult: SearchResult): void {
         this.searchResult = searchResult;
     }

+ 7 - 0
client/src/modules/helpdesk/helpdesk-search.component.scss

@@ -110,4 +110,11 @@
       }
     }
   }
+
+  .ias-input-container > .checkbox-button > .ias-button.toggle-column-btn {
+    &:focus, &:hover {
+      background-color: transparent;
+      box-shadow: none;
+    }
+  }
 }

+ 7 - 0
client/src/modules/helpdesk/verifications-dialog.controller.ts

@@ -96,6 +96,13 @@ export default class VerificationsDialogController {
                     this.status = STATUS_SELECT;
                     this.determineAvailableVerificationMethods();
                 }
+            })
+            .catch((reason: any) => {
+                alert(reason);
+
+                this.status = STATUS_NONE;
+                this.verificationStatus = STATUS_NONE;
+                this.IasDialogService.close();
             });
     }
 

+ 4 - 3
client/src/modules/peoplesearch/peoplesearch-table.component.html

@@ -80,14 +80,15 @@
                     ng-attr-title="{{ 'Title_OrgChart' | translate }}">
             <ias-icon class="ias-selected" icon="orgchart_thin"></ias-icon>
         </ias-button>
-        <ias-button class="ias-icon-button table-configuration-menu-toggle" ias-toggle="menu1">
+        <ias-button class="ias-icon-button table-configuration-menu-toggle" ias-toggle="menu1"
+                    ng-attr-title="{{ 'Title_Settings' | translate }}">
             <ias-icon icon="configure_thick"></ias-icon>
         </ias-button>
         <ias-menu name="menu1" ias-align="end end" class="ias-styles-root">
             <div class="ias-input-container">
                 <div class="checkbox-button" ng-repeat="(key, value) in $ctrl.columnConfiguration">
-                    <input type="checkbox" ng-checked="value.visible" aria-label="Toggle column visibility" disabled/>
-                    <ias-button ng-click="$ctrl.toggleColumnVisible($event, key)">{{value.label}}</ias-button>
+                    <input type="checkbox" ng-model="value.visible" aria-label="Toggle column visibility" />
+                    <ias-button class="toggle-column-btn" ng-click="value.visible = !value.visible; $event.stopImmediatePropagation();">{{value.label}}</ias-button>
                 </div>
             </div>
         </ias-menu>

+ 7 - 0
client/src/modules/peoplesearch/peoplesearch-table.component.scss

@@ -43,4 +43,11 @@
             }
         }
     }
+
+    .ias-input-container > .checkbox-button > .ias-button.toggle-column-btn {
+        &:focus, &:hover {
+            background-color: transparent;
+            box-shadow: none;
+        }
+    }
 }

+ 0 - 12
client/src/modules/peoplesearch/peoplesearch-table.component.ts

@@ -116,18 +116,6 @@ export default class PeopleSearchTableComponent extends PeopleSearchBaseComponen
         }
     }
 
-    toggleColumnVisible(event, columnId): void {
-        const visibleColumns = Object.keys(this.columnConfiguration).filter((columnId) => {
-            return this.columnConfiguration[columnId].visible;
-        });
-
-        if (!(visibleColumns.length === 1 && this.columnConfiguration[columnId].visible)) {
-            this.columnConfiguration[columnId].visible = !this.columnConfiguration[columnId].visible;
-        }
-
-        event.stopImmediatePropagation();
-    }
-
     private onSearchResult(searchResult: SearchResult): void {
         this.searchResult = searchResult;
     }

+ 18 - 0
client/src/modules/peoplesearch/person-details-dialog.component.scss

@@ -36,11 +36,29 @@
   }
 
   .person-details-dialog {
+    display: flex;
+    align-items: center;
+    justify-content: center;
     text-align: left;
     overflow: hidden;
 
     .ias-dialog-container {
+      display: flex;
+      margin: 0;
       padding: 0;
+      position: relative;
+      top: auto;
+      transform: none;
+
+      > .ias-dialog-content {
+        display: grid;
+        grid-template-rows: max-content 1fr;
+        flex-grow: 1;
+
+        > .person-details-content {
+          overflow: auto;
+        }
+      }
     }
 
     .ias-avatar {

+ 2 - 2
client/webpack.config.js

@@ -119,8 +119,8 @@ module.exports = function (env, argv) {
         // Development-specific configuration
         return webpackMerge(commonConfig, {
             entry: {
-                'peoplesearch.ng': './src/modules/peoplesearch/main.dev',
-                'helpdesk.ng': './src/modules/helpdesk/main.dev'
+                'peoplesearch.ng': './src/modules/peoplesearch/main',
+                'helpdesk.ng': './src/modules/helpdesk/main'
             },
             plugins: [
                 new HtmlWebpackPlugin({

+ 1 - 0
server/src/main/java/password/pwm/i18n/Display.java

@@ -289,6 +289,7 @@ public enum Display implements PwmDisplayBundle
     Title_MainPage,
     Title_NewUser,
     Title_OrgChart,
+    Title_Settings,
     Title_PasswordGuide,
     Title_PasswordPolicy,
     Title_PasswordStrength,

+ 1 - 0
server/src/main/resources/password/pwm/i18n/Display.properties

@@ -330,6 +330,7 @@ Title_LogoutPublic=Inactive Timeout
 Title_MainPage=Main Menu
 Title_NewUser=New User Registration
 Title_OrgChart=Organizational Chart
+Title_Settings=Settings
 Title_PasswordGuide=Password Guide
 Title_PasswordPolicy=Password Policy
 Title_PasswordStrength=Password Strength

+ 2 - 0
server/src/main/resources/password/pwm/i18n/Display_fi.properties

@@ -30,6 +30,7 @@ Button_CloseWindow=Sulje ikkuna
 Button_ConfirmResponses=Vahvista vastaukset
 Button_Continue=Jatka
 Button_Create=Luo
+Button_GoBack=Paluu
 Button_Hide=Piilota salasanat
 Button_Hide_Responses=Piilota vastaukset
 Button_Login=Kirjaudu
@@ -134,6 +135,7 @@ Long_Title_UserInformation=Tietoja salasanasta ja salasanapolitiikasta.
 Title_LogoutPublic=Aikakatkaisu
 Title_ActivateUser=Aktivoi k\u00e4ytt\u00e4j\u00e4
 Title_Admin=Admin
+Title_Application=Salasana Itsepalvelu
 Title_Captcha=Vahvistus
 Title_ChangePassword=Vaihda salasana
 Title_ConfirmResponses=Vahvista vastaukset

+ 1 - 0
server/src/main/resources/password/pwm/i18n/Message_fi.properties

@@ -73,6 +73,7 @@ Requirement_OldCharPlural=Ei saa sis\u00e4lt\u00e4\u00e4 enemp\u00e4\u00e4 kuin
 Requirement_RequiredChars=Pit\u00e4\u00e4 sis\u00e4lt\u00e4\u00e4 v\u00e4hint\u00e4\u00e4n yhden seuraavista merkeist\u00e4:
 Requirement_UniqueRequired=Uutta salasanaa ei todenn\u00e4k\u00f6isesti ole k\u00e4ytetty aikaisemmin.
 Requirement_WordList=Ei saa sis\u00e4lt\u00e4\u00e4 yleisi\u00e4 sanoja eik\u00e4 kirjainyhdistelmi\u00e4.
+Display_RecoverTokenSuccess=Kiitos!  Suojakoodi joka l\u00e4hettiin <b>%1%</b> on vahvistettu.
 Success_ActivateUser=K\u00e4ytt\u00e4j\u00e4tunnuksesi on aktivoitu. Jatka eteenp\u00e4in, jotta voit k\u00e4ytt\u00e4\u00e4 uutta tunnustasi.
 Success_ConfigFileUpload=Konfiguraation tiedosto on onnistuneesti siirretty.
 Success_CreateGuest=Uusi vieras k\u00e4ytt\u00e4j\u00e4tunnus on luotu. K\u00e4ytt\u00e4j\u00e4\u00e4 tiedotetaan mik\u00e4li s\u00e4hk\u00f6postiosoite on sy\u00f6tetty. Tunnus saattaa viel\u00e4 my\u00f6s vaatia aktivoinnin.