; RUN: opt -S -simplifycfg < %s | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

declare i32* @fn1(i32* returned)

define i32 @test1(i1 %B) {
entry:
  br label %for.cond.us

for.cond.us:                                      ; preds = %for.cond.us, %entry
  br i1 %B, label %for.cond4.preheader, label %for.cond.us

for.cond4.preheader:                              ; preds = %for.cond.us
  br i1 %B, label %for.cond4.preheader.split.us, label %for.cond4

for.cond4.preheader.split.us:                     ; preds = %for.cond4.preheader
  unreachable

for.cond4:                                        ; preds = %for.end, %for.cond4.preheader
  %phi = phi i32* [ %call, %for.end ], [ undef, %for.cond4.preheader ]
  %call = call i32* @fn1(i32* %phi)
  br label %for.cond5

for.cond5:                                        ; preds = %for.cond5, %for.cond4
  br i1 %B, label %for.cond5, label %for.end

for.end:                                          ; preds = %for.cond5
  %load = load i32, i32* %call, align 4
  br label %for.cond4
}

; CHECK-LABEL: define i32 @test1(
; CHECK: br label %[[LABEL:.*]]
; CHECK: [[LABEL]]:
; CHECK: br label %[[LABEL]]


; RUN: opt < %s -loop-interchange -simplifycfg -S | FileCheck %s

; no_deps_interchange just access a single nested array and can be interchange.
define i32 @no_deps_interchange([1024 x i32]* nocapture %Arr, i32 %k) local_unnamed_addr #0 {
entry:
  br label %for.body

for.body:                                         ; preds = %entry, %for.cond.cleanup3
  %indvars.iv19 = phi i64 [ 0, %entry ], [ %indvars.iv.next20, %for.cond.cleanup3 ]
  br label %for.body4

for.body4:                                        ; preds = %for.body, %for.body4
  %indvars.iv = phi i64 [ 0, %for.body ], [ %indvars.iv.next, %for.body4 ]
  %arrayidx6 = getelementptr inbounds [1024 x i32], [1024 x i32]* %Arr, i64 %indvars.iv, i64 %indvars.iv19
  store i32 0, i32* %arrayidx6, align 4
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp ne i64 %indvars.iv.next, 1024
  br i1 %exitcond, label %for.body4, label %for.cond.cleanup3

for.cond.cleanup3:                                ; preds = %for.body4
  %indvars.iv.next20 = add nuw nsw i64 %indvars.iv19, 1
  %exitcond21 = icmp ne i64 %indvars.iv.next20, 1024
  br i1 %exitcond21, label %for.body, label %for.cond.cleanup

for.cond.cleanup:                                 ; preds = %for.cond.cleanup3
  ret i32 0
}

; CHECK-LABEL: @no_deps_interchange
; CHECK-LABEL: entry:
; CHECK-NEXT: br label %for.body4

; CHECK-LABEL: for.body:                                         ; preds = %for.body4, %for.body
; CHECK: %indvars.iv19 = phi i64 [ %indvars.iv.next20, %for.body ], [ 0, %for.body4 ]
; CHECK: br i1 %exitcond21, label %for.body, label %for.body4.split

; CHECK-LABEL: for.body4:                                        ; preds = %entry, %for.body4.split
; CHECK: %indvars.iv = phi i64 [ %indvars.iv.next, %for.body4.split ], [ 0, %entry ]
; CHECK: br label %for.body

; CHECK-LABEL: for.body4.split:                                  ; preds = %for.body
; CHECK: %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
; CHECK: br i1 %exitcond, label %for.body4, label %for.cond.cleanup


Add "safe abs" test from CMSIS DSP 'abs_with_clamp()'

; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -simplifycfg -S | FileCheck %s

; Reduced from arm_abs_q31() from CMSIS DSP suite.
; https://reviews.llvm.org/D65148#1629010

define i32 @abs_with_clamp(i32 %arg) {
; CHECK-LABEL: @abs_with_clamp(
; CHECK-NEXT:  begin:
; CHECK-NEXT:    [[IS_POSITIVE:%.*]] = icmp sgt i32 [[ARG:%.*]], 0
; CHECK-NEXT:    br i1 [[IS_POSITIVE]], label [[END:%.*]], label [[NEGATIVE:%.*]]
; CHECK:       negative:
; CHECK-NEXT:    [[IS_INT_MIN:%.*]] = icmp eq i32 [[ARG]], -2147483648
; CHECK-NEXT:    [[NEGATED:%.*]] = sub nsw i32 0, [[ARG]]
; CHECK-NEXT:    [[ABS:%.*]] = select i1 [[IS_INT_MIN]], i32 2147483647, i32 [[NEGATED]]
; CHECK-NEXT:    br label [[END]]
; CHECK:       end:
; CHECK-NEXT:    [[TMP6:%.*]] = phi i32 [ [[ARG]], [[BEGIN:%.*]] ], [ [[ABS]], [[NEGATIVE]] ]
; CHECK-NEXT:    ret i32 [[TMP6]]
;
begin:
  %is_positive = icmp sgt i32 %arg, 0
  br i1 %is_positive, label %end, label %negative

negative: ; preds = %begin
  %is_int_min = icmp eq i32 %arg, -2147483648
  %negated = sub nsw i32 0, %arg
  %abs = select i1 %is_int_min, i32 2147483647, i32 %negated
  br label %end

end:      ; preds = %negative, %begin
  %tmp6 = phi i32 [ %arg, %begin ], [ %abs, %negative ]
  ret i32 %tmp6
}


; RUN: llvm-as < %s | llc -march=arm &&
; RUN: llvm-as < %s | llc -march=arm -enable-thumb &&
; RUN: llvm-as < %s | llc -march=arm -enable-thumb | not grep "ldr sp"

	%struct.state = type { i32, %struct.info*, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* }
	%struct.info = type { i32, i32, i32, i32, i32, i32, i32, i8* }

define void @f1(%struct.state* %v) {
	%tmp6 = load i32* null
	%tmp8 = alloca float, i32 %tmp6
	store i32 1, i32* null
	br i1 false, label %bb123.preheader, label %return

bb123.preheader:
	br i1 false, label %bb43, label %return

bb43:
	call fastcc void @f2( float* %tmp8, float* null, i32 0 )
	%tmp70 = load i32* null
	%tmp85 = getelementptr float* %tmp8, i32 0
	call fastcc void @f3( float* null, float* null, float* %tmp85, i32 %tmp70 )
	ret void

return:
	ret void
}

declare fastcc void @f2(float*, float*, i32)

declare fastcc void @f3(float*, float*, float*, i32)


Test case for ensuring correct reading back of cast constant expressions.

; This test ensures that we get a bitcast constant expression in and out,
; not a sitofp constant expression.
; RUN: llvm-as < %s | llvm-dis | grep 'bitcast ('
%G = external global int

float %tryit(int %A) {
   ret float bitcast( int ptrtoint (int* %G to int) to float)
}


Add an ipsccp test. Migrated from test/FrontendC++.

; RUN: opt < %s -S -ipsccp | FileCheck %s

@_ZL6test1g = internal global i32 42, align 4

define void @_Z7test1f1v() nounwind {
entry:
  %tmp = load i32* @_ZL6test1g, align 4
  %cmp = icmp eq i32 %tmp, 0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  store i32 0, i32* @_ZL6test1g, align 4
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

; CHECK: @_Z7test1f2v()
; CHECK: entry:
; CHECK-NEXT: ret i32 42
define i32 @_Z7test1f2v() nounwind {
entry:
  %tmp = load i32* @_ZL6test1g, align 4
  ret i32 %tmp
}


Add a new test case for the newly-enabled call handling

; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 | FileCheck %s

; CHECK: .func ({{.*}}) device_func
define float @device_func(float %a) noinline {
  %ret = fmul float %a, %a
  ret float %ret
}

; CHECK: .entry kernel_func
define void @kernel_func(float* %a) {
  %val = load float* %a
; CHECK: call.uni (retval0),
; CHECK: device_func,
  %mul = call float @device_func(float %val)
  store float %mul, float* %a
  ret void
}

!nvvm.annotations = !{!1}

!1 = metadata !{void (float*)* @kernel_func, metadata !"kernel", i32 1}


Add sparc test for memory operand used in inline asm


Add a test case for the puts libcall optimization.

; Test that the StrCatOptimizer works correctly
; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*fputc'
%struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, int, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [52 x sbyte] }
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, int }
%stdout = external global %struct._IO_FILE*		; <%struct._IO_FILE**> [#uses=1]

implementation   ; Functions:

declare int %fputc(int, %struct._IO_FILE*)

int %main() {
entry:
    %tmp.1 = load %struct._IO_FILE** %stdout		; <%struct._IO_FILE*> [#uses=1]
    %tmp.0 = call int %fputc( int 61, %struct._IO_FILE* %tmp.1 )		; <int> [#uses=0]
    ret int 0
}


; RUN: llvm-as < %s | llc -march=sparc
; PR 1557

target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f128:128:128"
module asm "\09.section\09\22.ctors\22,#alloc,#write"
module asm "\09.section\09\22.dtors\22,#alloc,#write"

define void @frame_dummy() nounwind {
entry:
	%asmtmp = tail call void (i8*)* (void (i8*)*)* asm "", "=r,0"(void (i8*)* @_Jv_RegisterClasses) nounwind		; <void (i8*)*> [#uses=0]
	unreachable
}

declare void @_Jv_RegisterClasses(i8*)


Add regression test for the addcarry crash. See D33770 for context.

; RUN: llc < %s | FileCheck
target triple = "arm64-apple-ios7.0"

define i64 @foo(i64* nocapture readonly %ptr, i64 %a, i64 %b, i64 %c) local_unnamed_addr #0 {
; CHECK: ldr     w8, [x0, #4]
; CHECK: lsr     x9, x1, #32
; CHECK: cmn             x3, x2
; CHECK: mul             x8, x8, x9
; CHECK: cinc     x0, x8, hs
; CHECK: ret
entry:
  %0 = lshr i64 %a, 32
  %1 = load i64, i64* %ptr, align 8
  %2 = lshr i64 %1, 32
  %3 = mul nuw i64 %2, %0
  %4 = add i64 %c, %b
  %5 = icmp ult i64 %4, %c
  %6 = zext i1 %5 to i64
  %7 = add i64 %3, %6
  ret i64 %7
}

attributes #0 = { norecurse nounwind readonly }


Add a test to ensure that we can assembly comparisons of packed values.

; This test checks to make sure that NE and EQ comparisons of
; vector types work.
; RUN: llvm-as < %s | llvm-dis > %t1.ll
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
; RUN: diff %t1.ll %t2.ll

%ivec_type = type <4 x i8>
%ivec1  = constant %ivec_type < i8 1, i8 1, i8 1, i8 1 >
%ivec2  = constant %ivec_type < i8 0, i8 0, i8 0, i8 0 >

%fvec_type = type <4 x float>
%fvec1 = constant %fvec_type <float 1.0, float 1.0, float 1.0, float 1.0>
%fvec2 = constant %fvec_type <float 0.0, float 0.0, float 0.0, float 0.0>

implementation   ; Functions:

define bool %ivectest1() {
    %v1 = load %ivec_type* getelementptr(%ivec_type* %ivec1, i32 0)
    %v2 = load %ivec_type* getelementptr(%ivec_type* %ivec2, i32 0)
    %res = icmp ne %ivec_type %v1, %v2
    ret bool %res
}

define bool %ivectest2() {
    %v1 = load %ivec_type* getelementptr(%ivec_type* %ivec1, i32 0)
    %v2 = load %ivec_type* getelementptr(%ivec_type* %ivec2, i32 0)
    %res = icmp eq %ivec_type %v1, %v2
    ret bool %res
}

define bool %fvectest1() {
    %v1 = load %fvec_type* %fvec1
    %v2 = load %fvec_type* %fvec2
    %res = fcmp one %fvec_type %v1, %v2
    ret bool %res
}

define bool %fvectest2() {
    %v1 = load %fvec_type* %fvec1
    %v2 = load %fvec_type* %fvec2
    %res = fcmp oeq %fvec_type %v1, %v2
    ret bool %res
}

define bool %fvectest3() {
    %v1 = load %fvec_type* %fvec1
    %v2 = load %fvec_type* %fvec2
    %res = fcmp une %fvec_type %v1, %v2
    ret bool %res
}

define bool %fvectest4() {
    %v1 = load %fvec_type* %fvec1
    %v2 = load %fvec_type* %fvec2
    %res = fcmp ueq %fvec_type %v1, %v2
    ret bool %res
}


Add a testcase for switch instruction induction

; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep 'br'

bool %_ZN4llvm11SetCondInst7classofEPKNS_11InstructionE({uint, uint}* %I) {
entry:
	%tmp.1.i = getelementptr {uint, uint}* %I, long 0, ubyte 1
	%tmp.2.i = load uint* %tmp.1.i
	%tmp.2 = seteq uint %tmp.2.i, 14
	br bool %tmp.2, label %shortcirc_done.4, label %shortcirc_next.0

shortcirc_next.0:		; preds = %entry
	%tmp.6 = seteq uint %tmp.2.i, 15		; <bool> [#uses=1]
	br bool %tmp.6, label %shortcirc_done.4, label %shortcirc_next.1

shortcirc_next.1:		; preds = %shortcirc_next.0
	%tmp.11 = seteq uint %tmp.2.i, 16		; <bool> [#uses=1]
	br bool %tmp.11, label %shortcirc_done.4, label %shortcirc_next.2

shortcirc_next.2:		; preds = %shortcirc_next.1
	%tmp.16 = seteq uint %tmp.2.i, 17		; <bool> [#uses=1]
	br bool %tmp.16, label %shortcirc_done.4, label %shortcirc_next.3

shortcirc_next.3:		; preds = %shortcirc_next.2
	%tmp.21 = seteq uint %tmp.2.i, 18		; <bool> [#uses=1]
	br bool %tmp.21, label %shortcirc_done.4, label %shortcirc_next.4

shortcirc_next.4:		; preds = %shortcirc_next.3
	%tmp.26 = seteq uint %tmp.2.i, 19		; <bool> [#uses=1]
	br label %UnifiedReturnBlock

shortcirc_done.4:		; preds = %entry, %shortcirc_next.0, %shortcirc_next.1, %shortcirc_next.2, %shortcirc_next.3
	br label %UnifiedReturnBlock

UnifiedReturnBlock:		; preds = %shortcirc_next.4, %shortcirc_done.4
	%UnifiedRetVal = phi bool [ %tmp.26, %shortcirc_next.4 ], [ true, %shortcirc_done.4 ]		; <bool> [#uses=1]
	ret bool %UnifiedRetVal
}


; RUN: llc -stop-after=irtranslator -global-isel %s -o - 2>&1 | FileCheck %s
; REQUIRES: global-isel
; This file checks that the translation from llvm IR to generic MachineInstr
; is correct.
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-apple-ios"

; Tests for add.
; CHECK: name: addi64
; CHECK: [[ARG1:%[0-9]+]](64) = COPY %x0
; CHECK-NEXT: [[ARG2:%[0-9]+]](64) = COPY %x1
; CHECK-NEXT: [[RES:%[0-9]+]](64) = G_ADD i64 [[ARG1]], [[ARG2]]
; CHECK-NEXT: %x0 = COPY [[RES]]
; CHECK-NEXT: RET_ReallyLR implicit %x0
define i64 @addi64(i64 %arg1, i64 %arg2) {
  %res = add i64 %arg1, %arg2
  ret i64 %res
}


Add a testing file for vector instructions

define <4 x i32*> @foo(i32 *%arg) {
  %tmp = insertelement <4 x i32*> undef, i32* %arg, i32 0

  %g1 = getelementptr i32, i32* %arg, i32 4
  %tmp4 = insertelement <4 x i32*> %tmp,  i32* %g1, i32 1

  %g2 = getelementptr i32, i32* %g1, i32 4
  %tmp5 = insertelement <4 x i32*> %tmp4, i32* %g2, i32 2

  %g3 = getelementptr i32, i32* %g2, i32 4
  %tmp6 = insertelement <4 x i32*> %tmp5, i32* %g3, i32 3
  ret <4 x i32*> %tmp6
}

define i32 @main() {
  %A = alloca i32, align 4
  %tmp = call <4 x i32*> @foo(i32* %A)
  %tmp1 = extractelement <4 x i32*> %tmp, i32 0
  %tmp2 = extractelement <4 x i32*> %tmp, i32 1
  %tmp3 = extractelement <4 x i32*> %tmp, i32 2
  %tmp4 = extractelement <4 x i32*> %tmp, i32 3
  ret i32 0
}


Add XFAIL test case for a scavenger assert.

; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
; XFAIL: *

; When joining live intervals of sub-registers, an MBB live-in list is not
; updated properly. The register scavenger asserts on an undefined register.

define i32 @foo(i8 %bar) {
entry:
  switch i8 %bar, label %bb1203 [
    i8 117, label %bb1204
    i8 85, label %bb1204
    i8 106, label %bb1204
  ]

bb1203:                                           ; preds = %entry
  ret i32 1

bb1204:                                           ; preds = %entry, %entry, %entry
  ret i32 2
}


Test case for recent patch for IndVarSimplify.cpp

; RUN: llvm-as < %s | opt -indvars -disable-output

; ModuleID = 'testcase.bc'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
target triple = "i686-pc-linux-gnu"

define i32 @testcase(i5 zext  %k) {
entry:
	br label %bb2

bb:		; preds = %bb2
	%tmp1 = add i32 %tmp2, %result		; <i32> [#uses=1]
	%indvar_next1 = add i5 %k_0, 1		; <i5> [#uses=1]
	br label %bb2

bb2:		; preds = %bb, %entry
	%k_0 = phi i5 [ 0, %entry ], [ %indvar_next1, %bb ]		; <i5> [#uses=2]
	%result = phi i32 [ 0, %entry ], [ %tmp1, %bb ]		; <i32> [#uses=2]
	%tmp2 = zext i5 %k_0 to i32		; <i32> [#uses=1]
	%exitcond = icmp eq i32 %tmp2, 16		; <i1> [#uses=1]
	br i1 %exitcond, label %bb3, label %bb

bb3:		; preds = %bb2
	ret i32 %result
}


Add failing testcase for register coalescer

; XFAIL: *
; RUN: llc -march=amdgcn -verify-machineinstrs < %s
; XUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s

; The register coalescer introduces a verifier error which later
; results in a crash during scheduling.

declare i32 @llvm.amdgcn.workitem.id.x() #0

define void @reg_coalescer_breaks_dead(<2 x i32> addrspace(1)* nocapture readonly %arg, i32 %arg1, i32 %arg2, i32 %arg3) #1 {
bb:
  %id.x = call i32 @llvm.amdgcn.workitem.id.x()
  %cmp0 = icmp eq i32 %id.x, 0
  br i1 %cmp0, label %bb3, label %bb4

bb3:                                              ; preds = %bb
  %tmp = ashr exact i32 undef, 8
  br label %bb6

bb4:                                              ; preds = %bb6, %bb
  %tmp5 = phi <2 x i32> [ zeroinitializer, %bb ], [ %tmp13, %bb6 ]
  br i1 undef, label %bb15, label %bb16

bb6:                                              ; preds = %bb6, %bb3
  %tmp7 = phi <2 x i32> [ zeroinitializer, %bb3 ], [ %tmp13, %bb6 ]
  %tmp8 = add nsw i32 0, %arg1
  %tmp9 = add nsw i32 %tmp8, 0
  %tmp10 = sext i32 %tmp9 to i64
  %tmp11 = getelementptr inbounds <2 x i32>, <2 x i32> addrspace(1)* %arg, i64 %tmp10
  %tmp12 = load <2 x i32>, <2 x i32> addrspace(1)* %tmp11, align 8
  %tmp13 = add <2 x i32> %tmp12, %tmp7
  %tmp14 = icmp slt i32 undef, %arg2
  br i1 %tmp14, label %bb6, label %bb4

bb15:                                             ; preds = %bb4
  store <2 x i32> %tmp5, <2 x i32> addrspace(3)* undef, align 8
  br label %bb16

bb16:                                             ; preds = %bb15, %bb4
  unreachable
}

attributes #0 = { nounwind readnone }
attributes #1 = { nounwind }


; RUN: llvm-as %s -o %t.o
; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
; RUN:    --plugin-opt=save-temps \
; RUN:    -shared %t.o -o %t.so
; RUN: llvm-readobj -r %t.so.o | FileCheck %s

; Test that we produce R_X86_64_GOTPCREL instead of R_X86_64_GOTPCRELX
; CHECK: R_X86_64_GOTPCREL foo

@foo = external global i32
define i32 @bar() {
  %t = load i32, i32* @foo
  ret i32 %t
}


Add new testcase for general constant prop.

; This bug has to do with the fact that constant propogation was implemented in
; terms of _logical_ not (! in C) instead of _bitwise_ not (~ in C).  This was
; due to a spec change.

; RUN: if as < %s | opt -constprop | dis | grep 'int 0'
; RUN: then exit 1
; RUN: else exit 0
; RUN: fi

int "test1"() {
	%R = not int 123
	ret int %R
}

int "test2"() {
	%R = not int -123
	ret int %R
}


Add dummy Test for LoopVectorize option parsing.

target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"

; RUN: opt < %s -S -passes='loop-vectorize<interleave-forced-only;vectorize-forced-only>' 2>&1  | FileCheck %s
; RUN: opt < %s -S -passes='loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only>' 2>&1 | FileCheck %s

; Dummy test to check LoopVectorize options.
; CHECK-LABEL: dummy
define void @dummy() {
  ret void
}


Make sure combiner alias analysis does it's thing.

; RUN: llvm-as < %s | llc -combiner-alias-analysis | grep 'f5'

target endian = big
target pointersize = 32
target triple = "powerpc-apple-darwin8.2.0"
	%struct.Point = type { double, double, double }

implementation   ; Functions:

void %offset(%struct.Point* %pt, double %x, double %y, double %z) {
entry:
	%tmp = getelementptr %struct.Point* %pt, int 0, uint 0		; <double*> [#uses=2]
	%tmp = load double* %tmp		; <double> [#uses=1]
	%tmp2 = add double %tmp, %x		; <double> [#uses=1]
	store double %tmp2, double* %tmp
	%tmp6 = getelementptr %struct.Point* %pt, int 0, uint 1		; <double*> [#uses=2]
	%tmp7 = load double* %tmp6		; <double> [#uses=1]
	%tmp9 = add double %tmp7, %y		; <double> [#uses=1]
	store double %tmp9, double* %tmp6
	%tmp13 = getelementptr %struct.Point* %pt, int 0, uint 2		; <double*> [#uses=2]
	%tmp14 = load double* %tmp13		; <double> [#uses=1]
	%tmp16 = add double %tmp14, %z		; <double> [#uses=1]
	store double %tmp16, double* %tmp13
	ret void
}


Test case for X86 LZCNT instruction selection.

; RUN: llc < %s -march=x86-64 -mattr=+lzcnt | FileCheck %s

define i32 @t1(i32 %x) nounwind  {
	%tmp = tail call i32 @llvm.ctlz.i32( i32 %x )
	ret i32 %tmp
; CHECK: t1:
; CHECK: lzcntl
}

declare i32 @llvm.ctlz.i32(i32) nounwind readnone

define i16 @t2(i16 %x) nounwind  {
	%tmp = tail call i16 @llvm.ctlz.i16( i16 %x )
	ret i16 %tmp
; CHECK: t2:
; CHECK: lzcntw
}

declare i16 @llvm.ctlz.i16(i16) nounwind readnone

define i64 @t3(i64 %x) nounwind  {
	%tmp = tail call i64 @llvm.ctlz.i64( i64 %x )
	ret i64 %tmp
; CHECK: t3:
; CHECK: lzcntq
}

declare i64 @llvm.ctlz.i64(i64) nounwind readnone

define i8 @t4(i8 %x) nounwind  {
	%tmp = tail call i8 @llvm.ctlz.i8( i8 %x )
	ret i8 %tmp
; CHECK: t4:
; CHECK: lzcntw
}

declare i8 @llvm.ctlz.i8(i8) nounwind readnone


Add a testcase for the current llvm-gcc build failure.

; RUN: opt -gvn -disable-output %s

target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
target triple = "i386-pc-linux-gnu"

%struct.attribute_spec = type { i8*, i32, i32, i8, i8, i8 }

@attribute_tables = external global [4 x %struct.attribute_spec*] ; <[4 x %struct.attribute_spec*]*> [#uses=2]

define void @decl_attributes() nounwind {
entry:
  br label %bb69.i

bb69.i:                                           ; preds = %bb57.i.preheader
  %tmp4 = getelementptr inbounds [4 x %struct.attribute_spec*]* @attribute_tables, i32 0, i32 undef ; <%struct.attribute_spec**> [#uses=1]
  %tmp5 = getelementptr inbounds [4 x %struct.attribute_spec*]* @attribute_tables, i32 0, i32 undef ; <%struct.attribute_spec**> [#uses=1]
  %tmp3 = load %struct.attribute_spec** %tmp4, align 4 ; <%struct.attribute_spec*> [#uses=1]
  br label %bb65.i

bb65.i:                                           ; preds = %bb65.i.preheader, %bb64.i
  %storemerge6.i = phi i32 [ 1, %bb64.i ], [ 0, %bb69.i ] ; <i32> [#uses=3]
  %scevgep14 = getelementptr inbounds %struct.attribute_spec* %tmp3, i32 %storemerge6.i, i32 0 ; <i8**> [#uses=1]
  %tmp2 = load i8** %scevgep14, align 4           ; <i8*> [#uses=0]
  %tmp = load %struct.attribute_spec** %tmp5, align 4 ; <%struct.attribute_spec*> [#uses=1]
  %scevgep1516 = getelementptr inbounds %struct.attribute_spec* %tmp, i32 %storemerge6.i, i32 0 ; <i8**> [#uses=0]
  unreachable

bb64.i:                                           ; Unreachable
  br label %bb65.i

bb66.i:                                           ; Unreachable
  br label %bb69.i
}


// DOM bindings for DBJS model

'use strict';

var isReadOnlyRender  = require('mano/client/utils/is-read-only-render')
  , domEnum           = require('dbjs-dom/enum')
  , db                = require('./model.generated')
  , requirementUpload = db.RequirementUpload.prototype;

require('dbjs-dom/text')(db);
require('dbjs-dom/input')(db);
require('dbjs-dom/input/string/string-line')(db);
require('dbjs-dom/input/string/string-line/email')(db);
require('dbjs-dom/input/date-time/date')(db);
require('dbjs-dom/input/string/string-line/password')(db);
require('dbjs-dom/input/object/file')(db);
require('dbjs-dom/input/utils/fieldset')(db);
require('eregistrations/model/lib/data-snapshot/resolved')(db);
require('eregistrations/view/dbjs/submission-file');

db.StringLine.DOMInput.prototype.dbAttributes.inputMask = 'data-mask';

if (!isReadOnlyRender) require('dbjs-file/client')(db, FormData, XMLHttpRequest, File, '/upload/');

domEnum(db.RequirementUploadRejectReason);

requirementUpload.$status.DOMInput = require('eregistrations/view/dbjs/enum-inline-button-group');

Fix dbjs-dom for revision case

// DOM bindings for DBJS model

'use strict';

var isReadOnlyRender  = require('mano/client/utils/is-read-only-render')
  , domEnum           = require('dbjs-dom/enum')
  , db                = require('./model.generated')
  , requirementUpload = db.RequirementUpload.prototype;

require('dbjs-dom/text')(db);
require('dbjs-dom/input')(db);
require('dbjs-dom/input/string/string-line')(db);
require('dbjs-dom/input/string/string-line/email')(db);
require('dbjs-dom/input/date-time/date')(db);
require('dbjs-dom/input/string/string-line/password')(db);
require('dbjs-dom/input/object/file')(db);
require('dbjs-dom/input/utils/fieldset')(db);
require('eregistrations/model/lib/data-snapshot/resolved')(db);
require('eregistrations/view/dbjs/submission-file');

db.StringLine.DOMInput.prototype.dbAttributes.inputMask = 'data-mask';

if (!isReadOnlyRender) require('dbjs-file/client')(db, FormData, XMLHttpRequest, File, '/upload/');

domEnum(db.RequirementUploadRejectReason);

requirementUpload.$status.DOMInput = require('eregistrations/view/dbjs/enum-inline-button-group');
db.BusinessProcess.prototype.dataForms.$status.DOMInput =
		require('eregistrations/view/dbjs/enum-inline-button-group');


{block name="title"}
	{'All tags'|_}
{/block}

{block name="content"}
	{stylesheet file={'styles/tagcloud.css'|static:'search'}}

{'All tags'|_}

		{foreach $tagcloud as $tag}

size}">
				{a request="reportages/tag"
				   tag={$tag->name}}
				   {$tag->name}
				{/a}

		{/foreach}

{/block}

Fix wrong reference to styles/tagcloud.css:search (it was renamed to styles/tags.css)

{block name="title"}
	{'All tags'|_}
{/block}

{block name="content"}
	{stylesheet file={'styles/tags.css'|static:'search'}}

{'All tags'|_}

		{foreach $tagcloud as $tag}

size}">
				{a request="reportages/tag"
				   tag={$tag->name}}
				   {$tag->name}
				{/a}

		{/foreach}

{/block}


Show Name: {$episode.program}

Programmer(s):

Day and Date: {$episode.startDate}

Time Started: {$episode.startTime}  Time Ended: {$episode.endTime}

Pre-recorded? {$episode.prerecorded}  Date? {$episode.prerecordDate}

        Time
        Duration
        Description of music (artist, album, song); spoken word, or ads/promotion
        Category
        CC
        NR
        FR

    {foreach $segments as $segment}

            {$segment.startTime}
            {$segment.duration}

            {if {$segment.category} == 2 || {$segment.category} == 3}}
                {$segment.name}
                {$segment.album}
                {$segment.artist}
            {elseif {$segment.category} == 5}
                {$segment.adNumber}
            {else}
                {$segment.name}
            {/if}

            {$segment.category}
            {$segment.canCon}
            {$segment.newRelease}
            {$segment.frenchVocalMusic}

    {/foreach}

Fix Smarty category comparison syntax error

Show Name: {$episode.program}

Programmer(s):

Day and Date: {$episode.startDate}

Time Started: {$episode.startTime}  Time Ended: {$episode.endTime}

Pre-recorded? {$episode.prerecorded}  Date? {$episode.prerecordDate}

        Time
        Duration
        Description of music (artist, album, song); spoken word, or ads/promotion
        Category
        CC
        NR
        FR

    {foreach $segments as $segment}

            {$segment.startTime}
            {$segment.duration}

            {if $segment.category == 2 || $segment.category == 3}
                {$segment.name}
                {$segment.album}
                {$segment.artist}
            {elseif $segment.category == 5}
                {$segment.adNumber}
            {else}
                {$segment.name}
            {/if}

            {$segment.category}
            {$segment.canCon}
            {$segment.newRelease}
            {$segment.frenchVocalMusic}

    {/foreach}


        {lang 'Group ID#'}
        {lang 'Name'}
        {lang 'Price (%0%)', $this->config->values['module.setting']['currency']}
        {lang 'Expiration Days'}
        {lang 'Active'}
        {lang 'Action'}

    {each $membership in $memberships}

            {% $membership->groupId %}
            {% $membership->name %}
            {% $membership->price %}
            {% $membership->expirationDays %}
            {if $membership->enable == 1} {lang 'Enable'} {else} {lang 'Disable'} {/if}

                url('payment', 'admin', 'editmembership', $membership->groupId) }}">{lang 'Edit'} |
                {if $default_group == $membership->groupId}
                    {{ $design->popupLinkConfirm(t('Delete (Irreversible!)'), 'payment', 'admin', 'deletemembership', $membership->groupId) }}
                {else}
                    {lang 'Not deletable'}
                {/if}

    {/each}

Fix wrong condition. Shouldnt be the same group actually

        {lang 'Group ID#'}
        {lang 'Name'}
        {lang 'Price (%0%)', $this->config->values['module.setting']['currency']}
        {lang 'Expiration Days'}
        {lang 'Active'}
        {lang 'Action'}

    {each $membership in $memberships}

            {% $membership->groupId %}
            {% $membership->name %}
            {% $membership->price %}
            {% $membership->expirationDays %}
            {if $membership->enable == 1} {lang 'Enable'} {else} {lang 'Disable'} {/if}

                url('payment', 'admin', 'editmembership', $membership->groupId) }}">{lang 'Edit'} |
                {if $default_group != $membership->groupId}
                    {{ $design->popupLinkConfirm(t('Delete (Irreversible!)'), 'payment', 'admin', 'deletemembership', $membership->groupId) }}
                {else}
                    {lang 'Not deletable'}
                {/if}

    {/each}


		{$header}

	{assign var=x value=0}
	{foreach key=key item=button from=$buttons}
	{assign var=x value=$x+1}

			{$__link.buttons.$key.link.open}

				{if isset($button.icon)}

				{/if}

					{$__link.buttons.$key.link.text}

			{$__link.buttons.$key.link.close}

	{if ($x%4)==0}

	{/if}
	{/foreach}

Add bootstrap styles to User Settings

{$header}

        {foreach key=key item=button from=$buttons}
            {$__link.buttons.$key.link.open}
            <button class="btn btn-default">
                {if isset($button.icon)}

                {/if}

                    {$__link.buttons.$key.link.text}

            </button>
            {$__link.buttons.$key.link.close}

        {/foreach}


{% $title = 'Cache Tests' %}
{% include tpl= 'header' %}

Reload the page.  The cache value should not change, but the nocache value should.

This test only works correctly if caching is turned on.

cache: {% random() %}

{% nocache %}

nocache: {% random() %}

{% end %}

{% include tpl= 'footer' %}

Fix for function syntax changes.

{% $title = 'Cache Tests' %}
{% include tpl= 'header' %}

Reload the page.  The cache value should not change, but the nocache value should.

This test only works correctly if caching is turned on.

cache: {% random %}

{% nocache %}

nocache: {% random %}

{% end %}

{% include tpl= 'footer' %}


/*--------------------------------------------------------------------------*\
 * %cmd%Cmd
 *
 * Processes %cmd% Tcl command.
\*--------------------------------------------------------------------------*/

static int
%cmd%Cmd( ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[] )
{
<argdecls>

    pl_errcode = 0; errmsg[0] = '\0';

    if ( (argc == 2) && (strncmp(argv[1],"-help",strlen(argv[1])) == 0) ) {
	Tcl_AppendResult( interp, "command syntax: \"",
			  "%cmd% %args%", "\"",
			  (char *) NULL);
	return TCL_ERROR;
    }

    if ( (!%isref% && %ndefs% && (argc < (1 + %nargs% - %ndefs%))) ||
         (!%isref% && !%ndefs% && (argc != (%nargs% + 1))) ||
         ( %isref% && (argc != 1) && (argc != (%nargs% + 1))) ) {
	Tcl_AppendResult( interp, "wrong # args: should be \"",
			  "%cmd% %args%", "\"",
			  (char *) NULL);
	return TCL_ERROR;
    }

<getargs>

<plcmd>

<fetch_result>

    if (pl_errcode != 0) {
	Tcl_AppendResult(interp, errmsg, (char *) NULL);
	return TCL_ERROR;
    }

    plflush();
    return TCL_OK;
}

Fix bug in generated tcl code which would not allow a null string to be passed a the only argument to a function. This caused problems for plspal0 and plspal1 in example 16.

/*--------------------------------------------------------------------------*\
 * %cmd%Cmd
 *
 * Processes %cmd% Tcl command.
\*--------------------------------------------------------------------------*/

static int
%cmd%Cmd( ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[] )
{
<argdecls>

    pl_errcode = 0; errmsg[0] = '\0';

    if ( (argc == 2) && (strlen(argv[1])>0) && (strncmp(argv[1],"-help",strlen(argv[1])) == 0) ) {
	Tcl_AppendResult( interp, "command syntax: \"",
			  "%cmd% %args%", "\"",
			  (char *) NULL);
	return TCL_ERROR;
    }

    if ( (!%isref% && %ndefs% && (argc < (1 + %nargs% - %ndefs%))) ||
         (!%isref% && !%ndefs% && (argc != (%nargs% + 1))) ||
         ( %isref% && (argc != 1) && (argc != (%nargs% + 1))) ) {
	Tcl_AppendResult( interp, "wrong # args: should be \"",
			  "%cmd% %args%", "\"",
			  (char *) NULL);
	return TCL_ERROR;
    }

<getargs>

<plcmd>

<fetch_result>

    if (pl_errcode != 0) {
	Tcl_AppendResult(interp, errmsg, (char *) NULL);
	return TCL_ERROR;
    }

    plflush();
    return TCL_OK;
}


{% extends "page.tpl" %}

{% block main %}
{% inherit %}
{% with m.search.paged[{query query_id=id pagelen=20 page=q.page}] as result%}
    {% include "_content_list.tpl" list=result is_large %}
    {% pager id=id result=result in_collection=q.in_collection %}
{% endwith %}

    {% if not id.body %}
        {% include "_page_depiction.tpl" %}
    {% endif %}
    {% include "_page_thumbnails.tpl" %}
{% endblock %}

{% block depiction %}
{% if id.body %}
	{% inherit %}
{% endif %}
{% endblock %}

{% block thumbnails %}
{% endblock %}

Add pagecounter (if there are multiple pages)

{% extends "page.tpl" %}

{% block main %}
{% inherit %}
{% with m.search.paged[{query query_id=id pagelen=20 page=q.page}] as result %}
    {% if result.pages > 1 %}
    <div class="pull-right pagecount">
        {_ Page _} {{ q.page|default:"1"|escape}} / {{ result.pages }}
    </div>
    {% endif %}
    {% include "_content_list.tpl" list=result is_large %}
    {% pager id=id result=result in_collection=q.in_collection %}
{% endwith %}

    {% if not id.body %}
        {% include "_page_depiction.tpl" %}
    {% endif %}
    {% include "_page_thumbnails.tpl" %}
{% endblock %}

{% block depiction %}
{% if id.body %}
	{% inherit %}
{% endif %}
{% endblock %}

{% block thumbnails %}
{% endblock %}


<form action="index.php?page={$currentPage}&action=editReport&reportID={$report[0].id}" method="POST">

			Bericht bearbeiten

		Titel
		<input class="textinput" type="text" name="title" value="{$report[0].title}">

		Query

			<textarea name="query" rows="20" cols="40">{$report[0].query}</textarea>

			<input type="submit" name="doEdit" value="bearbeiten" />

</form>

Change Back Icon in Report Edit Form


{extends file="layout/Blog.tpl"}
{block name=title}Edit{/block}
{block name=page}

Home /

Blog /

Edit Post

<form action="/blog/posts/edit" method="POST">
	<input name="X-HTTP-Method-Override" type="hidden" value="PUT" /> <input
		name="id" type="hidden" value="{$id}" />

		Title

			<input type="text" id="title" name="title" value="{$submit.title}">

{$errors.title}

		Body
		<textarea name="body" rows="10" cols="40">{$submit.body}</textarea>

{$errors.body}

	<input type="submit" value="M">
</form>
{/block}

Change submit button text as "Submit".

{extends file="layout/Blog.tpl"}
{block name=title}Edit{/block}
{block name=page}

Home /

Blog /

Edit Post

<form action="/blog/posts/edit" method="POST">
	<input name="X-HTTP-Method-Override" type="hidden" value="PUT" /> <input
		name="id" type="hidden" value="{$id}" />

		Title

			<input type="text" id="title" name="title" value="{$submit.title}">

{$errors.title}

		Body
		<textarea name="body" rows="10" cols="40">{$submit.body}</textarea>

{$errors.body}

	<input type="submit" value="Submit">
</form>
{/block}


{serendipity_hookPlugin hook="entries_header"}

{$CONST.BT_SUMMARY} {$dateRange.0|formatTime:"%B %Y"}

	{foreach from=$entries item="sentries"}
        {foreach from=$sentries.entries item="entry"}

{$entry.title}
            {if $template_option.multiuser}{$CONST.POSTED_BY} {$entry.author} {$CONST.ON} {/if}
            <time datetime="{$entry.timestamp|serendipity_html5time}">{$entry.timestamp|formatTime:$template_option.date_format}</time>
            {if $template_option.multiuser}{/if}

        {/foreach}
    {/foreach}

{serendipity_hookPlugin hook="entries_footer"}

Remove multiuser output from monthly summary

{serendipity_hookPlugin hook="entries_header"}

{$CONST.BT_SUMMARY} {$dateRange.0|formatTime:"%B %Y"}

	{foreach from=$entries item="sentries"}
        {foreach from=$sentries.entries item="entry"}

{$entry.title}
            <time datetime="{$entry.timestamp|serendipity_html5time}">{$entry.timestamp|formatTime:$template_option.date_format}</time>

        {/foreach}
    {/foreach}

{serendipity_hookPlugin hook="entries_footer"}


{{/* vim: set filetype=gotexttmpl: */ -}}
[Global]
auth-url = {{ required "missing openstack.authURL" .Values.openstack.authURL }}
username = {{ required "missing openstack.username" .Values.openstack.username }}
password = {{ required "missing openstack.password" .Values.openstack.password }}
domain-name = {{ required "missing openstack.domainName" .Values.openstack.domainName }}
{{- if .Values.openstack.projectScope }}
tenant-id = {{ .Values.openstack.projectID }}
{{- end }}
{{- if .Values.openstack.region }}
region = {{ .Values.openstack.region }}
{{- end }}
[LoadBalancer]
lb-version=v2
subnet-id= {{ required "missing openstack.lbSubnetID" .Values.openstack.lbSubnetID }}
floating-network-id= {{ required "missing openstack.lbFloatingNetworkID" .Values.openstack.lbFloatingNetworkID }}
create-monitor = yes
monitor-delay = 1m
monitor-timeout = 30s
monitor-max-retries = 3
[BlockStorage]
trust-device-path = no
[Route]
router-id = {{ required "missing openstack.routerID" .Values.openstack.routerID }}

Add octavia support for kubernetes >=1.9

{{/* vim: set filetype=gotexttmpl: */ -}}
[Global]
auth-url = {{ required "missing openstack.authURL" .Values.openstack.authURL }}
username = {{ required "missing openstack.username" .Values.openstack.username }}
password = {{ required "missing openstack.password" .Values.openstack.password }}
domain-name = {{ required "missing openstack.domainName" .Values.openstack.domainName }}
{{- if .Values.openstack.projectScope }}
tenant-id = {{ .Values.openstack.projectID }}
{{- end }}
{{- if .Values.openstack.region }}
region = {{ .Values.openstack.region }}
{{- end }}
[LoadBalancer]
lb-version=v2
use-octavia = {{ default "no" .Values.openstack.useOctavia }}
subnet-id= {{ required "missing openstack.lbSubnetID" .Values.openstack.lbSubnetID }}
floating-network-id= {{ required "missing openstack.lbFloatingNetworkID" .Values.openstack.lbFloatingNetworkID }}
create-monitor = yes
monitor-delay = 1m
monitor-timeout = 30s
monitor-max-retries = 3
[BlockStorage]
trust-device-path = no
[Route]
router-id = {{ required "missing openstack.routerID" .Values.openstack.routerID }}


            <input id="search_{#$type#}" class="form-control" placeholder="Type in a {#$type#}">

        Get {#$type#}

Fix wrong width of search buttons


%helper = app.helper
%datamgr = app.datamgr
%import time

%# If got no Element, bailout
%if not elt:
Invalid element
%else:

%# We need to sync load eltdeps.js and not in a asyncronous mode

Loading element informations...

%#End of the Host Exist or not case
%end

Increase size of dependency graph


{% extends "email_base.tpl" %}

{% block title %}{{ name|escape }} - {_ contact form on _} {{ m.config.site.title.value|default:m.site.hostname }}{% endblock %}

{% block body %}

{_ Hello, the contact form of “Totally Erlang” has been submitted. _}

{_ Name _}: {{ name|escape }}

{_ E-mail _}: {{ mail|escape }}

{_ The contents of the message was: _}

{{ message|force_escape|linebreaksbr }}

{% endblock %}

Fix for site name in contact.

{% extends "email_base.tpl" %}

{% block title %}{{ name|escape }} - {_ contact form on _} {{ m.config.site.title.value|default:m.site.hostname }}{% endblock %}

{% block body %}

{_ Hello, the contact form of “{{m.config.site.title.value|default:m.site.hostname}}” has been submitted. _}

{_ Name _}: {{ name|escape }}

{_ E-mail _}: {{ mail|escape }}

{_ The contents of the message was: _}

{{ message|force_escape|linebreaksbr }}

{% endblock %}


<hbox flex="1">
	<stack width="250">
		<vbox flex="1" style="opacity:0.99">
			<cnavigationtree flex="1" id="navigationTree"/>
		</vbox>
		<chelppanel hidden="true" flex="1" />
	</stack>
	<splitter collapse="before">
		<wsplitterbutton />
	</splitter>
	<deck flex="1" anonid="mainViewDeck">
		<vbox flex="1" anonid="documentlistmode">
			<cmoduletoolbar id="moduletoolbar" />
			<cmodulelist id="documentlist" flex="1" />
		</vbox>
		<tal:block change:documenteditors="module <{$name}>" />
	</deck>
	<splitter collapse="after">
		<wsplitterbutton />
	</splitter>
	<cressourcesselector width="210" id="ressourcesSelector" collapsed="true" />
</hbox>

Remove old rsc tree in the perspective.default.all.all.xml file generated by add-module.

<hbox flex="1">
	<stack width="250">
		<vbox flex="1" style="opacity:0.99">
			<cnavigationtree flex="1" id="navigationTree"/>
		</vbox>
		<chelppanel hidden="true" flex="1" />
	</stack>
	<splitter collapse="before">
		<wsplitterbutton />
	</splitter>
	<deck flex="1" anonid="mainViewDeck">
		<vbox flex="1" anonid="documentlistmode">
			<cmoduletoolbar id="moduletoolbar" />
			<cmodulelist id="documentlist" flex="1" />
		</vbox>
		<tal:block change:documenteditors="module <{$name}>" />
	</deck>
</hbox>


{
	"build_systems":
	[
		{
			"cmd":
			[
				"platformio",
				"run"
			],
			"name": "{{project_name}}",
			"variants":
			[
				{
					"cmd":
					[
						"platformio",
						"--force",
						"run",
						"--target",
						"clean"
					],
					"name": "Clean"
				},
				{
					"cmd":
					[
						"platformio",
						"--force",
						"run",
						"--target",
						"upload"
					],
					"name": "Upload"
				}
			],
			"working_dir": "${project_path:${folder}}"
		}
	],
	"folders":
	[
		{
			"path": "."
		}
	]
}

Fix build system to "PlatformIO" for ST


{extends "designs/site.tpl"}

{block "title"}Password saved — {$dwoo.parent}{/block}

{block "content"}

New Password Saved

Your new password has been saved, remember to use it next time you login.

    {if $returnUrl}
        Continue to {$returnUrl|escape}
    {else}
        Continue to your dashboard
    {/if}

{/block}

Use button styling and short text for continuation

{extends "designs/site.tpl"}

{block "title"}Password saved — {$dwoo.parent}{/block}

{block "content"}

New Password Saved

Your new password has been saved, remember to use it next time you login.

    {if $returnUrl}
        Finish logging in
    {else}
        Continue to your dashboard
    {/if}

{/block}


<ul id="{{ list_id }}" class="{{ class }} {{ extra_classes }}">

    {% for i in result %}
        {% with (i|length == 2)|if:(i|element:1):i as item %}
            {% block item %}
                {% if item|is_number %}
                    {# A resource #}
                    {% if item|is_visible %}
                        {% catinclude list_item_template item %}
                    {% endif %}
                {% endif %}
            {% endblock %}
        {% endwith %}
    {% endfor %}

</ul>

Add support for list items as Erlang maps

    {% for i in result %}
        {% with i|is_list|if:(i|element:1):i as item %}
            {% block item %}
                {% if item|is_number %}
                    {# A resource #}
                    {% if item|is_visible %}
                        {% catinclude list_item_template item %}
                    {% endif %}
                {% endif %}
            {% endblock %}
        {% endwith %}
    {% endfor %}


service_type: baremetal
service_name: ironic
prefix: '/v1'

resources:
  nodes:
  ports:
  volumes:

Change typeuri for ironic audit mapping

service_type: 'compute/baremetal'
service_name: 'ironic'
prefix: '/v1'

resources:
  nodes:
  ports:
  volumes:


getPrefixedId()}Container"{*
	*}{if !$container->getClasses()|empty} class="{implode from=$container->getClasses() item='class' glue=' '}{$class}{/implode}"{/if}{*
	*}{foreach from=$container->getAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}{*
	*}{if !$container->checkDependencies()} style="display: none;"{/if}{*
*}>

			{foreach from=$container item='child'}
				{if $child->isAvailable()}
					{assign var='__tabMenuFormContainerChildId' value=$child->getPrefixedId()|concat:'Container'}

checkDependencies()} style="display: none;"{/if}>usesAnchors()} href="{@$__wcf->getAnchor($__tabMenuFormContainerChildId)}"{/if}>{@$child->getLabel()}

				{/if}
			{/foreach}

	{include file='__formContainerChildren'}

{include file='__formContainerDependencies'}

Remove remaining call to `getAnchor()`

getPrefixedId()}Container"{*
	*}{if !$container->getClasses()|empty} class="{implode from=$container->getClasses() item='class' glue=' '}{$class}{/implode}"{/if}{*
	*}{foreach from=$container->getAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}{*
	*}{if !$container->checkDependencies()} style="display: none;"{/if}{*
*}>

			{foreach from=$container item='child'}
				{if $child->isAvailable()}

checkDependencies()} style="display: none;"{/if}>usesAnchors()} href="#{$child->getPrefixedId()|rawurlencode}Container"{/if}>{@$child->getLabel()}

				{/if}
			{/foreach}

	{include file='__formContainerChildren'}

{include file='__formContainerDependencies'}


win32 {
    HOMEDIR += $$(USERPROFILE)
}
else {
    HOMEDIR += $$(HOME)
}

% for include in includes:
% if include.startswith(user_home_dir):
INCLUDEPATH += "$$(HOMEDIR){{include.replace(user_home_dir, "")}}"
% else:
INCLUDEPATH += "{{include}}"
% end
% end

% for define in defines:
DEFINES += "{{define}}"
% end

OTHER_FILES += \
    platformio.ini

SOURCES += \
	% for file in srcfiles:
    {{file}}
    % end

Fix access to env variable from qtmake

win32 {
    HOMEDIR += $$(USERPROFILE)
}
else {
    HOMEDIR += $$(HOME)
}

% for include in includes:
% if include.startswith(user_home_dir):
INCLUDEPATH += "$${HOMEDIR}{{include.replace(user_home_dir, "")}}"
% else:
INCLUDEPATH += "{{include}}"
% end
% end

% for define in defines:
DEFINES += "{{define}}"
% end

OTHER_FILES += \
    platformio.ini

SOURCES += \
	% for file in srcfiles:
    {{file}}
    % end


{if UserSession::get()}
	{'Welcomen %u!'|_:(UserSession::get()->username|linkyfy:'user/profile/show':UserSession::get()->username)}
	{'Logout'|_}
{else}
	{'Login'|_}
{/if}

Fix string error in usernav

{if UserSession::get()}
	{'Welcome %u!'|_:(UserSession::get()->username|linkyfy:'user/profile/show':UserSession::get()->username)}
	{'Logout'|_}
{else}
	{'Login'|_}
{/if}


import lodash from '<%= lodashPath %>/chain/lodash';
import LodashWrapper from '<%= lodashPath %>/internal/LodashWrapper';

import create from '<%= lodashPath %>/object/create';
import mixin from '<%= lodashPath %>/utility/mixin';

<% _.each(config, function(method) { %>
import <%= method.name %> from '<%= method.path %>';<% }); %>

<% _.each(chainMethods, function(method) { %>
import __<%= method.name %>__ from '<%= method.path %>';<% }); %>

function _(value) {
  if (!(this instanceof _)) {
    return new _(value);
  }
  LodashWrapper.call(this, value);
}
_.prototype = create(lodash.prototype);

// Add the methods used through chaining and explict use
mixin(_, {
  <%= _(config).filter('chained').map('propString').join(',\n  ') %>
}, true);

mixin(_, {
  <%= _(config).reject('chained').map('propString').join(',\n  ') %>
}, false);

<% _.each(chainMethods, function(method) { %>
_.prototype.<%= method.name %> = __<%= method.name %>__;
<% }); %>
export default _;

Fix error when user uses chain/mixin

import lodash from '<%= lodashPath %>/chain/lodash';
import LodashWrapper from '<%= lodashPath %>/internal/LodashWrapper';

import create from '<%= lodashPath %>/object/create';
import mixin from '<%= lodashPath %>/utility/mixin';
<%
// Remove imported modules to prevent err
_(config)
 .reject(_.partial(_.contains, ['create', 'mixin']))
 .each(function(method) {
%>
import <%= method.name %> from '<%= method.path %>';<% }).value(); %>
<%
_.each(chainMethods, function(method) {
%>
import __<%= method.name %>__ from '<%= method.path %>';<% }); %>

function _(value) {
  if (!(this instanceof _)) {
    return new _(value);
  }
  LodashWrapper.call(this, value);
}
_.prototype = create(lodash.prototype);

// Add the methods used through chaining and explict use
mixin(_, {
  <%= _(config).filter('chained').map('propString').join(',\n  ') %>
}, true);

mixin(_, {
  <%= _(config).reject('chained').map('propString').join(',\n  ') %>
}, false);

<% _.each(chainMethods, function(method) { %>
_.prototype.<%= method.name %> = __<%= method.name %>__;<% }); %>

export default _;


<!DOCTYPE html>
<html{if "HTML_CLASS" |defined} {$smarty.const.HTML_CLASS}{/if} lang="{if "
    HTML_LANG"|defined}{$smarty.const.HTML_LANG}{else}en{/if}" {if "HTML_RTL" |defined && $smarty.const.HTML_RTL eq
    true} dir="rtl" {/if}>

    <head>
        <!-- Standard Meta -->
        <meta charset="{if " LANG_CHARSET"|defined}{$smarty.const.LANG_CHARSET}{else}utf-8{/if}">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">

        <title>{$TITLE} • {$smarty.const.SITE_NAME}</title>

        {if isset($FAVICON)}
        <link rel="shortcut icon" href="{$FAVICON}" type="image/x-icon" />
        {/if}

        {foreach from=$TEMPLATE_CSS item=css}
        {$css}
        {/foreach}

        {if isset($DEBUGBAR_JS)}
        {$DEBUGBAR_JS}
        {/if}

    </head>

Fix broken page from refactor

<!DOCTYPE html>
<html{if "HTML_CLASS"|defined} {$smarty.const.HTML_CLASS}{/if} lang="{if "
    HTML_LANG"|defined}{$smarty.const.HTML_LANG}{else}en{/if}" {if "HTML_RTL"|defined && $smarty.const.HTML_RTL eq
    true} dir="rtl" {/if}>

    <head>
        <!-- Standard Meta -->
        <meta charset="{if " LANG_CHARSET"|defined}{$smarty.const.LANG_CHARSET}{else}utf-8{/if}">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">

        <title>{$TITLE} • {$smarty.const.SITE_NAME}</title>

        {if isset($FAVICON)}
        <link rel="shortcut icon" href="{$FAVICON}" type="image/x-icon" />
        {/if}

        {foreach from=$TEMPLATE_CSS item=css}
        {$css}
        {/foreach}

        {if isset($DEBUGBAR_JS)}
        {$DEBUGBAR_JS}
        {/if}

    </head>


{lang "Will You Help pH7CMS?"}

        <form action="{form_action}" method="post">
            {form_body}
            <input type="image" name="submit" src="{url_tpl_mod_img}paypal_donate_btn.png" alt="Donate" />
        </form>

Become a Patron!

Will You Be Nice Today...? Like 78% of our users who contribute to the software on a regular basis.

Add OR string for Patreon

{lang "Will You Help pH7CMS?"}

        <form action="{form_action}" method="post">
            {form_body}
            <input type="image" name="submit" src="{url_tpl_mod_img}paypal_donate_btn.png" alt="Donate" />
        </form>

{lang 'OR'}

Become a Patron!

Will You Be Nice Today...? Like 78% of our users who contribute to the software on a regular basis.


	{foreach from=$boxCommentList item=boxComment}

getLink()}">{$boxComment->title}

{@$boxComment->message|newlineToBreak}

getUserProfile()}{/link}" class="userLink" data-user-id="{@$boxComment->userID}">{$boxComment->username} - {@$boxComment->time|time}

	{/foreach}

Fix comment rendering in sidebar box

	{foreach from=$boxCommentList item=boxComment}

getLink()}">{$boxComment->title}

{@$boxComment->getExcerpt(50)}

getUserProfile()}{/link}" class="userLink" data-user-id="{@$boxComment->userID}">{$boxComment->username} - {@$boxComment->time|time}

	{/foreach}


{* $Header: /cvsroot/tikiwiki/tiki/templates/tiki-simple_plugin.tpl,v 1.5 2003-08-15 21:48:48 mose Exp $ *}

{$title}

        {foreach key=t item=i from=$listcat}
            {$t}:
            {section name=o loop=$i}

                    {$i[o].name}

                {if $smarty.section.o.index ne $smarty.section.o.total - 1} . {/if}
            {/section}

        {/foreach}

Use · as objects divider

{* $Header: /cvsroot/tikiwiki/tiki/templates/tiki-simple_plugin.tpl,v 1.6 2003-11-08 18:49:33 zaufi Exp $ *}

{$title}

        {foreach key=t item=i from=$listcat}
            {$t}:
            {section name=o loop=$i}

                    {$i[o].name}

                {if $smarty.section.o.index ne $smarty.section.o.total - 1} · {/if}
            {/section}

        {/foreach}


{* $Id$ *}
{jq}
$("#editItemForm{{$trackerEditFormId}}").validate({
	{{$validationjs}},
	ignore: '.ignore',
	submitHandler: function(){process_submit(this.currentForm);}
});
{/jq}
{jq}
process_submit = function(me) {
	if (!$(me).attr("is_validating")) {
		$(me).attr("is_validating", true);
		$(me).validate();
	}
	if ($(me).validate().pendingRequest > 0) {
		setTimeout(function() {process_submit(me);}, 500);
		return false;
	}
	$(me).attr("is_validating", false);

	// disable submit button(s)
	$(me).find("input[type=submit]").attr("disable", true).css("opacity",0.5)
	me.submit();
};
{/jq}

Disable submit button properly (odd that it worked at all in Safari) and let browser deal with appearance change.

{* $Id$ *}
{jq}
$("#editItemForm{{$trackerEditFormId}}").validate({
	{{$validationjs}},
	ignore: '.ignore',
	submitHandler: function(){process_submit(this.currentForm);}
});
{/jq}
{jq}
process_submit = function(me) {
	if (!$(me).attr("is_validating")) {
		$(me).attr("is_validating", true);
		$(me).validate();
	}
	if ($(me).validate().pendingRequest > 0) {
		setTimeout(function() {process_submit(me);}, 500);
		return false;
	}
	$(me).attr("is_validating", false);

	// disable submit button(s)
	$(me).find("input[type=submit]").attr("disabled", true);
	me.submit();
};
{/jq}


Files in CAD Result Directory

Number of files: {$inspector_files|@count|number_format}

File	Type	Size

	{foreach from=$inspector_files item=item}

			{$item.file|escape}
			{$item.type|escape}
			{$item.size|number_format}

	{/foreach}

Add link to files in CAD result storage.

Files in CAD Result Directory

Number of files: {$inspector_files|@count|number_format}

File	Type	Size

	{foreach from=$inspector_files item=item}

			{if $item.type=='file'}
			webPathOfCadResult()|escape}/{$item.file|escape}">{$item.file|escape}
			{else}
			{$item.file|escape}
			{/if}
			{$item.type|escape}
			{$item.size|number_format}

	{/foreach}


Edit Terms, Privacy, Legal Notice, About Us pages

Go to your Admin Panel -> File/Page -> Page Module -> and look for the page name you want to edit.

Click on it, Edit it, Save it. That's it! 😃

Add explanatory (in figure tag)

Edit Terms, Privacy, Legal Notice, About Us pages

Go to your Admin Panel -> File/Page -> Page Module -> and look for the page name you want to edit.

Click on it, Edit it, Save it. That's it! 😃

Edit the static pages of your website


  <form action="{$smarty.server.SCRIPT_NAME}?page=login" method="post" id="loginForm">
    <input type="hidden" name="to" value="{($smarty.request.to|default:"{$smarty.server.SCRIPT_NAME}?page=dashboard")|escape}" />
    {if $GLOBAL.csrf.enabled && !"login"|in_array:$GLOBAL.csrf.disabled_forms}<input type="hidden" name="ctoken" value="{$CTOKEN|escape}" />{/if}

Login with existing account

        <fieldset>
          E-Mail
          <input type="email" name="username" size="22" maxlength="100" value="{$smarty.request.username|default:""|escape}" placeholder="Your email" required />
        </fieldset>
        <fieldset>
          Password
          <input type="password" name="password" size="22" maxlength="100" placeholder="Your password" required />
        </fieldset>

    {nocache}{$RECAPTCHA|default:"" nofilter}{/nocache}

        Forgot your password?
        <input type="submit" value="Login" class="alt_btn" />

  </form>

Allow TAB to focus on email login

  <form action="{$smarty.server.SCRIPT_NAME}?page=login" method="post" id="loginForm">
    <input type="hidden" name="to" value="{($smarty.request.to|default:"{$smarty.server.SCRIPT_NAME}?page=dashboard")|escape}" />
    {if $GLOBAL.csrf.enabled && !"login"|in_array:$GLOBAL.csrf.disabled_forms}<input type="hidden" name="ctoken" value="{$CTOKEN|escape}" />{/if}

Login with existing account

        <fieldset>
          E-Mail
          <input type="email" name="username" size="22" maxlength="100" value="{$smarty.request.username|default:""|escape}" placeholder="Your email" tabindex="1" required />
        </fieldset>
        <fieldset>
          Password
          <input type="password" name="password" size="22" maxlength="100" placeholder="Your password" tabindex="2" required />
        </fieldset>

    {nocache}{$RECAPTCHA|default:"" nofilter}{/nocache}

        Forgot your password?
        <input type="submit" value="Login" class="alt_btn" />

  </form>


{% if not m.acl.user %}

    {% if icon == 'none' %}
        {{ label }}
    {% elseif icon %}
        {% if icon_before %}
             {{ label }}
        {% else %}
            {{ label }}
        {% endif %}
    {% else %}
        {{ label }}
    {% endif %}

    {% wire
        id=#signup
        action={
            dialog_open
            title=title|default:_"Log in or sign up"
            template=dialog_template|default:"_action_dialog_authenticate.tpl"
            tab=tab|default:"logon"
            redirect=m.req.path
            action=action
        }
    %}

{% endif %}

Fix function_clause error for websocket requests

{% if not m.acl.user %}

    {% if icon == 'none' %}
        {{ label }}
    {% elseif icon %}
        {% if icon_before %}
             {{ label }}
        {% else %}
            {{ label }}
        {% endif %}
    {% else %}
        {{ label }}
    {% endif %}

    {% wire
        id=#signup
        action={
            dialog_open
            title=title|default:_"Log in or sign up"
            template=dialog_template|default:"_action_dialog_authenticate.tpl"
            tab=tab|default:"logon"
            redirect="#reload"
            action=action
        }
    %}

{% endif %}


         {echo config::get_config_logo()}

          <form action="{$url_alloc_menuSubmit}" method="post" id="form_search">
            <select name="search_action" id="search_action" style="width:9em;">
              {$category_options}
              <option value="" disabled="disabled">--------------------
              {$history_options}
            </select>
            <input size="40" type="text" name="needle" id="menu_form_needle" value="{$needle}">
            <input type="hidden" name="sessID" value="{$sessID}">
          </form>

      {page::tabs()}

{page::extra_links()}

{page::messages()}

Add text-shadow to page header.


  <%- tableName %>
  <div data-fields="<%- tableName %>">

Fix style for api key table grants adding text overflow

  <span class="u-ellipsis" title="<%- tableName %>">
    <%- tableName %>

  <div data-fields="<%- tableName %>">


{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::${bucket_name}/*/AWSLogs/*",
      "Principal": {
        "AWS": "arn:aws:iam::${principal}:root"
      }
    }
  ]
}

Add Shield DRT access policy to elb log bucket


smtp      inet  n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=may
submission inet n       -       n       -       -       smtpd
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes

smtp      unix  -       -       n       -       -       smtp
rewrite   unix  -       -       n       -       -       trivial-rewrite
cleanup   unix  n       -       n       -       0       cleanup
anvil     unix  -       -       n       -       1       anvil
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
retry     unix  -       -       n       -       -       error
pickup    unix  n       -       n       60      1       pickup
scache    unix  -       -       n       -       1       scache
virtual   unix  -       n       n       -       -       virtual
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce

dovecot   unix  -       n       n       -       -       pipe
  flags=ODRhu user=mail:mail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -a ${original_recipient} -d ${user}@${nexthop}

Add showq and flush queues

smtp      inet  n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=may
submission inet n       -       n       -       -       smtpd
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes

smtp      unix  -       -       n       -       -       smtp
rewrite   unix  -       -       n       -       -       trivial-rewrite
cleanup   unix  n       -       n       -       0       cleanup
anvil     unix  -       -       n       -       1       anvil
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
retry     unix  -       -       n       -       -       error
pickup    unix  n       -       n       60      1       pickup
scache    unix  -       -       n       -       1       scache
virtual   unix  -       n       n       -       -       virtual
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
showq     unix  n       -       n       -       -       showq
flush     unix  n       -       n       1000?   0       flush

dovecot   unix  -       n       n       -       -       pipe
  flags=ODRhu user=mail:mail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -a ${original_recipient} -d ${user}@${nexthop}


    Not sure where to start? Explore our database with the following interactive search tool:

    <svg width="1000" height="750" style="background-image: url('/css/img/traitOverview_contrast.png');" align="center">
    <circle id="circle1" cx="250" cy="25" r="25" opacity="0.01"/>
    <circle id="circle2" cx="250" cy="200" r="25" opacity="0.01"/>
    <circle id="circle3" cx="250" cy="400" r="25" opacity="0.01"/>
    </svg>

Remove calling of circle within the svg of the smarty template

    Not sure where to start? Explore our database with the following interactive search tool:

    <svg width='1000' height='750' style='background-image: url("{#$WebRoot#}/css/img/traitOverview_contrast.png")' id='interactiveBrowse'/>


{
    "openstack": {
        "auth_url": "http://{{ if .Values.global.clusterDomain }}keystone.{{.Release.Namespace}}.svc.{{.Values.global.clusterDomain}}{{ else }}keystone.{{.Release.Namespace}}.svc.kubernetes.{{.Values.global.region}}.{{.Values.global.tld}}{{end}}:5000/v3",

        "region_name": "{{ .Values.global.region }}",
        "endpoint_type": "internal",
        "admin": {
            "username": "admin",
            "password": {{ .Values.tempest.adminPassword | quote }},
            "user_domain_name": "tempest",
            "project_name": "admin",
            "domain_name": "tempest",
    },
    "users": [
        {
            "username": "tempestuser1",
            "password": {{ .Values.tempest.userPassword | quote }},
            "user_domain_name": "tempest",
            "project_name": "tempest1",
            "project_domain_name": "tempest"
        },
        {
            "username": "tempestuser2",
            "password": {{ .Values.tempest.userPassword | quote }},
            "user_domain_name": "tempest",
            "project_name": "tempest2",
            "project_domain_name": "tempest"
        }
    ],
        "https_insecure": true,
        "https_cacert": ""
    }
}

Revert "[ironic] project_name missing in config"

{
    "openstack": {
        "auth_url": "http://{{ if .Values.global.clusterDomain }}keystone.{{.Release.Namespace}}.svc.{{.Values.global.clusterDomain}}{{ else }}keystone.{{.Release.Namespace}}.svc.kubernetes.{{.Values.global.region}}.{{.Values.global.tld}}{{end}}:5000/v3",

        "region_name": "{{ .Values.global.region }}",
        "endpoint_type": "internal",
        "admin": {
            "username": "admin",
            "password": {{ .Values.tempest.adminPassword | quote }},
            "user_domain_name": "tempest",
            "domain_name": "tempest",
    },
    "users": [
        {
            "username": "tempestuser1",
            "password": {{ .Values.tempest.userPassword | quote }},
            "user_domain_name": "tempest",
            "project_name": "tempest1",
            "project_domain_name": "tempest"
        },
        {
            "username": "tempestuser2",
            "password": {{ .Values.tempest.userPassword | quote }},
            "user_domain_name": "tempest",
            "project_name": "tempest2",
            "project_domain_name": "tempest"
        }
    ],
        "https_insecure": true,
        "https_cacert": ""
    }
}


{capture name=popup}

			{foreach from=$popupFields|default:null item=field}

{$field.name|escape}	{trackeroutput field=$field item=$popupItem showpopup=n showlinks=n}

			{/foreach}

{/capture}
{popup text=$smarty.capture.popup|escape:"javascript"|escape:"html" fullhtml="1" hauto=true vauto=true sticky=$stickypopup|default:null}

Add table class to get better padding in cells.


% include('templates/header.tpl', title='Series')

Thread

Testing

    %if series.get('merged'):
        Merged
    %elif series['testing-passed']:
        Passed
    %else:
        Failed
    %end

{{log}}

% include('templates/footer.tpl')

Handle "not started" case in template

% include('templates/header.tpl', title='Series')

Thread

Testing

    %if series.get('merged'):
        Merged
    %elif series['testing-start-time']:
        Testing
    %elif series['testing-passed']:
        Passed
    %elif series['testing-passed'] == False:
        Failed
    %else:
        Not started
    %end

%if log:

{{log}}

%end

% include('templates/footer.tpl')


# Defines configuration options specific for Arista ML2 Mechanism driver

[ml2_arista]
{{- range $k,$v := .Values.arista }}
  {{- if and (ne "switches" $k) (ne "physnet" $k) }}
{{ $k }} = {{ $v }}
  {{- end }}
{{- end }}
{{- if .Values.arista.physnet }}
managed_physnets = {{ .Values.arista.physnet }}
{{- end }}

region_name = {{ .Values.global.region }}
switch_info = {{ range $i, $switch := .Values.arista.switches }}
  {{- $switch.host }}:{{ $switch.user }}:{{ $switch.password | urlquery -}}
  {{- if lt $i (sub (len $.Values.arista.switches) 1) }},{{ end -}}
{{- end }}

Add coordination url for arista driver

# Defines configuration options specific for Arista ML2 Mechanism driver

[ml2_arista]
{{- range $k,$v := .Values.arista }}
  {{- if and (ne "switches" $k) (ne "physnet" $k) }}
{{ $k }} = {{ $v }}
  {{- end }}
{{- end }}
{{- if .Values.arista.physnet }}
managed_physnets = {{ .Values.arista.physnet }}
{{- end }}
coordinator_url = memcached://neutron-memcached:{{ .Values.memcached.memcached.port }}

region_name = {{ .Values.global.region }}
switch_info = {{ range $i, $switch := .Values.arista.switches }}
  {{- $switch.host }}:{{ $switch.user }}:{{ $switch.password | urlquery -}}
  {{- if lt $i (sub (len $.Values.arista.switches) 1) }},{{ end -}}
{{- end }}


Olá {$contact.first_name},

#CONFIRMATION_BLOCK

Obrigada,

Julia e a equipa do WeMove.EU

Add privacy block to PT confirmation email

Olá {$contact.first_name},

#CONFIRMATION_BLOCK

Obrigada,

Julia e a equipa do WeMove.EU

#PRIVACY_BLOCK


    <span
      class="CDB-SelectorLayer-letter CDB-Text CDB-Size-small u-whiteTextColor u-rSpace u-upperCase"
      style="background-color: <%- sourceColor %>;"><%- source %>

<%- layerName %>

Change source style in widget list

    <span class="is-semibold u-rSpace u-upperCase" style="color: <%- sourceColor %>;">
      <%- source %>

      Source
      <%- layerName %>


{lang 'Invite your Friends'}

        {{ InviteForm::display() }}

{{ $designModel->ad(336,280) }}

    {{ $design->likeApi() }}

Change AddThis widget type + move it up to the ad block

{lang 'Invite your Friends'}

        {{ InviteForm::display() }}

    {{ $design->littleLikeApi() }}

{{ $designModel->ad(336,280) }}


{% with class|default:"person-author__text" as class %}

{% if id.o.author %}

        {_ By: _}

        {% for author in id.o.author %}
            {% if author.is_visible %}

                {% include "avatar/avatar.tpl" id=author %} {{ author.title }}{% if not forloop.last %}, {% endif %}

            {% endif %}
        {% endfor %}

{% endif %}

{% endwith %}

Simplify authors and fall back to creator

{%
    with
        class|default:"person-author__text",
        authors|default:(id.o.author|is_visible)|default:[id.creator_id]|is_visible
    as
        class,
        authors
%}
    {% if authors %}

            {_ By: _}

            {% for author in authors %}

                    {% include "avatar/avatar.tpl" id=author %} {{ author.title }}{% if not forloop.last %}, {% endif %}

            {% endfor %}

    {% endif %}
{% endwith %}


{lang 'Membership Name: %0%', '' . $membershipName . ''}

{lang 'Expiration: %0%', '' . $expirationDate . ''}

        url('payment', 'main', 'membership') }}">{lang 'Renew/Upgrade your Membership'}

Set colours to user membership details


<input class="input-search do_search_cmp_input_text" type="text" name="qs" data-live="{{ instant }}" value="" />
<button type="submit" class="global-search__submit" title="{_ Search _}">{_ Search _}</button>

Fix input text instant argument name

<input class="input-search do_search_cmp_input_text" type="text" name="qs" data-instant="{{ instant }}" value="" />
<button type="submit" class="global-search__submit" title="{_ Search _}">{_ Search _}</button>


{# Add one or more cat="NAME" to the query below to filter the result #}

{%
    with
        results_template,
        cat,
        paged|default:true,
        cat_exclude|default:['meta', 'menu'],
        search_text|default:q.value|default:q.qs,
        cg_name,
        pagelen|default:10
    as
        results_template,
        cat,
        paged,
        cat_exclude,
        search_text,
        content_group,
        pagelen
%}
    {% if paged %}
        {% with m.search.paged[{query cat_exclude=cat_exclude content_group=content_group text=search_text pagelen=pagelen custompivot="ginger_findable" filter=["is_excluded_from_search", `=`, "f"]}] as result %}
            {% include results_template %}
        {% endwith %}
    {% else %}
        {% with m.search[{query cat_exclude=cat_exclude content_group=content_group text=search_text pagelen=pagelen page=q.page custompivot="ginger_findable" filter=["is_excluded_from_search", `=`, "f"]}] as result %}
            {% include results_template result=result %}
        {% endwith %}
    {% endif %}

{% endwith %}

Exclude category admin_content_query from search results

{# Add one or more cat="NAME" to the query below to filter the result #}

{%
    with
        results_template,
        cat,
        paged|default:true,
        cat_exclude|default:['meta', 'menu', 'admin_content_query'],
        search_text|default:q.value|default:q.qs,
        cg_name,
        pagelen|default:10
    as
        results_template,
        cat,
        paged,
        cat_exclude,
        search_text,
        content_group,
        pagelen
%}
    {% if paged %}
        {% with m.search.paged[{query cat_exclude=cat_exclude content_group=content_group text=search_text pagelen=pagelen custompivot="ginger_findable" filter=["is_excluded_from_search", `=`, "f"]}] as result %}
            {% include results_template %}
        {% endwith %}
    {% else %}
        {% with m.search[{query cat_exclude=cat_exclude content_group=content_group text=search_text pagelen=pagelen page=q.page custompivot="ginger_findable" filter=["is_excluded_from_search", `=`, "f"]}] as result %}
            {% include results_template result=result %}
        {% endwith %}
    {% endif %}

{% endwith %}


[<*
Copyright 2009-2010 The Schedule Miner Authors
Use of this source code is governed by an MIT-style license that can be
found in the LICENSE file.
*>]

[<*
Display a list of users
*>]

[<if isset($error)>]
   [<$error>]
[<else>]

Users

   <form action="[<$SM_ROOT>]/users/show_list" method="post">

            Username
            Full Name
            Email
            Delete User

         [<foreach from=$users item=user>]

               <a href="[<$SM_ROOT>]/users/edit/[<$user->username>]">[<$user->username>]
               [<$user->name>]

                  [<if isset($user->email)>]
                     <a href="mailto:[<$user->email>]">[<$user->email>]
                  [</if>]

               [<if $SM_USER->id eq $user->id>]
                  N/A
               [<else>]
                  <input type="submit" name="delete[<$user->id>]" value="Delete" />
               [</if>]

         [</foreach>]

   </form>

   <a href="[<$SM_ROOT>]/users/create">Create a user
[</if>]

Add count of users in list.

[<*
Copyright 2009-2010 The Schedule Miner Authors
Use of this source code is governed by an MIT-style license that can be
found in the LICENSE file.
*>]

[<*
Display a list of users
*>]

[<if isset($error)>]
   [<$error>]
[<else>]

Users ([<$users|@count>])

   <form action="[<$SM_ROOT>]/users/show_list" method="post">

            Username
            Full Name
            Email
            Delete User

         [<foreach from=$users item=user>]

               <a href="[<$SM_ROOT>]/users/edit/[<$user->username>]">[<$user->username>]
               [<$user->name>]

                  [<if isset($user->email)>]
                     <a href="mailto:[<$user->email>]">[<$user->email>]
                  [</if>]

               [<if $SM_USER->id eq $user->id>]
                  N/A
               [<else>]
                  <input type="submit" name="delete[<$user->id>]" value="Delete" />
               [</if>]

         [</foreach>]

   </form>

   <a href="[<$SM_ROOT>]/users/create">Create a user
[</if>]


    {if $is_enabled}

{lang 'To use it, you have first to download Authenticator app available for Android and iOS.', 'https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2', 'https://itunes.apple.com/en/app/google-authenticator/id388497605'}

    {/if}

    {{ $text = !$is_enabled ? t('Turn On Two-Factor Authentication') : t('Turn Off Two-Factor Authentication') }}

{{ LinkCoreForm::display($text, 'two-factor-auth', 'main', 'setup/' . $mod, array('status' => $is_enabled)) }}

{{ LinkCoreForm::display('Download the recovery backup code', 'two-factor-auth', 'main', 'setup/' . $mod, array('get_backup_code' => 1)) }}

Change name for "2FA backup recovery code"

    {if $is_enabled}

{lang 'To use it, you have first to download Authenticator app available for Android and iOS.', 'https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2', 'https://itunes.apple.com/en/app/google-authenticator/id388497605'}

    {/if}

    {{ $text = !$is_enabled ? t('Turn On Two-Factor Authentication') : t('Turn Off Two-Factor Authentication') }}

{{ LinkCoreForm::display($text, 'two-factor-auth', 'main', 'setup/' . $mod, array('status' => $is_enabled)) }}

{{ LinkCoreForm::display('Download the backup recovery code', 'two-factor-auth', 'main', 'setup/' . $mod, array('get_backup_code' => 1)) }}


$packageName = 'livestreamer-twitch-gui'
$url = 'https://github.com/bastimeyer/livestreamer-twitch-gui/releases/download/v<%- version %>/livestreamer-twitch-gui-v<%- version %>-win32.zip'
$url64 = 'https://github.com/bastimeyer/livestreamer-twitch-gui/releases/download/v<%- version %>/livestreamer-twitch-gui-v<%- version %>-win64.zip'
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$installDir = "$(Split-Path -parent $toolsDir)"
$extractDir = "$(Split-Path -parent $installDir)"

Install-ChocolateyZipPackage "$packageName" "$url" "$extractDir" "$url64"

$desktop = [Environment]::GetFolderPath("Desktop")
$shortcutFile = Join-Path $desktop "$($packageName).lnk"
$exeFile = Join-Path $installDir "$($packageName).exe"
Install-ChocolateyShortcut -shortcutFilePath $shortcutFile -targetPath $exeFile

Use --no-version-check in chocolateyinstall script

$packageName = 'livestreamer-twitch-gui'
$url = 'https://github.com/bastimeyer/livestreamer-twitch-gui/releases/download/v<%- version %>/livestreamer-twitch-gui-v<%- version %>-win32.zip'
$url64 = 'https://github.com/bastimeyer/livestreamer-twitch-gui/releases/download/v<%- version %>/livestreamer-twitch-gui-v<%- version %>-win64.zip'
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$installDir = "$(Split-Path -parent $toolsDir)"
$extractDir = "$(Split-Path -parent $installDir)"

Install-ChocolateyZipPackage "$packageName" "$url" "$extractDir" "$url64"

$desktop = [Environment]::GetFolderPath("Desktop")
$shortcutFile = Join-Path $desktop "$($packageName).lnk"
$exeFile = Join-Path $installDir "$($packageName).exe"
Install-ChocolateyShortcut -shortcutFilePath $shortcutFile -targetPath $exeFile -arguments "--no-version-check"


// Full configuration of ${ className }.

'use strict';

module.exports = require('./base');

require('./fields');
require('./determinants');
require('./guide');

Improve business process model index

// Full configuration of ${ className }.

'use strict';

module.exports = require('./base');

// Full generic BusinessProcess definition.
require('../business-process');

require('./fields');
require('./determinants');
require('./guide');


{if !$is_own_profile AND $is_im_enabled}

{/if}

{if $is_lovecalculator_enabled AND !$is_own_profile}
    url('love-calculator','main','index',$username) }}" title="{lang 'Match'}">
{/if}

{if $is_mail_enabled AND !$is_own_profile}

{/if}

{if $is_friend_enabled AND !$is_own_profile}

{/if}

Add two rows; bootstrap class


{strip}

{section name=s loop=$slideshows}
{if $smarty.section.s.first}

{else}

{/if}
{/section}

{/strip}

Fix dwoo bug by replacing section with foreach.

{strip}

{foreach name=s from=$slideshows item=ss}
{if $smarty.foreach.s.first}

{else}

{/if}
{/foreach}

{/strip}


<?php if (count($this->menu)) { ?>
    <div class="<?=$this->cssClass;?>">

            <? foreach ($this->menu as $m) { ?>
                <li class="<?=$m['class'];?>">
                    <?=$this->componentLink($m['data'] , '', 'liMain');?>
                    <? if (isset($m['submenu']) && sizeof($m['submenu'])) { ?>

                                <? foreach ($m['submenu'] as $sm) { ?>
                                    <li class="<?=$sm['class'];?>">
                                        <?=$this->componentLink($sm['data'] , '', 'liSub');?>

                                <? } ?>

                    <? } ?>

            <? } ?>

<? } ?>

Revert "CSS Class on 'a' tag because of cleaner and better styling scope"

<?php if (count($this->menu)) { ?>
    <div class="<?=$this->cssClass;?>">

            <? foreach ($this->menu as $m) { ?>
                <li class="<?=$m['class'];?>">
                    <?=$this->componentLink($m['data']);?>
                    <? if (isset($m['submenu']) && sizeof($m['submenu'])) { ?>

                                <? foreach ($m['submenu'] as $sm) { ?>
                                    <li class="<?=$sm['class'];?>">
                                        <?=$this->componentLink($sm['data']);?>

                                <? } ?>

                    <? } ?>

            <? } ?>

<? } ?>


      {include file="menu.tpl"}

      Influence Networks is an open-source, collaborative directory of relationships between people, institutions and companies. Each relation has its own level of trustworthiness, so that facts can be distinguished from noise.

Add an URL to the repository.


                <time class="timeago" datetime="{$model.createdate}">{$model.createdate}</time>

                Model

            {$model.name}

{$model.description}

Fix model thumbnail in search


{{- $tableNameSingular := .Table.Name | singular -}}
{{- $modelName := $tableNameSingular | titleCase -}}
// {{$modelName}} is an object representing the database table.
type {{$modelName}} struct {
  {{range $column := .Table.Columns -}}
  {{titleCase $column.Name}} {{$column.Type}} `boil:"{{printf "%s.%s" $tableNameSingular $column.Name}}" json:"{{$column.Name}}" toml:"{{$column.Name}}" yaml:"{{$column.Name}}"`
  {{end -}}
}

Fix struct tags for bind

{{- $tableNameSingular := .Table.Name | singular -}}
{{- $modelName := $tableNameSingular | titleCase -}}
// {{$modelName}} is an object representing the database table.
type {{$modelName}} struct {
  {{range $column := .Table.Columns -}}
  {{titleCase $column.Name}} {{$column.Type}} `boil:"{{$column.Name}}" json:"{{$column.Name}}" toml:"{{$column.Name}}" yaml:"{{$column.Name}}"`
  {{end -}}
}


{% include header.tpl %}

{% for post in list limit 10 %}

{{ post.title }}

	{% include meta.tpl %}

	{% if forloop.index == 1 and preview %}
		{{ post.content }}
	{% endif %}

{% endfor %}

{% if list == null %}

该分类下还没有文章

{% endif %}

Disable preview for entities not layout by post.

{% include header.tpl %}

{% for post in list %}

{{ post.title }}

	{% include meta.tpl %}

	{% if forloop.index == 1 and preview and post.layout == 'post' %}
		{{ post.content }}
	{% endif %}

{% endfor %}

{% if list == null %}

该分类下还没有文章

{% endif %}


% include('header.tpl')
<form action="/items/new" method="POST">

<input type="text" name="name" id="name">

        Description:<input type="text" maxlength="256" name="description" id="description">

        Posting date:<input type='date' name='date' id='date'>

        Tags:<input type="text" maxlength="128" name="tags" id="tags">

        Type:<input type="text" maxlength="64" name="type" id="type">

        Keywords:<input type="text" maxlength="128" name="keyword" id="keyword">

        Author:<input type="text" maxlength="64" name='author' id='author'>

        <textarea name="content" rows="20"></textarea>

    <input type="submit" name="save" value="Save" id="save">

</form>
% include('footer.tpl')

Add a value for new post title for user to understand where it have to place a title

% include('header.tpl')
<form action="/items/new" method="POST">

<input type="text" name="name" id="name" placeholder="The Note Title">

        Description:<input type="text" maxlength="256" name="description" id="description">

        Posting date:<input type='date' name='date' id='date'>

        Tags:<input type="text" maxlength="128" name="tags" id="tags">

        Type:<input type="text" maxlength="64" name="type" id="type">

        Keywords:<input type="text" maxlength="128" name="keyword" id="keyword">

        Author:<input type="text" maxlength="64" name='author' id='author'>

        <textarea name="content" rows="20"></textarea>

    <input type="submit" name="save" value="Save" id="save">

</form>
% include('footer.tpl')


{{$variant := (index .Variant 0)}}{{if $variant.StopAtMarker}}
{
  markerIndex := i
  for ; markerIndex < len(payload) && payload[markerIndex] != {{$variant.MarkerValue}}; markerIndex++ {}
  val.{{ToGoName .Name}} = payload[i:markerIndex]
}
{{else}}
val.{{ToGoName .Name}} = payload[i:]
{{end}}

Fix variable name in unmarshal variant template

{{$variant := (index .Variant 0)}}{{if $variant.StopAtMarker}}
{
  markerIndex := i
  for ; markerIndex < len(payload) && payload[markerIndex] != {{$variant.MarkerValue}}; markerIndex++ {}
  cmd.{{ToGoName .Name}} = payload[i:markerIndex]
}
{{else}}
cmd.{{ToGoName .Name}} = payload[i:]
{{end}}


{# Render link that opens a modal login/signup dialog. #}

{% if not m.acl.user %}
    {% lib
        "css/logon.css"
    %}

    {{ label|default:_"logon/signup" }}
    {% wire
        id=#signup
        action={
            dialog_open
            title=title|default:_"Log in or sign up"
            template=dialog_template|default:"_action_dialog_authenticate.tpl"
            tab=tab|default:"logon"
            redirect=m.req.path
        }
    %}
{% endif %}

Add styling options to logon link

{# Render link that opens a modal login/signup dialog. #}

{% if not m.acl.user %}

    {% with
        class|default:"main-nav__login-register-button",
        icon|default:"glyphicon glyphicon-log-in",
        icon_before,
        label|default:_"logon/signup"
    as
        class,
        icon,
        icon_position,
        label
    %}

    {% lib
        "css/logon.css"
    %}

    {% if icon_before %}
         {{ label }}
    {% else %}
        {{ label }}
    {% endif %}

    {% wire
        id=#signup
        action={
            dialog_open
            title=title|default:_"Log in or sign up"
            template=dialog_template|default:"_action_dialog_authenticate.tpl"
            tab=tab|default:"logon"
            redirect=m.req.path
        }
    %}

    {% endwith %}
{% endif %}


{tr}Please choose the language for this page:{/tr}

		{tr _0=$page|escape}Page: "%0"{/tr}

	<form method="post" action="tiki-editpage.php?page={$page|escape:'url'}" id='editpageform' name='editpageform'>
		{* Repeat all arguments from the page creation request *}
		{query _type='form_input' _keepall='y' need_lang='n'}

		<select name="lang">
			{section name=ix loop=$languages}
			<option value="{$languages[ix].value|escape}"{if $languages[ix].value|escape == $default_lang} selected="selected"{/if}>{$languages[ix].name}</option>
			{/section}

		</select>
		<input type="submit" name="select_language" value="{tr}Choose language{/tr}" onclick="needToConfirm=false;">
	</form>

Allow overflow to show on language choice form (dropdown menu was hidden when using Chosen)


    {tr}File{/tr}
    {tr}Date{/tr}
    {tr}Description{/tr}

{foreach from=$data.files item=file}

      {object_link type="file" id=$file.fileId title=$file.name}

    {$file.lastModif|tiki_short_datetime}
    {$file.description|escape}

{/foreach}

Add a containing div with class and id around the files table display mode to allow field specific styling


<?php
/** @package    {$connection->DBName|studlycaps}::Model */

/** import supporting libraries */
require_once("DAO/{$singular}DAO.php");
require_once("{$singular}Criteria.php");

/**
 * The {$singular} class extends {$singular}DAO which provides the access
 * to the datastore.
 *
 * @package {$connection->DBName|studlycaps}::Model
 * @author ClassBuilder
 * @version 1.0
 */
class {$singular} extends {$singular}DAO
{

	/**
	 * Override default validation
	 * @see Phreezable::Validate()
	 */
	public function Validate()
	{
		// example of custom validation
		// $this->ResetValidationErrors();
		// $errors = $this->GetValidationErrors();
		// if ($error == true) $this->AddValidationError('FieldName', 'Error Information');
		// return !$this->HasValidationErrors();

		return parent::Validate();
	}

	/**
	 * @see Phreezable::OnSave()
	 */
	public function OnSave($insert)
	{
		// the controller create/update methods validate before saving.  this will be a
		// redundant validation check, however it will ensure data integrity at the model
		// level based on validation rules.  comment this line out if this is not desired
		if (!$this->Validate()) throw new Exception('Unable to Save {$singular}: ' .  implode(', ', $this->GetValidationErrors()));

		// OnSave must return true or eles Phreeze will cancel the save operation
		return true;
	}

}

?>

Remove typo in comments on the model template.

<?php
/** @package    {$connection->DBName|studlycaps}::Model */

/** import supporting libraries */
require_once("DAO/{$singular}DAO.php");
require_once("{$singular}Criteria.php");

/**
 * The {$singular} class extends {$singular}DAO which provides the access
 * to the datastore.
 *
 * @package {$connection->DBName|studlycaps}::Model
 * @author ClassBuilder
 * @version 1.0
 */
class {$singular} extends {$singular}DAO
{

	/**
	 * Override default validation
	 * @see Phreezable::Validate()
	 */
	public function Validate()
	{
		// example of custom validation
		// $this->ResetValidationErrors();
		// $errors = $this->GetValidationErrors();
		// if ($error == true) $this->AddValidationError('FieldName', 'Error Information');
		// return !$this->HasValidationErrors();

		return parent::Validate();
	}

	/**
	 * @see Phreezable::OnSave()
	 */
	public function OnSave($insert)
	{
		// the controller create/update methods validate before saving.  this will be a
		// redundant validation check, however it will ensure data integrity at the model
		// level based on validation rules.  comment this line out if this is not desired
		if (!$this->Validate()) throw new Exception('Unable to Save {$singular}: ' .  implode(', ', $this->GetValidationErrors()));

		// OnSave must return true or Phreeze will cancel the save operation
		return true;
	}

}

?>


<div class="<?=$this->cssClass?>">

<?=$this->data->trl('Favourites');?>

    <? if ($this->favourites) { ?>
        <? foreach ($this->favourites as $favourite) { ?>

                <?= $this->componentLink($favourite); ?>

        <? } ?>
    <? } else { ?>
        <?=$this->data->trl('You have no favourites!'); ?>
    <? } ?>

Change template to create list


    {foreach item=i from=$icons}
        {$i.open}

{$i.label}

        {$i.close}
    {/foreach}

{foreach item=i from=$launcher}
    {$i.open}

{$i.label}

    {$i.close}
{/foreach}

Fix white-space wrap in ActionBar


# ################################################################
# DESC: Docker file to run Hashicorp Vault (vaultproject.io)
#
# LOG:
# yyyy/mm/dd [name] [version]: [notes]
# 2015/05/01 cgwong [v0.1.0]: Initial creation.
# ################################################################

FROM alpine:latest
MAINTAINER Stuart Wong <cgs.wong@gmail.com>

ENV VAULT_VERSION %%VERSION%%
ENV VAULT_TMP /tmp/vault.zip
ENV VAULT_HOME /usr/local/bin
ENV PATH $PATH:${VAULT_HOME}

RUN apk --update add \
      wget \
      bash \
      ca-certificates &&\
    wget --no-check-certificate --quiet --output-document=${VAULT_TMP} https://dl.bintray.com/mitchellh/vault/vault_${VAULT_VERSION}_linux_amd64.zip &&\
    unzip ${VAULT_TMP} -d ${VAULT_HOME} &&\
    rm -f ${VAULT_TMP}

# Listener API tcp port
EXPOSE 8200

ENTRYPOINT ["/usr/local/bin/vault"]
CMD ["version"]

Check SSL certificate validity when downloading Vault package

# ################################################################
# DESC: Docker file to run Hashicorp Vault (vaultproject.io)
#
# LOG:
# yyyy/mm/dd [name] [version]: [notes]
# 2015/05/01 cgwong [v0.1.0]: Initial creation.
# ################################################################

FROM alpine:latest
MAINTAINER Stuart Wong <cgs.wong@gmail.com>

ENV VAULT_VERSION %%VERSION%%
ENV VAULT_TMP /tmp/vault.zip
ENV VAULT_HOME /usr/local/bin
ENV PATH $PATH:${VAULT_HOME}

RUN apk --update add \
      wget \
      bash \
      ca-certificates &&\
    wget --quiet --output-document=${VAULT_TMP} https://dl.bintray.com/mitchellh/vault/vault_${VAULT_VERSION}_linux_amd64.zip &&\
    unzip ${VAULT_TMP} -d ${VAULT_HOME} &&\
    rm -f ${VAULT_TMP}

# Listener API tcp port
EXPOSE 8200

ENTRYPOINT ["/usr/local/bin/vault"]
CMD ["version"]


server {
    listen  80;

    root {{ doc_root }};
    index index.html index.php;

    server_name {{ servername }};

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        root /usr/share/nginx/www;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Update nginx config to handle app_dev.php

server {
    listen  80;

    root {{ doc_root }};
    index index.html index.php;

    server_name {{ servername }};

    location / {
        try_files $uri $uri/ /app.php?$query_string;
    }

    location ~ ^/app_dev\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        root /usr/share/nginx/www;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}


{% lib
    "js/ginger_edit.js"
    "js/modules/z.notice.js"
    "js/modules/z.imageviewer.js"
    "js/modules/z.dialog.js"
    "js/qlobber.js"
    "js/pubzub.js"
    "js/modules/z.live.js"
    "js/modules/livevalidation-1.3.js"
    "js/modules/z.inputoverlay.js"
    "js/modules/jquery.loadmask.js"
    "js/modules/z.feedback.js"
    "js/ginger_session.js"
    "js/modules/z.popupwindow.js"
%}

{% block _js_include_extra %}{% endblock %}

Fix social media redirect by removing ginger_session.js

{% lib
    "js/ginger_edit.js"
    "js/modules/z.notice.js"
    "js/modules/z.imageviewer.js"
    "js/modules/z.dialog.js"
    "js/qlobber.js"
    "js/pubzub.js"
    "js/modules/z.live.js"
    "js/modules/livevalidation-1.3.js"
    "js/modules/z.inputoverlay.js"
    "js/modules/jquery.loadmask.js"
    "js/modules/z.feedback.js"
    "js/modules/z.popupwindow.js"
%}

{% block _js_include_extra %}{% endblock %}


<?php
$output = '';
foreach ($this->contentParts as $part) {
    if (is_string($part)) {
        $output .= $part;
    } else {
        if ($part['type']=='link') {
            $output .= '<a href="' . $this->component($part['component']) . '">';
        } else {
            $output .= $this->component($part['component']);
        }
    }
}
echo Kwc_Basic_Text_HtmlToTextParser::parse($output);

Convert download parts in text component correctly

<?php
$output = '';
foreach ($this->contentParts as $part) {
    if (is_string($part)) {
        $output .= $part;
    } else {
        if ($part['type'] == 'link' || $part['type'] == 'download') {
            $output .= '<a href="' . $this->component($part['component']) . '">';
        } else {
            $output .= $this->component($part['component']);
        }
    }
}
echo Kwc_Basic_Text_HtmlToTextParser::parse($output);


<?php /* -*- mode: html -*- */
?>

<?php $this->widget('Poller');?>
<?php $this->widget('Logout');?>
<?php $this->widget('Notifs');?>
<?php $this->widget('Chat');?>
<?php $this->widget('ChatExt');?>

        <?php $this->widget('Profile');?>
        <?php $this->widget('Bookmark');?>
        <?php $this->widget('ProfileData');?>

        <?php $this->widget('Tabs');?>
        <?php $this->widget('Media');?>
        <?php $this->widget('MediaUpload');?>

    <?php $this->widget('Roster');?>

Add text to flag in Media page.

<?php /* -*- mode: html -*- */
?>

<?php $this->widget('Poller');?>
<?php $this->widget('Logout');?>
<?php $this->widget('Notifs');?>
<?php $this->widget('Chat');?>
<?php $this->widget('ChatExt');?>

        <?php $this->widget('Profile');?>
        <?php $this->widget('Bookmark');?>
        <?php $this->widget('ProfileData');?>

        <div title="<?php echo t('Not shared'); ?>" style="z-index:1;" class="protect white">

        <?php $this->widget('Tabs');?>
        <?php $this->widget('Media');?>
        <?php $this->widget('MediaUpload');?>

    <?php $this->widget('Roster');?>


# classeur-api-client

This is the documentation landing page for `classeur-api-client`, a node.js client for the REST API of [http://classeur.io/](http://classeur.io/).

API documentation is available at [http://zbentley.github.io/classeur-downloader](http://zbentley.github.io/classeur-downloader).

Source code for this package is avaiable at [https://github.com/zbentley/classeur-downloader](https://github.com/zbentley/classeur-downloader).

Select a version of this library below to get started.

# Versions

NPM package versions will follow [Semantic Versioning](http://semver.org/).

Each link below will take you to the README for the given package version:

- [latest stable](<%- path %>versions/latest/index.html)
- [0.0.1](<%- path %>versions/0.0.1/index.html)
- [0.1.0](<%- path %>versions/0.1.0/index.html) (links to 0.1.1 documentation)
- [0.1.1](<%- path %>versions/0.1.1/index.html)
- [development/unstable (master)](<%- path %>versions/master/index.html)

Remove dead link from version index

# classeur-api-client

This is the documentation landing page for `classeur-api-client`, a node.js client for the REST API of [http://classeur.io/](http://classeur.io/).

API documentation is available at [http://zbentley.github.io/classeur-downloader](http://zbentley.github.io/classeur-downloader).

Source code for this package is avaiable at [https://github.com/zbentley/classeur-downloader](https://github.com/zbentley/classeur-downloader).

Select a version of this library below to get started.

# Versions

NPM package versions will follow [Semantic Versioning](http://semver.org/).

Each link below will take you to the README for the given package version:

- [latest stable](<%- path %>versions/latest/index.html)
- [0.1.0](<%- path %>versions/0.1.0/index.html) (links to 0.1.1 documentation)
- [0.1.1](<%- path %>versions/0.1.1/index.html)
- [development/unstable (master)](<%- path %>versions/master/index.html)


{#extends file='layoutWithBars.tpl'#}
{#block name='content'#}
    <input id="fileupload" type="file" name="files[]" data-url="{#$WebRoot#}/ajax/upload/Project?dbversion={#$DbVersion#}" multiple>

    {#include file='components/otuTable.tpl'#}
    {#include file='components/metadataTable.tpl'#}
{#/block#}

Remove blueimp-file-upload plugin from page

{#extends file='layoutWithBars.tpl'#}
{#block name='content'#}
    <form action="{#$WebRoot#}/ajax/upload/Project?dbversion={#$DbVersion#}" method="post" enctype="multipart/form-data">
        <input id="project-fileupload" type="file" name="files[]" multiple>
        <input type="submit" value="Upload Project" name="submit">
    </form>
    <script src="{#$WebRoot#}/js/uploadProject.js" type="text/javascript"></script>
    {#include file='components/otuTable.tpl'#}
    {#include file='components/metadataTable.tpl'#}
{#/block#}


{% include "_js_include_jquery.tpl" %}

{% lib
	"js/apps/zotonic-1.0.js"
	"js/apps/z.widgetmanager.js"
	"js/modules/z.notice.js"
	"js/modules/z.imageviewer.js"
	"js/modules/z.dialog.js"
	"js/modules/livevalidation-1.3.js"
	"js/modules/z.inputoverlay.js"
	"js/modules/jquery.loadmask.js"
%}

{% block _js_include_extra %}{% endblock %}

<script type="text/javascript">
	$(function()
	{
	    $.widgetManager();
	});
</script>

Add bootstrap.js to default js include

{% include "_js_include_jquery.tpl" %}

{% lib
	"bootstrap/js/bootstrap.min.js"
	"js/apps/zotonic-1.0.js"
	"js/apps/z.widgetmanager.js"
	"js/modules/z.notice.js"
	"js/modules/z.imageviewer.js"
	"js/modules/z.dialog.js"
	"js/modules/livevalidation-1.3.js"
	"js/modules/z.inputoverlay.js"
	"js/modules/jquery.loadmask.js"
%}

{% block _js_include_extra %}{% endblock %}

<script type="text/javascript">
	$(function()
	{
	    $.widgetManager();
	});
</script>


#!/usr/bin/env bash
CELOS_VERSION={{ service_version }} exec java 2>&1 -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -D{classref}.LEVEL=DEBUG -cp "{{ dest_jar_path }}:/etc/hadoop/conf" {{ main_class }} --port {{ service_port }} {{ service_args }}

Set overall log level to DEBUG

#!/usr/bin/env bash
CELOS_VERSION={{ service_version }} exec java 2>&1 -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -Dorg.eclipse.jetty.LEVEL=DEBUG -cp "{{ dest_jar_path }}:/etc/hadoop/conf" {{ main_class }} --port {{ service_port }} {{ service_args }}